@unbrained/pm-cli 2026.8.29 → 2026.8.31
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.
- package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +1 -1
- package/.agents/skills/pm-developer/SKILL.md +1 -1
- package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +2 -2
- package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +1 -1
- package/.agents/skills/pm-developer/references/TOKEN_BUDGETS.md +1 -1
- package/.agents/skills/pm-extensions/SKILL.md +2 -2
- package/.agents/skills/pm-extensions/references/AUTHORING.md +1 -1
- package/.agents/skills/pm-extensions/references/LIFECYCLE.md +1 -1
- package/.agents/skills/pm-sdk/SKILL.md +1 -1
- package/.agents/skills/pm-user/SKILL.md +2 -2
- package/.agents/skills/pm-user/references/WORKFLOWS.md +2 -2
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +24 -0
- package/dist/cli/register-list-query.js +32 -17
- package/dist/cli/register-operations.d.ts +2 -0
- package/dist/cli/register-operations.js +20 -9
- package/dist/cli-bundle/bundle-manifest.json +137 -137
- package/dist/cli-bundle/chunks/chunk-2XVV45NJ.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-N6OR6FAR.js → chunk-3FCSFWZT.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-WS2GJQVG.js → chunk-52JXYSDW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TGNAA66W.js → chunk-5DH5XCJL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2UETTHY6.js → chunk-IEFJ3ZEB.js} +29 -29
- package/dist/cli-bundle/chunks/{chunk-MTTKAUBX.js → chunk-JIFYOJF7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3TEF3HM5.js → chunk-MWIN6OH2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GNWPTEBW.js → chunk-NW6LV3TU.js} +64 -64
- package/dist/cli-bundle/chunks/{chunk-7SKMLSMX.js → chunk-OUGDA7NR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2MKLQL2E.js → chunk-QZCIBZR3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CMIEDWAY.js → chunk-SXMHPK4V.js} +41 -41
- package/dist/cli-bundle/chunks/{register-list-query-OMKJ5ONN.js → register-list-query-7C7DKZ2U.js} +11 -11
- package/dist/cli-bundle/chunks/{register-mutation-QBSNCOY3.js → register-mutation-OI4BJLUX.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-IIMA5OKO.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-GLQ5SYV3.js → register-setup-52H36QCB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HVQ22RC4.js → chunk-2FEZ5SKM.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y3JJXRVK.js → chunk-4O4CJAR6.js} +5 -5
- package/dist/cli-bundle/focused-chunks/{chunk-RKOKG43G.js → chunk-APN4QN6R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LYFWQMVC.js → chunk-BEVHCEWG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3UMBF26I.js → chunk-BMD42PUG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XXOWRJZ5.js → chunk-BPWJ4QM5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-G6PATS5E.js → chunk-EUTABA4M.js} +15 -15
- package/dist/cli-bundle/focused-chunks/{chunk-73EDXGYE.js → chunk-FOMZ6NG5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JCOOAUHK.js +51 -0
- package/dist/cli-bundle/focused-chunks/chunk-JEFKLWMM.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-JZYPPMXF.js → chunk-KB5OFSFD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AD6ULRAF.js → chunk-QDFJIRKN.js} +4 -4
- package/dist/cli-bundle/focused-chunks/{chunk-THEPQMLX.js → chunk-SVXJYD6G.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3AVAWVZA.js → chunk-UN34D63M.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TDK3OCX3.js → chunk-VJ7EFMFL.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +29 -29
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +33 -33
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/schema/runtime-schema.d.ts +4 -0
- package/dist/core/schema/runtime-schema.js +60 -48
- package/dist/core/schema/status-defs-file.js +5 -2
- package/dist/mcp/legacy-adapter.d.ts +11 -2
- package/dist/mcp/legacy-adapter.js +26 -12
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +6 -2
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +12 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +3 -2
- package/dist/sdk/cli-contracts/tool-schema.js +11 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +14 -2
- package/dist/sdk/governance/health.js +17 -6
- package/dist/sdk/governance/status-role-diagnostics.d.ts +27 -0
- package/dist/sdk/governance/status-role-diagnostics.js +36 -0
- package/dist/sdk/governance/validate-normalization.d.ts +6 -0
- package/dist/sdk/governance/validate-normalization.js +37 -0
- package/dist/sdk/governance/validate.d.ts +1 -1
- package/dist/sdk/governance/validate.js +20 -35
- package/dist/sdk/governance/workspace-position.d.ts +69 -0
- package/dist/sdk/governance/workspace-position.js +164 -0
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/mcp/protocol.d.ts +10 -2
- package/dist/sdk/mcp/protocol.js +15 -4
- package/dist/sdk/query/context.js +11 -14
- package/dist/sdk/query/list.d.ts +2 -0
- package/dist/sdk/query/list.js +33 -12
- package/dist/sdk/runtime-extended-actions.js +8 -4
- package/dist/sdk/schema.js +12 -2
- package/dist/sdk/test/execution.d.ts +15 -0
- package/dist/sdk/test/execution.js +35 -27
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/AGENT_PROVENANCE_ADR.md +1 -1
- package/docs/AGENT_RUNTIME_PRIMITIVES.md +2 -2
- package/docs/CLAUDE_CODE_PLUGIN.md +3 -3
- package/docs/COMMANDS.md +12 -12
- package/docs/CONFIGURATION.md +1 -1
- package/docs/DEFECT_RECURRENCE.md +2 -0
- package/docs/MCP_2026_07_28.md +28 -8
- package/docs/MCP_2026_07_28_CONFORMANCE.md +1 -0
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +4 -2
- package/docs/ONBOARDING.md +1 -1
- package/docs/README.md +2 -1
- package/docs/READ_OUTPUT_CONTRACTS.md +1 -1
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
- package/docs/SDK.md +3 -3
- package/docs/TESTING.md +23 -14
- package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +113 -0
- package/docs/examples/policy-restricted-extension/README.md +2 -2
- package/docs/examples/starter-extension/README.md +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/marketplace.json +2 -2
- package/package.json +4 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +171 -10
- package/dist/cli-bundle/chunks/chunk-7X6OZEIV.js +0 -34
- package/dist/cli-bundle/chunks/register-operations-UC77FQZC.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AXZ5AJAF.js +0 -50
- package/dist/cli-bundle/focused-chunks/chunk-LLNTHF5X.js +0 -2
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{$g as bi,Ac as A,Ae as Se,Ai,B as qr,Be as li,C as h,Ca as Ie,Cd as H,Ce as fi,De as kn,E as y,Ed as ht,G as P,Gh as Ei,Ha as _n,Hh as Ii,Ia as mt,Ig as In,Jc as wn,Lc as ei,Lh as Cn,Mc as ti,Mg as De,Ne as yt,Nk as Li,Oa as O,Pa as gt,Pb as xe,Pd as L,Pe as pi,Pg as gi,Qd as C,R as G,Rc as ni,Rd as M,Rg as hi,Sg as yi,Te as vn,U as I,Ue as _t,Ug as Ke,V as Vr,Ve as le,Vf as bt,W as ae,Wa as D,Wd as ri,We as Z,Wg as fe,Xd as ii,Xg as xn,Xh as vt,Yg as _i,Yh as Et,Ze as mi,_a as Jr,_e as Te,ab as bn,ba as Yr,be as oi,bh as wt,bi as xi,c as hn,ce as si,d as pt,da as Xr,de as ai,e as zr,ee as ci,eh as wi,ei as R,em as Mi,f as se,fe as di,g as K,gc as Zr,h as Wr,ih as ki,je as Ce,jh as Re,ki as Ci,oi as Si,pi as Ti,qi as Ae,ri as Di,s as yn,se as ui,tb as q,vh as vi,vi as $,wf as En,wh as kt,wi as pe,xi as me,yb as Qr,yi as Ri,ze as he,zi as ee}from"./chunk-GNWPTEBW.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 Ka(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 Ha(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 Fi(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let i=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(o=>{let s=i[o];return typeof s=="string"?[[o,s]]:[]})))}if(n.patchIndex!==void 0){let i=e[n.patchIndex];i&&(n.op??=i.op,n.path??=i.path,n.from??=i.from)}return n}function Ni(e,t,n={}){let r=e.trim(),i=n.errorSubject??"history",o=i==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Ha(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=Ka(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 He(e,t,n,r){let i=bi(e,t);if(i.ok)return i.document;let o=Fi(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 Oi(e,t){let n=structuredClone(Ke);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(fe(n)!==i.before_hash)throw new y(`History hash mismatch before replay at entry ${r+1}.`,h.GENERIC_FAILURE);if(n=He(n,i.patch,r+1,i.op),fe(n)!==i.after_hash)throw new y(`History hash mismatch after replay at entry ${r+1}.`,h.GENERIC_FAILURE)}return n}function $i(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 Sn from"node:fs/promises";import za 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 Wa(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=xi(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 qa(e){let t=await se(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 pe(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await me(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 ey(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await De(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await za.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await De(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function Pi(e){let t=[...Wa({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Re(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 qa({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 Tn(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function ji(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Ui(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=ji(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 Bi(e,t){let n=[...new Set(Tn(e).map(o=>o.trim()))].filter(o=>o.length>0).map(o=>({kind:"literal",value:o})),r=[...new Set(Tn(t).map(o=>o.trim()))].filter(o=>o.length>0).map(Ui),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 Gi(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 Ki(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 Dn(e,t,n){let r=e,i=0;for(let o of t){let s=o.kind==="literal"?Gi(r,o.value,n):Ki(r,o,n);r=s.value,i+=s.replacements}return{value:r,replacements:i}}function It(e,t,n){if(typeof e=="string")return Dn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(o=>{let s=It(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=It(s,t,n);r+=a.replacements,i[o]=a.value}return{value:i,replacements:r}}return{value:e,replacements:0}}function Va(e){let t=structuredClone(Ke),n=0,r=0;for(let i=0;i<e.length;i+=1){let o=e[i];fe(t)!==o.before_hash&&(n+=1),t=He(t,o.patch,i+1,o.op),fe(t)!==o.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Ya(e,t,n){let r=0,i=!1,o=e.message;if(typeof e.message=="string"){let a=Dn(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=It(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 Xa(e,t,n){let r=structuredClone(Ke),i=0,o=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ya(e[a],t,n);o+=c.replacements,c.changed&&(i+=1);let d=fe(r);r=He(r,c.entry.patch,a+1,c.entry.op);let u=fe(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:i,replacements:o}}function Hi(e){return Object.keys(e.metadata).length>0}async function Ja(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await me(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Qa(e){if(!Hi(e.finalDocument))return{raw:null,path:null,document:null};let t=ii(xn(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:Jr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:ri(t,{format:"toon",schema:e.settings.schema})}}function Za(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 ec(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??xn(e.rewritten.finalDocument);return t.push(yi({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function tc(e){let t=[];return Pi({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 Ti(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 Sn.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,wi(e.rewrittenEntries))}catch(c){try{await nc(e.subject.historyPath,n,i,o)}finally{await De(e.subject.historyPath)}throw c}await De(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await Di({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 rc(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function nc(e,t,n,r){t===null?await Sn.rm(e,{force:!0}):await K(e,t);for(let i of n){let o=r.get(i);o===void 0?await Sn.rm(i,{force:!0}):await K(i,o)}}async function rc(e,t){let n=[],r=new Set(t.filter(i=>i!==null));for(let i of r)n.push(...await wn({path:i,scope:"project",op:"history_redact"}));return n.push(...await wn({path:e,scope:"project",op:"history_redact:history"})),n}async function Rn(e,t,n,r){let i=await pe(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:bn(e,i.id),located:i};let o=kt(t,n.id_prefix),s=vi(t),a=o===s?[o]:[o,s];for(let c of a){let d=bn(e,c);if(await hn(d))return{id:c,historyPath:d,located:null}}throw new y(`Item ${t} not found`,h.NOT_FOUND)}async function Ey(e,t,n){let r=D(process.cwd(),n.path);await $(r);let i=await R(r),o=O(i,A()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=Bi(t.literal,t.regex),u=await Rn(r,e,i,o.type_to_folder);if(!await hn(u.historyPath))throw new y(`No history stream exists for ${u.id}.`,h.NOT_FOUND);let l=await se(u.historyPath),f=await Se(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=Va(f),p=Xa(f,d,c),g=m.hashMismatchesBefore+m.hashMismatchesAfter,k=!!t.dryRun,b=p.replacements>0,_=[];g>0&&_.push(`history_redact_preexisting_hash_mismatches:${g}`),b||_.push("history_redact_no_matches");let w=await Ja(u,i),E=Qa({pmRoot:r,subject:u,settings:i,typeToFolder:o.type_to_folder,finalDocument:p.finalDocument}),x=(w.path??null)!==(E.path??null)||(w.raw??null)!==(E.raw??null),F=he(t.author,i.author_default),T=Za(t,p),{rewrittenEntries:U,auditEntryAdded:ue}=ec({rewritten:p,dryRun:k,changed:b,nextItemDocument:E.document,author:F,message:T}),B=wt(U);if(!B.ok)throw new y(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,h.GENERIC_FAILURE);return!k&&b&&_.push(...await tc({pmRoot:r,subject:u,settings:i,typeRegistry:o,historyRawBeforeLock:l,currentItem:w,nextItem:E,author:F,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:k,changed:b,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:ue,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:w.path!==null,exists_after:E.path!==null,path_before:w.path,path_after:E.path,changed:x},warnings:[...new Set(_)].sort((N,W)=>N.localeCompare(W)),generated_at:G()}}var Iy={applyLiteralRule:Gi,applyRegexRule:Ki,buildRedactionRules:Bi,hasItemMetadata:Hi,normalizeRegexFlags:ji,normalizeStringArrayInput:Tn,parseRegexRule:Ui,redactStringValue:Dn,redactUnknownValue:It};(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 Py(e,t){let n=wt(e),r=e.length>0?e[e.length-1].after_hash:hi(),i=t===void 0?void 0:gi(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 jy(e,t,n={}){let r=D(n.cwd??process.cwd(),n.pmRoot);await $(r);let i=await R(r),o=O(i,A()),s=await Rn(r,e,i,o.type_to_folder),a=await Se(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=Ni(t,a),d=$i(Oi(a,c.historyIndex),c),u=_i(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 ic(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:lc(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function Wi(e,t,n,r){let i=le("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:mi(t.after,i)}}function Le(e,t,n){e.get(t).add(n)}function ze(e){return new Map(e.map(t=>[t,new Set]))}function qi(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function xt(e){if(Array.isArray(e))return e.map(n=>xt(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?xt(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,xt(r)]))}function zi(e){return JSON.stringify(xt(e))}function oc(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 sc(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||oc(i,t,n,r);return r}function ac(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 qi(r)}function Vi(e,t){let n=ze(e);for(let[r,i]of t)for(let o of i)Le(n,o,r);return ac(sc(e,t),n)}function cc(e,t){let n=ze(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";Le(n,o?r.source:r.target,o?r.target:r.source)}return n}function dc(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 uc(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 lc(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function St(e,t={}){let n=t.registry??q(),r=[...e.nodes()],i=cc(e,n),o=dc(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Vi(r,i).filter(u=>u.length>1||i.get(u[0]).has(u[0])),d=uc(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 fc(e,t,n){let r=ze(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))||Le(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:o.length}}function pc(e,t,n,r,i,o){let s=Ct(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=Ct(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 mc(e,t,n){let r=n.direction,i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Wi(t,n,r,i),{adjacency:c,inspectedEdges:d}=fc(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(b=>!u.seen.has(b))&&(f=!0);continue}for(let b of k)if(ic(u,b,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 Ct(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return mc(e,t,{...n,direction:r});let i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Wi(t,n,r,i);return pc(e,t,n,a,o,s)}function Yi(e){let t=[...e.nodes()],n=ze(t),r=ze(t);for(let c of e.edges())Le(n,c.source,c.target),Le(n,c.target,c.source),Le(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:qi(i),stronglyConnected:Vi(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 Ky(e,t){let n=new Map(e.edges.map(i=>[zi(i),i])),r=new Map(t.edges.map(i=>[zi(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 Tt(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 Xi(e,t,n="--type"){if(e===void 0)return;let r=gt(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 Dt={version:1,aliases:{}};function Rt(e=[]){let t=new Set(Ce),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 Ji(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 An(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 Ln(e,t=Ce){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 At(e,t=Dt,n={}){let r=An(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 Zy(e,t,n=Dt,r=Ce){return Mn(t,n,r)(e)}function Mn(e,t=Dt,n=Ce){let r=Ji(e.harness),i=Ji(e.agentInstance),o=Ln(e,n);return s=>{let c=An(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 Lt(e,t=Dt,n=Ce){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);An(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 gc from"node:fs/promises";import eo 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 hc=20,yc=5,_c=15,bc="-24h";function u_(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var wc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Fn(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 Qi(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 ae(i,new Date(t),n)}function kc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&I(e.ts,t)<0||n&&I(e.ts,n)>=0)}function Zi(e,t){return t===void 0?e:e.slice(0,t)}function We(e,t=""){return typeof e=="string"?e:t}function vc(e,t){return{...t,id:e,ts:We(t.ts),author:We(t.author,"unknown"),op:We(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:We(t.before_hash),after_hash:We(t.after_hash)}}function Ec(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 Ic(e){try{return(await gc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(zr(t))return[];throw t}}function xc(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 Cc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?_c:n==="compact"?hc:yc}function Sc(e,t){let n=G(),r=t==="digest",i=Qi(e.to??(r?n:void 0),n,"--to"),o=Qi(e.from??(r?bc:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&I(o,i)>=0)throw new y("Activity --from must be before --to",h.USAGE);let s=Cn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new y("Activity --unbounded cannot be combined with --limit",h.USAGE);return{id:Fn(e.id,"Activity --id"),op:Fn(e.op,"Activity --op"),author:Fn(e.author,"Activity --author"),from:o,to:i,limit:Cc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Tc(e){let t=D(process.cwd(),e.path);return await $(t),{pmRoot:t,settings:await R(t)}}async function Dc(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 ki({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=eo.join(e.pmRoot,"history");return await ei({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function Rc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:kc(t,n.from,n.to)}async function Ac(e,t){let n=[];for(let r of await Ic(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await Se(eo.join(e,r),i);for(let s of o){let a=vc(i,s);Rc(s,a,t)&&n.push(a)}}return n}function Lc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function Mc(e){let t=[...e.entries()].sort(([r,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function Fc(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,I(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),I(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:Mc(i.operations)}}).sort((r,i)=>I(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Nc(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function Oc(e,t,n,r,i){if(e==="digest"){let s=Fc(t,r),a=Zi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Zi(t,n);return e==="compact"?{rows:{compact_activity:Lc(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 to(e,t){let n=await Tc(t),r=xc(e),i=Sc(e,r),o=await Dc(n),s=Rt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=Mn({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),d=Ec(await Ac(o.historyDir,i)).filter(c),u=Oc(r,d,i.limit,o.itemsById,f=>At(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:wc[r]},omission_receipt:pi("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:Nc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:Lt(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]="971d929f-12be-5648-93c9-8a9878b40dde")}catch{}})();function ce(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function te(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}(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]="f3f3beb2-1d60-52fe-88ce-1ab3cb9dba0d")}catch{}})();var $c="global",g_="external",Pc=["open","closed","unknown"],qe=new Map,jc=240,Uc=2048;function no(e,t,n){return(e?.trim()||t).slice(0,n)}function Bc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return typeof t.status=="string"&&(t.title==null||typeof t.title=="string")&&(t.source==null||typeof t.source=="string")&&(t.checkedAt==null||typeof t.checkedAt=="string")}function h_(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(qe.has(t))throw new Error(`External dependency resolver already registered: ${t}`);let n={name:t,supports:r=>e.supports(r),resolve:r=>e.resolve(r)};return qe.set(t,n),()=>{qe.get(t)===n&&qe.delete(t)}}async function y_(e,t={}){let n=e.trim();if(!ce(n))return null;let r=[...qe.values()].filter(o=>{try{return o.supports(n)}catch{return!1}}),i=await Promise.allSettled(r.map(o=>Promise.resolve().then(()=>o.resolve(n))));for(let[o,s]of i.entries()){if(s.status!=="fulfilled"||!Bc(s.value))continue;let a=r[o],c=s.value,d=Pc.includes(c.status)?c.status:"unknown",u=no(c.title,"",jc),l=no(c.source,n,Uc),f=Date.parse(c.checkedAt?.trim()??""),m=Number.isFinite(f)?new Date(f).toISOString():t.now?.()??new Date().toISOString();return{id:n,status:d,resolved:d==="closed",title:u.length>0?u:null,source:l,checked_at:m,resolver:a.name}}return null}function __(e){let t=e?.trim();if(t)return te(t)?$c:t}function b_(e,t,n){let r=e.trim();return te(n)?r:kt(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="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 Ve(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Mt(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Gc(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 Kc(e,t){let n=[...e].sort(),r=Gc(n,t),i=new Set,o=Hc(n,t),s=[];for(let a of r.reverse()){if(i.has(a))continue;let c=zc(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 Hc(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 zc(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 ro(e){let t=new Map;for(let n of e){let r=Ve(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Wc(e,t,n){let r=Ve(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 qc(e,t,n,r){let i=Ve(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 io(e,t){let n=new Map;for(let[r,i]of e){let o=Wc(r,i,e);o&&n.set(Mt(o),o);for(let s of i.dependencies??[]){let a=qc(r,s,e,t);a&&n.set(Mt(a),a)}}return[...n.values()].sort((r,i)=>Mt(r).localeCompare(Mt(i)))}function oo(e,t=j()){return io(ro(e),t)}function Vc(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 Yc(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=Ve(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 Ft(e,t=r=>r==="closed"||r==="canceled",n=j()){let r=ro(e),i=io(r,n),o=On(i),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Kc([...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:Vc(i,o.parents_by_child,s),divergences:Yc(r,i,s)}}function T_(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 On(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 Nn(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function D_(e,t,n,r,i){let o=Ve(n);if(!o)return;let s=Ft(e,r,i),a=Ft(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&&Nn(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&&Nn(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=>Nn(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]="e04a91fa-4625-50fd-9bfd-c712126baf0d")}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 Ye(e){let t=Fe(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Xe(e,t,n=!0){let r=Fe(e);return n&&(te(t)||r!==void 0&&ce(r))}function $n(e,t){return Xe(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function so(e,t,n,r){return Xe(e,t)?r.get(e):n.get(e.toLowerCase())}function Me(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Xc(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${$n(i,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:i,kind:o,count:1})}return t}function Jc(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 Xc(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=Me(r.holder_id,i.holder_id);if(o!==0)return o;let s=Me(r.target_id,i.target_id);return s!==0?s:Me(r.kind,i.kind)})}function Qc(e,t,n,r,i){if(typeof n!="object"||n===null)return;let o=Fe(n.id);if(!o||$n(o,n.source_kind)!==$n(t))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 Zc(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=Qc(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=Me(i.holder_id,o.holder_id);if(s!==0)return s;let a=Me(i.target_id,o.target_id);return a!==0?a:Me(i.dependency_kind,o.dependency_kind)})}function Pn(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,f)=>{let m=Fe(d);if(!m||r.has(m.toLowerCase())||Xe(m,void 0,f))return;let p={holder_id:c.id.trim(),target_id:m,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:m.toLowerCase()==="no-active-blocker"};i.set(`${p.holder_id}::${p.target_id}::${p.kind}::${p.source}`,p)};for(let c of n){o(c,c.parent,"parent","parent",!1),o(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;te(u.source_kind)||o(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}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 ed(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 td(e){let t=new Map;for(let n of e){let r=Ye(n.blocked_by);r&&Xe(r)&&!t.has(r)&&t.set(r,r);for(let i of n.dependencies??[]){if(typeof i!="object"||i===null||!Xe(i.id,i.source_kind))continue;let o=Ye(i.id);o&&!t.has(o)&&t.set(o,o)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var ao=new WeakMap;function Nt(e){return e.hierarchyIntegrity??ao.get(e)}function nd(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 Ne(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=Pn(i,t),a=ed(s);for(let p of a)o.set(p.toLowerCase(),p);let c=td(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,g),d.add(g.toLowerCase())}let l=i.map(p=>{let g=Ye(p.parent),k=Ye(p.blocked_by),b=(p.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let w=_,E=Ye(w.id);return E?[{id:so(E,w.source_kind,o,u),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:p.id.trim(),...g?{parent:o.get(g.toLowerCase())}:{},...k?{blocked_by:so(k,void 0,o,u)}:{},dependencies:b}}),f=Ft(i,t,r),m={graph:Qr.fromItems([...l,...a.map(p=>({id:p})),...c.map(p=>({id:u.get(p)}))],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),title:`[external] ${p}`,status:"external"}))],missingIdSet:new Set(a.map(p=>p.toLowerCase())),dangling:s,duplicateRows:Jc(i,t),orderingContradictions:Zc(i,t,r),legacyAliasCounts:nd(i,r),hierarchyIntegrity:f};return ao.set(m,f),m}import{createHash as rd}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 id=64,od=8;function sd(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 Ot(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=>sd(o,t)).sort(),i=n.list().map(o=>xe(o)).sort();return rd("sha256").update(r.join("")).update("").update(i.join("")).digest("hex")}function co(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var jn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=co("maxResultsPerWorkspace",t.maxResultsPerWorkspace,id),this.#n=co("maxWorkspaces",t.maxWorkspaces,od)}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()}},uo=new jn;function $t(){return uo}function U_(){uo.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 ad=["prerequisite","dependent","ancestor","descendant","provenance","related"],cd=new TextEncoder;function Un(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 Pt(e){return Math.max(1,Math.ceil(cd.encode(JSON.stringify(e)).byteLength/4))}function Bn(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 dd(e,t,n,r){let i=e.filter(o=>o.source===t&&o.target===n||o.target===t&&o.source===n).map(o=>Bn(o,n,r));return[...new Set(i)].sort()}function ud(e){return ad.find(t=>e.includes(t))}function ld(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:Bn(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 fd(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[Bn(a,s,n)]+=1;return{directEdges:i,directTotal:o.length,rootEdges:o.map(({edge:s})=>s)}}function pd(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let i=r.distance===1?dd(e.rootEdges,e.rootId,r.id,e.registry):[],o={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:i.length>0?ud(i):r.role,via:r.via,reasons:i.length>0?i:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Pt(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 md(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=Pt(o);if(i+s>e.tokenBudget)break;r.push(o),i+=s}return{edges:r,usedTokens:i,candidateCount:n.length}}function lo(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let i=Un(r.nodeLimit,20,"nodeLimit"),o=Un(r.edgeLimit,40,"edgeLimit"),s=Un(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=ld(e,t,a,r),{rootEdges:p,...g}=fd(e,t,a,r),k=le("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),b=Te(m.rows,r.cursor,k,({id:Q})=>Q),_=m.rows.slice(b),w=Pt(l)+Pt(f);if(w>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=pd({candidates:_,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:i,tokenBudget:s,initialTokens:w}),{nodes:x}=E,F=new Set([t,...x.map(({id:Q})=>Q)]),T=md({graph:e,included:F,options:r,registry:a,edgeLimit:o,tokenBudget:s,initialTokens:E.usedTokens}),{edges:U,usedTokens:ue}=T,B=b+x.length,N=B<m.rows.length,W=x.at(-1),X=T.candidateCount-U.length,J=m.depthTruncated||N||X>0,ve={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:ve,nodes:x,edges:U,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:i,edgeLimit:o,tokenBudget:s,usedTokens:ue,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 gd=["tree","graph","context"],hd=["none","repeated"],yd=["outgoing","incoming","both"],_d=32,bd=200,wd=400,kd=16e3;function vd(e){let t=e?.trim().toLowerCase()??"tree";if(gd.includes(t))return t;throw new y(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,h.USAGE)}function ne(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 jt(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 Ed(e){let t=e?.trim().toLowerCase()??"none";if(hd.includes(t))return t;throw new y(`Invalid --collapse value "${e}". Use "none" or "repeated".`,h.USAGE)}function Kn(e){let t=e?.trim().toLowerCase()??"both";if(yd.includes(t))return t;throw new y(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,h.USAGE)}function Hn(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 Id(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 xd(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Id(e.dependencies)}}function Cd(e){return bt(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Sd(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(po(d.id,n,r,i,o,s,a,c+1,d.kind))}}function Td(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 po(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+=Cd(l),Td(l,u,d,r,i,o,s,a))return l;i==="repeated"&&o.add(d);let f=new Set(n);return f.add(d),Sd(l,u,t,f,r,i,o,s,a),l}function fo(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 Dd(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,fo(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,fo(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 mo(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 Rd(e,t=q()){let n=jt(e.maxDepth),r=ne(e.nodeLimit,"node-limit"),i=ne(e.edgeLimit,"edge-limit"),o=ne(e.tokenBudget,"token-budget"),s=Hn(e.kind,t);return{direction:Kn(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 Ad(e,t,n,r){return lo(e.graph,t,e.details.map(i=>i.id===t&&r.length>0?{...i,evidence:r}:i),n)}function Gn(e,t,n,r){for(let i of n.slice(0,r)){let o=i?.trim();o&&e.push(`${t}:${o}`)}}async function Ld(e,t,n,r){let i=await pe(e,t,n.id_prefix,n.item_format,r);if(!i)return[];let{document:o}=await me(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 Gn(l,"file",a.map(f=>f.path),3),Gn(l,"test",c.map(f=>f.command??f.path),2),Gn(l,"doc",d.map(f=>f.path),2),l}function Md(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 Fd(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 go(e,t,n){let r;for(;;){let i=bt(new TextEncoder().encode(In(vn("deps",e),t)).byteLength);if(i===r)return i;n(i),r=i}}function Nd(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Od(e){try{return Ad(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Nd(t))return e.smallestResult;throw t}}function $d(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=Od({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=Md({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:o});if(m=k,o||(g.meta.tokenBudget=f,g.meta.usedTokens=go(Oe(k,!1),s,w=>{g.meta.usedTokens=w}),g.meta.usedTokens<=f))return k;if(u>0){u-=1;continue}let b=l,_=b*f/g.meta.usedTokens;l=Math.min(b-1,Math.max(1,Math.floor(_*.9)))}}function Pd(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:i,summaryOnly:o,outputFormat:s}=e,a=Rd(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=>Fd({row:g,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return $d({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:i,summaryOnly:o,outputFormat:s,missingCount:d.length,missingReferences:p})}function jd(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 Ud(e,t,n,r,i,o,s){let a=i??_d,c=ne(n.nodeLimit,"node-limit")??bd,d=ne(n.edgeLimit,"edge-limit")??wd,u=ne(n.tokenBudget,"token-budget")??kd,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=po(e,r,new Set,a,t==="graph"?"repeated":o,new Set,l),m=mo(e,r,void 0),p;for(;;){let g=Dd(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)},b={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"?{...b,tree:f}:{...b,graph:g},(p.truncation===void 0?bt(new TextEncoder().encode(In(vn("deps",Oe(p,!1)),s)).byteLength):go(Oe(p,!1),s,w=>{p.truncation.estimated_tokens=w}))<=u)return p;if(!jd(f))return l.reasons.add("token_budget"),p;l.reasons.add("token_budget")}}function Oe(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function cb(e,t,n){let r=D(process.cwd(),n.path);await $(r);let i=vd(t.format),o=jt(t.maxDepth),s=Ed(t.collapse);yt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await R(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(),xd(p)])),m=Pn(u,p=>M(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(b=>b.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&b.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 Ld(r,p,c,d.type_to_folder),k=w=>M(w,l),b=j(),_=$t().lookup(r,Ot(u,k,b),()=>Ne(u,k,b));return Oe(Pd({assembly:_.assembly,canonicalId:p,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Oe({id:e,format:i,...mo(e,f,o)},!0,Object.fromEntries(Object.entries(Ne(u,p=>M(p,l)).legacyAliasCounts))):Oe(Ud(e,i,t,f,o,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Ne(u,p=>M(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 Bd=5,Gd=1e4,Kd=8;function zn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Ut(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function Je(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function Bt(e,t){let n=Je(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function Hd(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 zd(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 Wd(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 Gt(e,t,n,r,i){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Hd(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=zd(e,m.id,o,r,i);if(l+=p.inspectedEdges,Wd(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 ho(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function yo(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 qd(e,t,n,r,i,o,s){for(let a of yo(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 _o(e,t,n={}){return Gt(e,t,n,"hierarchy",(r,i)=>Ut(r.edge,i)===r.id)}function bo(e,t,n={}){return Gt(e,t,n,"hierarchy",(r,i,o)=>Ut(r.edge,i)===o)}function wo(e,t,n={}){return Gt(e,t,n,"ordering",(r,i)=>Je(r.edge,i)===r.id)}function ko(e,t,n={}){return Gt(e,t,n,"ordering",(r,i,o)=>Je(r.edge,i)===o)}function Vd(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){yo(e,m,r,a,c).length>0&&(u=!0);continue}if(qd(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 vo(e,t,n,r={}){ho(e,t),ho(e,n);let i=r.maxPaths??Bd,o=r.maxVisitedPaths??Gd,s=r.maxDepth??Kd;zn("maxPaths",i),zn("maxVisitedPaths",o),zn("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}}:Vd(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 Yd=16,Xd=2,Jd=8;function Kt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Ht(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 Qd(e,t){let n=new Map;Ht(e,t,r=>{Eo(n,r.source,r.target),Eo(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function Eo(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function Zd(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 eu(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 Io(e,t={}){let n=t.maxIterations??Yd,r=t.minSize??Xd;Kt("maxIterations",n),Kt("minSize",r);let i=Qd(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=Zd(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:eu(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function zt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Wt(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Wn(e,t){return(t.hierarchy?Ut(e,t):e.source===Je(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function tu(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(!zt(o))throw new TypeError(`Relationship kind ${o.kind} is not a directed ordering or hierarchy kind`);r.add(Wt(o))}return r}function nu(e,t){let n=e.registry(),r=new Map;for(let i of e.edges()){let o=n.require(i.kind);if(!zt(o))continue;let s=Wt(o);if(t!==void 0&&!t.has(s))continue;let a=Wn(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 ru(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function iu(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 ou(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 iu(r,t.from,n.id,s);i.push({id:s,depth:n.depth+1})}}function su(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=ou(e,t,a,i,o,r);if(c!==void 0)return c}}function $e(e,t={}){let n=t.maxDepth??Jd;Kt("maxDepth",n),t.limit!==void 0&&Kt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,i=tu(e,t.kinds),o=nu(e,i),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...o.keys()].sort()){let u=o.get(d),l=ru(u);for(let f of u.records){t.signal?.throwIfAborted();let m=su(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 au(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 cu(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,au(u,l,f.value,i,a))}return{order:o,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function du(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 uu(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 lu(e,t,n){let r;for(let i of[...e].sort())t.has(i)&&(r=r===void 0?i:uu(r,i,t,n));return r}function fu(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=lu(e.predecessors.get(a),o,r);c!==void 0&&o.get(a)!==c&&(o.set(a,c),s=!0)}}return o}function xo(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=cu(e,t,n),i=du(r,t),o=new Map(i.map((d,u)=>[d,u])),s=fu(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 Co(e){return Math.round(e*1e6)/1e6}function So(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function To(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));Ht(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 pu(e,t){let n=new Map,r=new Map;return Ht(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=Bt(i,o);So(r,s,a),So(n,a,s)}),{incoming:n,outgoing:r}}function mu(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 gu(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 hu(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function yu(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:Co((r.get(e)??0)/2),closeness:Co(i.get(e))}}function Do(e,t={}){let n=To(e,t.kinds),r=pu(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=mu(u,n,a);s.set(u,hu(l,i.length)),gu(l,u,o)}let c=0;for(let u of n.values())c+=u.length;let d=i.map(u=>yu(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 _u(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function bu(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 wu(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(_u(r,e.node))}function ku(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=bu(o,t,n);s!==void 0&&i.push(s)}else wu(o,e,n),i.pop()}}function qt(e,t={}){let n=To(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)||ku(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 vu(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}=Bt(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 Eu(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 Iu(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 xu(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Eu(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>Iu(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Ro(e,t={}){t.signal?.throwIfAborted();let n=St(e,{registry:e.registry()}),r=vu(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=xu(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 Pe=["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 Cu=25,Su="milestone",Tu="outcome milestone:",Du=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Xn(e){return Du.has(e)}var Ao={error:0,warning:1,info:2};function Lo(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function je(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 Ru(e,t){return e.cycles.map(n=>je(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 Mo(e,t,n){let r=e.cardinality_violations.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[je(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 Fo(e,t,n){let r=e.divergences.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[je(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 Au(e,t){let n=Nt(e);return n?[...Ru(n,t),...Mo(n,t,!1),...Mo(n,t,!0),...Fo(n,t,!1),...Fo(n,t,!0)]:[]}function Lu(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 Oo(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 Mu(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))):(Oo(o,r),t.push({node:o,neighborIndex:0})),!0}function Fu(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 Nu(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(Oo(r,t);i.length>0;){let o=i.at(-1);Mu(o,i,e,t)||Fu(o,i,e,t)}}return t.components.sort((r,i)=>r[0].localeCompare(i[0]))}function qn(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(je(r,i,o,s,t,n,a))}function Ou(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(qn),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(qn),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(qn),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 Yn(e,t){let n=t.get(e);return n?!n.terminal:!0}function $o(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function $u(e,t){let n=[],r=[];for(let o of e.orderingContradictions??[])(o.legacy_terminal?r:n).push($o(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 Pu(e,t,n,r){let i=[],o=Lu(e);for(let c of Nu(o)){let d=c.some(f=>Yn(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($o);i.push(d?je("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):je("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 Vt(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Jn(e){let t=e.graph.registry(),n=new Map;for(let i of e.graph.edges()){let o=t.require(i.kind);if(!zt(o))continue;let s=Wn(i,o);if(s.from===s.to)continue;let a=`${Wt(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 ju(e,t,n){let r=[],i=[];for(let s of Jn(e))(Yn(s.from,t)||Yn(s.to,t)?r:i).push(Vt(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 Uu(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 Bu(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 Gu(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 Ku(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 Hu(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===Su&&a.title.trim().toLowerCase().startsWith(Tu)).map(a=>a.id)),{basis:i,reverse:o}=Bu(e,n),s=Gu(r,o,n);return{outcome_nodes:r.size,outcome_reachability_basis:i,...Ku(t,r,s,n)}}function zu(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 Wu(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 w=t.get(_);if(w){if(w.missing){a.missing+=1;continue}w.terminal||zu(a,w,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=$e(e.graph,{signal:s}).value,m=new Set(f.map(({edge:_})=>`${_.source.toLowerCase()}\0${_.target.toLowerCase()}\0${_.kind}`));for(let _ of e.orderingContradictions??[])m.add(`${_.holder_id.toLowerCase()}\0${_.target_id.toLowerCase()}\0${_.dependency_kind}`);let p=Object.fromEntries(Object.entries(o).sort(([_],[w])=>_.localeCompare(w))),g=Object.entries(p).reduce((_,[w,E])=>_+(Xn(w)?E:0),0),k=qt(e.graph,{signal:s}).value,b=Hu(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(([_,w])=>[_,w/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(([_],[w])=>_<w?-1:1)),articulation_points:k.articulationPoints.length,bridge_edges:k.bridges.length,...b,finding_subjects_by_code:Object.fromEntries(Pe.map(_=>[_,0]))}}}function Yt(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),i=t.maxSampleSize??Cu;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let o=Lo(t.exemptIsolates),s=Lo(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=Ou(e,n,i);d.push(...Au(e,i)),t.signal?.throwIfAborted(),d.push(...$u(e,i)),t.signal?.throwIfAborted(),d.push(...Pu(e,a,r,i)),t.signal?.throwIfAborted(),d.push(...ju(e,a,i),...Uu(e,i)),t.signal?.throwIfAborted();let u=Wu(e,a,o,s,i,c,t.signal);d.push(...u.findings),d.sort((f,m)=>Ao[f.severity]-Ao[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 Vn(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 No(e){return e.profile.coverage_by_type??{}}function qu(e,t){let n={},r=No(e),i=No(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 Po(e,t){let n=qu(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:Vn(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:Vn(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Vn(r,s),semantic_edges:a-i,semantic_edge_share:c-o,coverage_by_type:n}}}import jo 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 Uo=1,Qn=500,Vu=64,Yu="graph-durable-cache";function Bo(e){return Re(e,Yu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Ze(e){return jo.join(e,"runtime","graph-cache.json")}function Go(e){return jo.join(e,"runtime","graph-audit-baseline.json")}function Zn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Uo||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 er(e,t){let n=await se(Ze(e)),r=Zn(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function tr(e,t,n,r,i){let o=await Bo(e);try{let s=Zn(await se(Ze(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-Vu)))delete a[d];await K(Ze(e),JSON.stringify({version:Uo,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function nr(e){let t=await Bo(e);try{await Wr(Ze(e))}finally{await t()}}async function Ko(e,t){let n=Ze(e),r=await se(n),i=Zn(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 rr(e,t){return t||e>=Qn}function Xt(e){return Ue(e)&&Object.values(e).every(ye)}function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ye(e){return Number.isInteger(e)&&Number(e)>=0}function Ho(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Qe(e,t){return e===void 0||t(e)}function Xu(e){return Ue(e)&&Object.values(e).every(Ho)}function Ju(e){return Ue(e)?Object.values(e).every(t=>Ue(t)&&[t.active,t.isolated,t.degree_leq_one].every(ye)):!1}function Qu(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=>Qe(e[s],ye)))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 Zu(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=>Qe(e[o],ye))&&n.every(o=>Qe(e[o],ye)&&(e[o]===void 0||Number(e[o])<=1e4))&&Qe(e.finding_subjects_by_code,Xt)}function el(e,t,n,r){let i=Qu(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(!Zu(e,o,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Xt(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(Pe.map(c=>[c,a[c]??t[c]??0]))}}function tl(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||!Xu(n)||!ye(r)||!Ho(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+(Xn(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 nl(e){if(e!==null)try{let t=JSON.parse(e);if(!Ue(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(!Xt(i)||!Ue(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(ye)||!Xt(r.edges_by_kind)||!Qe(r.coverage_by_type,Ju))return;let o=tl(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=el(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 zo(e){return nl(await se(Go(e)))}async function Wo(e,t){await K(Go(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 rl={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 qo(e){return`${e.source} -${e.kind}-> ${e.target}`}function il(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:qo(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: ${qo(t)}`,`group: ${Vt(e)}`],confidence:"high"}))}function ol(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>il(t.get(r)));let n=rl[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 Vo(e,t={}){let{redundancyLimit:n,...r}=t,i=Yt(e,r),o=new Map(Jn(e).map(d=>[Vt(d),d])),s=i.findings.flatMap(d=>ol(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=$e(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report: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 Qo=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),ge=10;function Yo(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 Xo(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function sl(e,t,n){let r=e.trim().toLowerCase();if(!En.includes(r))throw Xr({command_path:"graph",token:r||"<empty>",allowed:En});let i=r;if(Qo.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 ir(e){throw e instanceof TypeError?new y(e.message,h.USAGE):e}function or(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Jo(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 al(e,t,n){let r={ancestors:_o,descendants:bo,predecessors:wo,successors:ko}[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){ir(s)}let o=or(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 cl(e,t,n){let r=vo(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,...or(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function dl(e,t){let n;try{n=Ct(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??ge},...t.after===void 0?{}:{after:t.after}})}catch(r){ir(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 ul(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 ll(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 fl(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 pl(e){let t=e.assembly.graph,n=e.limit??ge,r=St(t,{registry:t.registry()}),i=Yi(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:ul(r,e.summary,n),knowledge:ll(i,e.summary,n),hierarchy:fl(Nt(e.assembly),e.summary,n)}}function ml(e,t){let n=Yt(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 gl(e){let t=e.limit??ge,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Io(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 hl(e){let t;try{t=$e(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){ir(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...or(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 yl(e,t){let n=t.limit??ge,r=xo(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 _l(e){let t=e.limit??ge,n=Ro(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 bl(e){let t=e.limit??ge,n=Do(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 wl(e){let t=e.limit??ge,n=qt(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 kl(e,t){let n=e.limit??ge,r=Vo(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 Zo(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 es(e,t,n,r,i){return e==="analyze"?pl(r):e==="audit"?ml(r,i):e==="plan"?kl(r,i):e==="communities"?gl(r):e==="redundancy"?hl(r):e==="dominators"?yl(t,r):e==="slack"?_l(r):e==="centrality"?bl(r):e==="articulation"?wl(r):e==="paths"?cl(t,n,r):e==="impact"?dl(t,r):al(e,t,r)}function vl(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 El(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await nr(e),s="cleared"),o.rebuild===!0){await nr(e);let c=await er(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await tr(e,t,c,Zo(u,void 0,void 0,d),es(u,void 0,void 0,d,i));s="rebuilt"}let a=await Ko(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:rr(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 Il(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(Pe.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},o=await zo(e);return r&&await Wo(e,i),o===void 0?n:{...n,baseline:Po(o,i)}}async function xl(e,t,n,r,i){try{await tr(e,t,n,r,i)}catch{}}async function ow(e,t,n,r,i){let o=sl(e,t,n);yt(r.summary===!0,r.full===!0,"--summary");let s=D(process.cwd(),i.path);await $(s);let a=await R(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=>M(U,u);vl(o,r);let f=j(),m=Hn(r.kind,f),p=$t().lookup(s,Ot(d,l,f),()=>Ne(d,l,f)),g={assembly:p.assembly,...m===void 0?{}:{kinds:m},maxDepth:jt(r.maxDepth),limit:ne(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Kn(r.direction),maxPaths:ne(r.maxPaths,"max-paths"),sample:ne(r.sample,"sample"),exemptIsolates:Xo(r.exemptIsolate),exemptIsolateTypes:Xo(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(o==="index")return Yo(await El(s,p.fingerprint,g,d.length,l,r),!1);let k=Qo.has(o)?Jo(g.assembly,t):void 0,b=o==="paths"?Jo(g.assembly,n):void 0,_=Zo(o,k,b,g),w=await er(s,p.fingerprint),E=w.results[_],x=p.memoize(_,()=>E!==void 0?structuredClone(E):es(o,k,b,g,l)),F=rr(d.length,w.exists);!x.reused&&E===void 0&&F&&await xl(s,p.fingerprint,w,_,x.value);let T=x.value.subcommand==="audit"?await Il(s,p.fingerprint,x.value,g.saveBaseline):x.value;return T.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:x.reused?"hit":"miss",durable:E!==void 0?"hit":F?"miss":"off"},Yo(T,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]="0605f770-d868-5fe9-a186-45f00d2e93b4")}catch{}})();var ar="blocked_by",ts="blocks",Cl=Object.freeze([ar,ts]),sr="no-active-blocker";function S(e){return e.trim().toLowerCase()}function Jt(e,t){return t?`external:${e}`:`local:${S(e)}`}function _e(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&S(n)!==sr){let r=ce(n);t.set(Jt(n,r),r?n:S(n))}for(let r of e.dependencies??[]){let i=typeof r.id=="string"?r.id.trim():"";if(r.kind===ar&&i.length>0&&S(i)!==sr){let o=ce(i)||te(r.source_kind);t.set(Jt(i,o),o?i:S(i))}}return[...t.values()].sort((r,i)=>r.localeCompare(i))}function Qt(e){let t=new Map;for(let n of e){let r=S(n.id);r.length!==0&&t.set(r,new Set(_e(n)))}for(let n of e){let r=S(n.id);if(r.length!==0)for(let i of n.dependencies??[]){let o=i.kind===ts&&typeof i.id=="string"?S(i.id):"";if(o.length===0||o===sr)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 ns(e,t){let n=S(e.id);return n.length>0?Qt(t).get(n)??_e(e):_e(e)}function cr(e,t,n,r){let i=e,o=typeof i.id=="string"?r?.get(S(i.id))??ns(i,[...t.values()]):_e(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===ar&&te(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>Jt(a.id.trim(),!0)));return o.map(a=>{if(ce(a)||s.has(Jt(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(S(a));return c?{id:a,title:c.title,status:c.status,resolved:M(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Zt(e,t,n){return cr(e,t,n)}function et(e,t){let n=new Map(e.map(s=>[S(s.id),s])),r=Qt(e),i=new Set([...rs(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)||cr(s,n,t,r).some(d=>!d.resolved))&&o.add(S(s.id))}return o}function rs(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Sl(e,t,n){let r=[S(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(!M(s.status,n))return!0;r.push(S(s.id))}}}return!1}function Tl(e){let t=new Map,n=new Map,r=new Map,i=Qt(e);for(let o of e){t.set(S(o.id),o);let s=typeof o.parent=="string"?o.parent.trim():"";if(s.length>0){let a=S(s),c=n.get(a)??[];c.push(o),n.set(a,c)}for(let a of i.get(S(o.id))){let c=S(a),d=r.get(c)??[];d.push(o.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:i}}function dr(e,t,n){let{itemsById:r,childrenByParent:i,blockedByReverse:o,blockerIdsByItem:s}=Tl(t),a=new Set([...rs(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!M(m.status,n)).map(m=>S(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,Sl(m.id,i,n)){f+=1;continue}let p=cr(m,r,n,s).filter(_=>!_.resolved),g=(o.get(S(m.id))??[]).filter(_=>c.has(S(_))).sort((_,w)=>_.localeCompare(w)),k={item:m,open_blockers:p,unblocks:g},b=n.blocked_statuses.has(C(m.status,n));p.length===0&&!b?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 ur(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 tt(e,t){let n=ur(e,t);return n===void 0?void 0:new Set(n)}function is(e,t,n="--type"){let r=ur(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=gt(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 os(e,t="--priority"){let n=ur(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Tt(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 lr=["id","title","status","type","priority","parent","updated_at"],fr=["id","status","type","title"],Dl={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Rl=["tree_depth","tree_parent","tree_children","tree_title"];function pr(e=[]){return[...new Set([...yn,"body",...Rl,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var _w=["brief","standard","deep"],Al=["body","linked","claim_state","children","schedule"],Ll=["linked.files","linked.tests","linked.docs"],Ml=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],Fl=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function bw(e=[]){return[...[...new Set([...yn,...e,"notes_count","tests_count","collection_counts"])].flatMap(n=>[n,`item.${n}`]),...Al,...Ll,...Ml,...Fl].sort()}var ww=["id","title","status","type","priority","updated_at","score","matched_fields"],Nl=["score","matched_fields","highlights"],ss=["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 kw(e=[]){let t=[...new Set(e)];return[...Nl,...ss,...ss.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 as(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function ls(e){return{isTerminal(t){return e.terminal_statuses.has(as(t,e))},classify(t){let n=as(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 mr(e){return P(e.acceptance_criteria)===void 0}function gr(e){return!Number.isFinite(e.estimated_minutes)}function fs(e,t){return t.isTerminal(e.status)?P(e.resolution)===void 0:!1}function Ol(e){return P(e.reviewer)===void 0}function $l(e){return P(e.risk)===void 0}function Pl(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):P(e.confidence)===void 0}function jl(e){return P(e.sprint)===void 0}function Ul(e){return P(e.release)===void 0}function hr(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Bl(e,t,n){return[[t.acMissing,mr(e)],[t.estimatesMissing,gr(e)],[t.resolutionMissing,fs(e,n)],[t.reviewerMissing,Ol(e)],[t.riskMissing,$l(e)],[t.confidenceMissing,Pl(e)],[t.sprintMissing,jl(e)],[t.releaseMissing,Ul(e)]].every(([i,o])=>i!==!0||o)}function Gl(e,t){return mr(e)||gr(e)||fs(e,t)}function ps(e,t,n){return hr(t)?!(!Bl(e,t,n)||t.metadataMissing&&!Gl(e,n)):!0}var yr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Kl(e,t){switch(t){case"acceptance_criteria":return!mr(e);case"estimated_minutes":return!gr(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 Hl(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function zl(e,t){return t===0?100:Math.round(e/t*1e3)/10}function cs(){let e={};for(let t of yr)e[t]={present:0,applicable:0,percent:100};return e}function ds(e,t,n){for(let r of yr){if(!Hl(t,r,n))continue;let i=e[r];i.applicable+=1,Kl(t,r)&&(i.present+=1)}}function us(e){for(let t of yr){let n=e[t];n.percent=zl(n.present,n.applicable)}}function Iw(e,t){let n=cs(),r={};for(let i of e){ds(n,i,t);let o=r[i.type]??(r[i.type]=cs());ds(o,i,t)}us(n);for(let i of Object.values(r))us(i);return{overall:n,by_type:r}}var Wl={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ql(e){return Wl[e]}function Vl(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Yl(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 xw(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 Yl(a,t,r)){let u=d??"\0empty",l=i.get(u);l||(l={label:d??ql(t),key:d,buckets:Vl(),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 Be=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function be(e){return Array.isArray(e)&&e.length>0}function Xl(e){return typeof e=="string"&&e.trim().length>0}function Jl(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 gs(e,t){switch(t){case"notes":return be(e.notes);case"learnings":return be(e.learnings);case"files":return be(e.files);case"docs":return be(e.docs);case"tests":return be(e.tests);case"comments":return be(e.comments);case"deps":return be(e.dependencies);case"body":return Xl(e.body);case"linked_command":return Jl(e.tests)}}function hs(e){return Be.some(t=>e[t]!==void 0)}function ys(e,t){for(let n of Be){let r=t[n];if(r===void 0)continue;let i=gs(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function _s(e){return Be.some(t=>t!=="body"&&e[t]!==void 0)}function bs(e){return e.body!==void 0}function ms(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ql(){let e={};for(let t of Be)e[t]={present:0,total:0,percent:100};return e}function Sw(e){let t=Ql(),n=e.length;for(let s of e)for(let a of Be)gs(s,a)&&(t[a].present+=1);for(let s of Be)t[s].total=n,t[s].percent=ms(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:ms(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 Zl=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}),ws=[{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"}],Cs=e=>{let t=ws.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(ws.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},ks=["priority","deadline","updated_at","created_at","title","parent"],vs=["asc","desc"],Ss=new Set(Si);function ef(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 tf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var nf=[{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"}],rf=[{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 Ts(e,t){for(let n of nf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Ds(e,t){for(let n of rf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function of(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 sf(e){let t={};return Ts(t,e),t}function af(e){let t={};return Ds(t,e),t}var cf=[{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"}],df=[{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"}],uf=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],lf="-7d";function ff(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"),of(c,n,cf),As(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),Ds(c,n),Ts(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),tf(a)&&(c.runtime_filters=a),c}function Rs(e,t,n){let r=M(e.status,n),i=M(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=I(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function pf(e,t){return[...e].sort((n,r)=>Rs(n,r,t))}function Es(e,t){if(e!==void 0)return ae(e,new Date,t)}function nt(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ae(n,new Date,t)}function mf(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?nt(lf,"recent"):nt(e.updatedAfter,"updated-after")}function As(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function gf(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 Ls(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 hf(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 yf(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=hf(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:[...fr]}:n?{mode:"compact",fields:[...lr]}:o?{mode:"fields",fields:[...new Set(o.map(a=>we(a)))]}:{mode:"full",fields:[]}}function we(e){return e.startsWith("item.")?e.slice(5):e}function _f(e,t,n){if(e.mode!=="fields")return;let r=pr(t),i=new Set(r.map(s=>we(s))),o=e.fields.filter(s=>!i.has(we(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 bf=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function wf(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=bf.get(t);if(n)return n;if(!ks.includes(t))throw new y(`Sort field must be one of ${ks.join("|")} (aliases: updated->updated_at, created->created_at)`,h.USAGE);return t}function kf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!vs.includes(t))throw new y(`Sort order must be one of ${vs.join("|")}`,h.USAGE);return t}function vf(e){return V(e,"--tree-depth")}function Ef(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 Is(e,t){return Ii(e,t,{strict:!0})}function Ms(e){return tt(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function If(e,t,n){let r=Ms(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 xf(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 Cf(e,t,n,r){let i=tt(t.assignee,{label:"--assignee"}),o=Ef(t.assigneeFilter);xf(i,o);let s=Zl(t),a=Cs(t);return{idsFilter:gf(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:is(t.type,n),tagFilters:Ms(t.tag),priorityFilter:os(t.priority),deadlineBefore:Es(t.deadlineBefore,"deadline-before"),deadlineAfter:Es(t.deadlineAfter,"deadline-after"),updatedAfter:mf(t),updatedBefore:nt(t.updatedBefore,"updated-before"),createdAfter:nt(t.createdAfter,"created-after"),createdBefore:nt(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:tt(t.sprint,{label:"--sprint"}),releaseFilter:tt(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:hr(s),lifecycleClassifier:ls(r),contentFieldFilters:a,contentFiltersActive:hs(a)}}function Sf(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&M(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 Tf(e,t){return Vr(e,t)}function Df(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 Rf(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 Af(e,t,n,r,i){return!(!Sf(e,t,n)||!Tf(e,t)||!Df(e,t)||!Rf(e,t,i)||t.missingMetadataActive&&!ps(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ys(e,t.contentFieldFilters)||!Et(e,r))}function Lf(e,t,n,r,i,o,s){let a=Cf(t,n,r,i);return e.filter(c=>Af(c,a,i,o,s))}function rt(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function xs(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??rt(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 Mf(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)??[]:[rt(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 Ff(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[rt(o.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function Nf(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=Mf(e,r),a=Ff(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(xs(f,m,k.length,p)),!(n!==void 0&&m>=n))for(let b of[...k].reverse())l.push({node:b,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(xs(f,0,s.get(m)?.length??0)))}return c}function Of(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function $f(e,t){return e===t?0:e===null?1:t===null?-1:I(e,t)}function Pf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return $f(e.deadline??null,t.deadline??null);case"updated_at":return I(e.updated_at,t.updated_at);case"created_at":return I(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Of(e.parent??null,t.parent??null);default:return 0}}function jf(e,t,n,r){return t?[...e].sort((i,o)=>{let s=Pf(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=Rs(i,o,r);return n==="desc"?-a:a}):pf(e,r)}function Uf(e,t,n=!1){let r=we(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 Fs(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Uf(r,o,n);return i})}function Bf(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Gf(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Kf(e,t,n){return t.after===void 0?Ls(t.offset)??0:Te(e,t.after,n,r=>r.id)}function Ns(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Hf(e,t){let n=D(process.cwd(),t.path);await $(n);let r=await R(n),i=H(r.schema),o=ht(r.schema),s=e.projectionCommand??"list",a=yf(e,s);return _f(a,Bf(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:vt(e,o,"list"),typeRegistry:O(r,A()),projection:a}}async function zf(e,t,n){let r=t.projection.fields.some(c=>we(c)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(c=>Ss.has(we(c))),o=Cs(e),s=_s(o),a=bs(o);return e.includeBody||r||a?await Ai(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await Ri(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 Wf(e){let t=wf(e.sort),n=kf(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?vf(e.treeDepth):void 0,parentRoot:r?rt(e.parent):void 0}}function qf(e,t,n){let r=Is(t.status,n),i=r??Is(e,n),o=Ei(t.status),s=r||o?{...t,excludeTerminal:!1}:t,a=o?"all":i===void 0?s.excludeTerminal===!0?null:"all":i.length===1?i[0]:i;return{resolvedStatus:i,explicitAllStatuses:o,effectiveOptions:s,filtersStatus:a}}function Vf(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=Gf(t,e.length),s=Kf(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),c=Fs(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:Ns(o,u,l)}}function Os(e,t,n){return le("list",{status:e,options:_t(t,Li),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Yf(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=we(p);return g==="body"||Ss.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,ti(),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 Ae(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=V(t.limit),u=Ls(t.offset)??0,l=await Ci({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(Os(r.filtersStatus,t,i),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:Fs(l.items,n.projection,!1),totalMatched:l.total,pageExtras:Ns(d,f,m)}}function Xf(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 df){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of uf)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,af(n),sf(n)),As(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 it(e,t,n){let r=await Hf(t,n),i=[],o=Wf(t),s=qf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await Yf({options:t,runtime:r,statusSelection:s,ordering:o}),d=c;if(!d){let g=await zf(t,r,i),b=o.treeEnabled||rt(t.parent)!==void 0?On(oo(g,j())):void 0;If(g,t.tag,i);let _=Lf(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,b?.parents_by_child),w=t.dependencyBlocked===!0?(()=>{let F=et(g,r.statusRegistry);return _.filter(T=>F.has(T.id.trim().toLowerCase()))})():_,E=jf(w,o.sortField,o.sortOrder,r.statusRegistry),x=o.treeEnabled?Nf(E,o.parentRoot,o.treeDepth,b,g):E;d=Vf(x,t,r.projection,o.treeEnabled,Os(s.filtersStatus,t,o))}let u=G(),l=[...new Set(i)].sort((g,k)=>g.localeCompare(k)),f=ef(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=ff({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:Xf({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 Jf}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 _r=["agenda","day","week","month"],br=["markdown","toon","json"],Qf=["sun","mon","tue","wed","thu","fri","sat"],Zf=365,ep=365,js=28,tp=1e3;function wr(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 np(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 Us(e,t){let n;for(let r of t){let i=Yr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function rp(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!_r.includes(t)){let n=Us(t,_r);throw new y(`Calendar view must be one of ${_r.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function ip(e){if(!e)return;let t=e.trim().toLowerCase();if(!br.includes(t)){let n=Us(t,br);throw new y(`Calendar format must be one of ${br.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function dk(e,t){let n=ip(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 op(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 sp(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 en(e){return new Date(e).toISOString().slice(0,10)}function Bs(e,t){if(!t||t==="UTC")return en(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 en(e)}function Ir(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function de(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Gs(e){let t=new Date(Ir(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return de(t.toISOString(),r)}function ap(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function cp(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function dp(e,t){return I(e,t)>=0?e:t}function $s(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Ps(e,t){e.set(t,(e.get(t)??0)+1)}function up(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)=>Ie(r)-Ie(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 Ks(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 Hs(e){return Qf[new Date(e).getUTCDay()]}function lp(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function fp(e){let t=new Set;for(let n of e??[]){let r=lp(n);r&&t.add(r)}return t}function pp(e,t,n,r,i){let o=e??de(n,-(r??ep)),s=t??de(e??n,i??Zf);return{start:o,end:I(s,o)>0?s:de(o,1)}}function mp(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Hs(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??tp,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:fp(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)=>Ie(s)-Ie(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function tn(e,t){return I(t,e.startAt)<0?"continue":e.until&&I(t,e.until)>0||I(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,I(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function nn(e,t){let n=Hs(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function gp(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(nn(e,t)&&tn(e,t)==="stop");n+=1)t=de(t,e.interval);return e.occurrences}function hp(e,t,n){let r=Ie(n),i=de(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 yp(e){let t=Gs(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=de(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=hp(e,r,i);if(nn(e,o)&&tn(e,o)==="stop")return e.occurrences}}return e.occurrences}function _p(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=Ks(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!nn(e,s))&&tn(e,s)==="stop")return e.occurrences}}return e.occurrences}function bp(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=Ks(i,n,o,e.startDate);if(!(!s||!nn(e,s))&&tn(e,s)==="stop")return e.occurrences}}return e.occurrences}function wp(e,t,n,r){let i=mp(e,t,n,r);return t.freq==="daily"?gp(i):t.freq==="weekly"?yp(i):t.freq==="monthly"?_p(i):bp(i)}function zs(e){return[...e].sort((t,n)=>{let r=I(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 xr(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 kp(e){return e.deadline?{at:e.deadline,date:en(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,...xr(e),item_deadline:e.deadline}:null}function vp(e){return(e.reminders??[]).map(t=>({at:t.at,date:en(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,...xr(e)}))}function Ep(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Ip(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function xp(e,t,n,r){let i=up(t.recurrence),o=Ep(t.start_at,t.end_at);return(t.recurrence?wp(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Bs(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Ip(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,...xr(e)}))}function Cp(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?kp(o):null;s&&i.push(s),n.has("reminders")&&i.push(...vp(o));for(let a of n.has("events")?o.events??[]:[])i.push(...xp(o,a,t,r))}return zs(i)}function Sp(e,t,n,r,i){let o=Xi(t.type,n),s=t.tag?.trim().toLowerCase(),a=Tt(t.priority),c=op(t.status,r),d=t.assignee?.trim(),u=sp(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=>Tp(m,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:i}))}function Tp(e,t){return Dp(e,t)&&Rp(e,t)&&Et(e,t.runtimeFieldFilters)}function Dp(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 Rp(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 Ap(e,t,n){return!(t&&I(e.at,t)<0||n&&I(e.at,n)>=0)}function kr(e,t,n){return e.trim().toLowerCase()==="today"?Ir(t):ae(e,new Date(t),n)}function Lp(e,t,n){let r=t.date?kr(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?kr(t.from,n,"--from"):void 0,a=t.to?kr(t.to,n,"--to"):void 0;if(s&&a&&I(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 Mp(r,t,n,i,o,s,a);if(e==="day"){let d=Ir(r);return vr(r,n,i,o,d,de(d,1))}if(e==="week"){let d=Gs(r);return vr(r,n,i,o,d,de(d,7))}let c=ap(r);return vr(r,n,i,o,c,cp(r))}function Mp(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 vr(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:dp(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function Fp(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:zs(r)}))}function Np(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),Ps(n,c.item_type),Ps(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:$s(n),by_status:$s(r),recurring_events:a}}function Op(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Ws(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 Er(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function $p(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Bs(e.event_end,e.event_timezone)?Ws(e.event_end,e.event_timezone):e.event_end:null}function Pp(e){let t=`${Ws(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=$p(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 uk(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Op(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: ${Er(e.summary.by_kind)}`),t.push(`- by-type: ${Er(e.summary.by_type)}`),t.push(`- by-status: ${Er(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(`- ${
|
|
3
|
-
`))}function lk(e){return
|
|
4
|
-
`;)t-=1;return e.slice(0,t)}function Up(e){let t=G(),n=rp(e.view),r=Lp(n,e,t),i=V(e.limit),o=np(e.include),s=wr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=wr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=wr(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?js:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Bp(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${js}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Gp(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 Kp(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 qs(e,t){let n=D(process.cwd(),t.path);await $(n);let r=Up(e),i=await R(n),o=H(i.schema),s=ht(i.schema),a=vt(e,s,"calendar"),c=O(i,A()),d=[];Bp(d,r.eventsOnlyCapApplied);let u=await ee(n,i.item_format,c.type_to_folder,d,i.schema),l=Sp(u,e,c,o,a),f=pp(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=Cp(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Ap(_,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?p:p.slice(0,r.limit),k=Fp(g),b=[...new Set(d)].sort((_,w)=>_.localeCompare(w));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Kp(e,r.rangeBounds),filters:Gp(e,a),summary:Np(g),events:g,days:k,...b.length>0?{warnings: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]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var Cr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Hp=Symbol("no-context-author"),zp=Symbol("no-item-assignee");function Vs(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Wp(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 qp(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 Vp(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 rn(e,t,n){return e?.[t]??n}function on(e,t){let n=d=>{if(typeof d!="string")return"";try{return ae(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 I(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=Vs(t.author,Hp),a=L("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=Vs(d.assignee,zp)===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:rn(t.graphProximity,d.id,d.parent?.3:0),claim_focus:rn(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:Wp(d.priority,4),risk_pressure:Vp(d.risk),deadline_pressure:qp(d.deadline,c),knowledge_density:rn(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:rn(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var Yp="context_relevance",Xp={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},Jp=new TextEncoder;function Qp(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"||!Cr.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 Zp(e){let t={...Xp};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Cr.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 Xs(e,t={}){Qp(e);let n=Zp(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=Cr.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 em(e,t={}){let n=Xs(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 sn(e,t,n={}){let r=Xs(t,n),i=await ni(Yp,{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 em(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 tm=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Ys(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function nm(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:Ys(e.required_ids??[],a),continuity_coverage:Ys(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function rm(e){return Math.ceil(Jp.encode(JSON.stringify(e)).byteLength/4)}function im(e){return Math.round(e*1e4)/1e4}function om(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 sm(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}=om(n,e.surface),o={...n,ranking:void 0},s=rm(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:nm({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 am(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=tm;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,im(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 hk(e,t,n){let r=[];for(let i of e)r.push(await sm(i,t));return am(r,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b5c90a16-c075-5dc6-a326-ad2da7a6ef6d")}catch{}})();var cm={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},dm=["identity","summary","full"];function um(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=dm.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 lm(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=cm[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,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 fm(e){let t=new Set;for(let n of e){if(um(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 pm(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 mm(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=pm(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 gm(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 Js(e,t){let n=lm(t),r=fm(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=mm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,c=gm(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 hm}from"node:crypto";import{appendFile as ym,mkdir as _m,readFile as bm,rename as wm,stat as km,writeFile as vm}from"node:fs/promises";import Qs 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 Zs=2048,ea=30,ta=864e5,Em=262144,Im="context-usage-ledger",re=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function na(e){return Qs.join(e,"runtime","context-usage.jsonl")}function ot(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new re("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function ra(e){try{let n=(await bm(na(e.pmRoot),"utf8")).split(`
|
|
5
|
-
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Zs,i=e.retentionDays??ea,o=ot(e).ms-i*ta;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function ia(e,t){let n=e.maxEvents??Zs,r=e.retentionDays??ea;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new re("Context usage retention requires positive maxEvents and retentionDays");let i=na(e.pmRoot),o=Qs.dirname(i),s=await Re(e.pmRoot,
|
|
6
|
-
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await
|
|
1
|
+
import{$g as bi,Ac as A,Ae as Se,Ai,B as qr,Be as li,C as h,Ca as Ie,Cd as K,Ce as fi,De as kn,E as y,Ed as ht,G as $,Gh as Ei,Ha as _n,Hh as Ii,Ia as mt,Ig as In,Jc as wn,Lc as ei,Lh as Cn,Mc as ti,Mg as De,Ne as yt,Nk as Li,Oa as N,Pa as gt,Pb as xe,Pd as H,Pe as pi,Pg as gi,Qd as C,R as B,Rc as ni,Rd as L,Rg as hi,Sg as yi,Te as vn,U as I,Ue as _t,Ug as Ke,V as Vr,Ve as le,Vf as bt,W as ae,Wa as D,Wd as ri,We as Z,Wg as fe,Xd as ii,Xg as xn,Xh as vt,Yg as _i,Yh as Et,Ze as mi,_a as Jr,_e as Te,ab as bn,ba as Yr,be as oi,bh as wt,bi as xi,c as hn,ce as si,d as pt,da as Xr,de as ai,e as zr,ee as ci,eh as wi,ei as R,em as Mi,f as se,fe as di,g as G,gc as Zr,h as Wr,ih as ki,je as Ce,jh as Re,ki as Ci,oi as Si,pi as Ti,qi as Ae,ri as Di,s as yn,se as ui,tb as q,vh as vi,vi as O,wf as En,wh as kt,wi as pe,xi as me,yb as Qr,yi as Ri,ze as he,zi as ee}from"./chunk-NW6LV3TU.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 Ga(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 Ka(e){let t=e[0]?.ts??null,n=e.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:n}};return n!==null&&(r.examples=["1",String(e.length),n],r.valid_range.first_version=1,r.valid_range.last_version=e.length),{guidance:r,lastTimestamp:n}}function Fi(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let i=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(o=>{let s=i[o];return typeof s=="string"?[[o,s]]:[]})))}if(n.patchIndex!==void 0){let i=e[n.patchIndex];i&&(n.op??=i.op,n.path??=i.path,n.from??=i.from)}return n}function Ni(e,t,n={}){let r=e.trim(),i=n.errorSubject??"history",o=i==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Ka(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=Ga(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 He(e,t,n,r){let i=bi(e,t);if(i.ok)return i.document;let o=Fi(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 Oi(e,t){let n=structuredClone(Ke);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(fe(n)!==i.before_hash)throw new y(`History hash mismatch before replay at entry ${r+1}.`,h.GENERIC_FAILURE);if(n=He(n,i.patch,r+1,i.op),fe(n)!==i.after_hash)throw new y(`History hash mismatch after replay at entry ${r+1}.`,h.GENERIC_FAILURE)}return n}function $i(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 Sn from"node:fs/promises";import Ha 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 za(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=xi(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 Wa(e){let t=await se(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 pe(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await me(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 ey(e){let t=e.writeHistoryRaw??G;try{await t(e.historyPath,e.nextHistoryRaw),await De(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await Ha.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await De(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function Pi(e){let t=[...za({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Re(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 Wa({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 Tn(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function ji(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Ui(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=ji(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 Bi(e,t){let n=[...new Set(Tn(e).map(o=>o.trim()))].filter(o=>o.length>0).map(o=>({kind:"literal",value:o})),r=[...new Set(Tn(t).map(o=>o.trim()))].filter(o=>o.length>0).map(Ui),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 Gi(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 Ki(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 Dn(e,t,n){let r=e,i=0;for(let o of t){let s=o.kind==="literal"?Gi(r,o.value,n):Ki(r,o,n);r=s.value,i+=s.replacements}return{value:r,replacements:i}}function It(e,t,n){if(typeof e=="string")return Dn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(o=>{let s=It(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=It(s,t,n);r+=a.replacements,i[o]=a.value}return{value:i,replacements:r}}return{value:e,replacements:0}}function qa(e){let t=structuredClone(Ke),n=0,r=0;for(let i=0;i<e.length;i+=1){let o=e[i];fe(t)!==o.before_hash&&(n+=1),t=He(t,o.patch,i+1,o.op),fe(t)!==o.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Va(e,t,n){let r=0,i=!1,o=e.message;if(typeof e.message=="string"){let a=Dn(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=It(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 Ya(e,t,n){let r=structuredClone(Ke),i=0,o=0,s=[];for(let a=0;a<e.length;a+=1){let c=Va(e[a],t,n);o+=c.replacements,c.changed&&(i+=1);let d=fe(r);r=He(r,c.entry.patch,a+1,c.entry.op);let u=fe(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:i,replacements:o}}function Hi(e){return Object.keys(e.metadata).length>0}async function Xa(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await me(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Ja(e){if(!Hi(e.finalDocument))return{raw:null,path:null,document:null};let t=ii(xn(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:Jr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:ri(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 Za(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??xn(e.rewritten.finalDocument);return t.push(yi({nowIso:B(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function ec(e){let t=[];return Pi({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 Ti(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 G(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await Sn.rm(e.currentItem.path,{force:!0}),await G(e.subject.historyPath,wi(e.rewrittenEntries))}catch(c){try{await tc(e.subject.historyPath,n,i,o)}finally{await De(e.subject.historyPath)}throw c}await De(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await Di({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 nc(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function tc(e,t,n,r){t===null?await Sn.rm(e,{force:!0}):await G(e,t);for(let i of n){let o=r.get(i);o===void 0?await Sn.rm(i,{force:!0}):await G(i,o)}}async function nc(e,t){let n=[],r=new Set(t.filter(i=>i!==null));for(let i of r)n.push(...await wn({path:i,scope:"project",op:"history_redact"}));return n.push(...await wn({path:e,scope:"project",op:"history_redact:history"})),n}async function Rn(e,t,n,r){let i=await pe(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:bn(e,i.id),located:i};let o=kt(t,n.id_prefix),s=vi(t),a=o===s?[o]:[o,s];for(let c of a){let d=bn(e,c);if(await hn(d))return{id:c,historyPath:d,located:null}}throw new y(`Item ${t} not found`,h.NOT_FOUND)}async function Ey(e,t,n){let r=D(process.cwd(),n.path);await O(r);let i=await R(r),o=N(i,A()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=Bi(t.literal,t.regex),u=await Rn(r,e,i,o.type_to_folder);if(!await hn(u.historyPath))throw new y(`No history stream exists for ${u.id}.`,h.NOT_FOUND);let l=await se(u.historyPath),f=await Se(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=qa(f),p=Ya(f,d,c),g=m.hashMismatchesBefore+m.hashMismatchesAfter,k=!!t.dryRun,b=p.replacements>0,_=[];g>0&&_.push(`history_redact_preexisting_hash_mismatches:${g}`),b||_.push("history_redact_no_matches");let w=await Xa(u,i),E=Ja({pmRoot:r,subject:u,settings:i,typeToFolder:o.type_to_folder,finalDocument:p.finalDocument}),x=(w.path??null)!==(E.path??null)||(w.raw??null)!==(E.raw??null),M=he(t.author,i.author_default),T=Qa(t,p),{rewrittenEntries:j,auditEntryAdded:ue}=Za({rewritten:p,dryRun:k,changed:b,nextItemDocument:E.document,author:M,message:T}),U=wt(j);if(!U.ok)throw new y(`history-redact produced an invalid rewritten chain (${U.errors.join(", ")}).`,h.GENERIC_FAILURE);return!k&&b&&_.push(...await ec({pmRoot:r,subject:u,settings:i,typeRegistry:o,historyRawBeforeLock:l,currentItem:w,nextItem:E,author:M,force:t.force,rewrittenEntries:j})),{id:u.id,dry_run:k,changed:b,patterns:{literal_count:d.filter(F=>F.kind==="literal").length,regex_count:d.filter(F=>F.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:ue,verify_ok:U.ok,verify_errors:U.errors},item:{existed_before:w.path!==null,exists_after:E.path!==null,path_before:w.path,path_after:E.path,changed:x},warnings:[...new Set(_)].sort((F,W)=>F.localeCompare(W)),generated_at:B()}}var Iy={applyLiteralRule:Gi,applyRegexRule:Ki,buildRedactionRules:Bi,hasItemMetadata:Hi,normalizeRegexFlags:ji,normalizeStringArrayInput:Tn,parseRegexRule:Ui,redactStringValue:Dn,redactUnknownValue:It};(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 Py(e,t){let n=wt(e),r=e.length>0?e[e.length-1].after_hash:hi(),i=t===void 0?void 0:gi(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 jy(e,t,n={}){let r=D(n.cwd??process.cwd(),n.pmRoot);await O(r);let i=await R(r),o=N(i,A()),s=await Rn(r,e,i,o.type_to_folder),a=await Se(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=Ni(t,a),d=$i(Oi(a,c.historyIndex),c),u=_i(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 rc(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:uc(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function Wi(e,t,n,r){let i=le("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:mi(t.after,i)}}function Le(e,t,n){e.get(t).add(n)}function ze(e){return new Map(e.map(t=>[t,new Set]))}function qi(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function xt(e){if(Array.isArray(e))return e.map(n=>xt(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?xt(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,xt(r)]))}function zi(e){return JSON.stringify(xt(e))}function ic(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 oc(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||ic(i,t,n,r);return r}function sc(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 qi(r)}function Vi(e,t){let n=ze(e);for(let[r,i]of t)for(let o of i)Le(n,o,r);return sc(oc(e,t),n)}function ac(e,t){let n=ze(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";Le(n,o?r.source:r.target,o?r.target:r.source)}return n}function cc(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 dc(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 uc(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function St(e,t={}){let n=t.registry??q(),r=[...e.nodes()],i=ac(e,n),o=cc(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Vi(r,i).filter(u=>u.length>1||i.get(u[0]).has(u[0])),d=dc(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 lc(e,t,n){let r=ze(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))||Le(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:o.length}}function fc(e,t,n,r,i,o){let s=Ct(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=Ct(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 pc(e,t,n){let r=n.direction,i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Wi(t,n,r,i),{adjacency:c,inspectedEdges:d}=lc(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(b=>!u.seen.has(b))&&(f=!0);continue}for(let b of k)if(rc(u,b,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 Ct(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return pc(e,t,{...n,direction:r});let i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Wi(t,n,r,i);return fc(e,t,n,a,o,s)}function Yi(e){let t=[...e.nodes()],n=ze(t),r=ze(t);for(let c of e.edges())Le(n,c.source,c.target),Le(n,c.target,c.source),Le(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:qi(i),stronglyConnected:Vi(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 Ky(e,t){let n=new Map(e.edges.map(i=>[zi(i),i])),r=new Map(t.edges.map(i=>[zi(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 Tt(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 Xi(e,t,n="--type"){if(e===void 0)return;let r=gt(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 Dt={version:1,aliases:{}};function Rt(e=[]){let t=new Set(Ce),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 Ji(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 An(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 Ln(e,t=Ce){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 At(e,t=Dt,n={}){let r=An(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 Zy(e,t,n=Dt,r=Ce){return Mn(t,n,r)(e)}function Mn(e,t=Dt,n=Ce){let r=Ji(e.harness),i=Ji(e.agentInstance),o=Ln(e,n);return s=>{let c=An(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 Lt(e,t=Dt,n=Ce){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);An(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 mc from"node:fs/promises";import eo 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 gc=20,hc=5,yc=15,_c="-24h";function u_(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 bc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Fn(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 Qi(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 ae(i,new Date(t),n)}function wc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&I(e.ts,t)<0||n&&I(e.ts,n)>=0)}function Zi(e,t){return t===void 0?e:e.slice(0,t)}function We(e,t=""){return typeof e=="string"?e:t}function kc(e,t){return{...t,id:e,ts:We(t.ts),author:We(t.author,"unknown"),op:We(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:We(t.before_hash),after_hash:We(t.after_hash)}}function vc(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let i=t.id.localeCompare(n.id);return i!==0?i:t.op.localeCompare(n.op)})}async function Ec(e){try{return(await mc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(zr(t))return[];throw t}}function Ic(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function xc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?yc:n==="compact"?gc:hc}function Cc(e,t){let n=B(),r=t==="digest",i=Qi(e.to??(r?n:void 0),n,"--to"),o=Qi(e.from??(r?_c:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&I(o,i)>=0)throw new y("Activity --from must be before --to",h.USAGE);let s=Cn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new y("Activity --unbounded cannot be combined with --limit",h.USAGE);return{id:Fn(e.id,"Activity --id"),op:Fn(e.op,"Activity --op"),author:Fn(e.author,"Activity --author"),from:o,to:i,limit:xc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Sc(e){let t=D(process.cwd(),e.path);return await O(t),{pmRoot:t,settings:await R(t)}}async function Tc(e){let t=N(e.settings,A()),n=await ee(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await ki({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=eo.join(e.pmRoot,"history");return await ei({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function Dc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:wc(t,n.from,n.to)}async function Rc(e,t){let n=[];for(let r of await Ec(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await Se(eo.join(e,r),i);for(let s of o){let a=kc(i,s);Dc(s,a,t)&&n.push(a)}}return n}function Ac(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function Lc(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 Mc(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,I(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),I(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:Lc(i.operations)}}).sort((r,i)=>I(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Fc(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 Nc(e,t,n,r,i){if(e==="digest"){let s=Mc(t,r),a=Zi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Zi(t,n);return e==="compact"?{rows:{compact_activity:Ac(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function to(e,t){let n=await Sc(t),r=Ic(e),i=Cc(e,r),o=await Tc(n),s=Rt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=Mn({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),d=vc(await Rc(o.historyDir,i)).filter(c),u=Nc(r,d,i.limit,o.itemsById,f=>At(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:bc[r]},omission_receipt:pi("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:Fc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:Lt(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]="971d929f-12be-5648-93c9-8a9878b40dde")}catch{}})();function ce(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function te(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}(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]="f3f3beb2-1d60-52fe-88ce-1ab3cb9dba0d")}catch{}})();var Oc="global",g_="external",$c=["open","closed","unknown"],qe=new Map,Pc=240,jc=2048;function no(e,t,n){return(e?.trim()||t).slice(0,n)}function Uc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return typeof t.status=="string"&&(t.title==null||typeof t.title=="string")&&(t.source==null||typeof t.source=="string")&&(t.checkedAt==null||typeof t.checkedAt=="string")}function h_(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(qe.has(t))throw new Error(`External dependency resolver already registered: ${t}`);let n={name:t,supports:r=>e.supports(r),resolve:r=>e.resolve(r)};return qe.set(t,n),()=>{qe.get(t)===n&&qe.delete(t)}}async function y_(e,t={}){let n=e.trim();if(!ce(n))return null;let r=[...qe.values()].filter(o=>{try{return o.supports(n)}catch{return!1}}),i=await Promise.allSettled(r.map(o=>Promise.resolve().then(()=>o.resolve(n))));for(let[o,s]of i.entries()){if(s.status!=="fulfilled"||!Uc(s.value))continue;let a=r[o],c=s.value,d=$c.includes(c.status)?c.status:"unknown",u=no(c.title,"",Pc),l=no(c.source,n,jc),f=Date.parse(c.checkedAt?.trim()??""),m=Number.isFinite(f)?new Date(f).toISOString():t.now?.()??new Date().toISOString();return{id:n,status:d,resolved:d==="closed",title:u.length>0?u:null,source:l,checked_at:m,resolver:a.name}}return null}function __(e){let t=e?.trim();if(t)return te(t)?Oc:t}function b_(e,t,n){let r=e.trim();return te(n)?r:kt(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d49d73c9-f988-5c3c-a22d-0580ee5526f6")}catch{}})();function P(){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 Ve(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Mt(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Bc(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 Gc(e,t){let n=[...e].sort(),r=Bc(n,t),i=new Set,o=Kc(n,t),s=[];for(let a of r.reverse()){if(i.has(a))continue;let c=Hc(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 Kc(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 Hc(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 ro(e){let t=new Map;for(let n of e){let r=Ve(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function zc(e,t,n){let r=Ve(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 Wc(e,t,n,r){let i=Ve(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 io(e,t){let n=new Map;for(let[r,i]of e){let o=zc(r,i,e);o&&n.set(Mt(o),o);for(let s of i.dependencies??[]){let a=Wc(r,s,e,t);a&&n.set(Mt(a),a)}}return[...n.values()].sort((r,i)=>Mt(r).localeCompare(Mt(i)))}function oo(e,t=P()){return io(ro(e),t)}function qc(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 Vc(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=Ve(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 Ft(e,t=r=>r==="closed"||r==="canceled",n=P()){let r=ro(e),i=io(r,n),o=On(i),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Gc([...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:qc(i,o.parents_by_child,s),divergences:Vc(r,i,s)}}function T_(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 On(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 Nn(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function D_(e,t,n,r,i){let o=Ve(n);if(!o)return;let s=Ft(e,r,i),a=Ft(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&&Nn(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&&Nn(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=>Nn(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]="e04a91fa-4625-50fd-9bfd-c712126baf0d")}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 Ye(e){let t=Fe(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Xe(e,t,n=!0){let r=Fe(e);return n&&(te(t)||r!==void 0&&ce(r))}function $n(e,t){return Xe(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function so(e,t,n,r){return Xe(e,t)?r.get(e):n.get(e.toLowerCase())}function Me(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Yc(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${$n(i,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:i,kind:o,count:1})}return t}function Xc(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 Yc(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=Me(r.holder_id,i.holder_id);if(o!==0)return o;let s=Me(r.target_id,i.target_id);return s!==0?s:Me(r.kind,i.kind)})}function Jc(e,t,n,r,i){if(typeof n!="object"||n===null)return;let o=Fe(n.id);if(!o||$n(o,n.source_kind)!==$n(t))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 Qc(e,t=r=>r==="closed"||r==="canceled",n=P()){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=Jc(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=Me(i.holder_id,o.holder_id);if(s!==0)return s;let a=Me(i.target_id,o.target_id);return a!==0?a:Me(i.dependency_kind,o.dependency_kind)})}function Pn(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,f)=>{let m=Fe(d);if(!m||r.has(m.toLowerCase())||Xe(m,void 0,f))return;let p={holder_id:c.id.trim(),target_id:m,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:m.toLowerCase()==="no-active-blocker"};i.set(`${p.holder_id}::${p.target_id}::${p.kind}::${p.source}`,p)};for(let c of n){o(c,c.parent,"parent","parent",!1),o(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;te(u.source_kind)||o(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}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 Zc(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 ed(e){let t=new Map;for(let n of e){let r=Ye(n.blocked_by);r&&Xe(r)&&!t.has(r)&&t.set(r,r);for(let i of n.dependencies??[]){if(typeof i!="object"||i===null||!Xe(i.id,i.source_kind))continue;let o=Ye(i.id);o&&!t.has(o)&&t.set(o,o)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var ao=new WeakMap;function Nt(e){return e.hierarchyIntegrity??ao.get(e)}function td(e,t=P()){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 Ne(e,t,n){let r=n??P(),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=Pn(i,t),a=Zc(s);for(let p of a)o.set(p.toLowerCase(),p);let c=ed(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,g),d.add(g.toLowerCase())}let l=i.map(p=>{let g=Ye(p.parent),k=Ye(p.blocked_by),b=(p.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let w=_,E=Ye(w.id);return E?[{id:so(E,w.source_kind,o,u),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:p.id.trim(),...g?{parent:o.get(g.toLowerCase())}:{},...k?{blocked_by:so(k,void 0,o,u)}:{},dependencies:b}}),f=Ft(i,t,r),m={graph:Qr.fromItems([...l,...a.map(p=>({id:p})),...c.map(p=>({id:u.get(p)}))],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),title:`[external] ${p}`,status:"external"}))],missingIdSet:new Set(a.map(p=>p.toLowerCase())),dangling:s,duplicateRows:Xc(i,t),orderingContradictions:Qc(i,t,r),legacyAliasCounts:td(i,r),hierarchyIntegrity:f};return ao.set(m,f),m}import{createHash as nd}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 rd=64,id=8;function od(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 Ot(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=>od(o,t)).sort(),i=n.list().map(o=>xe(o)).sort();return nd("sha256").update(r.join("")).update("").update(i.join("")).digest("hex")}function co(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var jn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=co("maxResultsPerWorkspace",t.maxResultsPerWorkspace,rd),this.#n=co("maxWorkspaces",t.maxWorkspaces,id)}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()}},uo=new jn;function $t(){return uo}function U_(){uo.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 sd=["prerequisite","dependent","ancestor","descendant","provenance","related"],ad=new TextEncoder;function Un(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 Pt(e){return Math.max(1,Math.ceil(ad.encode(JSON.stringify(e)).byteLength/4))}function Bn(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 cd(e,t,n,r){let i=e.filter(o=>o.source===t&&o.target===n||o.target===t&&o.source===n).map(o=>Bn(o,n,r));return[...new Set(i)].sort()}function dd(e){return sd.find(t=>e.includes(t))}function ud(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:Bn(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 ld(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[Bn(a,s,n)]+=1;return{directEdges:i,directTotal:o.length,rootEdges:o.map(({edge:s})=>s)}}function fd(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let i=r.distance===1?cd(e.rootEdges,e.rootId,r.id,e.registry):[],o={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:i.length>0?dd(i):r.role,via:r.via,reasons:i.length>0?i:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Pt(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 pd(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=Pt(o);if(i+s>e.tokenBudget)break;r.push(o),i+=s}return{edges:r,usedTokens:i,candidateCount:n.length}}function lo(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let i=Un(r.nodeLimit,20,"nodeLimit"),o=Un(r.edgeLimit,40,"edgeLimit"),s=Un(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=ud(e,t,a,r),{rootEdges:p,...g}=ld(e,t,a,r),k=le("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),b=Te(m.rows,r.cursor,k,({id:Q})=>Q),_=m.rows.slice(b),w=Pt(l)+Pt(f);if(w>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=fd({candidates:_,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:i,tokenBudget:s,initialTokens:w}),{nodes:x}=E,M=new Set([t,...x.map(({id:Q})=>Q)]),T=pd({graph:e,included:M,options:r,registry:a,edgeLimit:o,tokenBudget:s,initialTokens:E.usedTokens}),{edges:j,usedTokens:ue}=T,U=b+x.length,F=U<m.rows.length,W=x.at(-1),X=T.candidateCount-j.length,J=m.depthTruncated||F||X>0,ve={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...g,discoveredNodes:m.rows.length,returnedNodes:x.length,returnedEdges:j.length,omittedNodes:m.rows.length-U,omittedEdges:X,evidenceCount:f.length,hasMore:F};return{root:l,summary:ve,nodes:x,edges:j,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:i,edgeLimit:o,tokenBudget:s,usedTokens:ue,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-U,omittedEdges:X,...F&&W?{nextCursor:Z(k,W.id,U-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 md=["tree","graph","context"],gd=["none","repeated"],hd=["outgoing","incoming","both"],yd=32,_d=200,bd=400,wd=16e3;function kd(e){let t=e?.trim().toLowerCase()??"tree";if(md.includes(t))return t;throw new y(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,h.USAGE)}function ne(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 jt(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 vd(e){let t=e?.trim().toLowerCase()??"none";if(gd.includes(t))return t;throw new y(`Invalid --collapse value "${e}". Use "none" or "repeated".`,h.USAGE)}function Kn(e){let t=e?.trim().toLowerCase()??"both";if(hd.includes(t))return t;throw new y(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,h.USAGE)}function Hn(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 Ed(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 Id(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Ed(e.dependencies)}}function xd(e){return bt(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Cd(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(po(d.id,n,r,i,o,s,a,c+1,d.kind))}}function Sd(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 po(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+=xd(l),Sd(l,u,d,r,i,o,s,a))return l;i==="repeated"&&o.add(d);let f=new Set(n);return f.add(d),Cd(l,u,t,f,r,i,o,s,a),l}function fo(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 Td(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,fo(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,fo(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 mo(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 Dd(e,t=q()){let n=jt(e.maxDepth),r=ne(e.nodeLimit,"node-limit"),i=ne(e.edgeLimit,"edge-limit"),o=ne(e.tokenBudget,"token-budget"),s=Hn(e.kind,t);return{direction:Kn(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 Rd(e,t,n,r){return lo(e.graph,t,e.details.map(i=>i.id===t&&r.length>0?{...i,evidence:r}:i),n)}function Gn(e,t,n,r){for(let i of n.slice(0,r)){let o=i?.trim();o&&e.push(`${t}:${o}`)}}async function Ad(e,t,n,r){let i=await pe(e,t,n.id_prefix,n.item_format,r);if(!i)return[];let{document:o}=await me(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 Gn(l,"file",a.map(f=>f.path),3),Gn(l,"test",c.map(f=>f.command??f.path),2),Gn(l,"doc",d.map(f=>f.path),2),l}function Ld(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 Md(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 go(e,t,n){let r;for(;;){let i=bt(new TextEncoder().encode(In(vn("deps",e),t)).byteLength);if(i===r)return i;n(i),r=i}}function Fd(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Nd(e){try{return Rd(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Fd(t))return e.smallestResult;throw t}}function Od(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=Nd({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=Ld({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:o});if(m=k,o||(g.meta.tokenBudget=f,g.meta.usedTokens=go(Oe(k,!1),s,w=>{g.meta.usedTokens=w}),g.meta.usedTokens<=f))return k;if(u>0){u-=1;continue}let b=l,_=b*f/g.meta.usedTokens;l=Math.min(b-1,Math.max(1,Math.floor(_*.9)))}}function $d(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:i,summaryOnly:o,outputFormat:s}=e,a=Dd(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=>Md({row:g,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return Od({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:i,summaryOnly:o,outputFormat:s,missingCount:d.length,missingReferences:p})}function Pd(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 jd(e,t,n,r,i,o,s){let a=i??yd,c=ne(n.nodeLimit,"node-limit")??_d,d=ne(n.edgeLimit,"edge-limit")??bd,u=ne(n.tokenBudget,"token-budget")??wd,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=po(e,r,new Set,a,t==="graph"?"repeated":o,new Set,l),m=mo(e,r,void 0),p;for(;;){let g=Td(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)},b={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"?{...b,tree:f}:{...b,graph:g},(p.truncation===void 0?bt(new TextEncoder().encode(In(vn("deps",Oe(p,!1)),s)).byteLength):go(Oe(p,!1),s,w=>{p.truncation.estimated_tokens=w}))<=u)return p;if(!Pd(f))return l.reasons.add("token_budget"),p;l.reasons.add("token_budget")}}function Oe(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function cb(e,t,n){let r=D(process.cwd(),n.path);await O(r);let i=kd(t.format),o=jt(t.maxDepth),s=vd(t.collapse);yt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await R(r),d=N(c,A()),u=await ee(r,c.item_format,d.type_to_folder,void 0,c.schema),l=K(c.schema),f=new Map(u.map(p=>[p.id.trim().toLowerCase(),Id(p)])),m=Pn(u,p=>L(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(b=>b.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&b.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 Ad(r,p,c,d.type_to_folder),k=w=>L(w,l),b=P(),_=$t().lookup(r,Ot(u,k,b),()=>Ne(u,k,b));return Oe($d({assembly:_.assembly,canonicalId:p,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Oe({id:e,format:i,...mo(e,f,o)},!0,Object.fromEntries(Object.entries(Ne(u,p=>L(p,l)).legacyAliasCounts))):Oe(jd(e,i,t,f,o,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Ne(u,p=>L(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 Ud=5,Bd=1e4,Gd=8;function zn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Ut(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function Je(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function Bt(e,t){let n=Je(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function Kd(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 Hd(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 zd(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 Gt(e,t,n,r,i){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Kd(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=Hd(e,m.id,o,r,i);if(l+=p.inspectedEdges,zd(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 ho(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function yo(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 Wd(e,t,n,r,i,o,s){for(let a of yo(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 _o(e,t,n={}){return Gt(e,t,n,"hierarchy",(r,i)=>Ut(r.edge,i)===r.id)}function bo(e,t,n={}){return Gt(e,t,n,"hierarchy",(r,i,o)=>Ut(r.edge,i)===o)}function wo(e,t,n={}){return Gt(e,t,n,"ordering",(r,i)=>Je(r.edge,i)===r.id)}function ko(e,t,n={}){return Gt(e,t,n,"ordering",(r,i,o)=>Je(r.edge,i)===o)}function qd(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){yo(e,m,r,a,c).length>0&&(u=!0);continue}if(Wd(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 vo(e,t,n,r={}){ho(e,t),ho(e,n);let i=r.maxPaths??Ud,o=r.maxVisitedPaths??Bd,s=r.maxDepth??Gd;zn("maxPaths",i),zn("maxVisitedPaths",o),zn("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}}:qd(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 Vd=16,Yd=2,Xd=8;function Kt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Ht(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 Jd(e,t){let n=new Map;Ht(e,t,r=>{Eo(n,r.source,r.target),Eo(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function Eo(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function Qd(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 Zd(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 Io(e,t={}){let n=t.maxIterations??Vd,r=t.minSize??Yd;Kt("maxIterations",n),Kt("minSize",r);let i=Jd(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=Qd(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:Zd(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function zt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Wt(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Wn(e,t){return(t.hierarchy?Ut(e,t):e.source===Je(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function eu(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(!zt(o))throw new TypeError(`Relationship kind ${o.kind} is not a directed ordering or hierarchy kind`);r.add(Wt(o))}return r}function tu(e,t){let n=e.registry(),r=new Map;for(let i of e.edges()){let o=n.require(i.kind);if(!zt(o))continue;let s=Wt(o);if(t!==void 0&&!t.has(s))continue;let a=Wn(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 nu(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function ru(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 iu(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 ru(r,t.from,n.id,s);i.push({id:s,depth:n.depth+1})}}function ou(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=iu(e,t,a,i,o,r);if(c!==void 0)return c}}function $e(e,t={}){let n=t.maxDepth??Xd;Kt("maxDepth",n),t.limit!==void 0&&Kt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,i=eu(e,t.kinds),o=tu(e,i),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...o.keys()].sort()){let u=o.get(d),l=nu(u);for(let f of u.records){t.signal?.throwIfAborted();let m=ou(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 su(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 au(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,su(u,l,f.value,i,a))}return{order:o,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function cu(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 du(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 uu(e,t,n){let r;for(let i of[...e].sort())t.has(i)&&(r=r===void 0?i:du(r,i,t,n));return r}function lu(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=uu(e.predecessors.get(a),o,r);c!==void 0&&o.get(a)!==c&&(o.set(a,c),s=!0)}}return o}function xo(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=au(e,t,n),i=cu(r,t),o=new Map(i.map((d,u)=>[d,u])),s=lu(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 Co(e){return Math.round(e*1e6)/1e6}function So(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function To(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));Ht(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 fu(e,t){let n=new Map,r=new Map;return Ht(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=Bt(i,o);So(r,s,a),So(n,a,s)}),{incoming:n,outgoing:r}}function pu(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 mu(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 gu(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function hu(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:Co((r.get(e)??0)/2),closeness:Co(i.get(e))}}function Do(e,t={}){let n=To(e,t.kinds),r=fu(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=pu(u,n,a);s.set(u,gu(l,i.length)),mu(l,u,o)}let c=0;for(let u of n.values())c+=u.length;let d=i.map(u=>hu(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 yu(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function _u(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 bu(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(yu(r,e.node))}function wu(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=_u(o,t,n);s!==void 0&&i.push(s)}else bu(o,e,n),i.pop()}}function qt(e,t={}){let n=To(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)||wu(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 ku(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}=Bt(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 vu(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 Eu(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 Iu(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=vu(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>Eu(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Ro(e,t={}){t.signal?.throwIfAborted();let n=St(e,{registry:e.registry()}),r=ku(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=Iu(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 Pe=["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 xu=25,Cu="milestone",Su="outcome milestone:",Tu=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Xn(e){return Tu.has(e)}var Ao={error:0,warning:1,info:2};function Lo(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function je(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 Du(e,t){return e.cycles.map(n=>je(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 Mo(e,t,n){let r=e.cardinality_violations.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[je(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 Fo(e,t,n){let r=e.divergences.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[je(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 Ru(e,t){let n=Nt(e);return n?[...Du(n,t),...Mo(n,t,!1),...Mo(n,t,!0),...Fo(n,t,!1),...Fo(n,t,!0)]:[]}function Au(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 Oo(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 Lu(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))):(Oo(o,r),t.push({node:o,neighborIndex:0})),!0}function Mu(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 Fu(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(Oo(r,t);i.length>0;){let o=i.at(-1);Lu(o,i,e,t)||Mu(o,i,e,t)}}return t.components.sort((r,i)=>r[0].localeCompare(i[0]))}function qn(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(je(r,i,o,s,t,n,a))}function Nu(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(qn),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(qn),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(qn),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 Yn(e,t){let n=t.get(e);return n?!n.terminal:!0}function $o(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Ou(e,t){let n=[],r=[];for(let o of e.orderingContradictions??[])(o.legacy_terminal?r:n).push($o(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 $u(e,t,n,r){let i=[],o=Au(e);for(let c of Fu(o)){let d=c.some(f=>Yn(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($o);i.push(d?je("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):je("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 Vt(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Jn(e){let t=e.graph.registry(),n=new Map;for(let i of e.graph.edges()){let o=t.require(i.kind);if(!zt(o))continue;let s=Wn(i,o);if(s.from===s.to)continue;let a=`${Wt(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 Pu(e,t,n){let r=[],i=[];for(let s of Jn(e))(Yn(s.from,t)||Yn(s.to,t)?r:i).push(Vt(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 ju(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 Uu(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 Bu(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 Gu(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 Ku(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===Cu&&a.title.trim().toLowerCase().startsWith(Su)).map(a=>a.id)),{basis:i,reverse:o}=Uu(e,n),s=Bu(r,o,n);return{outcome_nodes:r.size,outcome_reachability_basis:i,...Gu(t,r,s,n)}}function Hu(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 zu(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 w=t.get(_);if(w){if(w.missing){a.missing+=1;continue}w.terminal||Hu(a,w,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=$e(e.graph,{signal:s}).value,m=new Set(f.map(({edge:_})=>`${_.source.toLowerCase()}\0${_.target.toLowerCase()}\0${_.kind}`));for(let _ of e.orderingContradictions??[])m.add(`${_.holder_id.toLowerCase()}\0${_.target_id.toLowerCase()}\0${_.dependency_kind}`);let p=Object.fromEntries(Object.entries(o).sort(([_],[w])=>_.localeCompare(w))),g=Object.entries(p).reduce((_,[w,E])=>_+(Xn(w)?E:0),0),k=qt(e.graph,{signal:s}).value,b=Ku(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(([_,w])=>[_,w/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(([_],[w])=>_<w?-1:1)),articulation_points:k.articulationPoints.length,bridge_edges:k.bridges.length,...b,finding_subjects_by_code:Object.fromEntries(Pe.map(_=>[_,0]))}}}function Yt(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),i=t.maxSampleSize??xu;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let o=Lo(t.exemptIsolates),s=Lo(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=Nu(e,n,i);d.push(...Ru(e,i)),t.signal?.throwIfAborted(),d.push(...Ou(e,i)),t.signal?.throwIfAborted(),d.push(...$u(e,a,r,i)),t.signal?.throwIfAborted(),d.push(...Pu(e,a,i),...ju(e,i)),t.signal?.throwIfAborted();let u=zu(e,a,o,s,i,c,t.signal);d.push(...u.findings),d.sort((f,m)=>Ao[f.severity]-Ao[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 Vn(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 No(e){return e.profile.coverage_by_type??{}}function Wu(e,t){let n={},r=No(e),i=No(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 Po(e,t){let n=Wu(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:Vn(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:Vn(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Vn(r,s),semantic_edges:a-i,semantic_edge_share:c-o,coverage_by_type:n}}}import jo 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 Uo=1,Qn=500,qu=64,Vu="graph-durable-cache";function Bo(e){return Re(e,Vu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Ze(e){return jo.join(e,"runtime","graph-cache.json")}function Go(e){return jo.join(e,"runtime","graph-audit-baseline.json")}function Zn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Uo||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 er(e,t){let n=await se(Ze(e)),r=Zn(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function tr(e,t,n,r,i){let o=await Bo(e);try{let s=Zn(await se(Ze(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-qu)))delete a[d];await G(Ze(e),JSON.stringify({version:Uo,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function nr(e){let t=await Bo(e);try{await Wr(Ze(e))}finally{await t()}}async function Ko(e,t){let n=Ze(e),r=await se(n),i=Zn(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 rr(e,t){return t||e>=Qn}function Xt(e){return Ue(e)&&Object.values(e).every(ye)}function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ye(e){return Number.isInteger(e)&&Number(e)>=0}function Ho(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Qe(e,t){return e===void 0||t(e)}function Yu(e){return Ue(e)&&Object.values(e).every(Ho)}function Xu(e){return Ue(e)?Object.values(e).every(t=>Ue(t)&&[t.active,t.isolated,t.degree_leq_one].every(ye)):!1}function Ju(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=>Qe(e[s],ye)))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 Qu(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=>Qe(e[o],ye))&&n.every(o=>Qe(e[o],ye)&&(e[o]===void 0||Number(e[o])<=1e4))&&Qe(e.finding_subjects_by_code,Xt)}function Zu(e,t,n,r){let i=Ju(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(!Qu(e,o,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Xt(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(Pe.map(c=>[c,a[c]??t[c]??0]))}}function el(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||!Yu(n)||!ye(r)||!Ho(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+(Xn(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 tl(e){if(e!==null)try{let t=JSON.parse(e);if(!Ue(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(!Xt(i)||!Ue(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(ye)||!Xt(r.edges_by_kind)||!Qe(r.coverage_by_type,Xu))return;let o=el(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=Zu(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 zo(e){return tl(await se(Go(e)))}async function Wo(e,t){await G(Go(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 nl={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 qo(e){return`${e.source} -${e.kind}-> ${e.target}`}function rl(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:qo(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: ${qo(t)}`,`group: ${Vt(e)}`],confidence:"high"}))}function il(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>rl(t.get(r)));let n=nl[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 Vo(e,t={}){let{redundancyLimit:n,...r}=t,i=Yt(e,r),o=new Map(Jn(e).map(d=>[Vt(d),d])),s=i.findings.flatMap(d=>il(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=$e(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report: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 Qo=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),ge=10;function Yo(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 Xo(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function ol(e,t,n){let r=e.trim().toLowerCase();if(!En.includes(r))throw Xr({command_path:"graph",token:r||"<empty>",allowed:En});let i=r;if(Qo.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 ir(e){throw e instanceof TypeError?new y(e.message,h.USAGE):e}function or(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Jo(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 sl(e,t,n){let r={ancestors:_o,descendants:bo,predecessors:wo,successors:ko}[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){ir(s)}let o=or(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 al(e,t,n){let r=vo(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,...or(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function cl(e,t){let n;try{n=Ct(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??ge},...t.after===void 0?{}:{after:t.after}})}catch(r){ir(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 dl(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 ul(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 ll(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 fl(e){let t=e.assembly.graph,n=e.limit??ge,r=St(t,{registry:t.registry()}),i=Yi(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:dl(r,e.summary,n),knowledge:ul(i,e.summary,n),hierarchy:ll(Nt(e.assembly),e.summary,n)}}function pl(e,t){let n=Yt(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 ml(e){let t=e.limit??ge,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Io(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 gl(e){let t;try{t=$e(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){ir(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...or(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 hl(e,t){let n=t.limit??ge,r=xo(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 yl(e){let t=e.limit??ge,n=Ro(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 _l(e){let t=e.limit??ge,n=Do(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 bl(e){let t=e.limit??ge,n=qt(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 wl(e,t){let n=e.limit??ge,r=Vo(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 Zo(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 es(e,t,n,r,i){return e==="analyze"?fl(r):e==="audit"?pl(r,i):e==="plan"?wl(r,i):e==="communities"?ml(r):e==="redundancy"?gl(r):e==="dominators"?hl(t,r):e==="slack"?yl(r):e==="centrality"?_l(r):e==="articulation"?bl(r):e==="paths"?al(t,n,r):e==="impact"?cl(t,r):sl(e,t,r)}function kl(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 vl(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await nr(e),s="cleared"),o.rebuild===!0){await nr(e);let c=await er(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await tr(e,t,c,Zo(u,void 0,void 0,d),es(u,void 0,void 0,d,i));s="rebuilt"}let a=await Ko(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:rr(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 El(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(Pe.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},o=await zo(e);return r&&await Wo(e,i),o===void 0?n:{...n,baseline:Po(o,i)}}async function Il(e,t,n,r,i){try{await tr(e,t,n,r,i)}catch{}}async function ow(e,t,n,r,i){let o=ol(e,t,n);yt(r.summary===!0,r.full===!0,"--summary");let s=D(process.cwd(),i.path);await O(s);let a=await R(s),c=N(a,A()),d=await ee(s,a.item_format,c.type_to_folder,void 0,a.schema),u=K(a.schema),l=j=>L(j,u);kl(o,r);let f=P(),m=Hn(r.kind,f),p=$t().lookup(s,Ot(d,l,f),()=>Ne(d,l,f)),g={assembly:p.assembly,...m===void 0?{}:{kinds:m},maxDepth:jt(r.maxDepth),limit:ne(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Kn(r.direction),maxPaths:ne(r.maxPaths,"max-paths"),sample:ne(r.sample,"sample"),exemptIsolates:Xo(r.exemptIsolate),exemptIsolateTypes:Xo(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(o==="index")return Yo(await vl(s,p.fingerprint,g,d.length,l,r),!1);let k=Qo.has(o)?Jo(g.assembly,t):void 0,b=o==="paths"?Jo(g.assembly,n):void 0,_=Zo(o,k,b,g),w=await er(s,p.fingerprint),E=w.results[_],x=p.memoize(_,()=>E!==void 0?structuredClone(E):es(o,k,b,g,l)),M=rr(d.length,w.exists);!x.reused&&E===void 0&&M&&await Il(s,p.fingerprint,w,_,x.value);let T=x.value.subcommand==="audit"?await El(s,p.fingerprint,x.value,g.saveBaseline):x.value;return T.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:x.reused?"hit":"miss",durable:E!==void 0?"hit":M?"miss":"off"},Yo(T,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]="0605f770-d868-5fe9-a186-45f00d2e93b4")}catch{}})();var ar="blocked_by",ts="blocks",xl=Object.freeze([ar,ts]),sr="no-active-blocker";function S(e){return e.trim().toLowerCase()}function Jt(e,t){return t?`external:${e}`:`local:${S(e)}`}function _e(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&S(n)!==sr){let r=ce(n);t.set(Jt(n,r),r?n:S(n))}for(let r of e.dependencies??[]){let i=typeof r.id=="string"?r.id.trim():"";if(r.kind===ar&&i.length>0&&S(i)!==sr){let o=ce(i)||te(r.source_kind);t.set(Jt(i,o),o?i:S(i))}}return[...t.values()].sort((r,i)=>r.localeCompare(i))}function Qt(e){let t=new Map;for(let n of e){let r=S(n.id);r.length!==0&&t.set(r,new Set(_e(n)))}for(let n of e){let r=S(n.id);if(r.length!==0)for(let i of n.dependencies??[]){let o=i.kind===ts&&typeof i.id=="string"?S(i.id):"";if(o.length===0||o===sr)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 ns(e,t){let n=S(e.id);return n.length>0?Qt(t).get(n)??_e(e):_e(e)}function cr(e,t,n,r){let i=e,o=typeof i.id=="string"?r?.get(S(i.id))??ns(i,[...t.values()]):_e(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===ar&&te(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>Jt(a.id.trim(),!0)));return o.map(a=>{if(ce(a)||s.has(Jt(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(S(a));return c?{id:a,title:c.title,status:c.status,resolved:L(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Zt(e,t,n){return cr(e,t,n)}function et(e,t){let n=new Map(e.map(s=>[S(s.id),s])),r=Qt(e),i=new Set([...rs(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)||cr(s,n,t,r).some(d=>!d.resolved))&&o.add(S(s.id))}return o}function rs(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Cl(e,t,n){let r=[S(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(!L(s.status,n))return!0;r.push(S(s.id))}}}return!1}function Sl(e){let t=new Map,n=new Map,r=new Map,i=Qt(e);for(let o of e){t.set(S(o.id),o);let s=typeof o.parent=="string"?o.parent.trim():"";if(s.length>0){let a=S(s),c=n.get(a)??[];c.push(o),n.set(a,c)}for(let a of i.get(S(o.id))){let c=S(a),d=r.get(c)??[];d.push(o.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:i}}function dr(e,t,n){let{itemsById:r,childrenByParent:i,blockedByReverse:o,blockerIdsByItem:s}=Sl(t),a=new Set([...rs(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!L(m.status,n)).map(m=>S(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,Cl(m.id,i,n)){f+=1;continue}let p=cr(m,r,n,s).filter(_=>!_.resolved),g=(o.get(S(m.id))??[]).filter(_=>c.has(S(_))).sort((_,w)=>_.localeCompare(w)),k={item:m,open_blockers:p,unblocks:g},b=n.blocked_statuses.has(C(m.status,n));p.length===0&&!b?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 ur(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 tt(e,t){let n=ur(e,t);return n===void 0?void 0:new Set(n)}function is(e,t,n="--type"){let r=ur(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=gt(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 os(e,t="--priority"){let n=ur(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Tt(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 lr=["id","title","status","type","priority","parent","updated_at"],fr=["id","status","type","title"],Tl={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Dl=["tree_depth","tree_parent","tree_children","tree_title"];function pr(e=[]){return[...new Set([...yn,"body",...Dl,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var _w=["brief","standard","deep"],Rl=["body","linked","claim_state","children","schedule"],Al=["linked.files","linked.tests","linked.docs"],Ll=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],Ml=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function bw(e=[]){return[...[...new Set([...yn,...e,"notes_count","tests_count","collection_counts"])].flatMap(n=>[n,`item.${n}`]),...Rl,...Al,...Ll,...Ml].sort()}var ww=["id","title","status","type","priority","updated_at","score","matched_fields"],Fl=["score","matched_fields","highlights"],ss=["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 kw(e=[]){let t=[...new Set(e)];return[...Fl,...ss,...ss.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 as(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function ls(e){return{isTerminal(t){return e.terminal_statuses.has(as(t,e))},classify(t){let n=as(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 mr(e){return $(e.acceptance_criteria)===void 0}function gr(e){return!Number.isFinite(e.estimated_minutes)}function fs(e,t){return t.isTerminal(e.status)?$(e.resolution)===void 0:!1}function Nl(e){return $(e.reviewer)===void 0}function Ol(e){return $(e.risk)===void 0}function $l(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):$(e.confidence)===void 0}function Pl(e){return $(e.sprint)===void 0}function jl(e){return $(e.release)===void 0}function hr(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Ul(e,t,n){return[[t.acMissing,mr(e)],[t.estimatesMissing,gr(e)],[t.resolutionMissing,fs(e,n)],[t.reviewerMissing,Nl(e)],[t.riskMissing,Ol(e)],[t.confidenceMissing,$l(e)],[t.sprintMissing,Pl(e)],[t.releaseMissing,jl(e)]].every(([i,o])=>i!==!0||o)}function Bl(e,t){return mr(e)||gr(e)||fs(e,t)}function ps(e,t,n){return hr(t)?!(!Ul(e,t,n)||t.metadataMissing&&!Bl(e,n)):!0}var yr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Gl(e,t){switch(t){case"acceptance_criteria":return!mr(e);case"estimated_minutes":return!gr(e);case"resolution":return $(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return $(e.parent)!==void 0}}function Kl(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Hl(e,t){return t===0?100:Math.round(e/t*1e3)/10}function cs(){let e={};for(let t of yr)e[t]={present:0,applicable:0,percent:100};return e}function ds(e,t,n){for(let r of yr){if(!Kl(t,r,n))continue;let i=e[r];i.applicable+=1,Gl(t,r)&&(i.present+=1)}}function us(e){for(let t of yr){let n=e[t];n.percent=Hl(n.present,n.applicable)}}function Iw(e,t){let n=cs(),r={};for(let i of e){ds(n,i,t);let o=r[i.type]??(r[i.type]=cs());ds(o,i,t)}us(n);for(let i of Object.values(r))us(i);return{overall:n,by_type:r}}var zl={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Wl(e){return zl[e]}function ql(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Vl(e,t,n){switch(t){case"assignee":return[$(e.assignee)??null];case"parent":return[$(e.parent)??null];case"type":return[$(e.type)??null];case"status":return[$(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return o.length>0?o:[null]}}}function xw(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 Vl(a,t,r)){let u=d??"\0empty",l=i.get(u);l||(l={label:d??Wl(t),key:d,buckets:ql(),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 Be=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function be(e){return Array.isArray(e)&&e.length>0}function Yl(e){return typeof e=="string"&&e.trim().length>0}function Xl(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 gs(e,t){switch(t){case"notes":return be(e.notes);case"learnings":return be(e.learnings);case"files":return be(e.files);case"docs":return be(e.docs);case"tests":return be(e.tests);case"comments":return be(e.comments);case"deps":return be(e.dependencies);case"body":return Yl(e.body);case"linked_command":return Xl(e.tests)}}function hs(e){return Be.some(t=>e[t]!==void 0)}function ys(e,t){for(let n of Be){let r=t[n];if(r===void 0)continue;let i=gs(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function _s(e){return Be.some(t=>t!=="body"&&e[t]!==void 0)}function bs(e){return e.body!==void 0}function ms(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Jl(){let e={};for(let t of Be)e[t]={present:0,total:0,percent:100};return e}function Sw(e){let t=Jl(),n=e.length;for(let s of e)for(let a of Be)gs(s,a)&&(t[a].present+=1);for(let s of Be)t[s].total=n,t[s].percent=ms(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:ms(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]="ccdb7d16-4f38-58d4-a19d-4ab1516cb1d7")}catch{}})();var Ql=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}),ws=[{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"}],Cs=e=>{let t=ws.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(ws.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},ks=["priority","deadline","updated_at","created_at","title","parent"],vs=["asc","desc"],Ss=new Set(Si);function Zl(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 ef(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var tf=[{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"}],nf=[{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 Ts(e,t){for(let n of tf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Ds(e,t){for(let n of nf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function rf(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 of(e){let t={};return Ts(t,e),t}function sf(e){let t={};return Ds(t,e),t}var af=[{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"}],cf=[{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"}],df=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],uf="-7d";function lf(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"),rf(c,n,af),As(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),Ds(c,n),Ts(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),ef(a)&&(c.runtime_filters=a),c}function Rs(e,t,n){let r=L(e.status,n),i=L(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=I(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function ff(e,t){return[...e].sort((n,r)=>Rs(n,r,t))}function Es(e,t){if(e!==void 0)return ae(e,new Date,t)}function nt(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ae(n,new Date,t)}function pf(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?nt(uf,"recent"):nt(e.updatedAfter,"updated-after")}function As(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function mf(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 Ls(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 gf(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 hf(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=gf(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:[...fr]}:n?{mode:"compact",fields:[...lr]}:o?{mode:"fields",fields:[...new Set(o.map(a=>we(a)))]}:{mode:"full",fields:[]}}function we(e){return e.startsWith("item.")?e.slice(5):e}function yf(e,t,n){if(e.mode!=="fields")return;let r=pr(t),i=new Set(r.map(s=>we(s))),o=e.fields.filter(s=>!i.has(we(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 _f=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function bf(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=_f.get(t);if(n)return n;if(!ks.includes(t))throw new y(`Sort field must be one of ${ks.join("|")} (aliases: updated->updated_at, created->created_at)`,h.USAGE);return t}function wf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!vs.includes(t))throw new y(`Sort order must be one of ${vs.join("|")}`,h.USAGE);return t}function kf(e){return V(e,"--tree-depth")}function vf(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 Is(e,t){return Ii(e,t,{strict:!0})}function Ms(e){return tt(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Ef(e,t,n){let r=Ms(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 If(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 xf(e,t,n,r){let i=tt(t.assignee,{label:"--assignee"}),o=vf(t.assigneeFilter);If(i,o);let s=Ql(t),a=Cs(t);return{idsFilter:mf(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:is(t.type,n),tagFilters:Ms(t.tag),priorityFilter:os(t.priority),deadlineBefore:Es(t.deadlineBefore,"deadline-before"),deadlineAfter:Es(t.deadlineAfter,"deadline-after"),updatedAfter:pf(t),updatedBefore:nt(t.updatedBefore,"updated-before"),createdAfter:nt(t.createdAfter,"created-after"),createdBefore:nt(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:tt(t.sprint,{label:"--sprint"}),releaseFilter:tt(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:hr(s),lifecycleClassifier:ls(r),contentFieldFilters:a,contentFiltersActive:hs(a)}}function Cf(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&L(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 Sf(e,t){return Vr(e,t)}function Tf(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 Df(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 Rf(e,t,n,r,i){return!(!Cf(e,t,n)||!Sf(e,t)||!Tf(e,t)||!Df(e,t,i)||t.missingMetadataActive&&!ps(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ys(e,t.contentFieldFilters)||!Et(e,r))}function Af(e,t,n,r,i,o,s){let a=xf(t,n,r,i);return e.filter(c=>Rf(c,a,i,o,s))}function rt(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function xs(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??rt(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 Lf(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)??[]:[rt(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 Mf(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[rt(o.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function Ff(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=Lf(e,r),a=Mf(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(xs(f,m,k.length,p)),!(n!==void 0&&m>=n))for(let b of[...k].reverse())l.push({node:b,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(xs(f,0,s.get(m)?.length??0)))}return c}function Nf(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Of(e,t){return e===t?0:e===null?1:t===null?-1:I(e,t)}function $f(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Of(e.deadline??null,t.deadline??null);case"updated_at":return I(e.updated_at,t.updated_at);case"created_at":return I(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Nf(e.parent??null,t.parent??null);default:return 0}}function Pf(e,t,n,r){return t?[...e].sort((i,o)=>{let s=$f(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=Rs(i,o,r);return n==="desc"?-a:a}):ff(e,r)}function jf(e,t,n=!1){let r=we(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 Fs(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=jf(r,o,n);return i})}function Uf(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Bf(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Gf(e,t,n){return t.after===void 0?Ls(t.offset)??0:Te(e,t.after,n,r=>r.id)}function Ns(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Kf(e,t){let n=D(process.cwd(),t.path);await O(n);let r=await R(n),i=K(r.schema),o=ht(r.schema),s=e.projectionCommand??"list",a=hf(e,s);return yf(a,Uf(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:vt(e,o,"list"),typeRegistry:N(r,A()),projection:a}}async function Hf(e,t,n){let r=t.projection.fields.some(c=>we(c)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(c=>Ss.has(we(c))),o=Cs(e),s=_s(o),a=bs(o);return e.includeBody||r||a?await Ai(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await Ri(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 zf(e){let t=bf(e.sort),n=wf(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?kf(e.treeDepth):void 0,parentRoot:r?rt(e.parent):void 0}}function Wf(e,t,n){let r=Is(t.status,n),i;t.lifecycleBucket==="in_progress"?i=[n.in_progress_status]:t.lifecycleBucket==="open"&&(i=[...n.active_statuses].filter(d=>d!==n.in_progress_status).sort((d,u)=>d.localeCompare(u)));let o=r??i??Is(e,n),s=Ei(t.status),a=r||s?{...t,excludeTerminal:!1}:t,c="all";return s?c="all":r!==void 0?c=r.length===1?r[0]:r:t.lifecycleBucket!==void 0?c=t.lifecycleBucket:o!==void 0?c=o.length===1?o[0]:o:a.excludeTerminal===!0&&(c=null),{resolvedStatus:o,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:c}}function qf(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=Bf(t,e.length),s=Gf(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),c=Fs(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:Ns(o,u,l)}}function Os(e,t,n){return le("list",{status:e,options:_t(t,Li),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Vf(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","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(p=>{let g=we(p);return g==="body"||Ss.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,ti(),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 Ae(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=V(t.limit),u=Ls(t.offset)??0,l=await Ci({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(Os(r.filtersStatus,t,i),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:Fs(l.items,n.projection,!1),totalMatched:l.total,pageExtras:Ns(d,f,m)}}function Yf(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 cf){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of df)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,sf(n),of(n)),As(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 it(e,t,n){let r=await Kf(t,n),i=[],o=zf(t),s=Wf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await Vf({options:t,runtime:r,statusSelection:s,ordering:o}),d=c;if(!d){let g=await Hf(t,r,i),b=o.treeEnabled||rt(t.parent)!==void 0?On(oo(g,P())):void 0;Ef(g,t.tag,i);let _=Af(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,b?.parents_by_child),w=t.dependencyBlocked===!0?(()=>{let M=et(g,r.statusRegistry);return _.filter(T=>M.has(T.id.trim().toLowerCase()))})():_,E=Pf(w,o.sortField,o.sortOrder,r.statusRegistry),x=o.treeEnabled?Ff(E,o.parentRoot,o.treeDepth,b,g):E;d=qf(x,t,r.projection,o.treeEnabled,Os(s.filtersStatus,t,o))}let u=B(),l=[...new Set(i)].sort((g,k)=>g.localeCompare(k)),f=Zl(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=lf({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:Yf({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 Xf}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 _r=["agenda","day","week","month"],br=["markdown","toon","json"],Jf=["sun","mon","tue","wed","thu","fri","sat"],Qf=365,Zf=365,js=28,ep=1e3;function wr(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 tp(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 Us(e,t){let n;for(let r of t){let i=Yr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function np(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!_r.includes(t)){let n=Us(t,_r);throw new y(`Calendar view must be one of ${_r.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function rp(e){if(!e)return;let t=e.trim().toLowerCase();if(!br.includes(t)){let n=Us(t,br);throw new y(`Calendar format must be one of ${br.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function dk(e,t){let n=rp(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 ip(e,t){if(e===void 0)return;let n=H(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 op(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 en(e){return new Date(e).toISOString().slice(0,10)}function Bs(e,t){if(!t||t==="UTC")return en(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 en(e)}function Ir(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function de(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Gs(e){let t=new Date(Ir(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return de(t.toISOString(),r)}function sp(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function ap(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function cp(e,t){return I(e,t)>=0?e:t}function $s(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Ps(e,t){e.set(t,(e.get(t)??0)+1)}function dp(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)=>Ie(r)-Ie(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 Ks(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 Hs(e){return Jf[new Date(e).getUTCDay()]}function up(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function lp(e){let t=new Set;for(let n of e??[]){let r=up(n);r&&t.add(r)}return t}function fp(e,t,n,r,i){let o=e??de(n,-(r??Zf)),s=t??de(e??n,i??Qf);return{start:o,end:I(s,o)>0?s:de(o,1)}}function pp(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Hs(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??ep,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:lp(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)=>Ie(s)-Ie(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function tn(e,t){return I(t,e.startAt)<0?"continue":e.until&&I(t,e.until)>0||I(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,I(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function nn(e,t){let n=Hs(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function mp(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(nn(e,t)&&tn(e,t)==="stop");n+=1)t=de(t,e.interval);return e.occurrences}function gp(e,t,n){let r=Ie(n),i=de(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 hp(e){let t=Gs(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=de(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=gp(e,r,i);if(nn(e,o)&&tn(e,o)==="stop")return e.occurrences}}return e.occurrences}function yp(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=Ks(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!nn(e,s))&&tn(e,s)==="stop")return e.occurrences}}return e.occurrences}function _p(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=Ks(i,n,o,e.startDate);if(!(!s||!nn(e,s))&&tn(e,s)==="stop")return e.occurrences}}return e.occurrences}function bp(e,t,n,r){let i=pp(e,t,n,r);return t.freq==="daily"?mp(i):t.freq==="weekly"?hp(i):t.freq==="monthly"?yp(i):_p(i)}function zs(e){return[...e].sort((t,n)=>{let r=I(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 xr(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 wp(e){return e.deadline?{at:e.deadline,date:en(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,...xr(e),item_deadline:e.deadline}:null}function kp(e){return(e.reminders??[]).map(t=>({at:t.at,date:en(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,...xr(e)}))}function vp(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Ep(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Ip(e,t,n,r){let i=dp(t.recurrence),o=vp(t.start_at,t.end_at);return(t.recurrence?bp(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Bs(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Ep(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,...xr(e)}))}function xp(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?wp(o):null;s&&i.push(s),n.has("reminders")&&i.push(...kp(o));for(let a of n.has("events")?o.events??[]:[])i.push(...Ip(o,a,t,r))}return zs(i)}function Cp(e,t,n,r,i){let o=Xi(t.type,n),s=t.tag?.trim().toLowerCase(),a=Tt(t.priority),c=ip(t.status,r),d=t.assignee?.trim(),u=op(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=>Sp(m,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:i}))}function Sp(e,t){return Tp(e,t)&&Dp(e,t)&&Et(e,t.runtimeFieldFilters)}function Tp(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 Dp(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 Rp(e,t,n){return!(t&&I(e.at,t)<0||n&&I(e.at,n)>=0)}function kr(e,t,n){return e.trim().toLowerCase()==="today"?Ir(t):ae(e,new Date(t),n)}function Ap(e,t,n){let r=t.date?kr(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?kr(t.from,n,"--from"):void 0,a=t.to?kr(t.to,n,"--to"):void 0;if(s&&a&&I(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 Lp(r,t,n,i,o,s,a);if(e==="day"){let d=Ir(r);return vr(r,n,i,o,d,de(d,1))}if(e==="week"){let d=Gs(r);return vr(r,n,i,o,d,de(d,7))}let c=sp(r);return vr(r,n,i,o,c,ap(r))}function Lp(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 vr(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:cp(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function Mp(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:zs(r)}))}function Fp(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),Ps(n,c.item_type),Ps(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:$s(n),by_status:$s(r),recurring_events:a}}function Np(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Ws(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 Er(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Op(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Bs(e.event_end,e.event_timezone)?Ws(e.event_end,e.event_timezone):e.event_end:null}function $p(e){let t=`${Ws(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=Op(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 uk(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Np(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: ${Er(e.summary.by_kind)}`),t.push(`- by-type: ${Er(e.summary.by_type)}`),t.push(`- by-status: ${Er(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(`- ${$p(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 Pp(t.join(`
|
|
3
|
+
`))}function lk(e){return Xf(e)}function Pp(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function jp(e){let t=B(),n=np(e.view),r=Ap(n,e,t),i=V(e.limit),o=tp(e.include),s=wr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=wr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=wr(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?js:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Up(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${js}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Bp(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 Gp(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 qs(e,t){let n=D(process.cwd(),t.path);await O(n);let r=jp(e),i=await R(n),o=K(i.schema),s=ht(i.schema),a=vt(e,s,"calendar"),c=N(i,A()),d=[];Up(d,r.eventsOnlyCapApplied);let u=await ee(n,i.item_format,c.type_to_folder,d,i.schema),l=Cp(u,e,c,o,a),f=fp(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=xp(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Rp(_,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?p:p.slice(0,r.limit),k=Mp(g),b=[...new Set(d)].sort((_,w)=>_.localeCompare(w));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Gp(e,r.rangeBounds),filters:Bp(e,a),summary:Fp(g),events:g,days:k,...b.length>0?{warnings: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]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var Cr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Kp=Symbol("no-context-author"),Hp=Symbol("no-item-assignee");function Vs(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function zp(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 Wp(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 qp(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 rn(e,t,n){return e?.[t]??n}function on(e,t){let n=d=>{if(typeof d!="string")return"";try{return ae(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 I(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=Vs(t.author,Kp),a=H("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=Vs(d.assignee,Hp)===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:rn(t.graphProximity,d.id,d.parent?.3:0),claim_focus:rn(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:zp(d.priority,4),risk_pressure:qp(d.risk),deadline_pressure:Wp(d.deadline,c),knowledge_density:rn(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:rn(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var Vp="context_relevance",Yp={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},Xp=new TextEncoder;function Jp(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"||!Cr.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 Qp(e){let t={...Yp};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Cr.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 Xs(e,t={}){Jp(e);let n=Qp(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=Cr.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 Zp(e,t={}){let n=Xs(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 sn(e,t,n={}){let r=Xs(t,n),i=await ni(Vp,{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 Zp(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 em=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Ys(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function tm(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:Ys(e.required_ids??[],a),continuity_coverage:Ys(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function nm(e){return Math.ceil(Xp.encode(JSON.stringify(e)).byteLength/4)}function rm(e){return Math.round(e*1e4)/1e4}function im(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 om(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}=im(n,e.surface),o={...n,ranking:void 0},s=nm(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:tm({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 sm(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=em;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,rm(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 hk(e,t,n){let r=[];for(let i of e)r.push(await om(i,t));return sm(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 am={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},cm=["identity","summary","full"];function dm(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=cm.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 um(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=am[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 lm(e){let t=new Set;for(let n of e){if(dm(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 fm(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 pm(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=fm(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 mm(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 Js(e,t){let n=um(t),r=lm(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=pm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,c=mm(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 gm}from"node:crypto";import{appendFile as hm,mkdir as ym,readFile as _m,rename as bm,stat as wm,writeFile as km}from"node:fs/promises";import Qs 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 Zs=2048,ea=30,ta=864e5,vm=262144,Em="context-usage-ledger",re=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function na(e){return Qs.join(e,"runtime","context-usage.jsonl")}function ot(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new re("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function ra(e){try{let n=(await _m(na(e.pmRoot),"utf8")).split(`
|
|
5
|
+
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Zs,i=e.retentionDays??ea,o=ot(e).ms-i*ta;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function ia(e,t){let n=e.maxEvents??Zs,r=e.retentionDays??ea;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new re("Context usage retention requires positive maxEvents and retentionDays");let i=na(e.pmRoot),o=Qs.dirname(i),s=await Re(e.pmRoot,Em,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await ym(o,{recursive:!0}),await hm(i,t.map(u=>`${JSON.stringify(u)}
|
|
6
|
+
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await wm(i)).size<=vm)return;let c=await ra(e),d=`${i}.${process.pid}.${gm()}.tmp`;await km(d,`${c.map(u=>JSON.stringify(u)).join(`
|
|
7
7
|
`)}
|
|
8
|
-
`,"utf8"),await
|
|
9
|
-
`,{encoding:"utf8",flag:"wx"}),await st.rename(r,this.filePath)}finally{try{await st.rm(r,{force:!0})}catch{}}}},Rr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let l=await this.adapter.read();i=
|
|
10
|
-
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:o}}function Zm(e,t,n=ua){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 fa(e,t,n=ua){if(e.snapshot===null)return;let r=Zm(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 eg(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 Kk(e,t,n=5){let r=eg(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 pa=16;async function ma(e,t,n){let r=O(t,A()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<pa;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let c=await pe(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await me(c,{schema:t.schema});i.push(d.document.metadata.id),s=d.document.metadata.parent}return i}async function Yk(e){await ai({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await ma(e.pmRoot,e.settings,e.itemId)})}async function Xk(e){await ci(e)}async function Jk(e){await di({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await ma(e.pmRoot,e.settings,e.itemId)}:{}})}var Qk={lineage_depth:pa,active_items:64,evidence_rows:32};function ga(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 tg=["markdown","toon","json","ndjson"],dt=new Set(["Epic","Feature"]),ka=10,va=1e4,Ea=["hierarchy","activity","progress","recently_created","unparented","workload"],ng=[...Ea,"blockers","files","staleness","tests"],rg=/^(\d{4})-(\d{2})-(\d{2})/,ig=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,og=/^(\d{4})(\d{2})(\d{2})$/,sg=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function ag(e){if(!e)return;let t=e.trim().toLowerCase();if(!tg.includes(t))throw new y("Context format must be one of markdown|toon|json|ndjson",h.USAGE);return t}var ha=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 cg(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!ha.has(r))throw new y(`Context --fields value not projectable: ${r} (valid: ${[...ha].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 ct(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function yv(e,t){let n=ag(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 dg(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:ka)}function Mr(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 ug(e,t){return t>=va&&e===Number.MAX_SAFE_INTEGER?ka:e}function lg(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!_n.includes(n))throw new y(`Context --depth must be one of ${_n.join("|")}`,h.USAGE);return n}function fg(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!mt.includes(s))throw new y(`Context --section must be one of ${mt.join("|")}`,h.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...mt]:(t==="deep"?ng:Ea).filter(i=>n.sections[i])}function pg(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function mg(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 ya(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 ut(e,t){let n=L("closed",t);return C(e,t)===n}function Fr(e,t){let n=L("in_progress",t);return C(e,t)===n}function Ia(e,t){let n=L("open",t);return C(e,t)===n}function gg(e,t){return t.blocked_statuses.has(C(e,t))}var hg=["compact","brief","fields","includeBody","include_body","parent"];function yg(e){let t={...e};for(let n of hg)delete t[n];return t}function Nr(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=Ge(e),o=lt(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function _g(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 bg(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function wg(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:I(n,r)}function kg(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function vg(e){let t=rg.exec(e)??ig.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<=kg(n,r-1)}function Eg(e){let t=og.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=sg.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 xa(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!vg(t))return Number.NaN;let n=Date.parse(Eg(t));return Number.isFinite(n)?n:Number.NaN}function Lr(e){let t=xa(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Ig(e){let t=xa(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Or(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ke(e,t,n){let r=ya(e.status,n)-ya(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=bg(e.order,t.order);if(o!==0)return o;let s=wg(e.deadline,t.deadline);if(s!==0)return s;let a=I(Lr(t.updated_at),Lr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function Ar(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function $r(e,t,n=new Set,r="context"){return Js(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:Ar({id:i.id,title:i.item.title}),summary:Ar({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:Ar(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Pr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function jr(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 Ca(e,t){return t>0?Math.round(e/t*100):0}function Ge(e){let t=new Map;for(let n of e){let r=Or(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function ft(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:Or(e.parent)};if(t&&n){let i=lt(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>ut(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Ca(s,o)}}return r}function xg(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 ln(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Cg(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Sg(e,t,n,r){let i=new Map;for(let c of e)i.set(c.id,c);let o=Ge(e),s=new Set(t.filter(c=>dt.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=i.get(c);if(!d)continue;let u=lt(c,o),l=o.get(c)??[],f=0,m=0,p=0,g=0;for(let b of u)ut(b.status,n)?f++:Fr(b.status,n)?p++:gg(b.status,n)?g++:Ia(b.status,n)&&m++;let k=l.sort((b,_)=>ke(b,_,n)).slice(0,r).map(b=>{let _=lt(b.id,o),w=_.filter(E=>ut(E.status,n)).length;return{id:b.id,title:b.title,type:b.type,status:b.status,children_total:_.length,children_closed:w}});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 ke(u,l,n)}).slice(0,r)}function lt(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 Tg(e,t){return(await to({compact:!0,limit:String(e)},t)).compact_activity??[]}function Dg(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=>dt.has(c.type)),a=[];for(let c of s){let d=lt(c.id,o),u=d.length;if(u===0)continue;let l=0,f=0,m=0,p=0;for(let g of d)ut(g.status,r)?l++:n.has(g.id.trim().toLowerCase())?p++:Fr(g.status,r)?m++:Ia(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:Ca(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,i)}function Rg(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=Zt(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 Ag(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 Lg(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=>Fr(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Mg(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 Fg(e,t,n,r){return e.map(i=>({item:i,sortKey:Lr(i.created_at)})).sort((i,o)=>{let s=I(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...ft(i,t,n),created_at:i.created_at}))}function Ng(e,t,n,r){return e.filter(i=>!Or(i.parent)&&!dt.has(i.type)).sort((i,o)=>ke(i,o,t)).slice(0,r).map(i=>ft(i,t,n))}function Og(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 _a(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Sa(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 $g(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Pg(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`${_a(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${_a(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 ba(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 jg(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 Ug(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(`- ${Pg(n)}`);e.push("")}function Bg(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 Gg(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 Kg(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)}`:`- ${Ig(i.created_at)} ${Sa(i)}`);e.push("")}}function Hg(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 zg(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 Wg(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 qg(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 Vg(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 Yg(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 Xg(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 Jg(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 _v(e){let t=[],n=e.focus_fields,r=o=>n?$g(o,n):Sa(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(""),ba(t,"High-level focus",e.high_level,"No high-level active items.",r),ba(t,"Low-level focus",e.low_level,"No low-level active items.",r),jg(t,e,r),Ug(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 Bg(t,e),Gg(t,e),Kg(t,e,n,r),Hg(t,e,r),zg(t,e),Wg(t,e),qg(t,e),Vg(t,e),Yg(t,e),Xg(t,e),Jg(t,e),t.join(`
|
|
11
|
-
`)}async function Qg(e,t){let n=D(process.cwd(),t.path),r=await R(n),i=r.context??qr.context,o=H(r.schema),s=lg(e.depth,i),a=dg(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:fg(e.section,s,i),activityLimit:pg(e.activityLimit,i),staleThresholdDays:mg(e.staleThreshold,i),parentScope:_g(e.parent),focusFields:cg(e.fields),baseListOptions:yg(e)}}function Ur(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Zg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function eh(e,t){let n=Ur(t.sectionsIncluded),r=await it(void 0,Zg(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(c=>!M(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=th(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 th(e,t){if(e===void 0)return;let n=Nr(t,e);if(!n.found)throw new y(`Context --parent item not found: ${e}`,h.NOT_FOUND);return n.ids}async function nh(e,t,n,r,i,o,s,a,c,d,u,l,f,m,p){let g=[...e].sort((v,Ee)=>ke(v,Ee,i)),k=await cn({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await un(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:c,usageAffinity:k.affinity,claimFocus:p}),_=await sn("context",b.candidates),w=_.ranked.map(v=>v.item),E=i.active_statuses,x=w.filter(v=>E.has(C(v.status,i))),F=l?Te(x,d,u,v=>v.id):0,T=l?x.slice(F,F+s):x,U=l&&T.length>0&&F+T.length<x.length,ue=U&&T.length>0?Z(u,T[T.length-1].id,F+T.length-1):void 0,B=w.filter(v=>r.has(v.id.trim().toLowerCase())),N=new Set([...T.map(v=>v.id),...B.slice(0,s).map(v=>v.id)]),W=$r({..._,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=>E.has(C(v.status,i))),ve=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=Ge(t),ie=Ur(o)?Q:void 0,oe=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),mn=v=>{let Ee=ft(v,i,ie);return r.has(v.id.trim().toLowerCase())&&(Ee.blocked=!0,Ee.blocker_ids=Zt(v,oe,i).filter(gn=>!gn.resolved).map(gn=>gn.id)),Ee},Ba=J.filter(v=>dt.has(v.type)).slice(0,l?T.length:s).map(mn),Ga=J.filter(v=>!dt.has(v.type)).slice(0,l?T.length:s).map(mn),Hr=x.length===0;return{activeItems:J,blockedItems:ve,highLevel:Ba,lowLevel:Ga,blockedFallback:Hr?ve.slice(0,s).map(mn):[],blockedFallbackUsed:Hr,ranking:_,packing:W,featureStore:b,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ue?{next_cursor:ue}:{}}}}function rh(e){return le("context",_t(e,Mi))}function ih(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=va}async function oh(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await qs(i,e),s=n===void 0?o.events:o.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Cg(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:xg(a)}}function wa(e,t,n){let r=String(t);return e.filter(i=>C(i.status,n)===r).length}async function sh(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,c=Ge(n),d=n.filter(l=>!M(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Sg(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Tg(t.activityLimit,a):void 0,progress:u("progress")?Dg(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Rg(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Fg(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Ng(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Ag(o.activeItems,t.limit):void 0,workload:u("workload")?Lg(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Mg(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Og(o.activeItems):void 0}}function ah(e,t,n){if(!e)return{};let r=L("canceled",n);return{total_items:t.length,closed:t.filter(i=>ut(i.status,n)).length,canceled:t.filter(i=>C(i.status,n)===r).length}}function ch(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 dh(e,t){t&&(e.focus_fields=t,e.high_level=ct(e.high_level,t),e.low_level=ct(e.low_level,t),e.blocked_fallback=ct(e.blocked_fallback,t),e.recently_created&&(e.recently_created=ct(e.recently_created,t)),e.unparented&&(e.unparented=ct(e.unparented,t)))}function uh(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 lh(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 fh(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await an({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=ln(e.warnings,["context_usage_feedback_write_failed"])}}async function ph(e,t,n){if(e)return{};let i=(await Zr({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 mh(e,t){let n=ui(),r=await oi(e),i=n.instance||si(t);return ga(r.semantic_attribution?.[i])}async function bv(e,t){let n=D(process.cwd(),t.path),r=await Qg(e,t),i=await eh(t,r),o=ug(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Mr(e.tokenBudget,Math.max(256,o*160))},a=he(void 0,s.settings.author_default),c=await mh(n,a),d=ph(e.noExtensionHealth===!0,n,s.settings),u=et(i.fullCorpus,s.statusRegistry),l=await nh(i.listedItemMetadata,i.allItems,i.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,rh(e),ih(e,i.fullCorpus.length),n,s.tokenBudget,c),f=await oh(t,s,i.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),m=await la(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),p=ln(i.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),g=wa(l.activeItems,L("in_progress",s.statusRegistry),s.statusRegistry),k=wa(l.activeItems,L("open",s.statusRegistry),s.statusRegistry),b=await sh({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=ah(Ur(s.sectionsIncluded),i.allItems,s.statusRegistry),w={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 w.workspace_memory=fa(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),ch(w,b,l.featureStore.warning_details),uh(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=jr(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),w.packing=Pr(l.packing)),dh(w,s.focusFields),p.length>0&&(w.warnings=p),lh(w,l.activeItems,l.blockedItems),await fh(w,l,n,a),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]="9b788e0a-f4ac-5c6e-bf52-0ef0519d6925")}catch{}})();var gh=["markdown","toon","json"],hh=5,yh=1440*60*1e3;function _h(e){if(!e)return;let t=e.trim().toLowerCase();if(!gh.includes(t))throw new y("Next format must be one of markdown|toon|json",h.USAGE);return t}function Rv(e,t){let n=_h(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 Ta(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Br(e,t,n,r){return{...ft(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,...i.external?{external:!0}:{},...i.blocked_since?{blocked_since:i.blocked_since}:{},...i.external?{resolver:i.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function bh(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(kh(i.deadline,n)),o.push(_e(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 Ra(e,t,n){let r=he(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 Av={partitionCallerOwnedReady:Ra,resolveNextCallerAuthor:(e,t)=>Aa(e,t)};function wh(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 kh(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))/yh);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function vh(e,t){let n=L("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Gr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Eh(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 Da(e,t,n){return[...e].sort((r,i)=>{let o=Gr(r.item,t),s=Gr(i.item,t);return o!==s?Number(o)-Number(s):ke(r.item,i.item,n)})}function Ih(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:bh(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function xh(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 Ch(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 Sh(e){try{let t=new Set(e.packing.included.map(n=>n.id));await an({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=ln(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Th(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=jr(e.readyRanking,e.featureStore),e.result.packing=Pr(e.packing)),e.result.suggestions=xh(e.recommended,e.blockedRows),await Sh({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Dh(e,t,n){if(!n)return e;let r=Nr(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 Rh(e,t,n,r,i,o,s){let a=e.filter(g=>!Gr(g.item,t)),c=a.length>0?a:e,d=await cn({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await un(c.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:d.affinity}),l=await sn("next",u.candidates),f=$r(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 Aa(e,t){let n=e.assignee?.trim();return he(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Lv(e,t){let n=D(process.cwd(),t.path),r=await R(n),i=Aa(e,r.author_default),o=H(r.schema),s=G(),a=Ta(e.limit,"--limit",hh),c=Mr(e.tokenBudget,Math.max(192,a*128)),d=Ta(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await it(void 0,Eh(e,{excludeTerminal:!0}),t),m=await it(void 0,{excludeTerminal:!1,noTruncate:!0},t),p=Dh(f.items,m.items,l),g=m.items,k=dr(p,g,o),b=Ge(g),_=wh(k.ready,e.includeDecisions===!0),w=Ra(_.agent,r.author_default,i),E=Da(w.available,b,o),x=[...k.blocked].sort((ie,oe)=>ke(ie.item,oe.item,o)),{projectedReady:F,ranking:T,completedContainer:U,packing:ue,featureStore:B}=await Rh(E,b,o,s,i,n,c),N=F.map((ie,oe)=>Br(ie,o,b,oe+1)),W=x.map((ie,oe)=>Br(ie,o,b,oe+1)),X=Da(_.decisions,b,o).map((ie,oe)=>Br(ie,o,b,oe+1)),J=Ih({projectedReady:F,readyRows:N,statusRegistry:o,now:s,completedContainer:U}),ve=Ch(X.length,w.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:w.held.slice(0,a),summary:{recommended:J!==null,ready:N.length,blocked:W.length,in_progress:vh(N,o),candidates:k.active_count,containers:k.container_count,decision_needed:X.length,held_by_others:w.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:ve};return Th({result:Q,recommended:J,blockedRows:W,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:T,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:ue,featureStore:B})}function Mv(e){let t=["# pm next","",...Ah(e)];if(t.push(...fn("Recommended",Lh(e.recommended),"No ready work.")),t.push(...fn("Decision needed",(e.decision_needed??[]).map(n=>`- ${pn(n)}`),"No human-gated decisions.")),t.push(...fn("Ready",e.ready.map(n=>`- ${pn(n)}`),"No ready items.")),e.filters.ready_only||t.push(...fn("Blocked",e.blocked.map(n=>`- ${Mh(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 Ah(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 Lh(e){return e?[`- ${pn(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function fn(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Mh(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${pn(e)} blocked_by:${t}`}function pn(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 Fh}from"node:crypto";import{setTimeout as Nh}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
|
|
13
|
-
//# sourceMappingURL=chunk-
|
|
8
|
+
`,"utf8"),await bm(d,i)}finally{await s()}}async function oa(e,t){await ia(e,[t])}async function an(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 re("Context usage serving requires an author and valid ranked rows");await oa(e,{kind:"serve",at:ot(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Ek(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new re("Context usage touch requires author, itemId, and intent");await oa(e,{kind:"touch",at:ot(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Ik(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 re("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new re("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new re("Context usage touch requires non-empty itemId");r.add(a)}let i=ot(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await ia(e,o)}function Im(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function cn(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await ra(e),n=ot(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new re("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=Im(o,m.id,f,r);if(p===void 0)continue;c+=1;let g=Math.max(0,(n-p)/ta);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 st from"node:fs/promises";import at from"node:path";import{createHash as xm,randomUUID as Cm}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 Sr=1,Tr=1,sa=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Sm={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 dn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function aa(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Tm(e){let t={};for(let n of sa){let r=e[n];if(r!==void 0){if(!aa(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Dm(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 Rm(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 Am(e,t){return{...t,activityDensity:t.activityDensity??Dm(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Rm(e)}}function Lm(e){if(!dn(e)||typeof e.id!="string"||!dn(e.signals))return null;let t={},n=new Set(sa);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!aa(i))return null;t[r]=i}return{id:e.id,signals:t}}function Mm(e){if(!dn(e)||e.format_version!==Sr||e.signal_set_version!==Tr||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(Lm);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:Sr,signal_set_version:Tr,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function Fm(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=on(e,Am(e,t)).map(({id:r,signals:i})=>({id:r,signals:Tm(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:Sr,signal_set_version:Tr,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var Dr=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=at.resolve(t)}async read(){try{return JSON.parse(await st.readFile(this.filePath,"utf8"))}catch(t){if(dn(t)&&pt(t))return null;throw t}}async write(t){let n=at.dirname(this.filePath);await st.mkdir(n,{recursive:!0});let r=at.join(n,`.${at.basename(this.filePath)}.${Cm()}.tmp`);try{await st.writeFile(r,`${JSON.stringify(t)}
|
|
9
|
+
`,{encoding:"utf8",flag:"wx"}),await st.rename(r,this.filePath)}finally{try{await st.rm(r,{force:!0})}catch{}}}},Rr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let l=await this.adapter.read();i=Mm(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=Fm(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=on(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=>Sm[l])}}};function Nm(e){let t=xm("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 un(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 Ae(t.pmRoot),o=t.sourceCursor??i?.source_cursor??Nm(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Rr(new Dr(at.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 Om(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 $m(e,t,n){let r,i;for(let o of t){let s=Om(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 ca(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 Mk(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=$m(i.id,t.get(i.id)??[],n);o!==void 0&&r.push(o)}return r.sort((i,o)=>i.id.localeCompare(o.id))}import Pm from"node:path";import{createHash as jm}from"node:crypto";import Um 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 da=1,Bm=1e4,ua=12;function Gm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Km(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 Hm(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 zm(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=ca(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=Gm(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=Km(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:da,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(Hm).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Wm(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 qm(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(Wm)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Vm(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==da||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(qm)?t:null}function Ym(e){return`scan:${jm("sha256").update(xe(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Xm(e,t,n){return n!==void 0?n:(await Ae(t))?.source_cursor??Ym(e)}async function Jm(e){try{let t=Vm(JSON.parse(await Um.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&pt(t))}}}async function la(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Bm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Xm(e,t.pmRoot,t.sourceCursor),i=Pm.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Jm(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=zm(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await G(i,`${JSON.stringify(c)}
|
|
10
|
+
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:o}}function Qm(e,t,n=ua){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 fa(e,t,n=ua){if(e.snapshot===null)return;let r=Qm(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 Zm(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 Kk(e,t,n=5){let r=Zm(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 pa=16;async function ma(e,t,n){let r=N(t,A()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<pa;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let c=await pe(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await me(c,{schema:t.schema});i.push(d.document.metadata.id),s=d.document.metadata.parent}return i}async function Yk(e){await ai({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await ma(e.pmRoot,e.settings,e.itemId)})}async function Xk(e){await ci(e)}async function Jk(e){await di({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await ma(e.pmRoot,e.settings,e.itemId)}:{}})}var Qk={lineage_depth:pa,active_items:64,evidence_rows:32};function ga(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]="a870e3ac-f731-5cbf-a66e-38d1d5b1d0aa")}catch{}})();var eg=["markdown","toon","json","ndjson"],dt=new Set(["Epic","Feature"]),wa=10,ka=1e4,va=["hierarchy","activity","progress","recently_created","unparented","workload"],tg=[...va,"blockers","files","staleness","tests"],ng=/^(\d{4})-(\d{2})-(\d{2})/,rg=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,ig=/^(\d{4})(\d{2})(\d{2})$/,og=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function sg(e){if(!e)return;let t=e.trim().toLowerCase();if(!eg.includes(t))throw new y("Context format must be one of markdown|toon|json|ndjson",h.USAGE);return t}var ha=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 ag(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!ha.has(r))throw new y(`Context --fields value not projectable: ${r} (valid: ${[...ha].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 ct(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function yv(e,t){let n=sg(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 cg(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:wa)}function Mr(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 dg(e,t){return t>=ka&&e===Number.MAX_SAFE_INTEGER?wa:e}function ug(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!_n.includes(n))throw new y(`Context --depth must be one of ${_n.join("|")}`,h.USAGE);return n}function lg(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!mt.includes(s))throw new y(`Context --section must be one of ${mt.join("|")}`,h.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...mt]:(t==="deep"?tg:va).filter(i=>n.sections[i])}function fg(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function pg(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 ya(e,t){let n=C(e,t),r=H("blocked",t),i=H("draft",t);return n===t.in_progress_status?0:t.active_statuses.has(n)?1:r&&n===r?2:i&&n===i?3:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function ut(e,t){let n=H("closed",t);return C(e,t)===n}function Fr(e,t){return C(e,t)===t.in_progress_status}function Ea(e,t){let n=C(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function mg(e,t){return t.blocked_statuses.has(C(e,t))}var gg=["compact","brief","fields","includeBody","include_body","parent"];function hg(e){let t={...e};for(let n of gg)delete t[n];return t}function Nr(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=Ge(e),o=lt(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function yg(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 _g(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function bg(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:I(n,r)}function wg(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function kg(e){let t=ng.exec(e)??rg.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<=wg(n,r-1)}function vg(e){let t=ig.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=og.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 Ia(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!kg(t))return Number.NaN;let n=Date.parse(vg(t));return Number.isFinite(n)?n:Number.NaN}function Lr(e){let t=Ia(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Eg(e){let t=Ia(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Or(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ke(e,t,n){let r=ya(e.status,n)-ya(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=_g(e.order,t.order);if(o!==0)return o;let s=bg(e.deadline,t.deadline);if(s!==0)return s;let a=I(Lr(t.updated_at),Lr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function Ar(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function $r(e,t,n=new Set,r="context"){return Js(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:Ar({id:i.id,title:i.item.title}),summary:Ar({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:Ar(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Pr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function jr(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 xa(e,t){return t>0?Math.round(e/t*100):0}function Ge(e){let t=new Map;for(let n of e){let r=Or(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function ft(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:Or(e.parent)};if(t&&n){let i=lt(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>ut(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=xa(s,o)}}return r}function Ig(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 ln(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function xg(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Cg(e,t,n,r){let i=new Map;for(let c of e)i.set(c.id,c);let o=Ge(e),s=new Set(t.filter(c=>dt.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=i.get(c);if(!d)continue;let u=lt(c,o),l=o.get(c)??[],f=0,m=0,p=0,g=0;for(let b of u)ut(b.status,n)?f++:Fr(b.status,n)?p++:mg(b.status,n)?g++:Ea(b.status,n)&&m++;let k=l.sort((b,_)=>ke(b,_,n)).slice(0,r).map(b=>{let _=lt(b.id,o),w=_.filter(E=>ut(E.status,n)).length;return{id:b.id,title:b.title,type:b.type,status:b.status,children_total:_.length,children_closed:w}});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 ke(u,l,n)}).slice(0,r)}function lt(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 Sg(e,t){return(await to({compact:!0,limit:String(e)},t)).compact_activity??[]}function Tg(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=>dt.has(c.type)),a=[];for(let c of s){let d=lt(c.id,o),u=d.length;if(u===0)continue;let l=0,f=0,m=0,p=0;for(let g of d)ut(g.status,r)?l++:n.has(g.id.trim().toLowerCase())?p++:Fr(g.status,r)?m++:Ea(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:xa(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,i)}function Dg(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=Zt(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 Rg(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 Ag(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=>Fr(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Lg(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 Mg(e,t,n,r){return e.map(i=>({item:i,sortKey:Lr(i.created_at)})).sort((i,o)=>{let s=I(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...ft(i,t,n),created_at:i.created_at}))}function Fg(e,t,n,r){return e.filter(i=>!Or(i.parent)&&!dt.has(i.type)).sort((i,o)=>ke(i,o,t)).slice(0,r).map(i=>ft(i,t,n))}function Ng(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 _a(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ca(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",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 Og(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function $g(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`${_a(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${_a(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 ba(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 Pg(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 jg(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(`- ${$g(n)}`);e.push("")}function Ug(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 Bg(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 Gg(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)}`:`- ${Eg(i.created_at)} ${Ca(i)}`);e.push("")}}function Kg(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 Hg(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 zg(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 Wg(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 qg(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 Vg(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 Yg(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 Xg(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 _v(e){let t=[],n=e.focus_fields,r=o=>n?Og(o,n):Ca(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(""),ba(t,"High-level focus",e.high_level,"No high-level active items.",r),ba(t,"Low-level focus",e.low_level,"No low-level active items.",r),Pg(t,e,r),jg(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 Ug(t,e),Bg(t,e),Gg(t,e,n,r),Kg(t,e,r),Hg(t,e),zg(t,e),Wg(t,e),qg(t,e),Vg(t,e),Yg(t,e),Xg(t,e),t.join(`
|
|
11
|
+
`)}async function Jg(e,t){let n=D(process.cwd(),t.path),r=await R(n),i=r.context??qr.context,o=K(r.schema),s=ug(e.depth,i),a=cg(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:lg(e.section,s,i),activityLimit:fg(e.activityLimit,i),staleThresholdDays:pg(e.staleThreshold,i),parentScope:yg(e.parent),focusFields:ag(e.fields),baseListOptions:hg(e)}}function Ur(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Qg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Zg(e,t){let n=Ur(t.sectionsIncluded),r=await it(void 0,Qg(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(c=>!L(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=eh(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 eh(e,t){if(e===void 0)return;let n=Nr(t,e);if(!n.found)throw new y(`Context --parent item not found: ${e}`,h.NOT_FOUND);return n.ids}async function th(e,t,n,r,i,o,s,a,c,d,u,l,f,m,p){let g=[...e].sort((v,Ee)=>ke(v,Ee,i)),k=await cn({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await un(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:c,usageAffinity:k.affinity,claimFocus:p}),_=await sn("context",b.candidates),w=_.ranked.map(v=>v.item),E=i.active_statuses,x=w.filter(v=>E.has(C(v.status,i))),M=l?Te(x,d,u,v=>v.id):0,T=l?x.slice(M,M+s):x,j=l&&T.length>0&&M+T.length<x.length,ue=j&&T.length>0?Z(u,T[T.length-1].id,M+T.length-1):void 0,U=w.filter(v=>r.has(v.id.trim().toLowerCase())),F=new Set([...T.map(v=>v.id),...U.slice(0,s).map(v=>v.id)]),W=$r({..._,ranked:_.ranked.filter(v=>F.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=>E.has(C(v.status,i))),ve=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=Ge(t),ie=Ur(o)?Q:void 0,oe=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),mn=v=>{let Ee=ft(v,i,ie);return r.has(v.id.trim().toLowerCase())&&(Ee.blocked=!0,Ee.blocker_ids=Zt(v,oe,i).filter(gn=>!gn.resolved).map(gn=>gn.id)),Ee},Ua=J.filter(v=>dt.has(v.type)).slice(0,l?T.length:s).map(mn),Ba=J.filter(v=>!dt.has(v.type)).slice(0,l?T.length:s).map(mn),Hr=x.length===0;return{activeItems:J,blockedItems:ve,highLevel:Ua,lowLevel:Ba,blockedFallback:Hr?ve.slice(0,s).map(mn):[],blockedFallbackUsed:Hr,ranking:_,packing:W,featureStore:b,pageExtras:{...l?{applied_limit:s}:{},...j?{has_more:!0,truncated:!0}:{},...ue?{next_cursor:ue}:{}}}}function nh(e){return le("context",_t(e,Mi))}function rh(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=ka}async function ih(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await qs(i,e),s=n===void 0?o.events:o.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=xg(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:Ig(a)}}function oh(e,t,n){let r=String(t);return e.filter(i=>C(i.status,n)===r).length}async function sh(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,c=Ge(n),d=n.filter(l=>!L(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Cg(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Sg(t.activityLimit,a):void 0,progress:u("progress")?Tg(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Dg(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Mg(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Fg(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Rg(o.activeItems,t.limit):void 0,workload:u("workload")?Ag(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Lg(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Ng(o.activeItems):void 0}}function ah(e,t,n){if(!e)return{};let r=H("canceled",n);return{total_items:t.length,closed:t.filter(i=>ut(i.status,n)).length,canceled:t.filter(i=>C(i.status,n)===r).length}}function ch(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 dh(e,t){t&&(e.focus_fields=t,e.high_level=ct(e.high_level,t),e.low_level=ct(e.low_level,t),e.blocked_fallback=ct(e.blocked_fallback,t),e.recently_created&&(e.recently_created=ct(e.recently_created,t)),e.unparented&&(e.unparented=ct(e.unparented,t)))}function uh(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 lh(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 fh(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await an({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=ln(e.warnings,["context_usage_feedback_write_failed"])}}async function ph(e,t,n){if(e)return{};let i=(await Zr({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 mh(e,t){let n=ui(),r=await oi(e),i=n.instance||si(t);return ga(r.semantic_attribution?.[i])}async function bv(e,t){let n=D(process.cwd(),t.path),r=await Jg(e,t),i=await Zg(t,r),o=dg(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Mr(e.tokenBudget,Math.max(256,o*160))},a=he(void 0,s.settings.author_default),c=await mh(n,a),d=ph(e.noExtensionHealth===!0,n,s.settings),u=et(i.fullCorpus,s.statusRegistry),l=await th(i.listedItemMetadata,i.allItems,i.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,B(),a,e.after,nh(e),rh(e,i.fullCorpus.length),n,s.tokenBudget,c),f=await ih(t,s,i.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),m=await la(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),p=ln(i.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),g=oh(l.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),k=l.activeItems.length-g,b=await sh({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=ah(Ur(s.sectionsIncluded),i.allItems,s.statusRegistry),w={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 w.workspace_memory=fa(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),ch(w,b,l.featureStore.warning_details),uh(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=jr(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),w.packing=Pr(l.packing)),dh(w,s.focusFields),p.length>0&&(w.warnings=p),lh(w,l.activeItems,l.blockedItems),await fh(w,l,n,a),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]="9b788e0a-f4ac-5c6e-bf52-0ef0519d6925")}catch{}})();var gh=["markdown","toon","json"],hh=5,yh=1440*60*1e3;function _h(e){if(!e)return;let t=e.trim().toLowerCase();if(!gh.includes(t))throw new y("Next format must be one of markdown|toon|json",h.USAGE);return t}function Rv(e,t){let n=_h(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 Sa(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Br(e,t,n,r){return{...ft(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,...i.external?{external:!0}:{},...i.blocked_since?{blocked_since:i.blocked_since}:{},...i.external?{resolver:i.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function bh(e,t,n,r){let i=e.item,o=[],s=H("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(kh(i.deadline,n)),o.push(_e(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 Da(e,t,n){let r=he(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 Av={partitionCallerOwnedReady:Da,resolveNextCallerAuthor:(e,t)=>Ra(e,t)};function wh(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 kh(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))/yh);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function vh(e,t){let n=H("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Gr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Eh(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 Ta(e,t,n){return[...e].sort((r,i)=>{let o=Gr(r.item,t),s=Gr(i.item,t);return o!==s?Number(o)-Number(s):ke(r.item,i.item,n)})}function Ih(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:bh(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function xh(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 Ch(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 Sh(e){try{let t=new Set(e.packing.included.map(n=>n.id));await an({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=ln(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Th(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=jr(e.readyRanking,e.featureStore),e.result.packing=Pr(e.packing)),e.result.suggestions=xh(e.recommended,e.blockedRows),await Sh({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Dh(e,t,n){if(!n)return e;let r=Nr(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 Rh(e,t,n,r,i,o,s){let a=e.filter(g=>!Gr(g.item,t)),c=a.length>0?a:e,d=await cn({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await un(c.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:d.affinity}),l=await sn("next",u.candidates),f=$r(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 Ra(e,t){let n=e.assignee?.trim();return he(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Lv(e,t){let n=D(process.cwd(),t.path),r=await R(n),i=Ra(e,r.author_default),o=K(r.schema),s=B(),a=Sa(e.limit,"--limit",hh),c=Mr(e.tokenBudget,Math.max(192,a*128)),d=Sa(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await it(void 0,Eh(e,{excludeTerminal:!0}),t),m=await it(void 0,{excludeTerminal:!1,noTruncate:!0},t),p=Dh(f.items,m.items,l),g=m.items,k=dr(p,g,o),b=Ge(g),_=wh(k.ready,e.includeDecisions===!0),w=Da(_.agent,r.author_default,i),E=Ta(w.available,b,o),x=[...k.blocked].sort((ie,oe)=>ke(ie.item,oe.item,o)),{projectedReady:M,ranking:T,completedContainer:j,packing:ue,featureStore:U}=await Rh(E,b,o,s,i,n,c),F=M.map((ie,oe)=>Br(ie,o,b,oe+1)),W=x.map((ie,oe)=>Br(ie,o,b,oe+1)),X=Ta(_.decisions,b,o).map((ie,oe)=>Br(ie,o,b,oe+1)),J=Ih({projectedReady:M,readyRows:F,statusRegistry:o,now:s,completedContainer:j}),ve=Ch(X.length,w.held.length,a),Q={output_default:"toon",now:s,recommended:J,ready:F.slice(1,a+1),decision_needed:X.slice(0,a),blocked:u?[]:W.slice(0,d),held_by_others:w.held.slice(0,a),summary:{recommended:J!==null,ready:F.length,blocked:W.length,in_progress:vh(F,o),candidates:k.active_count,containers:k.container_count,decision_needed:X.length,held_by_others:w.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:ve};return Th({result:Q,recommended:J,blockedRows:W,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:T,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:ue,featureStore:U})}function Mv(e){let t=["# pm next","",...Ah(e)];if(t.push(...fn("Recommended",Lh(e.recommended),"No ready work.")),t.push(...fn("Decision needed",(e.decision_needed??[]).map(n=>`- ${pn(n)}`),"No human-gated decisions.")),t.push(...fn("Ready",e.ready.map(n=>`- ${pn(n)}`),"No ready items.")),e.filters.ready_only||t.push(...fn("Blocked",e.blocked.map(n=>`- ${Mh(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 Ah(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 Lh(e){return e?[`- ${pn(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function fn(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Mh(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${pn(e)} blocked_by:${t}`}function pn(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 Fh}from"node:crypto";import{setTimeout as Nh}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 La=1,Ma=/^[A-Za-z0-9_-]+$/,Oh=100,Aa=1e3,$h=250,zv=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 Fa(e){return Fh("sha256").update(xe({type:Y(e.type),author:Y(e.author),item:Y(e.item),harness:Y(e.harness),agent_instance:Y(e.agentInstance),provenance:Y(e.provenanceFilter)})).digest("hex").slice(0,24)}function Kr(e,t){let n={version:La,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 Na(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===La,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 Oa(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Ma.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(!Na(r,t))throw new y("Mutation event cursor does not match this query.",h.USAGE,{code:"event_cursor_query_mismatch"});return r}function $a(e){let t=e??Oh;if(!Number.isSafeInteger(t)||t<0||t>Aa)throw new y(`Mutation event limit must be an integer from 0 to ${Aa}.`,h.USAGE,{code:"invalid_event_limit"});return t}function Pa(e){return e instanceof Error&&e.name==="AbortError"}function ja(e,t){let n=e?.trim();if(!n)return{};if(Ma.test(n))return{cursor:Oa(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 Ph(e,t){let n=await kn(e,t);if(n===null){if(!await li(e))return{...await fi(e,t),source:"authoritative_history"};n=await kn(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 jh(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 Uh(e={}){let t=D(e.cwd??process.cwd(),e.pmRoot);await O(t);let n=$a(e.limit),r=jh(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 R(t),o=i.agent_identity.identity_vocabulary,s=Rt(i.agent_identity.harness_signals),a=Ln({provenance:e.provenanceFilter},s),c=Y(e.harness),d=Fa(e),{cursor:u,sinceTimestamp:l}=ja(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 Ph(t,f),p=m.events.map(g=>({...r==="row"?{cursor:Kr(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:At(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:Kr(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:Lt(m.events.map(g=>g.entry),o,s)}:{}}}async function*Bh(e={}){let t=e.intervalMs??$h;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 Uh({...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 Nh(t,void 0,{signal:e.signal})}catch(o){if(Pa(o))return;throw o}}}async function*Wv(e={}){for await(let t of Bh({...e,cursorMode:"row"}))for(let n of t.events)yield n}var qv={decodeMutationEventCursor:Oa,encodeMutationEventCursor:Kr,eventQueryFingerprint:Fa,isAbortError:Pa,isMutationEventCursorEnvelope:Na,parseMutationEventLimit:$a,resolveMutationEventStart:ja};(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 Yv(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{Fi as a,Ni as b,He as c,Oi as d,$i as e,ey as f,Pi as g,Rn as h,Ey as i,Iy as j,Py as k,jy as l,St as m,Ct as n,Yi as o,Ky as p,V as q,Tt as r,Xi as s,Dt as t,Rt as u,Ln as v,At as w,Zy as x,Mn as y,Lt as z,u_ as A,to as B,ce as C,te as D,Oc as E,g_ as F,$c as G,h_ as H,y_ as I,__ as J,b_ as K,P as L,oo as M,Ft as N,T_ as O,On as P,D_ as Q,Ye as R,Xc as S,Qc as T,Pn as U,Zc as V,Ne as W,Ot as X,jn as Y,$t as Z,U_ as _,lo as $,cb as aa,_o as ba,bo as ca,wo as da,ko as ea,vo as fa,Ht as ga,Io as ha,$e as ia,xo as ja,Do as ka,qt as la,Ro as ma,Fu as na,$o as oa,Vt as pa,Jn as qa,Yt as ra,Po as sa,Uo as ta,Qn as ua,Ze as va,Go as wa,er as xa,tr as ya,nr as za,Ko as Aa,rr as Ba,zo as Ca,Wo as Da,Vo as Ea,ol as Fa,ow as Ga,Yv as Ha,xl as Ia,_e as Ja,Qt as Ka,ns as La,Zt as Ma,et as Na,dr as Oa,ur as Pa,tt as Qa,is as Ra,os as Sa,ls as Ta,hr as Ua,ps as Va,Iw as Wa,xw as Xa,hs as Ya,ys as Za,Sw as _a,lr as $a,fr as ab,Tl as bb,pr as cb,_w as db,bw as eb,ww as fb,kw as gb,Ql as hb,Cs as ib,ks as jb,vs as kb,rf as lb,of as mb,sf as nb,it as ob,dk as pb,uk as qb,lk as rb,qs as sb,Cr as tb,on as ub,Vp as vb,Xs as wb,Zp as xb,sn as yb,em as zb,tm as Ab,om as Bb,sm as Cb,hk as Db,am as Eb,Js as Fb,re as Gb,an as Hb,Ek as Ib,Ik as Jb,cn as Kb,Sr as Lb,Tr as Mb,Sm as Nb,Mm as Ob,Fm as Pb,Dr as Qb,Rr as Rb,un as Sb,ca as Tb,Mk as Ub,Bm as Vb,zm as Wb,la as Xb,Qm as Yb,fa as Zb,Zm as _b,Kk as $b,ma as ac,Yk as bc,Xk as cc,Jk as dc,Qk as ec,ga as fc,eg as gc,ag as hc,ct as ic,yv as jc,Mr as kc,ug as lc,lg as mc,Nr as nc,ke as oc,$r as pc,Pr as qc,jr as rc,Ge as sc,ft as tc,ln as uc,_v as vc,uh as wc,bv as xc,gh as yc,Rv as zc,Av as Ac,wh as Bc,Lv as Cc,Mv as Dc,zv as Ec,Uh as Fc,Bh as Gc,Wv as Hc,qv as Ic};
|
|
13
|
+
//# sourceMappingURL=chunk-3FCSFWZT.js.map
|