@unbrained/pm-cli 2026.8.30 → 2026.9.1
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 +16 -14
- package/CHANGELOG.md +41 -6
- package/README.md +3 -3
- package/dist/cli/commands/merge.d.ts +1 -1
- package/dist/cli/commands/merge.js +3 -3
- package/dist/cli/register-list-query.js +32 -17
- package/dist/cli/register-mutation.js +8 -5
- package/dist/cli/register-operations.d.ts +2 -0
- package/dist/cli/register-operations.js +20 -9
- package/dist/cli-bundle/bundle-manifest.json +144 -144
- package/dist/cli-bundle/chunks/{chunk-CMIEDWAY.js → chunk-2MC2LCXZ.js} +41 -41
- package/dist/cli-bundle/chunks/{chunk-WS2GJQVG.js → chunk-3WICXLVT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7SKMLSMX.js → chunk-6XIIGE7U.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ALKKAUFN.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-MTTKAUBX.js → chunk-DTGWEL23.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-GOACULJW.js +13 -0
- package/dist/cli-bundle/chunks/chunk-NOPL37X4.js +205 -0
- package/dist/cli-bundle/chunks/{chunk-2UETTHY6.js → chunk-TAG4VC22.js} +30 -30
- package/dist/cli-bundle/chunks/{chunk-3TEF3HM5.js → chunk-U45JXJCC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TGNAA66W.js → chunk-X4RCGLTX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2MKLQL2E.js → chunk-Y7VOMSZT.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-OMKJ5ONN.js → register-list-query-XYNX4ASQ.js} +11 -11
- package/dist/cli-bundle/chunks/register-mutation-2MVLRS3J.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-WCIDXBU3.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-GLQ5SYV3.js → register-setup-KVNC5KPL.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-7VATS5QY.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LYFWQMVC.js → chunk-BEVHCEWG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-TDK3OCX3.js → chunk-FWPLDEXF.js} +2 -2
- 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-73EDXGYE.js → chunk-MKHG3T76.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3AVAWVZA.js → chunk-PF3E6Q36.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AD6ULRAF.js → chunk-QDFJIRKN.js} +4 -4
- package/dist/cli-bundle/focused-chunks/{chunk-RKOKG43G.js → chunk-RMRCQPWU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XXOWRJZ5.js → chunk-S4U5CN5Q.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-THEPQMLX.js → chunk-SVXJYD6G.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-T2LXXSOD.js +158 -0
- package/dist/cli-bundle/focused-chunks/chunk-Y6JJIX6I.js +51 -0
- 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 +27 -27
- 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 +10 -10
- package/dist/core/history/drift-scan.js +6 -6
- package/dist/core/history/history.d.ts +6 -0
- package/dist/core/history/history.js +47 -5
- package/dist/core/history/replay.d.ts +12 -1
- package/dist/core/history/replay.js +60 -39
- 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/mcp/server.d.ts +2 -2
- package/dist/mcp/server.js +78 -15
- package/dist/mcp/tool-definitions.js +56 -2
- package/dist/sdk/agent-capability-contracts.js +4 -2
- 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/history-read.js +14 -6
- package/dist/sdk/history-repair.js +17 -10
- package/dist/sdk/index.d.ts +2 -1
- package/dist/sdk/index.js +4 -3
- package/dist/sdk/init-agent-guidance.js +4 -4
- package/dist/sdk/lifecycle/update.js +23 -10
- package/dist/sdk/mcp/discovery.d.ts +152 -0
- package/dist/sdk/mcp/discovery.js +495 -0
- package/dist/sdk/mcp/protocol.d.ts +10 -2
- package/dist/sdk/mcp/protocol.js +15 -4
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/receipts.d.ts +27 -1
- package/dist/sdk/merge/receipts.js +27 -8
- package/dist/sdk/merge/three-way.d.ts +3 -1
- package/dist/sdk/merge/three-way.js +9 -7
- 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 +10 -6
- 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 +12 -4
- package/docs/AGENT_PROVENANCE_ADR.md +1 -1
- package/docs/AGENT_RUNTIME_PRIMITIVES.md +2 -2
- package/docs/ARCHITECTURE.md +5 -0
- package/docs/CLAUDE_CODE_PLUGIN.md +5 -5
- package/docs/COMMANDS.md +12 -12
- package/docs/CONFIGURATION.md +1 -1
- package/docs/CONTEXT_RECOVERY_PRIMITIVES.md +14 -5
- package/docs/DEFECT_RECURRENCE.md +2 -0
- package/docs/MCP_2026_07_28.md +33 -9
- package/docs/MCP_2026_07_28_CONFORMANCE.md +1 -0
- package/docs/MCP_CAPABILITY_SURFACES.md +7 -1
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +15 -3
- package/docs/MERGE_SAFETY.md +30 -2
- package/docs/ONBOARDING.md +1 -1
- package/docs/OUTPUT_TOKEN_ACCOUNTING.md +5 -3
- package/docs/PROGRESSIVE_TOOL_DISCOVERY.md +42 -0
- package/docs/README.md +3 -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/agent-task-token-baseline.json +157 -3
- package/docs/agent-task-transcripts.json +143 -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/docs/performance/cli-transport-overhead.md +8 -6
- 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-claude/README.md +4 -3
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +314 -10
- package/dist/cli-bundle/chunks/chunk-7X6OZEIV.js +0 -34
- package/dist/cli-bundle/chunks/chunk-GNWPTEBW.js +0 -205
- package/dist/cli-bundle/chunks/chunk-N6OR6FAR.js +0 -13
- package/dist/cli-bundle/chunks/register-mutation-QBSNCOY3.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-UC77FQZC.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3UMBF26I.js +0 -158
- package/dist/cli-bundle/focused-chunks/chunk-AXZ5AJAF.js +0 -50
- package/dist/cli-bundle/focused-chunks/chunk-G6PATS5E.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-LLNTHF5X.js +0 -2
|
@@ -1,13 +0,0 @@
|
|
|
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(`- ${Pp(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 jp(t.join(`
|
|
3
|
-
`))}function lk(e){return Jf(e)}function jp(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
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,Im,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await _m(o,{recursive:!0}),await ym(i,t.map(u=>`${JSON.stringify(u)}
|
|
6
|
-
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await km(i)).size<=Em)return;let c=await ra(e),d=`${i}.${process.pid}.${hm()}.tmp`;await vm(d,`${c.map(u=>JSON.stringify(u)).join(`
|
|
7
|
-
`)}
|
|
8
|
-
`,"utf8"),await wm(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 xm(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=xm(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 Cm,randomUUID as Sm}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"],Tm={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 Dm(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 Rm(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 Am(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 Lm(e,t){return{...t,activityDensity:t.activityDensity??Rm(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Am(e)}}function Mm(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 Fm(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(Mm);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 Nm(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,Lm(e,t)).map(({id:r,signals:i})=>({id:r,signals:Dm(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)}.${Sm()}.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=Fm(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=Nm(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=>Tm[l])}}};function Om(e){let t=Cm("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??Om(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 $m(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 Pm(e,t,n){let r,i;for(let o of t){let s=$m(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=Pm(i.id,t.get(i.id)??[],n);o!==void 0&&r.push(o)}return r.sort((i,o)=>i.id.localeCompare(o.id))}import jm from"node:path";import{createHash as Um}from"node:crypto";import Bm 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,Gm=1e4,ua=12;function Km(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Hm(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 zm(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 Wm(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=Km(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=Hm(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(zm).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function qm(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 Vm(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(qm)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Ym(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(Vm)?t:null}function Xm(e){return`scan:${Um("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 Jm(e,t,n){return n!==void 0?n:(await Ae(t))?.source_cursor??Xm(e)}async function Qm(e){try{let t=Ym(JSON.parse(await Bm.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??Gm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Jm(e,t.pmRoot,t.sourceCursor),i=jm.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Qm(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=Wm(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await K(i,`${JSON.stringify(c)}
|
|
10
|
-
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:o}}function 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 Ma=1,Fa=/^[A-Za-z0-9_-]+$/,Oh=100,La=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 Na(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:Ma,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 Oa(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===Ma,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function $a(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Fa.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(!Oa(r,t))throw new y("Mutation event cursor does not match this query.",h.USAGE,{code:"event_cursor_query_mismatch"});return r}function Pa(e){let t=e??Oh;if(!Number.isSafeInteger(t)||t<0||t>La)throw new y(`Mutation event limit must be an integer from 0 to ${La}.`,h.USAGE,{code:"invalid_event_limit"});return t}function ja(e){return e instanceof Error&&e.name==="AbortError"}function Ua(e,t){let n=e?.trim();if(!n)return{};if(Fa.test(n))return{cursor:$a(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 $(t);let n=Pa(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=Na(e),{cursor:u,sinceTimestamp:l}=Ua(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(ja(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:$a,encodeMutationEventCursor:Kr,eventQueryFingerprint:Na,isAbortError:ja,isMutationEventCursorEnvelope:Oa,parseMutationEventLimit:Pa,resolveMutationEventStart:Ua};(function(){try{var e=typeof window<"u"?window:typeof 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,$c as E,g_ as F,Pc as G,h_ as H,y_ as I,__ as J,b_ as K,j as L,oo as M,Ft as N,T_ as O,On as P,D_ as Q,Ye as R,Jc as S,Zc as T,Pn as U,ed 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,Nu 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,sl as Fa,ow as Ga,Yv as Ha,Cl 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,Dl as bb,pr as cb,_w as db,bw as eb,ww as fb,kw as gb,Zl as hb,Cs as ib,ks as jb,vs as kb,of as lb,sf as mb,af as nb,it as ob,dk as pb,uk as qb,lk as rb,qs as sb,Cr as tb,on as ub,Yp as vb,Xs as wb,em as xb,sn as yb,tm as zb,nm as Ab,sm as Bb,am as Cb,hk as Db,cm 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,Tm as Nb,Fm as Ob,Nm as Pb,Dr as Qb,Rr as Rb,un as Sb,ca as Tb,Mk as Ub,Gm as Vb,Wm as Wb,la as Xb,Zm as Yb,fa as Zb,eg as _b,Kk as $b,ma as ac,Yk as bc,Xk as cc,Jk as dc,Qk as ec,ga as fc,tg as gc,cg as hc,ct as ic,yv as jc,Mr as kc,lg as lc,fg 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-N6OR6FAR.js.map
|