@unbrained/pm-cli 2026.8.28 → 2026.8.30

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 (98) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +30 -0
  3. package/dist/cli-bundle/bundle-manifest.json +125 -125
  4. package/dist/cli-bundle/chunks/{chunk-E73FDIWT.js → chunk-2MKLQL2E.js} +2 -2
  5. package/dist/cli-bundle/chunks/{chunk-NTXZHRKA.js → chunk-2UETTHY6.js} +46 -46
  6. package/dist/cli-bundle/chunks/{chunk-FEVBFFCQ.js → chunk-3TEF3HM5.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-BY2FQ2NI.js → chunk-7SKMLSMX.js} +2 -2
  8. package/dist/cli-bundle/chunks/chunk-7X6OZEIV.js +34 -0
  9. package/dist/cli-bundle/chunks/{chunk-M7OXRQE3.js → chunk-CMIEDWAY.js} +50 -50
  10. package/dist/cli-bundle/chunks/{chunk-XWEQGHHG.js → chunk-GNWPTEBW.js} +64 -61
  11. package/dist/cli-bundle/chunks/{chunk-X2RROGZE.js → chunk-MTTKAUBX.js} +2 -2
  12. package/dist/cli-bundle/chunks/chunk-N6OR6FAR.js +13 -0
  13. package/dist/cli-bundle/chunks/{chunk-NBCBFVZI.js → chunk-TGNAA66W.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-QE6WQXFO.js → chunk-WS2GJQVG.js} +2 -2
  15. package/dist/cli-bundle/chunks/{register-list-query-J35ZPQQ5.js → register-list-query-OMKJ5ONN.js} +2 -2
  16. package/dist/cli-bundle/chunks/{register-mutation-J6XJJOGU.js → register-mutation-QBSNCOY3.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-operations-AE3JEMFT.js → register-operations-UC77FQZC.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-setup-OQERLLWE.js → register-setup-GLQ5SYV3.js} +2 -2
  19. package/dist/cli-bundle/focused-chunks/{chunk-HC7ODMH3.js → chunk-3AVAWVZA.js} +2 -2
  20. package/dist/cli-bundle/focused-chunks/chunk-3UMBF26I.js +158 -0
  21. package/dist/cli-bundle/focused-chunks/{chunk-YVVZ3LQ6.js → chunk-73EDXGYE.js} +16 -15
  22. package/dist/cli-bundle/focused-chunks/chunk-AXZ5AJAF.js +50 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-AHAM2HAU.js → chunk-G6PATS5E.js} +3 -3
  24. package/dist/cli-bundle/focused-chunks/chunk-RKOKG43G.js +2 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-TDK3OCX3.js +2 -0
  26. package/dist/cli-bundle/focused-chunks/{chunk-FC2AXLB5.js → chunk-XXOWRJZ5.js} +2 -2
  27. package/dist/cli-bundle/main.js +2 -2
  28. package/dist/cli-bundle/sdk-contracts.js +1 -1
  29. package/dist/cli-bundle/sdk-core.js +31 -32
  30. package/dist/cli-bundle/sdk-governance.js +1 -1
  31. package/dist/cli-bundle/sdk-graph.js +1 -1
  32. package/dist/cli-bundle/sdk-merge.js +34 -32
  33. package/dist/cli-bundle/sdk-query.js +1 -1
  34. package/dist/cli-bundle/sdk-runtime.js +1 -1
  35. package/dist/cli-bundle/sdk-testing.js +1 -1
  36. package/dist/cli-bundle/sdk.js +8 -8
  37. package/dist/core/diagnostics/remediation.js +16 -6
  38. package/dist/core/history/drift-scan.d.ts +2 -0
  39. package/dist/core/history/drift-scan.js +72 -36
  40. package/dist/core/history/history.d.ts +3 -3
  41. package/dist/core/history/history.js +5 -5
  42. package/dist/core/history/replay.d.ts +1 -1
  43. package/dist/core/history/replay.js +50 -19
  44. package/dist/core/item/actionability.d.ts +7 -1
  45. package/dist/core/item/actionability.js +44 -11
  46. package/dist/core/item/dependency-reference.d.ts +10 -0
  47. package/dist/core/item/dependency-reference.js +21 -0
  48. package/dist/core/item/parse.d.ts +4 -0
  49. package/dist/core/item/parse.js +38 -16
  50. package/dist/core/shared/author.js +69 -17
  51. package/dist/sdk/dependency-provenance.d.ts +51 -2
  52. package/dist/sdk/dependency-provenance.js +91 -7
  53. package/dist/sdk/extension/install-sources.d.ts +1 -7
  54. package/dist/sdk/extension/install-sources.js +94 -33
  55. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +50 -14
  56. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +62 -26
  57. package/dist/sdk/governance/health.js +86 -22
  58. package/dist/sdk/governance/validate-history-drift.js +5 -2
  59. package/dist/sdk/graph/assembly.js +51 -22
  60. package/dist/sdk/history-repair.d.ts +1 -1
  61. package/dist/sdk/history-repair.js +20 -10
  62. package/dist/sdk/lifecycle/create.js +43 -19
  63. package/dist/sdk/linked-artifacts.js +21 -31
  64. package/dist/sdk/merge/reconcile.js +3 -16
  65. package/dist/sdk/query/next.d.ts +6 -0
  66. package/dist/sdk/query/next.js +7 -2
  67. package/dist/sdk/test/entry.d.ts +1 -1
  68. package/dist/sdk/test/entry.js +5 -9
  69. package/dist/sdk/test/execution.d.ts +3 -0
  70. package/dist/sdk/test/execution.js +54 -13
  71. package/docs/CONTEXT_RECOVERY_PRIMITIVES.md +67 -0
  72. package/docs/MERGE_SAFETY.md +23 -10
  73. package/docs/README.md +1 -0
  74. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +10 -4
  75. package/marketplace.json +2 -2
  76. package/package.json +8 -8
  77. package/packages/pm-beads/package.json +1 -1
  78. package/packages/pm-calendar/package.json +1 -1
  79. package/packages/pm-command-kit/package.json +1 -1
  80. package/packages/pm-digital-twin/package.json +1 -1
  81. package/packages/pm-governance-audit/package.json +1 -1
  82. package/packages/pm-guide-shell/package.json +1 -1
  83. package/packages/pm-kanban/package.json +1 -1
  84. package/packages/pm-lifecycle-hooks/package.json +1 -1
  85. package/packages/pm-linked-test-adapters/package.json +1 -1
  86. package/packages/pm-search-advanced/package.json +1 -1
  87. package/packages/pm-templates/package.json +1 -1
  88. package/packages/pm-todos/package.json +1 -1
  89. package/packages/pm-vcs/package.json +1 -1
  90. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  91. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  92. package/sdk/public-surface.json +100 -11
  93. package/dist/cli-bundle/chunks/chunk-TIQ6AMH2.js +0 -13
  94. package/dist/cli-bundle/chunks/chunk-XRVVYRRO.js +0 -35
  95. package/dist/cli-bundle/focused-chunks/chunk-4ZDRZYYJ.js +0 -50
  96. package/dist/cli-bundle/focused-chunks/chunk-XDPYBQCF.js +0 -156
  97. package/dist/cli-bundle/focused-chunks/chunk-Y5A7SJJ7.js +0 -2
  98. package/dist/cli-bundle/focused-chunks/chunk-YJLDHJOD.js +0 -2
@@ -1,13 +0,0 @@
1
- import{$d as Zr,$g as ht,$h as wi,Ac as A,Ad as H,Ae as si,B as Br,Be as hn,C as h,Ca as ve,Cd as ft,E as y,Eh as yi,Fh as _i,G as P,Gg as wn,Ha as pn,Ia as ut,Jc as gn,Jh as kn,Kg as Se,Lc as Vr,Le as pt,Lk as Ci,Mc as Yr,Nd as L,Ne as ai,Ng as di,Oa as O,Od as C,Pa as lt,Pb as Ie,Pd as F,Pg as ui,Qg as li,R as G,Rc as Xr,Re as yn,Se as mt,Sg as Ge,Te as de,Tf as gt,U as E,Ud as Jr,Ue as Z,Ug as ue,V as Gr,Vd as Qr,Vg as bn,Vh as _t,W as se,Wa as T,Wg as fi,Wh as wt,Xe as ci,Ye as Ce,Zg as pi,_a as zr,ab as mn,ae as ei,ba as Kr,be as ti,c as ln,ce as ni,ch as mi,ci as D,cm as Si,d as dt,da as Hr,de as ri,e as jr,f as oe,g as K,gc as qr,gh as gi,h as Ur,he as Ee,hh as Te,ii as bi,mi as ki,ni as vi,oi as De,pi as Ii,qe as ii,s as fn,tb as q,th as hi,ti as $,uf as _n,uh as yt,ui as le,vi as fe,wi as Ei,xe as me,xi as ee,yb as Wr,ye as xe,yi as xi,ze as oi}from"./chunk-XWEQGHHG.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,i)=>{let o=Date.parse(r.ts);if(!Number.isFinite(o))throw new y(`History for this item contains invalid timestamp at entry ${i+1}.`,h.GENERIC_FAILURE);o<=t&&(n=i)}),n}function Pa(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 Ti(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let i=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(o=>{let s=i[o];return typeof s=="string"?[[o,s]]:[]})))}if(n.patchIndex!==void 0){let i=e[n.patchIndex];i&&(n.op??=i.op,n.path??=i.path,n.from??=i.from)}return n}function Di(e,t,n={}){let r=e.trim(),i=n.errorSubject??"history",o=i==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Pa(t);if(!r)throw new y(`Missing ${i} target. Use a timestamp or version number.`,h.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new y(`${o} version must be between 1 and ${t.length} for this item.`,h.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new y(`Invalid ${i} target "${e}". Use a positive version number or ISO timestamp.`,h.USAGE,s);let d=$a(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new y(i==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,h.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Ke(e,t,n,r){let i=pi(e,t);if(i.ok)return i.document;let o=Ti(t,i.error),s=[`history_op=${r}`,o.patchIndex===void 0?null:`patch_index=${o.patchIndex}`,o.op?`op=${o.op}`:null,o.path?`path=${o.path}`:null,o.from?`from=${o.from}`:null].filter(a=>a!==null);throw new y(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${o.reason??String(i.error)}`,h.GENERIC_FAILURE)}function Ri(e,t){let n=structuredClone(Ge);for(let r=0;r<=t;r+=1){let i=e[r];if(!i)throw new y(`History target entry ${r+1} does not exist.`,h.USAGE);if(ue(n)!==i.before_hash)throw new y(`History hash mismatch before replay at entry ${r+1}.`,h.GENERIC_FAILURE);if(n=Ke(n,i.patch,r+1,i.op),ue(n)!==i.after_hash)throw new y(`History hash mismatch after replay at entry ${r+1}.`,h.GENERIC_FAILURE)}return n}function Ai(e,t){if(Object.keys(e.metadata).length>0)return e;throw new y(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,h.USAGE)}import vn from"node:fs/promises";import ja 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 Ua(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=wi(e.settings);if(n.ownership_enforcement==="strict")throw new y(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,h.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function Ba(e){let t=await oe(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new y(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,h.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 y(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,h.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function Hh(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Se(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await ja.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 Li(e){let t=[...Ua({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 Ba({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]="05b945f2-4f96-5f88-98ff-84cc856d0d57")}catch{}})();function In(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function Fi(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Mi(e){let t=e.trim();if(t.length===0)throw new y("history-redact --regex requires a non-empty pattern.",h.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let i=t.lastIndexOf("/");i>0&&(n=t.slice(1,i),r=Fi(t.slice(i+1)))}if(n.length===0)throw new y("history-redact --regex cannot use an empty pattern.",h.USAGE);try{new RegExp(n,r)}catch{throw new y("Invalid --regex value; provide a valid JavaScript regular expression.",h.USAGE)}return{kind:"regex",source:n,flags:r}}function Ni(e,t){let n=[...new Set(In(e).map(o=>o.trim()))].filter(o=>o.length>0).map(o=>({kind:"literal",value:o})),r=[...new Set(In(t).map(o=>o.trim()))].filter(o=>o.length>0).map(Mi),i=[...n,...r];if(i.length===0)throw new y("history-redact requires at least one matcher via --literal or --regex.",h.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return i}function Oi(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,i=0;for(;r<=e.length;){let o=e.indexOf(t,r);if(o===-1)break;i+=1,r=o+Math.max(1,t.length)}return i===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:i}}function $i(e,t,n){let r=new RegExp(t.source,t.flags),i=[...e.matchAll(r)];return i.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:i.length}}function En(e,t,n){let r=e,i=0;for(let o of t){let s=o.kind==="literal"?Oi(r,o.value,n):$i(r,o,n);r=s.value,i+=s.replacements}return{value:r,replacements:i}}function bt(e,t,n){if(typeof e=="string")return En(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(o=>{let s=bt(o,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,i={};for(let[o,s]of Object.entries(e)){let a=bt(s,t,n);r+=a.replacements,i[o]=a.value}return{value:i,replacements:r}}return{value:e,replacements:0}}function Ga(e){let t=structuredClone(Ge),n=0,r=0;for(let i=0;i<e.length;i+=1){let o=e[i];ue(t)!==o.before_hash&&(n+=1),t=Ke(t,o.patch,i+1,o.op),ue(t)!==o.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Ka(e,t,n){let r=0,i=!1,o=e.message;if(typeof e.message=="string"){let a=En(e.message,t,n);o=a.value,r+=a.replacements,a.replacements>0&&(i=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let c=bt(a.value,t,n);return r+=c.replacements,c.replacements>0?(i=!0,{...a,value:c.value}):a});return{entry:{...e,message:o,patch:s},replacements:r,changed:i}}function Ha(e,t,n){let r=structuredClone(Ge),i=0,o=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ka(e[a],t,n);o+=c.replacements,c.changed&&(i+=1);let d=ue(r);r=Ke(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:i,replacements:o}}function Pi(e){return Object.keys(e.metadata).length>0}async function za(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 Wa(e){if(!Pi(e.finalDocument))return{raw:null,path:null,document:null};let t=Qr(bn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new y("history-redact would change the item id; narrow your patterns.",h.USAGE);return{document:t,path:zr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Jr(t,{format:"toon",schema:e.settings.schema})}}function qa(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 Va(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??bn(e.rewritten.finalDocument);return t.push(li({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Ya(e){let t=[];return Li({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 vi(e.pmRoot,e.author),i=new Set;e.currentItem.path&&i.add(e.currentItem.path),e.nextItem.path&&i.add(e.nextItem.path);let o=new Map;e.currentItem.path&&e.currentItem.raw!==null&&o.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await K(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await vn.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,mi(e.rewrittenEntries))}catch(c){try{await Xa(e.subject.historyPath,n,i,o)}finally{await Se(e.subject.historyPath)}throw c}await Se(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await Ii({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 Ja(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Xa(e,t,n,r){t===null?await vn.rm(e,{force:!0}):await K(e,t);for(let i of n){let o=r.get(i);o===void 0?await vn.rm(i,{force:!0}):await K(i,o)}}async function Ja(e,t){let n=[],r=new Set(t.filter(i=>i!==null));for(let i of r)n.push(...await gn({path:i,scope:"project",op:"history_redact"}));return n.push(...await gn({path:e,scope:"project",op:"history_redact:history"})),n}async function xn(e,t,n,r){let i=await le(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:mn(e,i.id),located:i};let o=yt(t,n.id_prefix),s=hi(t),a=o===s?[o]:[o,s];for(let c of a){let d=mn(e,c);if(await ln(d))return{id:c,historyPath:d,located:null}}throw new y(`Item ${t} not found`,h.NOT_FOUND)}async function py(e,t,n){let r=T(process.cwd(),n.path);await $(r);let i=await D(r),o=O(i,A()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=Ni(t.literal,t.regex),u=await xn(r,e,i,o.type_to_folder);if(!await ln(u.historyPath))throw new y(`No history stream exists for ${u.id}.`,h.NOT_FOUND);let l=await oe(u.historyPath),f=await xe(u.historyPath,u.id);if(f.length===0)throw new y(`No history entries exist for ${u.id}; nothing to redact.`,h.USAGE);let m=Ga(f),p=Ha(f,d,c),g=m.hashMismatchesBefore+m.hashMismatchesAfter,k=!!t.dryRun,w=p.replacements>0,_=[];g>0&&_.push(`history_redact_preexisting_hash_mismatches:${g}`),w||_.push("history_redact_no_matches");let b=await za(u,i),I=Wa({pmRoot:r,subject:u,settings:i,typeToFolder:o.type_to_folder,finalDocument:p.finalDocument}),x=(b.path??null)!==(I.path??null)||(b.raw??null)!==(I.raw??null),M=me(t.author,i.author_default),S=qa(t,p),{rewrittenEntries:U,auditEntryAdded:ce}=Va({rewritten:p,dryRun:k,changed:w,nextItemDocument:I.document,author:M,message:S}),B=ht(U);if(!B.ok)throw new y(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,h.GENERIC_FAILURE);return!k&&w&&_.push(...await Ya({pmRoot:r,subject:u,settings:i,typeRegistry:o,historyRawBeforeLock:l,currentItem:b,nextItem:I,author:M,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:k,changed:w,patterns:{literal_count:d.filter(N=>N.kind==="literal").length,regex_count:d.filter(N=>N.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:p.entriesChanged,replacements:p.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:g,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:b.path!==null,exists_after:I.path!==null,path_before:b.path,path_after:I.path,changed:x},warnings:[...new Set(_)].sort((N,W)=>N.localeCompare(W)),generated_at:G()}}var my={applyLiteralRule:Oi,applyRegexRule:$i,buildRedactionRules:Ni,hasItemMetadata:Pi,normalizeRegexFlags:Fi,normalizeStringArrayInput:In,parseRegexRule:Mi,redactStringValue:En,redactUnknownValue:bt};(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]="aca866d3-32b9-5212-bb4b-f1484e41bb27")}catch{}})();function Ty(e,t){let n=ht(e),r=e.length>0?e[e.length-1].after_hash:ui(),i=t===void 0?void 0:di(t),o=i===void 0?void 0:i===r,s=[...n.errors];return o===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:o}}async function Dy(e,t,n={}){let r=T(n.cwd??process.cwd(),n.pmRoot);await $(r);let i=await D(r),o=O(i,A()),s=await xn(r,e,i,o.type_to_folder),a=await xe(s.historyPath,s.id);if(a.length===0)throw new y(`No history exists for ${s.id}; point-in-time reads are unavailable.`,h.NOT_FOUND);let c=Di(t,a),d=Ai(Ri(a,c.historyIndex),c),u=fi(d,{schema:i.schema});if(u.metadata.id!==s.id)throw new y(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,h.GENERIC_FAILURE);let l=a[c.historyIndex];return{document:u,reconstructed:!0,as_of_version:c.historyIndex+1,as_of_timestamp:l.ts,target:c,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3167c288-0bcc-5a66-8aa0-ca5876ed7d36")}catch{}})();function Qa(e,t,n,r,i,o){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=o)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:oc(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function Ui(e,t,n,r){let i=de("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:i,after:t.after===void 0?void 0:ci(t.after,i)}}function Re(e,t,n){e.get(t).add(n)}function He(e){return new Map(e.map(t=>[t,new Set]))}function Bi(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function kt(e){if(Array.isArray(e))return e.map(n=>kt(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?kt(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,kt(r)]))}function ji(e){return JSON.stringify(kt(e))}function Za(e,t,n,r){let i=[{id:e,expanded:!1}];for(;i.length>0;){let o=i.pop();if(o.expanded){r.push(o.id);continue}if(n.has(o.id))continue;n.add(o.id),i.push({id:o.id,expanded:!0});let s=[...t.get(o.id)].sort().reverse();for(let a of s)n.has(a)||i.push({id:a,expanded:!1})}}function ec(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||Za(i,t,n,r);return r}function tc(e,t){let n=new Set,r=[];for(let i of[...e].reverse()){if(n.has(i))continue;let o=[],s=[i];for(n.add(i);s.length>0;){let a=s.pop();o.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(o)}return Bi(r)}function Gi(e,t){let n=He(e);for(let[r,i]of t)for(let o of i)Re(n,o,r);return tc(ec(e,t),n)}function nc(e,t){let n=He(e.nodes());for(let r of e.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let o=(i.precedence??"source_before_target")==="source_before_target";Re(n,o?r.source:r.target,o?r.target:r.source)}return n}function rc(e,t){let n=new Map(e.map(o=>[o,0]));for(let o of t.values())for(let s of o)n.set(s,n.get(s)+1);let r=e.filter(o=>n.get(o)===0).sort(),i=[];for(;r.length>0;){i.push(r);let o=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&o.push(a)}r=o.sort()}return i}function ic(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 i=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],o=i===void 0?[]:[i];for(;o[0]!==void 0&&r.has(o[0]);)o.unshift(r.get(o[0]));return{depth:Object.fromEntries(n),path:o}}function oc(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function It(e,t={}){let n=t.registry??q(),r=[...e.nodes()],i=nc(e,n),o=rc(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Gi(r,i).filter(u=>u.length>1||i.get(u[0]).has(u[0])),d=ic(s,i);return{exact:!0,acyclic:a,order:s,layers:o,frontier:o[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 sc(e,t,n){let r=He(e.nodes()),i=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),o=e.edges();for(let s of o){let a=e.registry().require(s.kind);i!==void 0&&!i.has(s.kind)&&(a.inverse===void 0||!i.has(a.inverse))||Re(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:o.length}}function ac(e,t,n,r,i,o){let s=vt(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=vt(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((p,g)=>p.distance-g.distance||p.id.localeCompare(g.id)||p.path.join("\0").localeCompare(g.path.join("\0")));for(let p of d)c.has(p.id)||c.set(p.id,p);let u=[...c.values()].sort((p,g)=>p.distance-g.distance||p.id.localeCompare(g.id)),l=r===void 0||r===t?-1:u.findIndex(p=>p.id===r);if(r!==void 0&&r!==t&&l<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=u.slice(l+1,l+1+i),m=l+1+f.length<u.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||m,...m?{nextCursor:Z(o,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function cc(e,t,n){let r=n.direction,i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Ui(t,n,r,i),{adjacency:c,inspectedEdges:d}=sc(e,r,n.kinds),u={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},l=0,f=!1,m=!1;e:for(let p=0;p<u.queue.length;p+=1){n.signal?.throwIfAborted();let g=u.queue[p];l+=1;let k=[...c.get(g.id)].sort();if(g.depth>=i){k.some(w=>!u.seen.has(w))&&(f=!0);continue}for(let w of k)if(Qa(u,w,g,t,a,o)==="truncate"){f=!0,m=!0;break e}}if(!u.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:u.affected,exact:!0,truncated:f,...m?{nextCursor:Z(s,u.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:l,inspectedEdges:d}}}function vt(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return cc(e,t,{...n,direction:r});let i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Ui(t,n,r,i);return ac(e,t,n,a,o,s)}function Ki(e){let t=[...e.nodes()],n=He(t),r=He(t);for(let c of e.edges())Re(n,c.source,c.target),Re(n,c.target,c.source),Re(r,c.source,c.target);let i=[],o=new Set;for(let c of t){if(o.has(c))continue;let d=[],u=[c];for(o.add(c);u.length>0;){let l=u.pop();d.push(l);for(let f of n.get(l))o.has(f)||(o.add(f),u.push(f))}i.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:Bi(i),stronglyConnected:Gi(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 Fy(e,t){let n=new Map(e.edges.map(i=>[ji(i),i])),r=new Map(t.edges.map(i=>[ji(i),i]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([i])=>!n.has(i)).map(([,i])=>i),removed:[...n].filter(([i])=>!r.has(i)).map(([,i])=>i),unchangedCount:[...n.keys()].filter(i=>r.has(i)).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 y(`${t} must be a non-negative integer`,h.USAGE);return r}function Et(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 y(`${t} filter must be 0..4`,h.USAGE);return r}function Hi(e,t,n="--type"){if(e===void 0)return;let r=lt(e,t);if(!r)throw new y(`${n} filter must be one of ${t.types.join("|")}`,h.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 xt={version:1,aliases:{}};function Ct(e=[]){let t=new Set(Ee),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let i of Object.keys(r.provenance_environment_keys??{}))n(i);for(let i of Object.keys(r.provenance_resolvers??{}))n(i);for(let i of r.provenance_unavailable_dimensions??[])n(i)}return[...t].sort()}function zi(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function Cn(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 Sn(e,t=Ee){let n=new Set(t),r=new Map,i=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let o of i.flatMap(s=>s.split(","))){let s=o.indexOf("=");if(s<0)throw new y(`Provenance predicate must use dimension=value; received "${o.trim()}".`,h.USAGE,{code:"invalid_provenance_predicate"});let a=o.slice(0,s).trim().toLowerCase(),c=o.slice(s+1).trim();if(!n.has(a))throw new y(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,h.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new y(`Provenance predicate must use dimension=value; received "${o.trim()}".`,h.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function St(e,t=xt,n={}){let r=Cn(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 Ky(e,t,n=xt,r=Ee){return Tn(t,n,r)(e)}function Tn(e,t=xt,n=Ee){let r=zi(e.harness),i=zi(e.agentInstance),o=Sn(e,n);return s=>{let c=Cn(s,t).agent_harness;if(r&&(!c||!r.has(c))||i&&!i.has(s.agent_instance??""))return!1;for(let[d,u]of o){let l=s.agent_provenance?.[d];if(!l||!u.has(l.value))return!1}return!0}}function Tt(e,t=xt,n=Ee){let r=new Set(n),i=new Map,o=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);Cn(s,t).agent_harness?o+=1:i.set(s.author,(i.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:o,unresolved:e.length-o,unresolved_authors:[...i].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,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 dc from"node:fs/promises";import Vi 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]="7005305a-5fd4-56b8-a0a0-5612e8bf48cc")}catch{}})();var uc=20,lc=5,fc=15,pc="-24h";function e_(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 mc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Dn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new y(`${t} must not be empty`,h.USAGE);return n}function Wi(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new y("Activity time bounds must not be empty",h.USAGE);let i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return se(i,new Date(t),n)}function gc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&E(e.ts,t)<0||n&&E(e.ts,n)>=0)}function qi(e,t){return t===void 0?e:e.slice(0,t)}function ze(e,t=""){return typeof e=="string"?e:t}function hc(e,t){return{...t,id:e,ts:ze(t.ts),author:ze(t.author,"unknown"),op:ze(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:ze(t.before_hash),after_hash:ze(t.after_hash)}}function yc(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let i=t.id.localeCompare(n.id);return i!==0?i:t.op.localeCompare(n.op)})}async function _c(e){try{return(await dc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(jr(t))return[];throw t}}function wc(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 bc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?fc:n==="compact"?uc:lc}function kc(e,t){let n=G(),r=t==="digest",i=Wi(e.to??(r?n:void 0),n,"--to"),o=Wi(e.from??(r?pc:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&E(o,i)>=0)throw new y("Activity --from must be before --to",h.USAGE);let s=kn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new y("Activity --unbounded cannot be combined with --limit",h.USAGE);return{id:Dn(e.id,"Activity --id"),op:Dn(e.op,"Activity --op"),author:Dn(e.author,"Activity --author"),from:o,to:i,limit:bc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function vc(e){let t=T(process.cwd(),e.path);return await $(t),{pmRoot:t,settings:await D(t)}}async function Ic(e){let t=O(e.settings,A()),n=await ee(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await gi({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=Vi.join(e.pmRoot,"history");return await Vr({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function Ec(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:gc(t,n.from,n.to)}async function xc(e,t){let n=[];for(let r of await _c(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await xe(Vi.join(e,r),i);for(let s of o){let a=hc(i,s);Ec(s,a,t)&&n.push(a)}}return n}function Cc(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,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function Tc(e,t){let n=new Map;for(let r of e){let i=n.get(r.id);if(i===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}i.eventCount+=1,E(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),E(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:Sc(i.operations)}}).sort((r,i)=>E(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Dc(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function Rc(e,t,n,r,i){if(e==="digest"){let s=Tc(t,r),a=qi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=qi(t,n);return e==="compact"?{rows:{compact_activity:Cc(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function Yi(e,t){let n=await vc(t),r=wc(e),i=kc(e,r),o=await Ic(n),s=Ct(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=Tn({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),d=yc(await xc(o.historyDir,i)).filter(c),u=Rc(r,d,i.limit,o.itemsById,f=>St(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:mc[r]},omission_receipt:ai("activity",r),count:u.returnedRows,total_count:u.totalRows,limit:i.limit??null,omitted_count:l,has_more:l>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:d.length,item_count:u.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:Dc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:Tt(d,a,s)}:{},applied_bound:{kind:i.limit===void 0?"unbounded":"limit",source:i.limitSource,value:i.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var Xi="global",Ac="external";function Ae(e){let t=e?.trim().toLowerCase();return t===Xi||t===Ac}function r_(e){let t=e?.trim();if(t)return Ae(t)?Xi:t}function i_(e,t,n){let r=e.trim();return Ae(n)?r:yt(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d49d73c9-f988-5c3c-a22d-0580ee5526f6")}catch{}})();function j(){let e=q();for(let t of A()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="924f7718-0527-5967-8ab0-53e8228bd665")}catch{}})();function We(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Dt(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Lc(e,t){let n=new Set,r=[];for(let i of[...e].sort()){if(n.has(i))continue;n.add(i);let o=[{nodeId:i,children:[...t.get(i)??[]].sort(),nextChild:0}];for(;o.length>0;){let s=o.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),o.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),o.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function Fc(e,t){let n=[...e].sort(),r=Lc(n,t),i=new Set,o=Mc(n,t),s=[];for(let a of r.reverse()){if(i.has(a))continue;let c=Nc(a,o,i);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function Mc(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,i]of t)for(let o of i)n.get(o)?.add(r);return n}function Nc(e,t,n){let r=[],i=[e];for(n.add(e);i.length>0;){let o=i.pop();r.push(o);for(let s of[...t.get(o)].sort())n.has(s)||(n.add(s),i.push(s))}return r.sort()}function Ji(e){let t=new Map;for(let n of e){let r=We(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Oc(e,t,n){let r=We(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function $c(e,t,n,r){let i=We(t?.id),o=r.resolve(t?.kind);if(!i||!n.has(i)||!o?.hierarchy)return;let s=o.hierarchyDirection==="source_parent";return{parent_id:s?e:i,child_id:s?i:e,source:"dependency",kind:o.kind,holder_id:e,target_id:i,child_cardinality:s?o.incoming:o.outgoing}}function Qi(e,t){let n=new Map;for(let[r,i]of e){let o=Oc(r,i,e);o&&n.set(Dt(o),o);for(let s of i.dependencies??[]){let a=$c(r,s,e,t);a&&n.set(Dt(a),a)}}return[...n.values()].sort((r,i)=>Dt(r).localeCompare(Dt(i)))}function Zi(e,t=j()){return Qi(Ji(e),t)}function Pc(e,t,n){let r=new Set(e.filter(i=>i.child_cardinality==="one").map(i=>i.child_id));return[...t].filter(([i,o])=>o.length>1&&r.has(i)).map(([i,o])=>({child_id:i,parent_ids:[...o],legacy_terminal:n.has(i)&&o.every(s=>n.has(s))})).sort((i,o)=>i.child_id.localeCompare(o.child_id))}function jc(e,t,n){let r=new Map;for(let o of t){if(o.source!=="dependency")continue;let s=r.get(o.child_id)??new Set;s.add(o.parent_id),r.set(o.child_id,s)}let i=[];for(let[o,s]of e){let a=We(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(o)??[]].filter(d=>d!==a).sort();c.length!==0&&i.push({child_id:o,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(o)&&n.has(a)&&c.every(d=>n.has(d))})}return i.sort((o,s)=>o.child_id.localeCompare(s.child_id))}function Rt(e,t=r=>r==="closed"||r==="canceled",n=j()){let r=Ji(e),i=Qi(r,n),o=An(i),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Fc([...r.keys()],new Map([...o.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:i,cycles:a,cardinality_violations:Pc(i,o.parents_by_child,s),divergences:jc(r,i,s)}}function f_(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function An(e){let t=new Map,n=new Map;for(let r of e){let i=t.get(r.child_id)??new Set;i.add(r.parent_id),t.set(r.child_id,i);let o=n.get(r.parent_id)??new Set;o.add(r.child_id),n.set(r.parent_id,o)}return{parents_by_child:new Map([...t].map(([r,i])=>[r,[...i].sort()])),children_by_parent:new Map([...n].map(([r,i])=>[r,[...i].sort()]))}}function Rn(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function p_(e,t,n,r,i){let o=We(n);if(!o)return;let s=Rt(e,r,i),a=Rt(t,r,i),c=a.divergences.find(l=>!s.divergences.some(f=>f.child_id===l.child_id&&f.scalar_parent_id===l.scalar_parent_id&&Rn(l.dependency_parent_ids,f.dependency_parent_ids)));if(c){let l=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new y(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${l.join(", ")}.`,h.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:o,target_id:c.child_id,verification_errors:l})}let d=a.cardinality_violations.find(l=>(l.child_id===o||l.parent_ids.includes(o))&&!s.cardinality_violations.some(f=>f.child_id===l.child_id&&Rn(l.parent_ids,f.parent_ids)));if(d)throw new y(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,h.CONFLICT,{code:"hierarchy_cardinality_created",source_id:o,target_id:d.child_id,verification_errors:d.parent_ids});let u=a.cycles.find(l=>l.item_ids.includes(o)&&!s.cycles.some(f=>Rn(l.item_ids,f.item_ids)));if(u)throw new y(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,h.CONFLICT,{code:"hierarchy_cycle_created",source_id:o,verification_errors:u.item_ids})}(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]="9a6974b3-63d7-5dc7-8329-0f15f0dc83ec")}catch{}})();function Fe(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ln(e){let t=Fe(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Le(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Uc(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,i=Fe(r.id);if(!i)continue;let o=typeof r.kind=="string"?r.kind:"related",s=`${o}\0${i.toLowerCase()}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:i,kind:o,count:1})}return t}function Bc(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let i of Uc(r).values())i.count<2||n.push({holder_id:r.id.trim(),target_id:i.target_id,kind:i.kind,occurrences:i.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,i)=>{let o=Le(r.holder_id,i.holder_id);if(o!==0)return o;let s=Le(r.target_id,i.target_id);return s!==0?s:Le(r.kind,i.kind)})}function Gc(e,t,n,r,i){if(typeof n!="object"||n===null)return;let o=Fe(n.id);if(!o||o.toLowerCase()!==t.toLowerCase())return;let s=i.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:o,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function Kc(e,t=r=>r==="closed"||r==="canceled",n=j()){let r=new Map;for(let i of e){if(typeof i?.id!="string"||i.id.trim().length===0)continue;let o=Fe(i.blocked_by);if(o)for(let s of i.dependencies??[]){let a=Gc(i,o,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((i,o)=>{let s=Le(i.holder_id,o.holder_id);if(s!==0)return s;let a=Le(i.target_id,o.target_id);return a!==0?a:Le(i.dependency_kind,o.dependency_kind)})}function Fn(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())),i=new Map,o=(c,d,u,l)=>{let f=Fe(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"};i.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){o(c,c.parent,"parent","parent"),o(c,c.blocked_by,"blocked_by","blocked_by");for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;Ae(u.source_kind)||o(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency")}}let s=[...i.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 Hc(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(),i=r.toLowerCase();t.has(i)||t.set(i,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function zc(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!Ae(r.source_kind))continue;let i=Fe(r.id);i&&!t.has(i.toLowerCase())&&t.set(i.toLowerCase(),i)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var eo=new WeakMap;function At(e){return e.hierarchyIntegrity??eo.get(e)}function Wc(e,t=j()){let n={};for(let r of e)for(let i of r.dependencies??[]){if(typeof i!="object"||i===null)continue;let o=i.kind;if(typeof o!="string")continue;let s=o.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(o);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[i])=>r.localeCompare(i)))}function Me(e,t,n){let r=n??j(),i=e.filter(p=>typeof p?.id=="string"&&p.id.trim().length>0),o=new Map(i.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),s=Fn(i,t),a=Hc(s);for(let p of a)o.set(p.toLowerCase(),p);let c=zc(i),d=new Set(o.keys()),u=new Map;for(let p of c){let g=p;for(;d.has(g.toLowerCase());)g=`external:${g}`;u.set(p.toLowerCase(),g),d.add(g.toLowerCase())}let l=i.map(p=>{let g=Ln(p.parent),k=Ln(p.blocked_by),w=(p.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let b=_,I=Ln(b.id);return I?[{id:Ae(b.source_kind)?u.get(I.toLowerCase()):o.get(I.toLowerCase()),kind:typeof b.kind=="string"?b.kind:"related"}]:[]});return{id:p.id.trim(),...g?{parent:o.get(g.toLowerCase())}:{},...k?{blocked_by:o.get(k.toLowerCase())}:{},dependencies:w}}),f=Rt(i,t,r),m={graph:Wr.fromItems([...l,...a.map(p=>({id:p})),...c.map(p=>({id:u.get(p.toLowerCase())}))],r),details:[...i.map(p=>({id:p.id.trim(),title:p.title,status:p.status,...typeof p.type=="string"&&p.type.trim().length>0?{type:p.type.trim()}:{}})),...a.map(p=>({id:p,title:`[missing] ${p}`,status:"missing"})),...c.map(p=>({id:u.get(p.toLowerCase()),title:`[external] ${p}`,status:"external"}))],missingIdSet:new Set(a.map(p=>p.toLowerCase())),dangling:s,duplicateRows:Bc(i,t),orderingContradictions:Kc(i,t,r),legacyAliasCounts:Wc(i,r),hierarchyIntegrity:f};return eo.set(m,f),m}import{createHash as qc}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 Vc=64,Yc=8;function Xc(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let i=r;return`${typeof i.kind=="string"?i.kind:"related"}:${typeof i.id=="string"?i.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 Lt(e,t=r=>r==="closed"||r==="canceled",n=q()){let r=e.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0).map(o=>Xc(o,t)).sort(),i=n.list().map(o=>Ie(o)).sort();return qc("sha256").update(r.join("")).update("").update(i.join("")).digest("hex")}function to(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Mn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=to("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Vc),this.#n=to("maxWorkspaces",t.maxWorkspaces,Yc)}lookup(t,n,r){let i=this.#e.get(t),o=!0;(i===void 0||i.fingerprint!==n)&&(i={fingerprint:n,assembly:r(),results:new Map},o=!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,i);let s=i,a=this.#t;return{assembly:s.assembly,assemblyReused:o,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()}},no=new Mn;function Ft(){return no}function E_(){no.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]="afdba960-ae43-52be-b21d-282dac1f22ff")}catch{}})();var Jc=["prerequisite","dependent","ancestor","descendant","provenance","related"],Qc=new TextEncoder;function Nn(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 Mt(e){return Math.max(1,Math.ceil(Qc.encode(JSON.stringify(e)).byteLength/4))}function On(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Zc(e,t,n,r){let i=e.filter(o=>o.source===t&&o.target===n||o.target===t&&o.source===n).map(o=>On(o,n,r));return[...new Set(i)].sort()}function ed(e){return Jc.find(t=>e.includes(t))}function td(e,t,n,r){let i=r.direction??"both",o=r.maxDepth??3;if(!Number.isInteger(o)||o<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>=o&&u)continue;let m=e.neighborEdges(f.id,{direction:i,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=o){m.value.some(p=>!s.has(p.id))&&(u=!0);continue}for(let{id:p,edge:g}of m.value){if(s.has(p))continue;s.add(p);let k={id:p,distance:f.distance+1,via:f.id,role:On(g,p,n)};c.push(k),a.push(k)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function nd(e,t,n,r){let i={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},o=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of o)i[On(a,s,n)]+=1;return{directEdges:i,directTotal:o.length,rootEdges:o.map(({edge:s})=>s)}}function rd(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let i=r.distance===1?Zc(e.rootEdges,e.rootId,r.id,e.registry):[],o={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:i.length>0?ed(i):r.role,via:r.via,reasons:i.length>0?i:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Mt(o);if(n+s>e.tokenBudget)break;t.push(o),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 id(e){let t=e.options.kinds?new Set(e.options.kinds.map(o=>e.registry.require(o).kind)):void 0,n=e.graph.edges().filter(o=>{if(!e.included.has(o.source)||!e.included.has(o.target))return!1;if(t===void 0||t.has(o.kind))return!0;let s=e.registry.resolve(o.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],i=e.initialTokens;for(let o of n){if(r.length>=e.edgeLimit)break;let s=Mt(o);if(i+s>e.tokenBudget)break;r.push(o),i+=s}return{edges:r,usedTokens:i,candidateCount:n.length}}function ro(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let i=Nn(r.nodeLimit,20,"nodeLimit"),o=Nn(r.edgeLimit,40,"edgeLimit"),s=Nn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??q(),c=new Map(n.map(Q=>[Q.id,Q])),d=c.get(t)??{id:t},{evidence:u=[],...l}=d,f=[...u],m=td(e,t,a,r),{rootEdges:p,...g}=nd(e,t,a,r),k=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),w=Ce(m.rows,r.cursor,k,({id:Q})=>Q),_=m.rows.slice(w),b=Mt(l)+Mt(f);if(b>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let I=rd({candidates:_,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:i,tokenBudget:s,initialTokens:b}),{nodes:x}=I,M=new Set([t,...x.map(({id:Q})=>Q)]),S=id({graph:e,included:M,options:r,registry:a,edgeLimit:o,tokenBudget:s,initialTokens:I.usedTokens}),{edges:U,usedTokens:ce}=S,B=w+x.length,N=B<m.rows.length,W=x.at(-1),X=S.candidateCount-U.length,J=m.depthTruncated||N||X>0,be={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...g,discoveredNodes:m.rows.length,returnedNodes:x.length,returnedEdges:U.length,omittedNodes:m.rows.length-B,omittedEdges:X,evidenceCount:f.length,hasMore:N};return{root:l,summary:be,nodes:x,edges:U,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:i,edgeLimit:o,tokenBudget:s,usedTokens:ce,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-B,omittedEdges:X,...N&&W?{nextCursor:Z(k,W.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]="74a825f3-1301-5dc5-a887-c6ff68f6d7ec")}catch{}})();var od=["tree","graph","context"],sd=["none","repeated"],ad=["outgoing","incoming","both"],cd=32,dd=200,ud=400,ld=16e3;function fd(e){let t=e?.trim().toLowerCase()??"tree";if(od.includes(t))return t;throw new y(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,h.USAGE)}function te(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new y(`Invalid --${t} value "${e}". Use a positive integer.`,h.USAGE);return n}function Nt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new y(`Invalid --max-depth value "${e}". Use a non-negative integer.`,h.USAGE);return t}function pd(e){let t=e?.trim().toLowerCase()??"none";if(sd.includes(t))return t;throw new y(`Invalid --collapse value "${e}". Use "none" or "repeated".`,h.USAGE)}function Pn(e){let t=e?.trim().toLowerCase()??"both";if(ad.includes(t))return t;throw new y(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,h.USAGE)}function jn(e,t=q()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(i=>i.split(",")).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)return;let r=new Set;for(let i of n){let o=t.resolve(i);if(!o){let s=t.list().map(a=>a.kind).join(", ");throw new y(`Invalid --kind value "${i}". Registered kinds: ${s}.`,h.USAGE)}r.add(o.kind)}return[...r].sort()}function md(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:i})=>({id:r.trim(),kind:i.trim().toLowerCase()})).sort((r,i)=>{let o=r.kind.localeCompare(i.kind);return o!==0?o:r.id.localeCompare(i.id)}),n=new Map;for(let r of t){let i=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(i)||n.set(i,{id:r.id,kind:r.kind})}return[...n.values()]}function gd(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:md(e.dependencies)}}function hd(e){return gt(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function yd(e,t,n,r,i,o,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(oo(d.id,n,r,i,o,s,a,c+1,d.kind))}}function _d(e,t,n,r,i,o,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):i==="repeated"&&o.has(n)?(e.collapsed=!0,!0):!1}function oo(e,t,n,r,i,o,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+=hd(l),_d(l,u,d,r,i,o,s,a))return l;i==="repeated"&&o.add(d);let f=new Set(n);return f.add(d),yd(l,u,t,f,r,i,o,s,a),l}function io(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 wd(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,io(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,io(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 i=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),o=[...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=i.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:i,edges:o,missing_ids:s}}function so(e,t,n){let r=new Set,i=new Set,o=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){o.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let f of l.dependencies)i.add(`${u}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:i.size,edge_basis:"deduplicated_directed",missing_count:o.size}}function bd(e,t=q()){let n=Nt(e.maxDepth),r=te(e.nodeLimit,"node-limit"),i=te(e.edgeLimit,"edge-limit"),o=te(e.tokenBudget,"token-budget"),s=jn(e.kind,t);return{direction:Pn(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...i===void 0?{}:{edgeLimit:i},...o===void 0?{}:{tokenBudget:o},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function kd(e,t,n,r){return ro(e.graph,t,e.details.map(i=>i.id===t&&r.length>0?{...i,evidence:r}:i),n)}function $n(e,t,n,r){for(let i of n.slice(0,r)){let o=i?.trim();o&&e.push(`${t}:${o}`)}}async function vd(e,t,n,r){let i=await le(e,t,n.id_prefix,n.item_format,r);if(!i)return[];let{document:o}=await fe(i,{schema:n.schema}),s=o.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 $n(l,"file",a.map(f=>f.path),3),$n(l,"test",c.map(f=>f.command??f.path),2),$n(l,"doc",d.map(f=>f.path),2),l}function Id(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:i,referenceLimit:o,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:i.length,...s?{}:{missing_references:i.slice(0,o),context:n}}}function Ed(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:i,registry:o}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(i===void 0)return!0;let s=o.resolve(t.kind);return s!==void 0&&(i.has(s.kind)||s.inverse!==void 0&&i.has(s.inverse))}function ao(e,t,n){let r;for(;;){let i=gt(new TextEncoder().encode(wn(yn("deps",e),t)).byteLength);if(i===r)return i;n(i),r=i}}function xd(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Cd(e){try{return kd(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&xd(t))return e.smallestResult;throw t}}function Sd(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:i,summaryOnly:o,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let p=Cd({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:i,smallestResult:m});if("format"in p)return p;let g=p;f??=g.meta.tokenBudget,l??=f;let k=Id({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:o});if(m=k,o||(g.meta.tokenBudget=f,g.meta.usedTokens=ao(Ne(k,!1),s,b=>{g.meta.usedTokens=b}),g.meta.usedTokens<=f))return k;if(u>0){u-=1;continue}let w=l,_=w*f/g.meta.usedTokens;l=Math.min(w-1,Math.max(1,Math.floor(_*.9)))}}function Td(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:i,summaryOnly:o,outputFormat:s}=e,a=bd(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(g=>t.missingIdSet.has(g.toLowerCase())),u=new Set(d.map(g=>g.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(g=>l.require(g).kind)):void 0,m=new Set([n,...c.value]),p=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>Ed({row:g,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return Sd({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:i,summaryOnly:o,outputFormat:s,missingCount:d.length,missingReferences:p})}function Dd(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 Rd(e,t,n,r,i,o,s){let a=i??cd,c=te(n.nodeLimit,"node-limit")??dd,d=te(n.edgeLimit,"edge-limit")??ud,u=te(n.tokenBudget,"token-budget")??ld,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=oo(e,r,new Set,a,t==="graph"?"repeated":o,new Set,l),m=so(e,r,void 0),p;for(;;){let g=wd(f),k=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-g.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-g.edges.length)},w={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,...k?{truncation:k}:{}};if(p=t==="tree"?{...w,tree:f}:{...w,graph:g},(p.truncation===void 0?gt(new TextEncoder().encode(wn(yn("deps",Ne(p,!1)),s)).byteLength):ao(Ne(p,!1),s,b=>{p.truncation.estimated_tokens=b}))<=u)return p;if(!Dd(f))return l.reasons.add("token_budget"),p;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 W_(e,t,n){let r=T(process.cwd(),n.path);await $(r);let i=fd(t.format),o=Nt(t.maxDepth),s=pd(t.collapse);pt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await D(r),d=O(c,A()),u=await ee(r,c.item_format,d.type_to_folder,void 0,c.schema),l=H(c.schema),f=new Map(u.map(p=>[p.id.trim().toLowerCase(),gd(p)])),m=Fn(u,p=>F(p,l));for(let p of[...m.active,...m.legacy_terminal]){let g=f.get(p.holder_id.trim().toLowerCase()),k=p.kind.trim().toLowerCase();g&&!g.dependencies.some(w=>w.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&w.kind===k)&&g.dependencies.push({id:p.target_id,kind:k})}if(!f.has(e.trim().toLowerCase()))throw new y(`Item ${e} not found`,h.NOT_FOUND);if(i==="context"){let p=f.get(e.trim().toLowerCase()).id,g=a?[]:await vd(r,p,c,d.type_to_folder),k=b=>F(b,l),w=j(),_=Ft().lookup(r,Lt(u,k,w),()=>Me(u,k,w));return Ne(Td({assembly:_.assembly,canonicalId:p,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Ne({id:e,format:i,...so(e,f,o)},!0,Object.fromEntries(Object.entries(Me(u,p=>F(p,l)).legacyAliasCounts))):Ne(Rd(e,i,t,f,o,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Me(u,p=>F(p,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]="ac2b3cd9-5a98-5fea-888c-e96de8cd593d")}catch{}})();var Ad=5,Ld=1e4,Fd=8;function Un(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Ot(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function qe(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function $t(e,t){let n=qe(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function Md(e,t,n){if(t===void 0)return;let r=e.registry(),i=new Set;for(let o of t){let s=r.require(o),a=s.traversal;if(a==="association")throw new TypeError(`Relationship kind ${s.kind} uses association traversal; use graph impact --direction both`);if(a!==n&&a!=="semantic"){let c=a==="hierarchy"?"graph ancestors or graph descendants":"graph predecessors or graph successors";throw new TypeError(`Relationship kind ${s.kind} uses ${a} traversal; use ${c}`)}i.add(s.kind)}return i}function Nd(e,t,n,r,i){let o=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=o.require(d.edge.kind);n===void 0&&!u[r]||i(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function Od(e,t,n,r,i,o){if(t>=n)return e.neighbors.some(s=>!o.seen.has(s))&&(o.truncated=!0),!1;for(let s of e.neighbors)if(!o.seen.has(s)){if(o.seen.add(s),o.queue.push({id:s,depth:t+1}),!o.resumed){s===i&&(o.resumed=!0);continue}if(o.value.length>=r)return o.truncated=!0,!0;o.value.push(s)}return!1}function Pt(e,t,n,r,i){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Md(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];u+=1;let p=Nd(e,m.id,o,r,i);if(l+=p.inspectedEdges,Od(p,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 co(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function uo(e,t,n,r,i){let o=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return i.inspectedEdges+=o.meta.inspectedEdges,o.value.filter(s=>!t.nodeSet.has(s.id))}function $d(e,t,n,r,i,o,s){for(let a of uo(e,t,r,i,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>=o)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function lo(e,t,n={}){return Pt(e,t,n,"hierarchy",(r,i)=>Ot(r.edge,i)===r.id)}function fo(e,t,n={}){return Pt(e,t,n,"hierarchy",(r,i,o)=>Ot(r.edge,i)===o)}function po(e,t,n={}){return Pt(e,t,n,"ordering",(r,i)=>qe(r.edge,i)===r.id)}function mo(e,t,n={}){return Pt(e,t,n,"ordering",(r,i,o)=>qe(r.edge,i)===o)}function Pd(e,t,n,r,i,o,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=i+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=l||d>=o){u=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=s){uo(e,m,r,a,c).length>0&&(u=!0);continue}if($d(e,m,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,i),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function go(e,t,n,r={}){co(e,t),co(e,n);let i=r.maxPaths??Ad,o=r.maxVisitedPaths??Ld,s=r.maxDepth??Fd;Un("maxPaths",i),Un("maxVisitedPaths",o),Un("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?i===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:Pd(e,t,n,r,i,o,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 jd=16,Ud=2,Bd=8;function jt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Ut(e,t,n){let r=e.registry(),i=t===void 0?void 0:new Set(t.map(o=>r.require(o).kind));for(let o of e.edges()){if(o.source===o.target)continue;let s=r.require(o.kind);i!==void 0&&!(i.has(s.kind)||s.inverse!==void 0&&i.has(s.inverse))||n(o,s)}}function Gd(e,t){let n=new Map;Ut(e,t,r=>{ho(n,r.source,r.target),ho(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ho(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function Kd(e,t){let n=new Map;for(let o of e){let s=t.get(o);n.set(s,(n.get(s)??0)+1)}let r,i=0;for(let[o,s]of n)(s>i||s===i&&o<r)&&(r=o,i=s);return r}function Hd(e,t){let n=new Map;for(let[i,o]of e){let s=n.get(o);s===void 0?n.set(o,[i]):s.push(i)}let r=[];for(let i of n.values())i.length<t||(i.sort(),r.push({representative:i[0],size:i.length,members:i}));return r.sort((i,o)=>o.size-i.size||i.representative.localeCompare(o.representative))}function yo(e,t={}){let n=t.maxIterations??jd,r=t.minSize??Ud;jt("maxIterations",n),jt("minSize",r);let i=Gd(e,t.kinds),o=e.nodes(),s=new Map(o.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 o){d+=1;let f=i.get(l);if(f===void 0)continue;u+=f.length;let m=Kd(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:Hd(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Bt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Gt(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Bn(e,t){return(t.hierarchy?Ot(e,t):e.source===qe(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function zd(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let i of t){let o=n.require(i);if(!Bt(o))throw new TypeError(`Relationship kind ${o.kind} is not a directed ordering or hierarchy kind`);r.add(Gt(o))}return r}function Wd(e,t){let n=e.registry(),r=new Map;for(let i of e.edges()){let o=n.require(i.kind);if(!Bt(o))continue;let s=Gt(o);if(t!==void 0&&!t.has(s))continue;let a=Bn(i,o);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:i})}return r}function qd(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function Vd(e,t,n,r){let i=[r];for(let o=n;o!==t;o=e.get(o))i.push(o);return i.push(t),i.reverse()}function Yd(e,t,n,r,i,o){for(let s of e.get(n.id)??[])if(o.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return Vd(r,t.from,n.id,s);i.push({id:s,depth:n.depth+1})}}function Xd(e,t,n,r){let i=new Map([[t.from,t.from]]),o=[{id:t.from,depth:0}];for(let s=0;s<o.length;s+=1){let a=o[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=Yd(e,t,a,i,o,r);if(c!==void 0)return c}}function Oe(e,t={}){let n=t.maxDepth??Bd;jt("maxDepth",n),t.limit!==void 0&&jt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,i=zd(e,t.kinds),o=Wd(e,i),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...o.keys()].sort()){let u=o.get(d),l=qd(u);for(let f of u.records){t.signal?.throwIfAborted();let m=Xd(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 Jd(e,t,n,r,i){let o=new Set,s=[];for(let a of n){if(a.id===e||o.has(a.id))continue;if(!i.seen.has(a.id)){if(t>=r){i.truncated=!0;continue}i.seen.add(a.id),i.queue.push({id:a.id,depth:t+1})}o.add(a.id),s.push(a.id);let c=i.predecessors.get(a.id);c===void 0&&(c=new Set,i.predecessors.set(a.id,c)),c.add(e)}return s}function Qd(e,t,n){let r=n.direction??"outgoing",i=n.maxDepth??Number.POSITIVE_INFINITY,o=[],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];o.push(u);let f=e.neighborEdges(u,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(u,Jd(u,l,f.value,i,a))}return{order:o,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Zd(e,t){let n=[],r=new Set([t]),i=[{id:t,index:0}];for(;i.length>0;){let o=i.at(-1),s=e.successors.get(o.id);if(o.index<s.length){let a=s[o.index];o.index+=1,r.has(a)||(r.add(a),i.push({id:a,index:0}))}else n.push(o.id),i.pop()}return n.reverse()}function eu(e,t,n,r){let i=e,o=t;for(;i!==o;){for(;r.get(i)>r.get(o);)i=n.get(i);for(;r.get(o)>r.get(i);)o=n.get(o)}return i}function tu(e,t,n){let r;for(let i of[...e].sort())t.has(i)&&(r=r===void 0?i:eu(r,i,t,n));return r}function nu(e,t,n,r,i){let o=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(i?.throwIfAborted(),a===t)continue;let c=tu(e.predecessors.get(a),o,r);c!==void 0&&o.get(a)!==c&&(o.set(a,c),s=!0)}}return o}function _o(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=Qd(e,t,n),i=Zd(r,t),o=new Map(i.map((d,u)=>[d,u])),s=nu(r,t,i,o,n.signal),a=new Map(i.map(d=>[d,1]));for(let d=i.length-1;d>=0;d-=1){let u=i[d];if(u===t)continue;let l=s.get(u);a.set(l,a.get(l)+a.get(u))}let c=i.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 wo(e){return Math.round(e*1e6)/1e6}function bo(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function ko(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));Ut(e,t,i=>{n.get(i.source).add(i.target),n.get(i.target).add(i.source)});let r=new Map;for(let[i,o]of n)r.set(i,[...o].sort());return r}function ru(e,t){let n=new Map,r=new Map;return Ut(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=$t(i,o);bo(r,s,a),bo(n,a,s)}),{incoming:n,outgoing:r}}function iu(e,t,n){let r=new Map([[e,0]]),i=new Map([[e,1]]),o=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){i.set(m,(i.get(m)??0)+i.get(l));let p=o.get(m);p===void 0?o.set(m,[l]):p.push(l)}}return{stack:s,sigma:i,predecessors:o,reachableCount:c,distanceSum:d}}function ou(e,t,n){let r=new Map;for(let i=e.stack.length-1;i>=0;i-=1){let o=e.stack[i],s=(1+(r.get(o)??0))/e.sigma.get(o);for(let a of e.predecessors.get(o)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);o!==t&&n.set(o,(n.get(o)??0)+(r.get(o)??0))}}function su(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function au(e,t,n,r,i){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:wo((r.get(e)??0)/2),closeness:wo(i.get(e))}}function vo(e,t={}){let n=ko(e,t.kinds),r=ru(e,t.kinds),i=e.nodes(),o=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let u of i){t.signal?.throwIfAborted();let l=iu(u,n,a);s.set(u,su(l,i.length)),ou(l,u,o)}let c=0;for(let u of n.values())c+=u.length;let d=i.map(u=>au(u,n,r,o,s)).sort((u,l)=>l.betweenness-u.betweenness||l.degree-u.degree||u.id.localeCompare(l.id));return{value:{nodeCount:i.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function cu(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function du(e,t,n){let i=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,i!==e.parent){if(n.discovery.has(i)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(i)));return}return e.children+=1,n.discovery.set(i,n.timer),n.low.set(i,n.timer),n.timer+=1,{node:i,parent:e.node,neighborIndex:0,children:0}}}function uu(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,i=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),i)),r!==t&&i>=n.discovery.get(r)&&n.articulation.add(r),i>n.discovery.get(r)&&n.bridges.push(cu(r,e.node))}function lu(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let i=[{node:e,parent:null,neighborIndex:0,children:0}];for(;i.length>0;){r?.throwIfAborted();let o=i.at(-1);if(o.neighborIndex<t.get(o.node).length){let s=du(o,t,n);s!==void 0&&i.push(s)}else uu(o,e,n),i.pop()}}function Kt(e,t={}){let n=ko(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let i of e.nodes())r.discovery.has(i)||lu(i,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((i,o)=>i.source.localeCompare(o.source)||i.target.localeCompare(o.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 fu(e){let t=e.registry(),n=new Map,r=new Set;for(let i of e.edges()){let o=t.require(i.kind);if(!o.ordering)continue;let{predecessor:s,successor:a}=$t(i,o);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 pu(e,t,n,r){if(e===void 0)return r;let i=r;for(let o of e)t.has(o)&&(i=Math.min(i,n.get(o)));return i}function mu(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 gu(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=pu(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>mu(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Io(e,t={}){t.signal?.throwIfAborted();let n=It(e,{registry:e.registry()}),r=fu(e),i=new Set(n.order),o=n.order.filter(d=>r.participants.has(d)),s=o.reduce((d,u)=>Math.max(d,n.depth[u]+1),0),a=gu(o,r,n.depth,i,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]="a8bc0ebd-e5e4-57f3-8e6c-417f9809eb72")}catch{}})();var $e=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","hierarchy_cycle","legacy_hierarchy_cycle","hierarchy_cardinality_violation","legacy_hierarchy_cardinality_violation","hierarchy_direction_violation","legacy_hierarchy_direction_violation","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]="27de9c62-434c-566d-a000-54eddb9a16a9")}catch{}})();var hu=25,yu="milestone",_u="outcome milestone:",wu=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function zn(e){return wu.has(e)}var Eo={error:0,warning:1,info:2};function xo(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function Pe(e,t,n,r,i,o,s,a){let c=[...i].sort((d,u)=>d.localeCompare(u));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,o),sample_truncated:c.length>o,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,u)=>d.localeCompare(u)).slice(0,o)}}}function bu(e,t){return e.cycles.map(n=>Pe(n.legacy_terminal?"legacy_hierarchy_cycle":"hierarchy_cycle",n.legacy_terminal?"info":"error","Structural hierarchy must be acyclic across scalar and registered dependency relationships.",r=>`${r} items participate in one hierarchy cycle.`,n.item_ids,t,n.legacy_terminal?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove or retype one exact hierarchy relation before continuing mutation."))}function Co(e,t,n){let r=e.cardinality_violations.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[Pe(n?"legacy_hierarchy_cardinality_violation":"hierarchy_cardinality_violation",n?"info":"error","Every structural child must resolve to at most one logical parent across all hierarchy spellings.",i=>`${i} child item${i===1?"":"s"} resolve to multiple hierarchy parents.`,r.map(i=>i.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove the exact surplus hierarchy rows so each child has one parent.",r.map(i=>`${i.child_id} <- ${i.parent_ids.join(", ")}`))]}function So(e,t,n){let r=e.divergences.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[Pe(n?"legacy_hierarchy_direction_violation":"hierarchy_direction_violation",n?"info":"error","Scalar parent metadata and dependency-backed hierarchy rows must resolve to the same logical parent.",i=>`${i} child item${i===1?"":"s"} have divergent hierarchy storage surfaces.`,r.map(i=>i.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Align the scalar parent and exact dependency rows to one canonical parent.",r.map(i=>`${i.child_id}: scalar=${i.scalar_parent_id} dependencies=${i.dependency_parent_ids.join(",")}`))]}function ku(e,t){let n=At(e);return n?[...bu(n,t),...Co(n,t,!1),...Co(n,t,!0),...So(n,t,!1),...So(n,t,!0)]:[]}function vu(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let[o,s]=(i.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(o);a?a.push(s):n.set(o,[s])}for(let r of n.values())r.sort((i,o)=>i.localeCompare(o));return n}function Do(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 Iu(e,t,n,r){let i=n.get(e.node)??[];if(e.neighborIndex>=i.length)return!1;let o=i[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(o)?r.onStack.has(o)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(o))):(Do(o,r),t.push({node:o,neighborIndex:0})),!0}function Eu(e,t,n,r){t.pop();let i=t.at(-1);if(i&&r.lowLinks.set(i.node,Math.min(r.lowLinks.get(i.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let o=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),o.push(s),s===e.node)break}(o.length>1||o.length===1&&n.get(o[0])?.includes(o[0]))&&r.components.push(o.sort((s,a)=>s.localeCompare(a)))}function xu(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,i)=>r.localeCompare(i));for(let r of n){if(t.indexes.has(r))continue;let i=[{node:r,neighborIndex:0}];for(Do(r,t);i.length>0;){let o=i.at(-1);Iu(o,i,e,t)||Eu(o,i,e,t)}}return t.components.sort((r,i)=>r[0].localeCompare(i[0]))}function Gn(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function z(e,t,n,r,i,o,s,a){t.length!==0&&e.push(Pe(r,i,o,s,t,n,a))}function Cu(e,t,n){let r=[],i=[...e.dangling.active,...e.dangling.legacy_terminal].filter(o=>!o.no_active_blocker_sentinel);return z(r,i.filter(o=>!t(o.holder_status)).map(Gn),n,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",o=>`${o} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),z(r,i.filter(o=>t(o.holder_status)).map(Gn),n,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",o=>`${o} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),z(r,e.dangling.no_active_blocker_sentinels.map(Gn),n,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",o=>`${o} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),r}function Hn(e,t){let n=t.get(e);return n?!n.terminal:!0}function Ro(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Su(e,t){let n=[],r=[];for(let o of e.orderingContradictions??[])(o.legacy_terminal?r:n).push(Ro(o));let i=[];return z(i,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",o=>`${o} 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."),z(i,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",o=>`${o} 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."),i}function Tu(e,t,n,r){let i=[],o=vu(e);for(let c of xu(o)){let d=c.some(f=>Hn(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(Ro);i.push(d?Pe("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):Pe("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 o)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 z(i,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.'),i}function Ht(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Wn(e){let t=e.graph.registry(),n=new Map;for(let i of e.graph.edges()){let o=t.require(i.kind);if(!Bt(o))continue;let s=Bn(i,o);if(s.from===s.to)continue;let a=`${Gt(o)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(i):n.set(a,{...s,edges:[i]})}let r=[...n.values()].filter(i=>i.edges.length>=2);for(let i of r)i.edges.sort((o,s)=>o.kind.localeCompare(s.kind));return r.sort((i,o)=>i.from.localeCompare(o.from)||i.to.localeCompare(o.to))}function Du(e,t,n){let r=[],i=[];for(let s of Wn(e))(Hn(s.from,t)||Hn(s.to,t)?r:i).push(Ht(s));let o=[];return z(o,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."),z(o,i,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."),o}function Ru(e,t){let n=[],r=[];for(let o of e.duplicateRows??[])(o.legacy_terminal?r:n).push(`${o.holder_id} -> ${o.target_id} (${o.kind} x${o.occurrences})`);let i=[];return z(i,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.",o=>`${o} 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."),z(i,r,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",o=>`${o} 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."),i}function Au(e,t){let n=new Map,r={source_to_target:[],target_to_source:[],both:[]};for(let s of e.graph.registry().list())s.outcomeTraversal!==void 0&&r[s.outcomeTraversal].push(s.kind);let i={source_to_target:r.source_to_target.join(","),target_to_source:r.target_to_source.join(","),both:r.both.join(",")},o=(s,a)=>{let c=n.get(a)??new Set;c.add(s),n.set(a,c)};for(let s of e.graph.edges()){t?.throwIfAborted();let a=e.graph.registry().require(s.kind);(a.outcomeTraversal==="source_to_target"||a.outcomeTraversal==="both")&&o(s.source,s.target),(a.outcomeTraversal==="target_to_source"||a.outcomeTraversal==="both")&&o(s.target,s.source)}return{basis:i,reverse:n}}function Lu(e,t,n){let r=new Set(e),i=[...e].sort();for(let o=0;o<i.length;o+=1){n?.throwIfAborted();for(let s of[...t.get(i[o])??[]].sort())r.has(s)||(r.add(s),i.push(s))}return r}function Fu(e,t,n,r){let i=0,o=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)?i+=1:o+=1}let c=i+o,d=s-a,u=i+a,l=o+d,f=u+l;return{active_outcome_reachable_nodes:i,active_outcome_unreachable_nodes:o,active_outcome_reachability_basis_points:c===0?0:Math.floor(i*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 Mu(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===yu&&a.title.trim().toLowerCase().startsWith(_u)).map(a=>a.id)),{basis:i,reverse:o}=Au(e,n),s=Lu(r,o,n);return{outcome_nodes:r.size,outcome_reachability_basis:i,...Fu(t,r,s,n)}}function Nu(e,t,n,r,i){e.active+=1;let o=t.type??"(untyped)",s=e.byType.get(o);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(o,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())||i.has(o.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function Ou(e,t,n,r,i,o,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 b=t.get(_);if(b){if(b.missing){a.missing+=1;continue}b.terminal||Nu(a,b,e.graph.incidentEdges(_).length,n,r)}}let{isolates:c,sparse:d}=a,u=[];z(u,c,i,"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."),z(u,d,i,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",_=>`${_} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let l=e.graph.edges().length,f=Oe(e.graph,{signal:s}).value,m=new Set(f.map(({edge:_})=>`${_.source.toLowerCase()}\0${_.target.toLowerCase()}\0${_.kind}`));for(let _ of e.orderingContradictions??[])m.add(`${_.holder_id.toLowerCase()}\0${_.target_id.toLowerCase()}\0${_.dependency_kind}`);let p=Object.fromEntries(Object.entries(o).sort(([_],[b])=>_.localeCompare(b))),g=Object.entries(p).reduce((_,[b,I])=>_+(zn(b)?I:0),0),k=Kt(e.graph,{signal:s}).value,w=Mu(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:p,edge_share_by_kind:Object.fromEntries(Object.entries(p).map(([_,b])=>[_,b/l])),semantic_edges:g,semantic_edge_share:l===0?0:g/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(([_],[b])=>_<b?-1:1)),articulation_points:k.articulationPoints.length,bridge_edges:k.bridges.length,...w,finding_subjects_by_code:Object.fromEntries($e.map(_=>[_,0]))}}}function zt(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),i=t.maxSampleSize??hu;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let o=xo(t.exemptIsolates),s=xo(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=Cu(e,n,i);d.push(...ku(e,i)),t.signal?.throwIfAborted(),d.push(...Su(e,i)),t.signal?.throwIfAborted(),d.push(...Tu(e,a,r,i)),t.signal?.throwIfAborted(),d.push(...Du(e,a,i),...Ru(e,i)),t.signal?.throwIfAborted();let u=Ou(e,a,o,s,i,c,t.signal);d.push(...u.findings),d.sort((f,m)=>Eo[f.severity]-Eo[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 Kn(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let i of n){let o=(t[i]??0)-(e[i]??0);o!==0&&(r[i]=o)}return r}function To(e){return e.profile.coverage_by_type??{}}function $u(e,t){let n={},r=To(e),i=To(t),o=[...new Set([...Object.keys(r),...Object.keys(i)])].sort();for(let s of o){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},i[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 Ao(e,t){let n=$u(e,t),{edge_share_by_kind:r={},semantic_edges:i=0,semantic_edge_share:o=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,p=t.profile.redundant_edges??0,g=e.profile.ordering_contradiction_edges??0,k=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Kn(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:p-m,ordering_contradiction_edges:k-g,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:Kn(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Kn(r,s),semantic_edges:a-i,semantic_edge_share:c-o,coverage_by_type:n}}}import Lo 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 Fo=1,qn=500,Pu=64,ju="graph-durable-cache";function Mo(e){return Te(e,ju,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Ye(e){return Lo.join(e,"runtime","graph-cache.json")}function No(e){return Lo.join(e,"runtime","graph-audit-baseline.json")}function Vn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Fo||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 Yn(e,t){let n=await oe(Ye(e)),r=Vn(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function Xn(e,t,n,r,i){let o=await Mo(e);try{let s=Vn(await oe(Ye(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=i;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-Pu)))delete a[d];await K(Ye(e),JSON.stringify({version:Fo,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function Jn(e){let t=await Mo(e);try{await Ur(Ye(e))}finally{await t()}}async function Oo(e,t){let n=Ye(e),r=await oe(n),i=Vn(r);return i===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:i.fingerprint===t,entry_count:Object.keys(i.results).length,fingerprint:i.fingerprint.slice(0,12),saved_at:i.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function Qn(e,t){return t||e>=qn}function Wt(e){return je(e)&&Object.values(e).every(ge)}function je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ge(e){return Number.isInteger(e)&&Number(e)>=0}function $o(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Ve(e,t){return e===void 0||t(e)}function Uu(e){return je(e)&&Object.values(e).every($o)}function Bu(e){return je(e)?Object.values(e).every(t=>je(t)&&[t.active,t.isolated,t.degree_leq_one].every(ge)):!1}function Gu(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],i=r.filter(s=>e[s]!==void 0).length;if(i!==0&&i!==r.length||!r.every(s=>Ve(e[s],ge)))return;let o={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 o.recorded_nodes<=t&&o.informative_edges<=n&&o.redundant_edges<=n&&o.ordering_contradiction_edges<=n?o:void 0}function Ku(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],i=r.filter(o=>e[o]!==void 0).length;return i!==0&&i!==r.length?!1:t.every(o=>Ve(e[o],ge))&&n.every(o=>Ve(e[o],ge)&&(e[o]===void 0||Number(e[o])<=1e4))&&Ve(e.finding_subjects_by_code,Wt)}function Hu(e,t,n,r){let i=Gu(e,n,r);if(i===void 0)return;let o=["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(!Ku(e,o,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Wt(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...i,...Object.fromEntries(o.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries($e.map(c=>[c,a[c]??t[c]??0]))}}function zu(e,t,n,r,i){let o=[n,r,i],s=o.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==o.length||!Uu(n)||!ge(r)||!$o(i))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+(zn(u)?l:0),0);if(!(r!==c||i!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:i}}function Wu(e){if(e!==null)try{let t=JSON.parse(e);if(!je(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let i=n.affected_subjects_by_code;if(!Wt(i)||!je(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(ge)||!Wt(r.edges_by_kind)||!Ve(r.coverage_by_type,Bu))return;let o=zu(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(o===void 0)return;let s=Hu(r,i,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...o,...s,coverage_by_type:a}}}catch{return}}async function Po(e){return Wu(await oe(No(e)))}async function jo(e,t){await K(No(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]="7054952e-444a-5be2-b0c1-fcc3b72afde5")}catch{}})();var qu={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."},hierarchy_cycle:{op:"investigate",confidence:"low",rationale:"Cut or retype one exact structural relation in the cycle; the planner preserves every evidence row because intent determines the correct parent."},legacy_hierarchy_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only hierarchy cycles are historical debt; waive them unless an explicit closed-history repair is approved."},hierarchy_cardinality_violation:{op:"investigate",confidence:"medium",rationale:"Choose the canonical parent and remove or retype the exact surplus hierarchy rows; the planner cannot infer ownership intent."},legacy_hierarchy_cardinality_violation:{op:"waive",confidence:"high",rationale:"Multiple parents confined to terminal items are historical debt; waive them unless a dedicated history repair is approved."},hierarchy_direction_violation:{op:"investigate",confidence:"medium",rationale:"Align the scalar parent and dependency-backed hierarchy rows to the intended canonical parent."},legacy_hierarchy_direction_violation:{op:"waive",confidence:"high",rationale:"Divergent hierarchy storage confined to terminal items is historical debt; waive it unless a dedicated history repair is approved."},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 Uo(e){return`${e.source} -${e.kind}-> ${e.target}`}function Vu(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Uo(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: ${Uo(t)}`,`group: ${Ht(e)}`],confidence:"high"}))}function Yu(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>Vu(t.get(r)));let n=qu[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 Bo(e,t={}){let{redundancyLimit:n,...r}=t,i=zt(e,r),o=new Map(Wn(e).map(d=>[Ht(d),d])),s=i.findings.flatMap(d=>Yu(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=Oe(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:i,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]="8797dddf-3643-554b-ba7f-4c513535c154")}catch{}})();var zo=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),pe=10;function Go(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 Ko(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Xu(e,t,n){let r=e.trim().toLowerCase();if(!_n.includes(r))throw Hr({command_path:"graph",token:r||"<empty>",allowed:_n});let i=r;if(zo.has(i)&&!t?.trim())throw new y(`graph ${i} requires an item id.`,h.USAGE);if(i==="paths"&&!n?.trim())throw new y("graph paths requires a source and a target item id.",h.USAGE);return i}function Zn(e){throw e instanceof TypeError?new y(e.message,h.USAGE):e}function er(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Ho(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 y(`Item ${t} not found`,h.NOT_FOUND)}function Ju(e,t,n){let r={ancestors:lo,descendants:fo,predecessors:po,successors:mo}[e],i;try{i=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){Zn(s)}let o=er(i.meta);return{subcommand:e,root:t,count:i.value.length,...o,...i.meta.nextCursor===void 0?{}:{next_cursor:i.meta.nextCursor},...n.summary?{}:{ids:i.value}}}function Qu(e,t,n){let r=go(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,...er(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function Zu(e,t){let n;try{n=vt(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??pe},...t.after===void 0?{}:{after:t.after}})}catch(r){Zn(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 el(e,t,n){return{acyclic:e.acyclic,ordered_node_count:e.order.length,layer_count:e.layers.length,frontier_count:e.frontier.length,critical_path_length:e.criticalPathLength,cycle_count:e.cycles.length,...t?{}:{frontier:e.frontier.slice(0,n),critical_path:e.criticalPath.slice(0,n),cycles:e.cycles.slice(0,n)}}}function tl(e,t,n){return{component_count:e.components.length,largest_component_size:e.components[0]?.length??0,orphan_count:e.orphans.length,...t?{}:{orphans:e.orphans.slice(0,n),hubs:e.hubs.slice(0,n)}}}function nl(e,t,n){let r=0,i=0,o=0;for(let s of e.cycles)r+=Number(s.legacy_terminal);for(let s of e.cardinality_violations)i+=Number(s.legacy_terminal);for(let s of e.divergences)o+=Number(s.legacy_terminal);return{acyclic:e.cycles.length===0,relation_count:e.relations.length,cycle_count:e.cycles.length,active_cycle_count:e.cycles.length-r,legacy_cycle_count:r,cardinality_violation_count:e.cardinality_violations.length,active_cardinality_violation_count:e.cardinality_violations.length-i,legacy_cardinality_violation_count:i,parent_divergence_count:e.divergences.length,active_parent_divergence_count:e.divergences.length-o,legacy_parent_divergence_count:o,...t?{}:{cycles:e.cycles.slice(0,n).map(s=>s.item_ids)}}}function rl(e){let t=e.assembly.graph,n=e.limit??pe,r=It(t,{registry:t.registry()}),i=Ki(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:el(r,e.summary,n),knowledge:tl(i,e.summary,n),hierarchy:nl(At(e.assembly),e.summary,n)}}function il(e,t){let n=zt(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={},i={},o={},s={};for(let d of n.findings)r[d.severity]=(r[d.severity]??0)+1,i[d.code]=(i[d.code]??0)+1,o[d.severity]=(o[d.severity]??0)+d.count,s[d.code]=(s[d.code]??0)+d.count;let{finding_subjects_by_code:a,...c}=n.profile;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:i,affected_subjects_by_severity:o,affected_subjects_by_code:s,profile:e.summary?c:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function ol(e){let t=e.limit??pe,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=yo(e.assembly.graph,n),i=r.value;return{subcommand:"communities",community_count:i.communities.length,largest_community_size:i.communities[0]?.size??0,iterations:i.iterations,converged:i.converged,truncated:!i.converged||i.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:i.communities.slice(0,t).map(o=>({representative:o.representative,size:o.size,members:o.members.slice(0,t)}))}}}function sl(e){let t;try{t=Oe(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){Zn(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...er(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 al(e,t){let n=t.limit??pe,r=_o(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),i=r.value.rows.filter(o=>o.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:i.length,truncated:r.meta.truncated||i.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:i.slice(0,n).map(o=>({id:o.id,idom:o.idom,dominated_count:o.dominatedCount}))}}}function cl(e){let t=e.limit??pe,n=Io(e.assembly.graph),r=n.rows.filter(i=>i.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(i=>({id:i.id,earliest_start:i.earliestStart,latest_start:i.latestStart,slack:i.slack,critical:i.critical}))}}}function dl(e){let t=e.limit??pe,n=vo(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(i=>({id:i.id,degree:i.degree,in_degree:i.inDegree,out_degree:i.outDegree,betweenness:i.betweenness,closeness:i.closeness}))}}}function ul(e){let t=e.limit??pe,n=Kt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:i}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:i.length,truncated:r.length>t||i.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:i.slice(0,t)}}}function ll(e,t){let n=e.limit??pe,r=Bo(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}}),i={},o={};for(let s of r.steps)i[s.op]=(i[s.op]??0)+1,o[s.code]=(o[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:i,steps_by_code:o,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 Wo(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(i=>i.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(i=>i.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function qo(e,t,n,r,i){return e==="analyze"?rl(r):e==="audit"?il(r,i):e==="plan"?ll(r,i):e==="communities"?ol(r):e==="redundancy"?sl(r):e==="dominators"?al(t,r):e==="slack"?cl(r):e==="centrality"?dl(r):e==="articulation"?ul(r):e==="paths"?Qu(t,n,r):e==="impact"?Zu(t,r):Ju(e,t,r)}function fl(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new y("--rebuild and --clear apply only to graph index.",h.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new y("--save-baseline applies only to graph audit.",h.USAGE);if(e==="slack"&&t.kind!==void 0)throw new y("graph slack analyzes every ordering kind; --kind is not supported.",h.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new y("graph index accepts either --rebuild or --clear, not both.",h.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new y("graph impact accepts either --full or --limit, not both.",h.USAGE)}async function pl(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await Jn(e),s="cleared"),o.rebuild===!0){await Jn(e);let c=await Yn(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await Xn(e,t,c,Wo(u,void 0,void 0,d),qo(u,void 0,void 0,d,i));s="rebuilt"}let a=await Oo(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:qn,persist_enabled:Qn(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function ml(e,t,n,r){let i={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:{...n.profile,finding_subjects_by_code:Object.fromEntries($e.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},o=await Po(e);return r&&await jo(e,i),o===void 0?n:{...n,baseline:Ao(o,i)}}async function gl(e,t,n,r,i){try{await Xn(e,t,n,r,i)}catch{}}async function Kw(e,t,n,r,i){let o=Xu(e,t,n);pt(r.summary===!0,r.full===!0,"--summary");let s=T(process.cwd(),i.path);await $(s);let a=await D(s),c=O(a,A()),d=await ee(s,a.item_format,c.type_to_folder,void 0,a.schema),u=H(a.schema),l=U=>F(U,u);fl(o,r);let f=j(),m=jn(r.kind,f),p=Ft().lookup(s,Lt(d,l,f),()=>Me(d,l,f)),g={assembly:p.assembly,...m===void 0?{}:{kinds:m},maxDepth:Nt(r.maxDepth),limit:te(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Pn(r.direction),maxPaths:te(r.maxPaths,"max-paths"),sample:te(r.sample,"sample"),exemptIsolates:Ko(r.exemptIsolate),exemptIsolateTypes:Ko(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(o==="index")return Go(await pl(s,p.fingerprint,g,d.length,l,r),!1);let k=zo.has(o)?Ho(g.assembly,t):void 0,w=o==="paths"?Ho(g.assembly,n):void 0,_=Wo(o,k,w,g),b=await Yn(s,p.fingerprint),I=b.results[_],x=p.memoize(_,()=>I!==void 0?structuredClone(I):qo(o,k,w,g,l)),M=Qn(d.length,b.exists);!x.reused&&I===void 0&&M&&await gl(s,p.fingerprint,b,_,x.value);let S=x.value.subcommand==="audit"?await ml(s,p.fingerprint,x.value,g.saveBaseline):x.value;return S.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:x.reused?"hit":"miss",durable:I!==void 0?"hit":M?"miss":"off"},Go(S,g.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 Vo="blocked_by",Yo="blocks",hl=Object.freeze([Vo,Yo]),tr="no-active-blocker";function R(e){return e.trim().toLowerCase()}function he(e){let t=new Set,n=typeof e.blocked_by=="string"?R(e.blocked_by):"";n.length>0&&n!==tr&&t.add(n);for(let r of e.dependencies??[]){let i=typeof r.id=="string"?R(r.id):"";r.kind===Vo&&i.length>0&&i!==tr&&t.add(i)}return[...t].sort((r,i)=>r.localeCompare(i))}function qt(e){let t=new Map;for(let n of e){let r=R(n.id);r.length!==0&&t.set(r,new Set(he(n)))}for(let n of e){let r=R(n.id);if(r.length!==0)for(let i of n.dependencies??[]){let o=i.kind===Yo&&typeof i.id=="string"?R(i.id):"";if(o.length===0||o===tr)continue;let s=t.get(o)??new Set;s.add(r),t.set(o,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((i,o)=>i.localeCompare(o))]))}function Xo(e,t){let n=R(e.id);return n.length>0?qt(t).get(n)??he(e):he(e)}function nr(e,t,n,r){let i=e;return(typeof i.id=="string"?r?.get(R(i.id))??Xo(i,[...t.values()]):he(e)).map(s=>{let a=t.get(R(s));return a?{id:s,title:a.title,status:a.status,resolved:F(a.status,n)}:{id:s,title:null,status:null,resolved:!1}})}function Vt(e,t,n){return nr(e,t,n)}function Xe(e,t){let n=new Map(e.map(s=>[R(s.id),s])),r=qt(e),i=new Set([...Jo(t),...t.blocked_statuses]),o=new Set;for(let s of e){let a=C(s.status,t);if(!i.has(a))continue;(t.blocked_statuses.has(a)||nr(s,n,t,r).some(d=>!d.resolved))&&o.add(R(s.id))}return o}function Jo(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function yl(e,t,n){let r=[R(e)],i=new Set;for(;r.length>0;){let o=r.pop();if(!i.has(o)){i.add(o);for(let s of t.get(o)??[]){if(!F(s.status,n))return!0;r.push(R(s.id))}}}return!1}function _l(e){let t=new Map,n=new Map,r=new Map,i=qt(e);for(let o of e){t.set(R(o.id),o);let s=typeof o.parent=="string"?o.parent.trim():"";if(s.length>0){let a=R(s),c=n.get(a)??[];c.push(o),n.set(a,c)}for(let a of i.get(R(o.id))){let c=R(a),d=r.get(c)??[];d.push(o.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:i}}function rr(e,t,n){let{itemsById:r,childrenByParent:i,blockedByReverse:o,blockerIdsByItem:s}=_l(t),a=new Set([...Jo(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!F(m.status,n)).map(m=>R(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,yl(m.id,i,n)){f+=1;continue}let p=nr(m,r,n,s).filter(_=>!_.resolved),g=(o.get(R(m.id))??[]).filter(_=>c.has(R(_))).sort((_,b)=>_.localeCompare(b)),k={item:m,open_blockers:p,unblocks:g},w=n.blocked_statuses.has(C(m.status,n));p.length===0&&!w?d.push(k):u.push(k)}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 ir(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 i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new y(`${t.label} requires at least one non-empty value`,h.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function Je(e,t){let n=ir(e,t);return n===void 0?void 0:new Set(n)}function Qo(e,t,n="--type"){let r=ir(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=lt(o,t);if(!s)throw new y(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,h.USAGE);return s});return new Set(i)}function Zo(e,t="--priority"){let n=ir(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Et(r,t)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5bb71ec1-7eb1-558e-a965-acd779570c2e")}catch{}})();var or=["id","title","status","type","priority","parent","updated_at"],sr=["id","status","type","title"],wl={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},bl=["tree_depth","tree_parent","tree_children","tree_title"];function ar(e=[]){return[...new Set([...fn,"body",...bl,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var tb=["brief","standard","deep"],kl=["body","linked","claim_state","children","schedule"],vl=["linked.files","linked.tests","linked.docs"],Il=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],El=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function nb(e=[]){return[...[...new Set([...fn,...e,"notes_count","tests_count","collection_counts"])].flatMap(n=>[n,`item.${n}`]),...kl,...vl,...Il,...El].sort()}var rb=["id","title","status","type","priority","updated_at","score","matched_fields"],xl=["score","matched_fields","highlights"],es=["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"];function ib(e=[]){let t=[...new Set(e)];return[...xl,...es,...es.map(n=>`item.${n}`),...t,...t.map(n=>`item.${n}`)].sort()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function ts(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function os(e){return{isTerminal(t){return e.terminal_statuses.has(ts(t,e))},classify(t){let n=ts(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 cr(e){return P(e.acceptance_criteria)===void 0}function dr(e){return!Number.isFinite(e.estimated_minutes)}function ss(e,t){return t.isTerminal(e.status)?P(e.resolution)===void 0:!1}function Cl(e){return P(e.reviewer)===void 0}function Sl(e){return P(e.risk)===void 0}function Tl(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):P(e.confidence)===void 0}function Dl(e){return P(e.sprint)===void 0}function Rl(e){return P(e.release)===void 0}function ur(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Al(e,t,n){return[[t.acMissing,cr(e)],[t.estimatesMissing,dr(e)],[t.resolutionMissing,ss(e,n)],[t.reviewerMissing,Cl(e)],[t.riskMissing,Sl(e)],[t.confidenceMissing,Tl(e)],[t.sprintMissing,Dl(e)],[t.releaseMissing,Rl(e)]].every(([i,o])=>i!==!0||o)}function Ll(e,t){return cr(e)||dr(e)||ss(e,t)}function as(e,t,n){return ur(t)?!(!Al(e,t,n)||t.metadataMissing&&!Ll(e,n)):!0}var lr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Fl(e,t){switch(t){case"acceptance_criteria":return!cr(e);case"estimated_minutes":return!dr(e);case"resolution":return P(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return P(e.parent)!==void 0}}function Ml(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Nl(e,t){return t===0?100:Math.round(e/t*1e3)/10}function ns(){let e={};for(let t of lr)e[t]={present:0,applicable:0,percent:100};return e}function rs(e,t,n){for(let r of lr){if(!Ml(t,r,n))continue;let i=e[r];i.applicable+=1,Fl(t,r)&&(i.present+=1)}}function is(e){for(let t of lr){let n=e[t];n.percent=Nl(n.present,n.applicable)}}function ab(e,t){let n=ns(),r={};for(let i of e){rs(n,i,t);let o=r[i.type]??(r[i.type]=ns());rs(o,i,t)}is(n);for(let i of Object.values(r))is(i);return{overall:n,by_type:r}}var Ol={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function $l(e){return Ol[e]}function Pl(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function jl(e,t,n){switch(t){case"assignee":return[P(e.assignee)??null];case"parent":return[P(e.parent)??null];case"type":return[P(e.type)??null];case"status":return[P(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return o.length>0?o:[null]}}}function cb(e,t,n,r={}){let i=new Map,o=0;for(let a of e){o+=1;let c=n.classify(a.status);for(let d of jl(a,t,r)){let u=d??"\0empty",l=i.get(u);l||(l={label:d??$l(t),key:d,buckets:Pl(),total:0},i.set(u,l)),l.buckets[c]+=1,l.total+=1}}let s=[...i.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:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Ue=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function ye(e){return Array.isArray(e)&&e.length>0}function Ul(e){return typeof e=="string"&&e.trim().length>0}function Bl(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 ds(e,t){switch(t){case"notes":return ye(e.notes);case"learnings":return ye(e.learnings);case"files":return ye(e.files);case"docs":return ye(e.docs);case"tests":return ye(e.tests);case"comments":return ye(e.comments);case"deps":return ye(e.dependencies);case"body":return Ul(e.body);case"linked_command":return Bl(e.tests)}}function us(e){return Ue.some(t=>e[t]!==void 0)}function ls(e,t){for(let n of Ue){let r=t[n];if(r===void 0)continue;let i=ds(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function fs(e){return Ue.some(t=>t!=="body"&&e[t]!==void 0)}function ps(e){return e.body!==void 0}function cs(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Gl(){let e={};for(let t of Ue)e[t]={present:0,total:0,percent:100};return e}function ub(e){let t=Gl(),n=e.length;for(let s of e)for(let a of Ue)ds(s,a)&&(t[a].present+=1);for(let s of Ue)t[s].total=n,t[s].percent=cs(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:cs(i,n)};return{total_items:n,fields:t,body_populated:r,empty_body:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93e8c187-e198-50fc-bf2c-7dae2ea42219")}catch{}})();var Kl=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}),ms=[{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"}],bs=e=>{let t=ms.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new y(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,h.USAGE);return Object.fromEntries(ms.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},gs=["priority","deadline","updated_at","created_at","title","parent"],hs=["asc","desc"],ks=new Set(ki);function Hl(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,i=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,o={status:t?"unchecked":r+i>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:i};if(n&&o.status==="partial")throw new y(`List source is incomplete: ${r} item document(s) and ${i} item directory/directories could not be read.`,h.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return o}function zl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var Wl=[{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"}],ql=[{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 vs(e,t){for(let n of Wl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Is(e,t){for(let n of ql)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Vl(e,t,n){for(let r of n){let i=t[r.optionKey];i!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(i):i)}}function Yl(e){let t={};return vs(t,e),t}function Xl(e){let t={};return Is(t,e),t}var Jl=[{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"}],Ql=[{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"}],Zl=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],ef="-7d";function tf(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:i,sortField:o,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),Vl(c,n,Jl),xs(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),Is(c,n),vs(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,i!==void 0&&(c.tree_depth=i)),o!==void 0&&(c.sort=o,c.order=s),zl(a)&&(c.runtime_filters=a),c}function Es(e,t,n){let r=F(e.status,n),i=F(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=E(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function nf(e,t){return[...e].sort((n,r)=>Es(n,r,t))}function ys(e,t){if(e!==void 0)return se(e,new Date,t)}function Qe(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return se(n,new Date,t)}function rf(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 y("Choose only one updated_at window: --today, --recent, or --updated-after.",h.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Qe(ef,"recent"):Qe(e.updatedAfter,"updated-after")}function xs(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function of(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new y("--ids requires at least one non-empty item ID",h.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new y("--ids requires at least one non-empty item ID",h.USAGE);return new Set(n)}function Cs(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 y("Offset filter must be a non-negative integer",h.USAGE);return n}function sf(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 y("List --fields requires a comma-separated list of field names",h.USAGE);return[...new Set(t)]}function af(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=sf(e.fields);if(Number(n)+Number(r)+Number(i)+ +(o!==void 0)>1)throw new y("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",h.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return i?{mode:"full",fields:[]}:r?{mode:"brief",fields:[...sr]}:n?{mode:"compact",fields:[...or]}:o?{mode:"fields",fields:[...new Set(o.map(a=>_e(a)))]}:{mode:"full",fields:[]}}function _e(e){return e.startsWith("item.")?e.slice(5):e}function cf(e,t,n){if(e.mode!=="fields")return;let r=ar(t),i=new Set(r.map(s=>_e(s))),o=e.fields.filter(s=>!i.has(_e(s)));if(o.length>0)throw new y(`Unknown list --fields value(s): ${o.join(", ")}`,h.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:`pm ${n} --fields id,title,status --limit 10`,suggested_retry_args:[n,"--fields","id,title,status","--limit","10"]}})}var df=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function uf(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=df.get(t);if(n)return n;if(!gs.includes(t))throw new y(`Sort field must be one of ${gs.join("|")} (aliases: updated->updated_at, created->created_at)`,h.USAGE);return t}function lf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!hs.includes(t))throw new y(`Sort order must be one of ${hs.join("|")}`,h.USAGE);return t}function ff(e){return V(e,"--tree-depth")}function pf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new y("Assignee filter must be one of assigned|unassigned",h.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new y(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,h.USAGE);return t}function _s(e,t){return _i(e,t,{strict:!0})}function Ss(e){return Je(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function mf(e,t,n){let r=Ss(t);if(r===void 0)return;let i=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),o=[...r].filter(s=>!i.has(s));o.length>0&&n.push(`unknown_tags:${o.join(",")}`)}function gf(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new y('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',h.USAGE);if(e!==void 0&&t==="unassigned")throw new y("Cannot combine --assignee with --assignee-filter unassigned",h.USAGE)}function hf(e,t,n,r){let i=Je(t.assignee,{label:"--assignee"}),o=pf(t.assigneeFilter);gf(i,o);let s=Kl(t),a=bs(t);return{idsFilter:of(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Qo(t.type,n),tagFilters:Ss(t.tag),priorityFilter:Zo(t.priority),deadlineBefore:ys(t.deadlineBefore,"deadline-before"),deadlineAfter:ys(t.deadlineAfter,"deadline-after"),updatedAfter:rf(t),updatedBefore:Qe(t.updatedBefore,"updated-before"),createdAfter:Qe(t.createdAfter,"created-after"),createdBefore:Qe(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Je(t.sprint,{label:"--sprint"}),releaseFilter:Je(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:ur(s),lifecycleClassifier:os(r),contentFieldFilters:a,contentFiltersActive:us(a)}}function yf(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&F(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(i=>i.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function _f(e,t){return Gr(e,t)}function wf(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 bf(e,t,n){let r=e.parent?.trim().toLowerCase(),i=[...new Set([...n?.get(e.id.trim().toLowerCase())??[],...r?[r]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!i.includes(t.parentFilter.trim().toLowerCase())||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 kf(e,t,n,r,i){return!(!yf(e,t,n)||!_f(e,t)||!wf(e,t)||!bf(e,t,i)||t.missingMetadataActive&&!as(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ls(e,t.contentFieldFilters)||!wt(e,r))}function vf(e,t,n,r,i,o,s){let a=hf(t,n,r,i);return e.filter(c=>kf(c,a,i,o,s))}function Ze(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ws(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??Ze(typeof i.parent=="string"?i.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function If(e,t){let n=new Map,r=new Map;for(let i of e){let o=i.id.trim().toLowerCase();n.set(o,i);let s=t?t.parents_by_child.get(o)??[]:[Ze(i.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let c=r.get(a)??[];c.push(i),r.set(a,c)}}return{byId:n,childrenByParent:r}}function Ef(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[Ze(o.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function xf(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=If(e,r),a=Ef(e,t,o,s,r),c=[],d=new Set,u=new Map(i.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),l=[...a].reverse().map(f=>({node:f,depth:0,parentId:t===void 0?void 0:u.get(t.trim().toLowerCase())??t.trim()}));for(;l.length>0;){let{node:f,depth:m,parentId:p}=l.pop(),g=f.id.trim().toLowerCase();if(d.has(g))continue;d.add(g);let k=s.get(g)??[];if(c.push(ws(f,m,k.length,p)),!(n!==void 0&&m>=n))for(let w of[...k].reverse())l.push({node:w,depth:m+1,parentId:u.get(g)})}if(t===void 0&&n===void 0)for(let f of e){let m=f.id.trim().toLowerCase();d.has(m)||(d.add(m),c.push(ws(f,0,s.get(m)?.length??0)))}return c}function Cf(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Sf(e,t){return e===t?0:e===null?1:t===null?-1:E(e,t)}function Tf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Sf(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 Cf(e.parent??null,t.parent??null);default:return 0}}function Df(e,t,n,r){return t?[...e].sort((i,o)=>{let s=Tf(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=Es(i,o,r);return n==="desc"?-a:a}):nf(e,r)}function Rf(e,t,n=!1){let r=_e(t.trim());if(r.length===0)return null;let i=e;return n&&r==="title"&&typeof i.tree_title=="string"?i.tree_title:Object.prototype.hasOwnProperty.call(i,r)?i[r]??null:null}function Ts(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Rf(r,o,n);return i})}function Af(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Lf(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Ff(e,t,n){return t.after===void 0?Cs(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 Mf(e,t){let n=T(process.cwd(),t.path);await $(n);let r=await D(n),i=H(r.schema),o=ft(r.schema),s=e.projectionCommand??"list",a=af(e,s);return cf(a,Af(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:_t(e,o,"list"),typeRegistry:O(r,A()),projection:a}}async function Nf(e,t,n){let r=t.projection.fields.some(c=>_e(c)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(c=>ks.has(_e(c))),o=bs(e),s=fs(o),a=ps(o);return e.includeBody||r||a?await xi(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await Ei(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ee(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Of(e){let t=uf(e.sort),n=lf(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new y("List --tree-depth requires --tree",h.USAGE);if(!t&&e.order!==void 0)throw new y("List --order requires --sort",h.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?ff(e.treeDepth):void 0,parentRoot:r?Ze(e.parent):void 0}}function $f(e,t,n){let r=_s(t.status,n),i=r??_s(e,n),o=yi(t.status),s=r||o?{...t,excludeTerminal:!1}:t,a=o?"all":i===void 0?s.excludeTerminal===!0?null:"all":i.length===1?i[0]:i;return{resolvedStatus:i,explicitAllStatuses:o,effectiveOptions:s,filtersStatus:a}}function Pf(e,t,n,r,i){if(t.after!==void 0&&t.offset!==void 0)throw new y("List --after cannot be combined with --offset.",h.USAGE);let o=Lf(t,e.length),s=Ff(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),c=Ts(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?Z(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:Ds(o,u,l)}}function Rs(e,t,n){return de("list",{status:e,options:mt(t,Ci),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function jf(e){let{options:t,runtime:n,statusSelection:r,ordering:i}=e,o=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(p=>{let g=_e(p);return g==="body"||ks.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,i.treeEnabled,i.sortField!==void 0,s,Yr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([p,g])=>g!==void 0&&!o.has(p))].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=Cs(t.offset)??0,l=await bi({pmRoot:n.pmRoot,expectedSourceCursor:c.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:d,offset:u}});if(!l)return null;let f=l.items.length>0&&u+l.items.length<l.total,m=f?Z(Rs(r.filtersStatus,t,i),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:Ts(l.items,n.projection,!1),totalMatched:l.total,pageExtras:Ds(d,f,m)}}function Uf(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:i,treeDepth:o,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 Ql){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of Zl)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,Xl(n),Yl(n)),xs(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!0),i&&(d.tree=!0,o!==void 0&&(d.tree_depth=o)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function et(e,t,n){let r=await Mf(t,n),i=[],o=Of(t),s=$f(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await jf({options:t,runtime:r,statusSelection:s,ordering:o}),d=c;if(!d){let g=await Nf(t,r,i),w=o.treeEnabled||Ze(t.parent)!==void 0?An(Zi(g,j())):void 0;mf(g,t.tag,i);let _=vf(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,w?.parents_by_child),b=t.dependencyBlocked===!0?(()=>{let M=Xe(g,r.statusRegistry);return _.filter(S=>M.has(S.id.trim().toLowerCase()))})():_,I=Df(b,o.sortField,o.sortOrder,r.statusRegistry),x=o.treeEnabled?xf(I,o.parentRoot,o.treeDepth,w,g):I;d=Pf(x,t,r.projection,o.treeEnabled,Rs(s.filtersStatus,t,o))}let u=G(),l=[...new Set(i)].sort((g,k)=>g.localeCompare(k)),f=Hl(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=tf({filtersStatus:s.filtersStatus,options:t,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:g,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:Uf({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:m},sorting:{sort:o.sortField??"default",order:o.sortField?o.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as Bf}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]="47de55f1-589f-5743-bcb8-3b7a6302dfbb")}catch{}})();var fr=["agenda","day","week","month"],pr=["markdown","toon","json"],Gf=["sun","mon","tue","wed","thu","fri","sat"],Kf=365,Hf=365,Fs=28,zf=1e3;function mr(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new y(`${t} must be a non-negative integer`,h.USAGE);return n}function Wf(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)throw new y("Calendar include filter must not be empty",h.USAGE);let r=new Set;for(let i of n){if(i==="deadlines"||i==="deadline"){r.add("deadlines");continue}if(i==="reminders"||i==="reminder"){r.add("reminders");continue}if(i==="events"||i==="event"||i==="scheduled"){r.add("events");continue}throw new y("Calendar include filter must be deadlines|reminders|events|scheduled|all",h.USAGE)}return r}function Ms(e,t){let n;for(let r of t){let i=Kr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function qf(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!fr.includes(t)){let n=Ms(t,fr);throw new y(`Calendar view must be one of ${fr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function Vf(e){if(!e)return;let t=e.trim().toLowerCase();if(!pr.includes(t)){let n=Ms(t,pr);throw new y(`Calendar format must be one of ${pr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function Wb(e,t){let n=Vf(e.format);if(t.json&&n&&n!=="json")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?"json":n??"markdown"}function Yf(e,t){if(e===void 0)return;let n=L(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new y(`Calendar status filter must be one of ${r.join("|")}`,h.USAGE)}return n}function Xf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new y("Calendar assignee filter must be one of assigned|unassigned",h.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new y(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,h.USAGE);return t}function Yt(e){return new Date(e).toISOString().slice(0,10)}function Ns(e,t){if(!t||t==="UTC")return Yt(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,i=n.find(s=>s.type==="month")?.value,o=n.find(s=>s.type==="day")?.value;if(r&&i&&o)return`${r}-${i}-${o}`}catch{}return Yt(e)}function _r(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 Os(e){let t=new Date(_r(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function Jf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Qf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Zf(e,t){return E(e,t)>=0?e:t}function As(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Ls(e,t){e.set(t,(e.get(t)??0)+1)}function ep(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,i)=>ve(r)-ve(i));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,i)=>r-i);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,i)=>r.localeCompare(i));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function $s(e,t,n,r){let i=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(i.getUTCFullYear()!==e||i.getUTCMonth()!==t||i.getUTCDate()!==n))return i.toISOString()}function Ps(e){return Gf[new Date(e).getUTCDay()]}function tp(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function np(e){let t=new Set;for(let n of e??[]){let r=tp(n);r&&t.add(r)}return t}function rp(e,t,n,r,i){let o=e??ae(n,-(r??Hf)),s=t??ae(e??n,i??Kf);return{start:o,end:E(s,o)>0?s:ae(o,1)}}function ip(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Ps(e)],o=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??zf,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:np(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(i)].sort((s,a)=>ve(s)-ve(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Xt(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 Jt(e,t){let n=Ps(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function op(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Jt(e,t)&&Xt(e,t)==="stop");n+=1)t=ae(t,e.interval);return e.occurrences}function sp(e,t,n){let r=ve(n),i=ae(t,r),o=new Date(i);return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function ap(e){let t=Os(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=ae(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=sp(e,r,i);if(Jt(e,o)&&Xt(e,o)==="stop")return e.occurrences}}return e.occurrences}function cp(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let o of e.sortedMonthDays){let s=$s(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!Jt(e,s))&&Xt(e,s)==="stop")return e.occurrences}}return e.occurrences}function dp(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=t+r*e.interval;for(let o of e.sortedMonthDays){let s=$s(i,n,o,e.startDate);if(!(!s||!Jt(e,s))&&Xt(e,s)==="stop")return e.occurrences}}return e.occurrences}function up(e,t,n,r){let i=ip(e,t,n,r);return t.freq==="daily"?op(i):t.freq==="weekly"?ap(i):t.freq==="monthly"?cp(i):dp(i)}function js(e){return[...e].sort((t,n)=>{let r=E(t.at,n.at);if(r!==0)return r;let i=t.item_priority-n.item_priority;if(i!==0)return i;let o=t.item_id.localeCompare(n.item_id);if(o!==0)return o;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function wr(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 lp(e){return e.deadline?{at:e.deadline,date:Yt(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,...wr(e),item_deadline:e.deadline}:null}function fp(e){return(e.reminders??[]).map(t=>({at:t.at,date:Yt(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,...wr(e)}))}function pp(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function mp(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function gp(e,t,n,r){let i=ep(t.recurrence),o=pp(t.start_at,t.end_at);return(t.recurrence?up(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Ns(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:mp(a,t,o),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:i,...wr(e)}))}function hp(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?lp(o):null;s&&i.push(s),n.has("reminders")&&i.push(...fp(o));for(let a of n.has("events")?o.events??[]:[])i.push(...gp(o,a,t,r))}return js(i)}function yp(e,t,n,r,i){let o=Hi(t.type,n),s=t.tag?.trim().toLowerCase(),a=Et(t.priority),c=Yf(t.status,r),d=t.assignee?.trim(),u=Xf(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new y('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',h.USAGE);if(d!==void 0&&u==="unassigned")throw new y("Cannot combine --assignee with --assignee-filter unassigned",h.USAGE);return e.filter(m=>_p(m,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:i}))}function _p(e,t){return wp(e,t)&&bp(e,t)&&wt(e,t.runtimeFieldFilters)}function wp(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 bp(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 kp(e,t,n){return!(t&&E(e.at,t)<0||n&&E(e.at,n)>=0)}function gr(e,t,n){return e.trim().toLowerCase()==="today"?_r(t):se(e,new Date(t),n)}function vp(e,t,n){let r=t.date?gr(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?gr(t.from,n,"--from"):void 0,a=t.to?gr(t.to,n,"--to"):void 0;if(s&&a&&E(s,a)>=0)throw new y("Calendar --from must be before --to",h.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new y("--from and --to are only supported for --view agenda",h.USAGE);if(e==="agenda")return Ip(r,t,n,i,o,s,a);if(e==="day"){let d=_r(r);return hr(r,n,i,o,d,ae(d,1))}if(e==="week"){let d=Os(r);return hr(r,n,i,o,d,ae(d,7))}let c=Jf(r);return hr(r,n,i,o,c,Qf(r))}function Ip(e,t,n,r,i,o,s){if(i)throw new y("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",h.USAGE);return{anchor:e,start:o??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function hr(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Zf(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function Ep(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:js(r)}))}function xp(e){let t=new Set,n=new Map,r=new Map,i=0,o=0,s=0,a=0;for(let c of e)t.add(c.item_id),Ls(n,c.item_type),Ls(r,c.item_status),c.kind==="deadline"?i+=1:c.kind==="reminder"?o+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:i,reminders:o,scheduled:s,by_kind:{deadline:i,reminder:o,event:s},by_type:As(n),by_status:As(r),recurring_events:a}}function Cp(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Us(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(o=>o.type==="hour")?.value,i=n.find(o=>o.type==="minute")?.value;if(r&&i)return`${r}:${i}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function yr(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Sp(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Ns(e.event_end,e.event_timezone)?Us(e.event_end,e.event_timezone):e.event_end:null}function Tp(e){let t=`${Us(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let o=Sp(e);return o&&n.push(`end=${o}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function qb(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Cp(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: ${yr(e.summary.by_kind)}`),t.push(`- by-type: ${yr(e.summary.by_type)}`),t.push(`- by-status: ${yr(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(`- ${Tp(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 Dp(t.join(`
3
- `))}function Vb(e){return Bf(e)}function Dp(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function Rp(e){let t=G(),n=qf(e.view),r=vp(n,e,t),i=V(e.limit),o=Wf(e.include),s=mr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=mr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=mr(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new y("Calendar occurrence limit must be >= 1",h.USAGE);let d=o.has("events")&&!o.has("deadlines")&&!o.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:i,includeSources:o,occurrenceLimit:c,recurrenceLookaheadDays:l?Fs:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Ap(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Fs}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Lp(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 Fp(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 Bs(e,t){let n=T(process.cwd(),t.path);await $(n);let r=Rp(e),i=await D(n),o=H(i.schema),s=ft(i.schema),a=_t(e,s,"calendar"),c=O(i,A()),d=[];Ap(d,r.eventsOnlyCapApplied);let u=await ee(n,i.item_format,c.type_to_folder,d,i.schema),l=yp(u,e,c,o,a),f=rp(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=hp(l,f,r.includeSources,r.occurrenceLimit).filter(_=>kp(_,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?p:p.slice(0,r.limit),k=Ep(g),w=[...new Set(d)].sort((_,b)=>_.localeCompare(b));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Fp(e,r.rangeBounds),filters:Lp(e,a),summary:xp(g),events:g,days:k,...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 br=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Mp=Symbol("no-context-author"),Np=Symbol("no-item-assignee");function Gs(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Op(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 $p(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 Pp(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 Qt(e,t,n){return e?.[t]??n}function Zt(e,t){let n=d=>{if(typeof d!="string")return"";try{return se(d,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((d,u)=>{let l=n(d.updated_at),f=n(u.updated_at);return E(f,l)||d.id.localeCompare(u.id)}),i=new Map(r.map((d,u)=>[d.id,u])),o=Math.max(e.length-1,1),s=Gs(t.author,Mp),a=L("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=Gs(d.assignee,Np)===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-i.get(d.id)/o,activity_density:t.activityDensity?.[d.id],graph_proximity:Qt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:Qt(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:Op(d.priority,4),risk_pressure:Pp(d.risk),deadline_pressure:$p(d.deadline,c),knowledge_density:Qt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:Qt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var jp="context_relevance",Up={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},Bp=new TextEncoder;function Gp(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,i]of Object.entries(n.signals??{})){if(r==="structural"||!br.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(i!==void 0&&(!Number.isFinite(i)||i<0||i>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function Kp(e){let t={...Up};for(let[n,r]of Object.entries(e??{}))r!==void 0&&br.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 Hs(e,t={}){Gp(e);let n=Kp(t.weights),r=Math.max(e.length-1,1),i=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&i.add(c);let o=br.filter(a=>i.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 o){let p=d[m];if(p===void 0)continue;let g=p*n[m];u[m]=g,l+=g,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:o,ranked:s}}async function Hp(e,t={}){let n=Hs(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),i=new Map;for(let s of r){if(i.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");i.set(s.id,s.score)}if(i.size!==e.length||e.some(s=>!i.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let o=n.ranked.map(s=>{let a=i.get(s.id);return{...s,score:a,contributions:{custom:a}}});return o.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),o.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:o}}async function en(e,t,n={}){let r=Hs(t,n),i=await Xr(jp,{surface:e,candidates:t,default_report:r});if(!i.handled)return i.warnings.length>0?{...r,warnings:i.warnings}:r;if(!Array.isArray(i.result)||!i.result.every(o=>typeof o=="object"&&o!==null&&typeof o.id=="string"&&typeof o.score=="number"&&Number.isFinite(o.score)))return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]};try{let o=await Hp(t,{...n,scorer:()=>i.result});return i.warnings.length>0?{...o,warnings:i.warnings}:o}catch{return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]}}}var zp=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Ks(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Wp(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),i=d=>d.reduce((u,l,f)=>u+(2**l-1)/Math.log2(f+2),0),o=i(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:o===0?1:i(n)/o,reciprocal_rank:s<0?0:1/(s+1),required_recall:Ks(e.required_ids??[],a),continuity_coverage:Ks(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function qp(e){return Math.ceil(Bp.encode(JSON.stringify(e)).byteLength/4)}function Vp(e){return Math.round(e*1e4)/1e4}function Yp(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(o=>o.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(o=>o.id),r=new Set(n),i=(e.ranking?.items??[]).filter(o=>r.has(o.id)).map(o=>({id:o.id,contributions:o.contributions}));return{rankedIds:n,attribution:i}}async function Xp(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:i}=Yp(n,e.surface),o={...n,ranking:void 0},s=qp(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Wp({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:i}}function Jp(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=zp;for(let o of n)if(!Number.isFinite(t[o]))throw new TypeError(`Context evaluation threshold ${o} must be a finite number`);let r=Object.fromEntries(n.map(o=>[o,Vp(e.reduce((s,a)=>s+a.metrics[o],0)/e.length)])),i=n.filter(o=>r[o]<t[o]).map(o=>`${o}:${r[o]}<${t[o]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:i.length===0,failures:i}}async function Zb(e,t,n){let r=[];for(let i of e)r.push(await Xp(i,t));return Jp(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 Qp={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Zp=["identity","summary","full"];function em(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=Zp.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 tm(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=Qp[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,i=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(i)||i<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:i,profile:t}}function nm(e){let t=new Set;for(let n of e){if(em(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 rm(e,t,n,r,i){let o=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&i()>=r)return{index:o,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=1;let d=o<0?void 0:e[o],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))&&(o=a)}return{index:o,evaluated:s,timedOut:!1}}function im(e){let t=new Set,n=[],r=e.tokenBudget,i=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)},o=d=>{let u=d.token_costs.identity;n.push({...d,projection:"identity",tokens:u,marginal_value:i(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&&o(d);let s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=rm(s,r,i,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;o(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function om(e,t){let n=t;for(let r of["summary","full"]){let i=r==="summary"?"identity":"summary",o=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[i],d=a.token_costs[r]-a.token_costs[i];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 o){if(s.projection!==i)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function zs(e,t){let n=tm(t),r=nm(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=im({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,c=om(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 sm}from"node:crypto";import{appendFile as am,mkdir as cm,readFile as dm,rename as um,stat as lm,writeFile as fm}from"node:fs/promises";import Ws 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 qs=2048,Vs=30,Ys=864e5,pm=262144,mm="context-usage-ledger",ne=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Xs(e){return Ws.join(e,"runtime","context-usage.jsonl")}function tt(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new ne("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Js(e){try{let n=(await dm(Xs(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??qs,i=e.retentionDays??Vs,o=tt(e).ms-i*Ys;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function Qs(e,t){let n=e.maxEvents??qs,r=e.retentionDays??Vs;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new ne("Context usage retention requires positive maxEvents and retentionDays");let i=Xs(e.pmRoot),o=Ws.dirname(i),s=await Te(e.pmRoot,mm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await cm(o,{recursive:!0}),await am(i,t.map(u=>`${JSON.stringify(u)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await lm(i)).size<=pm)return;let c=await Js(e),d=`${i}.${process.pid}.${sm()}.tmp`;await fm(d,`${c.map(u=>JSON.stringify(u)).join(`
7
- `)}
8
- `,"utf8"),await um(d,i)}finally{await s()}}async function Zs(e,t){await Qs(e,[t])}async function tn(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new ne("Context usage serving requires an author and valid ranked rows");await Zs(e,{kind:"serve",at:tt(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function sk(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new ne("Context usage touch requires author, itemId, and intent");await Zs(e,{kind:"touch",at:tt(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function ak(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new ne("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new ne("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new ne("Context usage touch requires non-empty itemId");r.add(a)}let i=tt(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await Qs(e,o)}function gm(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function nn(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Js(e),n=tt(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new ne("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(l=>l.kind==="touch"&&l.author===i).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0;for(let l of t){if(l.kind!=="serve"||l.author!==i)continue;a+=1;let f=Date.parse(l.at);for(let m of l.rows){if(!m.included)continue;let p=gm(o,m.id,f,r);if(p===void 0)continue;c+=1;let g=Math.max(0,(n-p)/Ys);s.set(m.id,(s.get(m.id)??0)+Math.exp(-g/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 nt from"node:fs/promises";import rt from"node:path";import{createHash as hm,randomUUID as ym}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 kr=1,vr=1,ea=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],_m={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 rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ta(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function wm(e){let t={};for(let n of ea){let r=e[n];if(r!==void 0){if(!ta(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function bm(e,t){let n=e.map(i=>[i.id,t(i)]),r=Math.max(0,...n.map(([,i])=>i));return Object.fromEntries(n.map(([i,o])=>[i,r===0?0:o/r]))}function km(e){let t=new Map(e.map(i=>[i.id,0])),n=i=>{t.set(i,(t.get(i)??0)+1)};for(let i of e){typeof i.parent=="string"&&i.parent.trim()&&(n(i.id),n(i.parent.trim()));for(let o of i.dependencies??[])typeof o.id!="string"||!o.id.trim()||(n(i.id),n(o.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(i=>[i.id,r===0?0:t.get(i.id)/r]))}function vm(e,t){return{...t,activityDensity:t.activityDensity??bm(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??km(e)}}function Im(e){if(!rn(e)||typeof e.id!="string"||!rn(e.signals))return null;let t={},n=new Set(ea);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!ta(i))return null;t[r]=i}return{id:e.id,signals:t}}function Em(e){if(!rn(e)||e.format_version!==kr||e.signal_set_version!==vr||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(Im);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:kr,signal_set_version:vr,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function xm(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=Zt(e,vm(e,t)).map(({id:r,signals:i})=>({id:r,signals:wm(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:kr,signal_set_version:vr,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var Ir=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=rt.resolve(t)}async read(){try{return JSON.parse(await nt.readFile(this.filePath,"utf8"))}catch(t){if(rn(t)&&dt(t))return null;throw t}}async write(t){let n=rt.dirname(this.filePath);await nt.mkdir(n,{recursive:!0});let r=rt.join(n,`.${rt.basename(this.filePath)}.${ym()}.tmp`);try{await nt.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await nt.rename(r,this.filePath)}finally{try{await nt.rm(r,{force:!0})}catch{}}}},Er=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let l=await this.adapter.read();i=Em(l),l!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(l=>l.id).sort((l,f)=>l.localeCompare(f)),s=i?.items.map(l=>l.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((l,f)=>l===o[f]),c;if(a&&i!==null)c=i;else{i!==null&&r.push("context_signal_store_stale"),c=xm(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=Zt(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=>_m[l])}}};function Cm(e){let t=hm("sha256");for(let n of[...e].sort((r,i)=>r.id.localeCompare(i.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function on(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let i=n?null:await De(t.pmRoot),o=t.sourceCursor??i?.source_cursor??Cm(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Er(new Ir(rt.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,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 Sm(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 Tm(e,t,n){let r,i;for(let o of t){let s=Sm(o);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&o.op==="create");r=s,a&&Number.isFinite(Date.parse(o.ts))&&(i={id:e,completed_at:o.ts,history_op:o.op})}return i}function na(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 hk(e,t,n){let r=[];for(let i of e){if(i.completed_at!==void 0||!n.has(i.status.trim().toLowerCase()))continue;let o=Tm(i.id,t.get(i.id)??[],n);o!==void 0&&r.push(o)}return r.sort((i,o)=>i.id.localeCompare(o.id))}import Dm from"node:path";import{createHash as Rm}from"node:crypto";import Am 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 ra=1,Lm=1e4,ia=12;function Fm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Mm(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let i=t.get(r);if(!i)return;if(i.type.toLowerCase()==="epic")return i;r=i.parent}}function Nm(e){let t=[...e.items].sort((i,o)=>o.completion.timestamp.localeCompare(i.completion.timestamp)||i.item.id.localeCompare(o.item.id)),n=new Set,r=0;for(let{item:i}of t){let o=i.resolution??i.close_reason;o?.trim()&&n.add(o.trim()),r+=(i.notes?.length??0)+(i.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:i,title:o}})=>({id:i,title:o})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function Om(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(o=>t.statusRegistry.terminal_done_statuses.has(C(o.status,t.statusRegistry))).map(o=>{let s=na(o);if(!s.resolved)throw new TypeError(`Completed item ${o.id} has no reporting timestamp`);return{item:o,completion:s}}),r=new Map(e.map(o=>[o.id,o])),i=new Map;for(let o of n){let{item:s,completion:a}=o,c=Fm(a.timestamp),d=`epoch:${c}`,u=i.get(d)??{kind:"epoch",key:c,label:c,items:[]};u.items.push(o),i.set(d,u);let l=Mm(s,r);if(l){let f=`epic:${l.id}`,m=i.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};m.items.push(o),i.set(f,m)}}return{format_version:ra,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((o,{completion:s})=>(o[s.source]+=1,o),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...i.values()].map(Nm).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function $m(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 Pm(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(i=>typeof i=="string"&&i.length>0),r=[t.first_closed_at,t.last_closed_at].every(i=>typeof i=="string"&&Number.isFinite(Date.parse(i)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every($m)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function jm(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==ra||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(Pm)?t:null}function Um(e){return`scan:${Rm("sha256").update(Ie(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Bm(e,t,n){return n!==void 0?n:(await De(t))?.source_cursor??Um(e)}async function Gm(e){try{let t=jm(JSON.parse(await Am.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&dt(t))}}}async function oa(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Lm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Bm(e,t.pmRoot,t.sourceCursor),i=Dm.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Gm(i),a=s.snapshot;if(s.invalid&&o.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:o};a&&o.push("workspace_memory_stale");let c=Om(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await K(i,`${JSON.stringify(c)}
10
- `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:o}}function Km(e,t,n=ia){let r=Math.max(0,Math.floor(t)),i=0,o=[];for(let s of e.rollups){if(o.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);i+a>r||(o.push(s),i+=a)}return o}function sa(e,t,n=ia){if(e.snapshot===null)return;let r=Km(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 Hm(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(i=>({rollup:i,score:r.filter(o=>[i.key,i.label,...i.outcomes,...i.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(o)).length})).filter(({score:i})=>i>0).sort((i,o)=>o.score-i.score||o.rollup.last_closed_at.localeCompare(i.rollup.last_closed_at)||i.rollup.key.localeCompare(o.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:i})=>i)}function Ck(e,t,n=5){let r=Hm(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 aa=16;async function ca(e,t,n){let r=O(t,A()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<aa;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.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});i.push(d.document.metadata.id),s=d.document.metadata.parent}return i}async function Lk(e){await ti({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await ca(e.pmRoot,e.settings,e.itemId)})}async function Fk(e){await ni(e)}async function Mk(e){await ri({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await ca(e.pmRoot,e.settings,e.itemId)}:{}})}var Nk={lineage_depth:aa,active_items:64,evidence_rows:32};function da(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 zm=["markdown","toon","json","ndjson"],ot=new Set(["Epic","Feature"]),ga=10,ha=1e4,ya=["hierarchy","activity","progress","recently_created","unparented","workload"],Wm=[...ya,"blockers","files","staleness","tests"],qm=/^(\d{4})-(\d{2})-(\d{2})/,Vm=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Ym=/^(\d{4})(\d{2})(\d{2})$/,Xm=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Jm(e){if(!e)return;let t=e.trim().toLowerCase();if(!zm.includes(t))throw new y("Context format must be one of markdown|toon|json|ndjson",h.USAGE);return t}var ua=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 Qm(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!ua.has(r))throw new y(`Context --fields value not projectable: ${r} (valid: ${[...ua].join(", ")})`,h.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new y("Context --fields requires at least one field name",h.USAGE);return t}function it(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function ev(e,t){let n=Jm(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Zm(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:ga)}function Sr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new y("--token-budget must be a positive integer",h.USAGE);return n}function eg(e,t){return t>=ha&&e===Number.MAX_SAFE_INTEGER?ga:e}function tg(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!pn.includes(n))throw new y(`Context --depth must be one of ${pn.join("|")}`,h.USAGE);return n}function ng(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!ut.includes(s))throw new y(`Context --section must be one of ${ut.join("|")}`,h.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...ut]:(t==="deep"?Wm:ya).filter(i=>n.sections[i])}function rg(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function ig(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new y("--stale-threshold must be a number of days (e.g. 7 or 7d)",h.USAGE);let i=parseInt(r[1],10);if(i<=0)throw new y("--stale-threshold must be positive",h.USAGE);return i}function la(e,t){let n=C(e,t),r=L("in_progress",t),i=L("open",t),o=L("blocked",t),s=L("draft",t);return r&&n===r?0:i&&n===i?1:o&&n===o?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function st(e,t){let n=L("closed",t);return C(e,t)===n}function Tr(e,t){let n=L("in_progress",t);return C(e,t)===n}function _a(e,t){let n=L("open",t);return C(e,t)===n}function og(e,t){return t.blocked_statuses.has(C(e,t))}var sg=["compact","brief","fields","includeBody","include_body","parent"];function ag(e){let t={...e};for(let n of sg)delete t[n];return t}function Dr(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let i=Be(e),o=at(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function cg(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new y("Context --parent requires an item id",h.USAGE);return t}function dg(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function ug(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 lg(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function fg(e){let t=qm.exec(e)??Vm.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),i=Number.parseInt(t[3],10);return r>=1&&r<=12&&i>=1&&i<=lg(n,r-1)}function pg(e){let t=Ym.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Xm.exec(e);if(n){let[,r,i,o,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}-${i}-${o}T${s}:${a}${u}${l}`}return e}function wa(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!fg(t))return Number.NaN;let n=Date.parse(pg(t));return Number.isFinite(n)?n:Number.NaN}function Cr(e){let t=wa(e);return Number.isFinite(t)?new Date(t).toISOString():""}function mg(e){let t=wa(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Rr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function we(e,t,n){let r=la(e.status,n)-la(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=dg(e.order,t.order);if(o!==0)return o;let s=ug(e.deadline,t.deadline);if(s!==0)return s;let a=E(Cr(t.updated_at),Cr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function xr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Ar(e,t,n=new Set,r="context"){return zs(e.ranked.map(i=>({id:i.id,item:i.item,rank:i.rank,score:i.score,required:n.has(i.id),cluster:i.item.parent?.trim()||i.item.type,token_costs:{identity:xr({id:i.id,title:i.item.title}),summary:xr({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:xr(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Lr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Fr(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(i=>n.has(i.id));return{model:e.model,available_signals:e.available_signals,items:r.map(i=>({id:i.id,rank:i.rank,baseline_rank:i.baseline_rank,score:i.score,contributions:i.contributions})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function ba(e,t){return t>0?Math.round(e/t*100):0}function Be(e){let t=new Map;for(let n of e){let r=Rr(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function ct(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:Rr(e.parent)};if(t&&n){let i=at(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>st(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=ba(s,o)}}return r}function gg(e){let t=0,n=0,r=0,i=new Set;for(let o of e){if(i.add(o.item_id),o.kind==="deadline"){t+=1;continue}if(o.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:i.size,deadlines:t,reminders:n,scheduled:r}}function sn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function hg(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function yg(e,t,n,r){let i=new Map;for(let c of e)i.set(c.id,c);let o=Be(e),s=new Set(t.filter(c=>ot.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=i.get(c);if(!d)continue;let u=at(c,o),l=o.get(c)??[],f=0,m=0,p=0,g=0;for(let w of u)st(w.status,n)?f++:Tr(w.status,n)?p++:og(w.status,n)?g++:_a(w.status,n)&&m++;let k=l.sort((w,_)=>we(w,_,n)).slice(0,r).map(w=>{let _=at(w.id,o),b=_.filter(I=>st(I.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:_.length,children_closed:b}});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:p,children_blocked:g,children:k})}return a.sort((c,d)=>{let u=i.get(c.id),l=i.get(d.id);return we(u,l,n)}).slice(0,r)}function at(e,t){let n=[],r=[e],i=new Set;for(;r.length>0;){let o=r.pop();if(i.has(o))continue;i.add(o);let s=t.get(o)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function _g(e,t){return(await Yi({compact:!0,limit:String(e)},t)).compact_activity??[]}function wg(e,t,n,r,i){let o=new Map;for(let c of e){if(!c.parent)continue;let d=o.get(c.parent)??[];d.push(c),o.set(c.parent,d)}let s=t.filter(c=>ot.has(c.type)),a=[];for(let c of s){let d=at(c.id,o),u=d.length;if(u===0)continue;let l=0,f=0,m=0,p=0;for(let g of d)st(g.status,r)?l++:n.has(g.id.trim().toLowerCase())?p++:Tr(g.status,r)?m++:_a(g.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:p,completion_pct:ba(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,i)}function bg(e,t,n,r){let i=new Map(t.map(o=>[o.id.trim().toLowerCase(),o]));return e.slice(0,r).map(o=>{let s=Vt(o,i,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?i.get(a.trim().toLowerCase()):void 0;return{id:o.id,title:o.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:o.blocked_reason??null,unblock_note:o.unblock_note??null}})}function kg(e,t){let n=new Map;for(let r of e)for(let i of r.files??[]){let o=n.get(i.path)??new Set;o.add(r.id),n.set(i.path,o)}return[...n.entries()].map(([r,i])=>({path:r,references:i.size,items:[...i].sort()})).sort((r,i)=>i.references-r.references).slice(0,t)}function vg(e,t,n){let r=new Map;for(let i of e){let o=i.assignee??null,s=r.get(o)??[];s.push(i),r.set(o,s)}return[...r.entries()].map(([i,o])=>({assignee:i,active:o.length,in_progress:o.filter(s=>Tr(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Ig(e,t,n,r){let i=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(o=>new Date(o.updated_at).getTime()<i).map(o=>({id:o.id,title:o.title,status:o.status,updated_at:o.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(o.updated_at).getTime())/(1440*60*1e3))})).sort((o,s)=>s.stale_days-o.stale_days).slice(0,r)}function Eg(e,t,n,r){return e.map(i=>({item:i,sortKey:Cr(i.created_at)})).sort((i,o)=>{let s=E(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...ct(i,t,n),created_at:i.created_at}))}function xg(e,t,n,r){return e.filter(i=>!Rr(i.parent)&&!ot.has(i.type)).sort((i,o)=>we(i,o,t)).slice(0,r).map(i=>ct(i,t,n))}function Cg(e){let t=0,n=0,r=0,i=0,o=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,i+=u.failed??0,o+=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:i,skipped:o},items_failing:s.sort()}}function fa(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function ka(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",i=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",o=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${i}${o} ${e.title}`}function Sg(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Tg(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`${fa(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${fa(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 pa(e,t,n,r,i){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let o of n)e.push(`- ${i(o)}`);e.push("")}function Dg(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 Rg(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(`- ${Tg(n)}`);e.push("")}function Ag(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let i of n.children){let o=i.children_total>0?Math.round(i.children_closed/i.children_total*100):0;e.push(` - ${i.id} ${i.type} ${i.status} "${i.title}" [${i.children_closed}/${i.children_total} done ${o}%]`)}}e.push("")}}function Lg(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 Fg(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let i of t.recently_created)e.push(n?`- ${r(i)}`:`- ${mg(i.created_at)} ${ka(i)}`);e.push("")}}function Mg(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 Ng(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 Og(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",i=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",o=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${i}${o}`)}e.push("")}}function $g(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 Pg(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 jg(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 Ug(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 Bg(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 tv(e){let t=[],n=e.focus_fields,r=o=>n?Sg(o,n):ka(o);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let o=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${o.length>0?` (${o.join(", ")})`:""}`)}let i=e.sections_included.filter(o=>o!=="blockers"||(e.blockers?.length??0)>0);if(i.length>0&&t.push(`- sections: ${i.join(", ")}`),t.push(""),pa(t,"High-level focus",e.high_level,"No high-level active items.",r),pa(t,"Low-level focus",e.low_level,"No low-level active items.",r),Dg(t,e,r),Rg(t,e),e.workspace_memory){t.push("## Workspace memory");for(let o of e.workspace_memory.rollups)t.push(`- ${o.kind}:${o.key} \u2014 ${o.label} (${o.item_count} completed, latest ${o.last_closed_at})`);t.push("")}return Ag(t,e),Lg(t,e),Fg(t,e,n,r),Mg(t,e,r),Ng(t,e),Og(t,e),$g(t,e),Pg(t,e),jg(t,e),Ug(t,e),Bg(t,e),t.join(`
11
- `)}async function Gg(e,t){let n=T(process.cwd(),t.path),r=await D(n),i=r.context??Br.context,o=H(r.schema),s=tg(e.depth,i),a=Zm(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:ng(e.section,s,i),activityLimit:rg(e.activityLimit,i),staleThresholdDays:ig(e.staleThreshold,i),parentScope:cg(e.parent),focusFields:Qm(e.fields),baseListOptions:ag(e)}}function Mr(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Kg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Hg(e,t){let n=Mr(t.sectionsIncluded),r=await et(void 0,Kg(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(c=>!F(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=zg(t.parentScope,i);return a&&(o=o.filter(c=>a.has(c.id.trim().toLowerCase())),s=s.filter(c=>a.has(c.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:o,allItems:s,fullCorpus:i,subtreeIds:a}}function zg(e,t){if(e===void 0)return;let n=Dr(t,e);if(!n.found)throw new y(`Context --parent item not found: ${e}`,h.NOT_FOUND);return n.ids}async function Wg(e,t,n,r,i,o,s,a,c,d,u,l,f,m,p){let g=[...e].sort((v,ke)=>we(v,ke,i)),k=await nn({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),w=await on(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:c,usageAffinity:k.affinity,claimFocus:p}),_=await en("context",w.candidates),b=_.ranked.map(v=>v.item),I=i.active_statuses,x=b.filter(v=>I.has(C(v.status,i))),M=l?Ce(x,d,u,v=>v.id):0,S=l?x.slice(M,M+s):x,U=l&&S.length>0&&M+S.length<x.length,ce=U&&S.length>0?Z(u,S[S.length-1].id,M+S.length-1):void 0,B=b.filter(v=>r.has(v.id.trim().toLowerCase())),N=new Set([...S.map(v=>v.id),...B.slice(0,s).map(v=>v.id)]),W=Ar({..._,ranked:_.ranked.filter(v=>N.has(v.id))},m,new Set(Object.entries(p??{}).filter(([,v])=>v>=1).map(([v])=>v))),X=W.included.map(v=>v.item),J=X.filter(v=>I.has(C(v.status,i))),be=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=Be(t),re=Mr(o)?Q:void 0,ie=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),dn=v=>{let ke=ct(v,i,re);return r.has(v.id.trim().toLowerCase())&&(ke.blocked=!0,ke.blocker_ids=Vt(v,ie,i).filter(un=>!un.resolved).map(un=>un.id)),ke},Na=J.filter(v=>ot.has(v.type)).slice(0,l?S.length:s).map(dn),Oa=J.filter(v=>!ot.has(v.type)).slice(0,l?S.length:s).map(dn),Pr=x.length===0;return{activeItems:J,blockedItems:be,highLevel:Na,lowLevel:Oa,blockedFallback:Pr?be.slice(0,s).map(dn):[],blockedFallbackUsed:Pr,ranking:_,packing:W,featureStore:w,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function qg(e){return de("context",mt(e,Si))}function Vg(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=ha}async function Yg(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Bs(i,e),s=n===void 0?o.events:o.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=hg(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:o,agendaEvents:c,agendaSummary:gg(a)}}function ma(e,t,n){let r=String(t);return e.filter(i=>C(i.status,n)===r).length}async function Xg(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,c=Be(n),d=n.filter(l=>!F(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?yg(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await _g(t.activityLimit,a):void 0,progress:u("progress")?wg(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?bg(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Eg(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?xg(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?kg(o.activeItems,t.limit):void 0,workload:u("workload")?vg(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Ig(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Cg(o.activeItems):void 0}}function Jg(e,t,n){if(!e)return{};let r=L("canceled",n);return{total_items:t.length,closed:t.filter(i=>st(i.status,n)).length,canceled:t.filter(i=>C(i.status,n)===r).length}}function Qg(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 Zg(e,t){t&&(e.focus_fields=t,e.high_level=it(e.high_level,t),e.low_level=it(e.low_level,t),e.blocked_fallback=it(e.blocked_fallback,t),e.recently_created&&(e.recently_created=it(e.recently_created,t)),e.unparented&&(e.unparented=it(e.unparented,t)))}function eh(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let o of n)delete o.tags,delete o.tags_inherited;return}let r=new Map(n.map(o=>[o.id,o])),i=new Map(n.map(o=>[o.id,o.tags?[...o.tags].sort().join("\0"):void 0]));for(let o of n){if(!o.parent||!o.tags)continue;let s=r.get(o.parent);s&&i.get(o.id)===i.get(s.id)&&(delete o.tags,o.tags_inherited=s.id)}}function th(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 nh(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await tn({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:i.has(o.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=sn(e.warnings,["context_usage_feedback_write_failed"])}}async function rh(e,t,n){if(e)return{};let i=(await qr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),o=i.filter(s=>s.status==="degraded").length;return i.length===0?{}:{extension_health:{total:i.length,ok:i.length-o,degraded:o,packages:i.slice(0,20),...i.length>20?{truncated:!0}:{}}}}async function ih(e,t){let n=ii(),r=await Zr(e),i=n.instance||ei(t);return da(r.semantic_attribution?.[i])}async function nv(e,t){let n=T(process.cwd(),t.path),r=await Gg(e,t),i=await Hg(t,r),o=eg(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Sr(e.tokenBudget,Math.max(256,o*160))},a=me(void 0,s.settings.author_default),c=await ih(n,a),d=rh(e.noExtensionHealth===!0,n,s.settings),u=Xe(i.fullCorpus,s.statusRegistry),l=await Wg(i.listedItemMetadata,i.allItems,i.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,qg(e),Vg(e,i.fullCorpus.length),n,s.tokenBudget,c),f=await Yg(t,s,i.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(I=>I.id))),m=await oa(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),p=sn(i.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),g=ma(l.activeItems,L("in_progress",s.statusRegistry),s.statusRegistry),k=ma(l.activeItems,L("open",s.statusRegistry),s.statusRegistry),w=await Xg({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=Jg(Mr(s.sectionsIncluded),i.allItems,s.statusRegistry),b={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:l.activeItems.length,in_progress:g,open:k,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 b.workspace_memory=sa(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(b,await d),Qg(b,w,l.featureStore.warning_details),eh(b,e.noTags===!0),e.explainRanking===!0&&(b.ranking=Fr(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(I=>I.id))),b.packing=Lr(l.packing)),Zg(b,s.focusFields),p.length>0&&(b.warnings=p),th(b,l.activeItems,l.blockedItems),await nh(b,l,n,a),b}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var oh=["markdown","toon","json"],sh=5,ah=1440*60*1e3;function ch(e){if(!e)return;let t=e.trim().toLowerCase();if(!oh.includes(t))throw new y("Next format must be one of markdown|toon|json",h.USAGE);return t}function pv(e,t){let n=ch(e.format);if(t.json&&n&&n!=="json")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?"json":n??"toon"}function va(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Nr(e,t,n,r){return{...ct(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(i=>({id:i.id,title:i.title,status:i.status})),unblocks:e.unblocks,rank:r}}function dh(e,t,n,r){let i=e.item,o=[],s=L("in_progress",t);return o.push(C(i.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&o.push("completed container \u2014 governance closeout"),o.push(`priority p${i.priority}${i.priority===0?" (highest)":""}`),typeof i.deadline=="string"&&i.deadline.trim().length>0&&o.push(lh(i.deadline,n)),o.push(he(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),o}function Ea(e,t,n){let r=me(n,t),i=[],o=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?o.push({id:s.item.id,assignee:a}):i.push(s)}return{available:i,held:o}}var mv={partitionCallerOwnedReady:Ea,resolveNextCallerAuthor:(e,t)=>xa(e,t)};function uh(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 lh(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),i=new Date(Date.parse(t)).toISOString().slice(0,10),o=Math.round((Date.parse(r)-Date.parse(i))/ah);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function fh(e,t){let n=L("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Or(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function ph(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 Ia(e,t,n){return[...e].sort((r,i)=>{let o=Or(r.item,t),s=Or(i.item,t);return o!==s?Number(o)-Number(s):we(r.item,i.item,n)})}function mh(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:dh(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function gh(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 hh(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 yh(e){try{let t=new Set(e.packing.included.map(n=>n.id));await tn({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=sn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function _h(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=Fr(e.readyRanking,e.featureStore),e.result.packing=Lr(e.packing)),e.result.suggestions=gh(e.recommended,e.blockedRows),await yh({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function wh(e,t,n){if(!n)return e;let r=Dr(t,n);if(!r.found)throw new y(`Next --parent item not found: ${n}`,h.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function bh(e,t,n,r,i,o,s){let a=e.filter(g=>!Or(g.item,t)),c=a.length>0?a:e,d=await nn({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await on(c.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:d.affinity}),l=await en("next",u.candidates),f=Ar(l,s,new Set,"next"),m=new Map(c.map(g=>[g.item.id,g]));return{projectedReady:l.ranked.map(g=>m.get(g.id)).filter(g=>g!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function xa(e,t){let n=e.assignee?.trim();return me(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function gv(e,t){let n=T(process.cwd(),t.path),r=await D(n),i=xa(e,r.author_default),o=H(r.schema),s=G(),a=va(e.limit,"--limit",sh),c=Sr(e.tokenBudget,Math.max(192,a*128)),d=va(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await et(void 0,ph(e,{excludeTerminal:!0}),t),m=await et(void 0,{excludeTerminal:!1,noTruncate:!0},t),p=wh(f.items,m.items,l),g=m.items,k=rr(p,g,o),w=Be(g),_=uh(k.ready,e.includeDecisions===!0),b=Ea(_.agent,r.author_default,i),I=Ia(b.available,w,o),x=[...k.blocked].sort((re,ie)=>we(re.item,ie.item,o)),{projectedReady:M,ranking:S,completedContainer:U,packing:ce,featureStore:B}=await bh(I,w,o,s,i,n,c),N=M.map((re,ie)=>Nr(re,o,w,ie+1)),W=x.map((re,ie)=>Nr(re,o,w,ie+1)),X=Ia(_.decisions,w,o).map((re,ie)=>Nr(re,o,w,ie+1)),J=mh({projectedReady:M,readyRows:N,statusRegistry:o,now:s,completedContainer:U}),be=hh(X.length,b.held.length,a),Q={output_default:"toon",now:s,recommended:J,ready:N.slice(1,a+1),decision_needed:X.slice(0,a),blocked:u?[]:W.slice(0,d),held_by_others:b.held.slice(0,a),summary:{recommended:J!==null,ready:N.length,blocked:W.length,in_progress:fh(N,o),candidates:k.active_count,containers:k.container_count,decision_needed:X.length,held_by_others:b.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:be};return _h({result:Q,recommended:J,blockedRows:W,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:S,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:ce,featureStore:B})}function hv(e){let t=["# pm next","",...kh(e)];if(t.push(...an("Recommended",vh(e.recommended),"No ready work.")),t.push(...an("Decision needed",(e.decision_needed??[]).map(n=>`- ${cn(n)}`),"No human-gated decisions.")),t.push(...an("Ready",e.ready.map(n=>`- ${cn(n)}`),"No ready items.")),e.filters.ready_only||t.push(...an("Blocked",e.blocked.map(n=>`- ${Ih(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 kh(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 vh(e){return e?[`- ${cn(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function an(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Ih(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${cn(e)} blocked_by:${t}`}function cn(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 Eh}from"node:crypto";import{setTimeout as xh}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]="01043e67-99d4-5b68-a1b2-33f35f5cef5f")}catch{}})();var Sa=1,Ta=/^[A-Za-z0-9_-]+$/,Ch=100,Ca=1e3,Sh=250,Tv=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function Y(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,i)=>r.localeCompare(i));return n.length===0?void 0:n}function Da(e){return Eh("sha256").update(Ie({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 $r(e,t){let n={version:Sa,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 Ra(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===Sa,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 Aa(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Ta.test(n))throw new y("Invalid mutation event cursor.",h.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new y("Invalid mutation event cursor.",h.USAGE,{code:"invalid_event_cursor"})}if(!Ra(r,t))throw new y("Mutation event cursor does not match this query.",h.USAGE,{code:"event_cursor_query_mismatch"});return r}function La(e){let t=e??Ch;if(!Number.isSafeInteger(t)||t<0||t>Ca)throw new y(`Mutation event limit must be an integer from 0 to ${Ca}.`,h.USAGE,{code:"invalid_event_limit"});return t}function Fa(e){return e instanceof Error&&e.name==="AbortError"}function Ma(e,t){let n=e?.trim();if(!n)return{};if(Ta.test(n))return{cursor:Aa(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new y("Mutation event --since must be an event cursor or ISO timestamp.",h.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Th(e,t){let n=await hn(e,t);if(n===null){if(!await oi(e))return{...await si(e,t),source:"authoritative_history"};n=await hn(e,t)}if(n===null)throw new y("Mutation event index could not be opened after rebuild.",h.GENERIC_FAILURE,{code:"event_index_unavailable"});return{...n,source:"derived_index"}}function Dh(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new y("Mutation event cursor mode must be batch or row.",h.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Rh(e={}){let t=T(e.cwd??process.cwd(),e.pmRoot);await $(t);let n=La(e.limit),r=Dh(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new y("Mutation event projections are mutually exclusive. Use --provenance or --full.",h.USAGE);let i=await D(t),o=i.agent_identity.identity_vocabulary,s=Ct(i.agent_identity.harness_signals),a=Sn({provenance:e.provenanceFilter},s),c=Y(e.harness),d=Da(e),{cursor:u,sinceTimestamp:l}=Ma(e.since,d),f={...u?{after_ts:u.ts,after_stream_id:u.stream_id,after_stream_offset:u.stream_offset}:l?{since_ts:l}:{},ops:Y(e.type),authors:Y(e.author),harnesses:c,harness_alias_authors:c?Object.entries(o.aliases).filter(([,g])=>c.includes(g)).map(([g])=>g):void 0,agent_instances:Y(e.agentInstance),provenance:[...a].map(([g,k])=>({dimension:g,values:[...k]})),stream_ids:Y(e.item),limit:n},m=await Th(t,f),p=m.events.map(g=>({...r==="row"?{cursor:$r(g,d)}:{},item_id:g.stream_id,version:g.stream_offset+1,ts:g.entry.ts,author:g.entry.author,type:g.entry.op,...g.entry.message===void 0?{}:{message:g.entry.message},patch_count:g.entry.patch.length,...e.full===!0?{entry:g.entry}:{},...e.provenance===!0?{provenance:St(g.entry,o,{itemId:g.stream_id,version:g.stream_offset+1})}:{}}));return{events:p,count:p.length,has_more:m.has_more,cursor_mode:r,...m.events.length===0?{}:{next_cursor:$r(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:Tt(m.events.map(g=>g.entry),o,s)}:{}}}async function*Ah(e={}){let t=e.intervalMs??Sh;if(!Number.isSafeInteger(t)||t<10)throw new y("Mutation event follow interval must be an integer of at least 10ms.",h.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Rh({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await xh(t,void 0,{signal:e.signal})}catch(o){if(Fa(o))return;throw o}}}async function*Dv(e={}){for await(let t of Ah({...e,cursorMode:"row"}))for(let n of t.events)yield n}var Rv={decodeMutationEventCursor:Aa,encodeMutationEventCursor:$r,eventQueryFingerprint:Da,isAbortError:Fa,isMutationEventCursorEnvelope:Ra,parseMutationEventLimit:La,resolveMutationEventStart:Ma};(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 Lv(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,i)=>r.localeCompare(i))}export{Ti as a,Di as b,Ke as c,Ri as d,Ai as e,Hh as f,Li as g,xn as h,py as i,my as j,Ty as k,Dy as l,It as m,vt as n,Ki as o,Fy as p,V as q,Et as r,Hi as s,xt as t,Ct as u,Sn as v,St as w,Ky as x,Tn as y,Tt as z,e_ as A,Yi as B,Xi as C,Ac as D,Ae as E,r_ as F,i_ as G,j as H,Zi as I,Rt as J,f_ as K,An as L,p_ as M,Ln as N,Bc as O,Kc as P,Fn as Q,Hc as R,Me as S,Lt as T,Mn as U,Ft as V,E_ as W,ro as X,W_ as Y,lo as Z,fo as _,po as $,mo as aa,go as ba,Ut as ca,yo as da,Oe as ea,_o as fa,vo as ga,Kt as ha,Io as ia,xu as ja,Ro as ka,Ht as la,Wn as ma,zt as na,Ao as oa,Fo as pa,qn as qa,Ye as ra,No as sa,Yn as ta,Xn as ua,Jn as va,Oo as wa,Qn as xa,Po as ya,jo as za,Bo as Aa,Xu as Ba,Kw as Ca,Lv as Da,hl as Ea,he as Fa,qt as Ga,Xo as Ha,Vt as Ia,Xe as Ja,rr as Ka,ir as La,Je as Ma,Qo as Na,Zo as Oa,os as Pa,ur as Qa,as as Ra,ab as Sa,cb as Ta,us as Ua,ls as Va,ub as Wa,or as Xa,sr as Ya,wl as Za,ar as _a,tb as $a,nb as ab,rb as bb,ib as cb,Kl as db,bs as eb,gs as fb,hs as gb,Vl as hb,Yl as ib,Xl as jb,et as kb,Wb as lb,qb as mb,Vb as nb,Bs as ob,br as pb,Zt as qb,jp as rb,Hs as sb,Hp as tb,en as ub,zp as vb,Wp as wb,Xp as xb,Jp as yb,Zb as zb,Qp as Ab,zs as Bb,ne as Cb,tn as Db,sk as Eb,ak as Fb,nn as Gb,kr as Hb,vr as Ib,_m as Jb,Em as Kb,xm as Lb,Ir as Mb,Er as Nb,on as Ob,na as Pb,hk as Qb,Lm as Rb,Om as Sb,oa as Tb,Km as Ub,sa as Vb,Hm as Wb,Ck as Xb,ca as Yb,Lk as Zb,Fk as _b,Mk as $b,Nk as ac,da as bc,zm as cc,Qm as dc,it as ec,ev as fc,Sr as gc,tg as hc,ng as ic,Dr as jc,we as kc,Ar as lc,Lr as mc,Fr as nc,Be as oc,ct as pc,sn as qc,tv as rc,eh as sc,nv as tc,oh as uc,pv as vc,mv as wc,uh as xc,gv as yc,hv as zc,Tv as Ac,Rh as Bc,Ah as Cc,Dv as Dc,Rv as Ec};
13
- //# sourceMappingURL=chunk-TIQ6AMH2.js.map