@unbrained/pm-cli 2026.8.17 → 2026.8.18
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/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +4 -3
- package/CHANGELOG.md +35 -3
- package/README.md +3 -3
- package/dist/cli/error-guidance.js +7 -4
- package/dist/cli/register-list-query.js +132 -51
- package/dist/cli-bundle/bundle-manifest.json +146 -146
- package/dist/cli-bundle/chunks/chunk-5UZZAJKR.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-YM2YAMF7.js → chunk-ALDJGKAK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HBJAS566.js → chunk-BSK2IN3C.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-DY4DMUMC.js +197 -0
- package/dist/cli-bundle/chunks/{chunk-JOKATURE.js → chunk-GNFAFIJI.js} +9 -9
- package/dist/cli-bundle/chunks/chunk-L5Q2CLPE.js +35 -0
- package/dist/cli-bundle/chunks/{chunk-TPXZIBIV.js → chunk-PVRUN5ZS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7IBRGCHX.js → chunk-RZQTVMRQ.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-SARFF5H5.js +3 -0
- package/dist/cli-bundle/chunks/chunk-UYCLQVL2.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-3UEGXBMR.js → chunk-YRGOLZA7.js} +58 -54
- package/dist/cli-bundle/chunks/register-list-query-I23LALEE.js +11 -0
- package/dist/cli-bundle/chunks/{register-mutation-4WBRPXLV.js → register-mutation-6YGU3GPH.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-SSENDH5B.js → register-operations-4HTFC6J7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-DOSFBGKE.js → register-setup-PPPEF3SN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2PN4TJXH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZQPGZZWQ.js → chunk-3TKWMNKF.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-5AF3ZBNB.js +155 -0
- package/dist/cli-bundle/focused-chunks/chunk-C5IW2NDA.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-SYZENPIT.js → chunk-EUEGXZ2A.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XKAMP5OU.js → chunk-EX6MKP2X.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-CYFK5UPB.js → chunk-K43KKAFS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ATEY76SX.js → chunk-M62NO7EI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SALH6B6K.js → chunk-ODOVCP45.js} +5 -5
- package/dist/cli-bundle/focused-chunks/chunk-RNDNMARJ.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-TN4AE665.js +26 -0
- package/dist/cli-bundle/focused-chunks/chunk-TVV2DONO.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-UI6AJ5TD.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MHPIL773.js → chunk-V5XTGLK7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-KP2VQQVQ.js → chunk-WGHQVU6P.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-XYNBXTDQ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Z56ECT7I.js +2 -0
- package/dist/cli-bundle/main.js +7 -7
- 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 +31 -31
- 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 +32 -32
- 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 +4 -4
- package/dist/core/config/nested-settings.js +8 -2
- package/dist/core/extensions/exporter-output-contract.d.ts +12 -0
- package/dist/core/extensions/exporter-output-contract.js +67 -0
- package/dist/core/extensions/extension-types.d.ts +36 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/loader.js +35 -44
- package/dist/core/history/event-index.d.ts +5 -0
- package/dist/core/history/event-index.js +133 -27
- package/dist/core/sentry/helpers.js +3 -3
- package/dist/core/shared/constants.js +5 -2
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +3 -2
- package/dist/core/store/settings.js +8 -2
- package/dist/mcp/tool-definitions.js +12 -7
- package/dist/sdk/agent/refusal-reachability.js +4 -4
- package/dist/sdk/authoring.d.ts +1 -1
- package/dist/sdk/authoring.js +2 -2
- package/dist/sdk/cli-bootstrap.d.ts +2 -2
- package/dist/sdk/cli-bootstrap.js +4 -4
- package/dist/sdk/cli-contracts/command-aliases.d.ts +34 -2
- package/dist/sdk/cli-contracts/command-aliases.js +64 -13
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -0
- package/dist/sdk/cli-contracts/enum-contracts.js +9 -2
- package/dist/sdk/cli-contracts/flag-contracts.js +11 -7
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +70 -0
- package/dist/sdk/cli-contracts/grammar-contracts.js +345 -0
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +19 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +61 -14
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +7 -2
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +20 -11
- package/dist/sdk/cli-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts.js +4 -4
- package/dist/sdk/completion.js +13 -15
- package/dist/sdk/compose.d.ts +3 -3
- package/dist/sdk/compose.js +2 -2
- package/dist/sdk/contracts.d.ts +1 -0
- package/dist/sdk/contracts.js +3 -2
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/environment/host-environment-errors.js +3 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +54 -14
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -14
- package/dist/sdk/guide-topics.js +5 -5
- package/dist/sdk/index.d.ts +4 -3
- package/dist/sdk/index.js +6 -5
- package/dist/sdk/init-agent-guidance.js +3 -3
- package/dist/sdk/mutation-events.d.ts +18 -2
- package/dist/sdk/mutation-events.js +59 -16
- package/dist/sdk/output.d.ts +44 -0
- package/dist/sdk/output.js +28 -2
- package/dist/sdk/query/complete-list.d.ts +94 -0
- package/dist/sdk/query/complete-list.js +173 -0
- package/dist/sdk/query/list.js +5 -2
- package/dist/sdk/query.d.ts +1 -0
- package/dist/sdk/query.js +3 -2
- package/dist/sdk/read-output-contracts.d.ts +2 -2
- package/dist/sdk/read-output-contracts.js +36 -9
- package/dist/sdk/runtime-extended-actions.js +10 -2
- package/dist/sdk/runtime.d.ts +8 -2
- package/dist/sdk/runtime.js +11 -8
- package/dist/types.d.ts +5 -0
- package/dist/types.js +2 -2
- package/docs/AGENT_GUIDE.md +25 -9
- package/docs/CLI_GRAMMAR.md +106 -0
- package/docs/COMMANDS.md +23 -23
- package/docs/ONBOARDING.md +4 -4
- package/docs/QUICKSTART.md +1 -1
- package/docs/README.md +2 -0
- package/docs/RELEASING.md +30 -6
- package/docs/SDK.md +36 -2
- package/docs/SDK_ARTIFACT_OUTPUT.md +72 -0
- package/docs/SDK_CONTEXT_COORDINATION.md +46 -12
- package/docs/agent-task-token-baseline.json +5 -5
- package/marketplace.json +2 -2
- package/package.json +3 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +652 -31
- package/dist/cli-bundle/chunks/chunk-2QLOXC3V.js +0 -3
- package/dist/cli-bundle/chunks/chunk-4JPYF536.js +0 -35
- package/dist/cli-bundle/chunks/chunk-6VDLG2FC.js +0 -13
- package/dist/cli-bundle/chunks/chunk-ION3E43Q.js +0 -197
- package/dist/cli-bundle/chunks/chunk-OAC5NIV4.js +0 -3
- package/dist/cli-bundle/chunks/register-list-query-Q7KII4G5.js +0 -10
- package/dist/cli-bundle/focused-chunks/chunk-267MUUS6.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-2NNFLLNG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2QSAKMIH.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCG4ZI2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-EHXIKD6K.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KGEXTMPG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-POEEAD2V.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-XPIC53VA.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-ZT2DJS27.js +0 -155
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{$a as dn,$d as ln,B as Nr,Ba as ve,Bg as ao,Bh as fo,C as g,Cg as pt,Dd as zr,E as h,Ed as Hr,Fd as qr,Fh as mo,G as j,Ga as cn,Gc as un,Gd as Wr,Gh as po,Ha as at,Hd as Vr,Hh as De,Ic as jr,Ih as go,Jc as Ur,Kh as le,Kj as _o,Ld as xe,Lh as fe,Mb as Ee,Mh as ho,Na as O,Ne as mn,Nh as ee,Oa as ct,Oc as Br,Of as pn,Oh as yo,Q as G,Qd as Yr,Sf as Se,T as x,U as Mr,V as se,Va as S,Vf as eo,Xd as pe,Xf as to,Xg as co,Ya as $,Yd as Ie,Yf as no,Yg as uo,Za as Or,Zd as Xr,_d as Jr,_f as Ue,aa as Fr,ag as ue,ah as hn,al as wo,bg as gn,c as A,ca as Lr,cd as z,cg as ro,d as st,dc as Pr,e as Dr,ed as dt,ef as ft,f as ie,fe as ut,fg as oo,g as K,h as Rr,he as Qr,hg as mt,kg as io,le as fn,me as lt,mh as gt,ne as de,nh as ht,oe as Z,og as so,pd as M,pg as Te,qd as C,rb as W,rd as F,re as Zr,se as Ce,sh as lo,vh as T,wb as $r,wd as Gr,x as Ar,xc as N,xd as Kr}from"./chunk-DY4DMUMC.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function ba(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,g.GENERIC_FAILURE);i<=t&&(n=o)}),n}function ka(e){let t=e[0]?.ts??null,n=e.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:n}};return n!==null&&(r.examples=["1",String(e.length),n],r.valid_range.first_version=1,r.valid_range.last_version=e.length),{guidance:r,lastTimestamp:n}}function bo(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function ko(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=ka(t);if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,g.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new h(`${i} version must be between 1 and ${t.length} for this item.`,g.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,g.USAGE,s);let d=ba(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,g.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Be(e,t,n,r){let o=oo(e,t);if(o.ok)return o.document;let i=bo(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,g.GENERIC_FAILURE)}function vo(e,t){let n=structuredClone(Ue);for(let r=0;r<=t;r+=1){let o=e[r];if(!o)throw new h(`History target entry ${r+1} does not exist.`,g.USAGE);if(ue(n)!==o.before_hash)throw new h(`History hash mismatch before replay at entry ${r+1}.`,g.GENERIC_FAILURE);if(n=Be(n,o.patch,r+1,o.op),ue(n)!==o.after_hash)throw new h(`History hash mismatch after replay at entry ${r+1}.`,g.GENERIC_FAILURE)}return n}function Eo(e,t){if(Object.keys(e.metadata).length>0)return e;throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,g.USAGE)}import yn from"node:fs/promises";import va from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function Ea(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=lo(e.settings);if(n.ownership_enforcement==="strict")throw new h(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,g.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function xa(e){let t=await ie(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new h(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);let n=await le(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await fe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new h(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function uh(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Se(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await va.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Se(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function xo(e){let t=[...Ea({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Te(e.pmRoot,e.subject.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let r=await xa({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:e.operation});return await e.applyRewrite(r),e.applyPostRewrite&&t.push(...await e.applyPostRewrite(r)),t}finally{await n()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cd2a27ec-0f12-591d-ab34-529ddda05063")}catch{}})();function _n(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function Io(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Co(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",g.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=Io(t.slice(o+1)))}if(n.length===0)throw new h("history-redact --regex cannot use an empty pattern.",g.USAGE);try{new RegExp(n,r)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",g.USAGE)}return{kind:"regex",source:n,flags:r}}function So(e,t){let n=[...new Set(_n(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(_n(t).map(i=>i.trim()))].filter(i=>i.length>0).map(Co),o=[...n,...r];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",g.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function To(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,o=0;for(;r<=e.length;){let i=e.indexOf(t,r);if(i===-1)break;o+=1,r=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:o}}function Do(e,t,n){let r=new RegExp(t.source,t.flags),o=[...e.matchAll(r)];return o.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:o.length}}function wn(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?To(r,i.value,n):Do(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function yt(e,t,n){if(typeof e=="string")return wn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=yt(i,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,o={};for(let[i,s]of Object.entries(e)){let a=yt(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function Ia(e){let t=structuredClone(Ue),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];ue(t)!==i.before_hash&&(n+=1),t=Be(t,i.patch,o+1,i.op),ue(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Ca(e,t,n){let r=0,o=!1,i=e.message;if(typeof e.message=="string"){let a=wn(e.message,t,n);i=a.value,r+=a.replacements,a.replacements>0&&(o=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let c=yt(a.value,t,n);return r+=c.replacements,c.replacements>0?(o=!0,{...a,value:c.value}):a});return{entry:{...e,message:i,patch:s},replacements:r,changed:o}}function Sa(e,t,n){let r=structuredClone(Ue),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ca(e[a],t,n);i+=c.replacements,c.changed&&(o+=1);let d=ue(r);r=Be(r,c.entry.patch,a+1,c.entry.op);let u=ue(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function Ro(e){return Object.keys(e.metadata).length>0}async function Ta(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await fe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Da(e){if(!Ro(e.finalDocument))return{raw:null,path:null,document:null};let t=Kr(gn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",g.USAGE);return{document:t,path:Or(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Gr(t,{format:"toon",schema:e.settings.schema})}}function Ra(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function Aa(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??gn(e.rewritten.finalDocument);return t.push(no({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Na(e){let t=[];return xo({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItem.raw,operation:"history-redact",author:e.author,force:e.force,itemDocument:e.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await po(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await K(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await yn.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,io(e.rewrittenEntries))}catch(c){try{await Ma(e.subject.historyPath,n,o,i)}finally{await Se(e.subject.historyPath)}throw c}await Se(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await go({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await r().catch(a=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...t,...await Fa(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Ma(e,t,n,r){t===null?await yn.rm(e,{force:!0}):await K(e,t);for(let o of n){let i=r.get(o);i===void 0?await yn.rm(o,{force:!0}):await K(o,i)}}async function Fa(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await un({path:o,scope:"project",op:"history_redact"}));return n.push(...await un({path:e,scope:"project",op:"history_redact:history"})),n}async function bn(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:dn(e,o.id),located:o};let i=pt(t,n.id_prefix),s=ao(t),a=i===s?[i]:[i,s];for(let c of a){let d=dn(e,c);if(await A(d))return{id:c,historyPath:d,located:null}}throw new h(`Item ${t} not found`,g.NOT_FOUND)}async function Nh(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=await T(r),i=O(o,N()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=So(t.literal,t.regex),u=await bn(r,e,o,i.type_to_folder);if(!await A(u.historyPath))throw new h(`No history stream exists for ${u.id}.`,g.NOT_FOUND);let l=await ie(u.historyPath),f=await Ie(u.historyPath,u.id);if(f.length===0)throw new h(`No history entries exist for ${u.id}; nothing to redact.`,g.USAGE);let m=Ia(f),y=Sa(f,d,c),p=m.hashMismatchesBefore+m.hashMismatchesAfter,b=!!t.dryRun,w=y.replacements>0,_=[];p>0&&_.push(`history_redact_preexisting_hash_mismatches:${p}`),w||_.push("history_redact_no_matches");let k=await Ta(u,o),E=Da({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:y.finalDocument}),I=(k.path??null)!==(E.path??null)||(k.raw??null)!==(E.raw??null),P=pe(t.author,o.author_default),D=Ra(t,y),{rewrittenEntries:U,auditEntryAdded:ce}=Aa({rewritten:y,dryRun:b,changed:w,nextItemDocument:E.document,author:P,message:D}),B=mt(U);if(!B.ok)throw new h(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,g.GENERIC_FAILURE);return!b&&w&&_.push(...await Na({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:k,nextItem:E,author:P,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:b,changed:w,patterns:{literal_count:d.filter(L=>L.kind==="literal").length,regex_count:d.filter(L=>L.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:k.path!==null,exists_after:E.path!==null,path_before:k.path,path_after:E.path,changed:I},warnings:[...new Set(_)].sort((L,q)=>L.localeCompare(q)),generated_at:G()}}var Mh={applyLiteralRule:To,applyRegexRule:Do,buildRedactionRules:So,hasItemMetadata:Ro,normalizeRegexFlags:Io,normalizeStringArrayInput:_n,parseRegexRule:Co,redactStringValue:wn,redactUnknownValue:yt};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="04f5d4d2-4021-5ce2-b35a-2134d98d2ad7")}catch{}})();function Wh(e,t){let n=mt(e),r=e.length>0?e[e.length-1].after_hash:to(),o=t===void 0?void 0:eo(t),i=o===void 0?void 0:o===r,s=[...n.errors];return i===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:o,current_matches_latest:i}}async function Vh(e,t,n={}){let r=S(n.cwd??process.cwd(),n.pmRoot);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=await T(r),i=O(o,N()),s=await bn(r,e,o,i.type_to_folder),a=await Ie(s.historyPath,s.id);if(a.length===0)throw new h(`No history exists for ${s.id}; point-in-time reads are unavailable.`,g.NOT_FOUND);let c=ko(t,a),d=Eo(vo(a,c.historyIndex),c),u=ro(d,{schema:o.schema});if(u.metadata.id!==s.id)throw new h(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,g.GENERIC_FAILURE);let l=a[c.historyIndex];return{document:u,reconstructed:!0,as_of_version:c.historyIndex+1,as_of_timestamp:l.ts,target:c,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3167c288-0bcc-5a66-8aa0-ca5876ed7d36")}catch{}})();function La(e,t,n,r,o,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:Ga(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function No(e,t,n,r){let o=de("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:o,after:t.after===void 0?void 0:Zr(t.after,o)}}function Re(e,t,n){e.get(t).add(n)}function Ge(e){return new Map(e.map(t=>[t,new Set]))}function Mo(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function _t(e){if(Array.isArray(e))return e.map(n=>_t(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?_t(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,_t(r)]))}function Ao(e){return JSON.stringify(_t(e))}function Oa(e,t,n,r){let o=[{id:e,expanded:!1}];for(;o.length>0;){let i=o.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),o.push({id:i.id,expanded:!0});let s=[...t.get(i.id)].sort().reverse();for(let a of s)n.has(a)||o.push({id:a,expanded:!1})}}function $a(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||Oa(o,t,n,r);return r}function Pa(e,t){let n=new Set,r=[];for(let o of[...e].reverse()){if(n.has(o))continue;let i=[],s=[o];for(n.add(o);s.length>0;){let a=s.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(i)}return Mo(r)}function Fo(e,t){let n=Ge(e);for(let[r,o]of t)for(let i of o)Re(n,i,r);return Pa($a(e,t),n)}function ja(e,t){let n=Ge(e.nodes());for(let r of e.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let i=(o.precedence??"source_before_target")==="source_before_target";Re(n,i?r.source:r.target,i?r.target:r.source)}return n}function Ua(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let s of i)n.set(s,n.get(s)+1);let r=e.filter(i=>n.get(i)===0).sort(),o=[];for(;r.length>0;){o.push(r);let i=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return o}function Ba(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let o=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],i=o===void 0?[]:[o];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function Ga(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function bt(e,t={}){let n=t.registry??W(),r=[...e.nodes()],o=ja(e,n),i=Ua(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:Fo(r,o).filter(u=>u.length>1||o.get(u[0]).has(u[0])),d=Ba(s,o);return{exact:!0,acyclic:a,order:s,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Ka(e,t,n){let r=Ge(e.nodes()),o=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),i=e.edges();for(let s of i){let a=e.registry().require(s.kind);o!==void 0&&!o.has(s.kind)&&(a.inverse===void 0||!o.has(a.inverse))||Re(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:i.length}}function za(e,t,n,r,o,i){let s=wt(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=wt(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((y,p)=>y.distance-p.distance||y.id.localeCompare(p.id)||y.path.join("\0").localeCompare(p.path.join("\0")));for(let y of d)c.has(y.id)||c.set(y.id,y);let u=[...c.values()].sort((y,p)=>y.distance-p.distance||y.id.localeCompare(p.id)),l=r===void 0||r===t?-1:u.findIndex(y=>y.id===r);if(r!==void 0&&r!==t&&l<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=u.slice(l+1,l+1+o),m=l+1+f.length<u.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||m,...m?{nextCursor:Z(i,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function Ha(e,t,n){let r=n.direction,o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=No(t,n,r,o),{adjacency:c,inspectedEdges:d}=Ka(e,r,n.kinds),u={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},l=0,f=!1,m=!1;e:for(let y=0;y<u.queue.length;y+=1){n.signal?.throwIfAborted();let p=u.queue[y];l+=1;let b=[...c.get(p.id)].sort();if(p.depth>=o){b.some(w=>!u.seen.has(w))&&(f=!0);continue}for(let w of b)if(La(u,w,p,t,a,i)==="truncate"){f=!0,m=!0;break e}}if(!u.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:u.affected,exact:!0,truncated:f,...m?{nextCursor:Z(s,u.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:l,inspectedEdges:d}}}function wt(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return Ha(e,t,{...n,direction:r});let o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=No(t,n,r,o);return za(e,t,n,a,i,s)}function Lo(e){let t=[...e.nodes()],n=Ge(t),r=Ge(t);for(let c of e.edges())Re(n,c.source,c.target),Re(n,c.target,c.source),Re(r,c.source,c.target);let o=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],u=[c];for(i.add(c);u.length>0;){let l=u.pop();d.push(l);for(let f of n.get(l))i.has(f)||(i.add(f),u.push(f))}o.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:Mo(o),stronglyConnected:Fo(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function Qh(e,t){let n=new Map(e.edges.map(o=>[Ao(o),o])),r=new Map(t.edges.map(o=>[Ao(o),o]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([o])=>!n.has(o)).map(([,o])=>o),removed:[...n].filter(([o])=>!r.has(o)).map(([,o])=>o),unchangedCount:[...n.keys()].filter(o=>r.has(o)).length,exact:!0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function V(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new h(`${t} must be a non-negative integer`,g.USAGE);return r}function kt(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new h(`${t} filter must be 0..4`,g.USAGE);return r}function Oo(e,t,n="--type"){if(e===void 0)return;let r=ct(e,t);if(!r)throw new h(`${n} filter must be one of ${t.types.join("|")}`,g.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var vt={version:1,aliases:{}};function Et(e=[]){let t=new Set(xe),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function $o(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function kn(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function vn(e,t=xe){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),c=i.slice(s+1).trim();if(!n.has(a))throw new h(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,g.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function xt(e,t=vt,n={}){let r=kn(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function cy(e,t,n=vt,r=xe){return En(t,n,r)(e)}function En(e,t=vt,n=xe){let r=$o(e.harness),o=$o(e.agentInstance),i=vn(e,n);return s=>{let c=kn(s,t).agent_harness;if(r&&(!c||!r.has(c))||o&&!o.has(s.agent_instance??""))return!1;for(let[d,u]of i){let l=s.agent_provenance?.[d];if(!l||!u.has(l.value))return!1}return!0}}function It(e,t=vt,n=xe){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);kn(s,t).agent_harness?i+=1:o.set(s.author,(o.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...o].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,c=0;for(let d of e){let u=d.agent_provenance?.[s];u===null?c+=1:u!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import qa from"node:fs/promises";import Uo from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="49304d18-d722-5413-8e4d-4f2c3df4a1ca")}catch{}})();var Wa=20,Va=5,Ya=15,Xa="-24h";function _y(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var Ja={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function xn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new h(`${t} must not be empty`,g.USAGE);return n}function Po(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new h("Activity time bounds must not be empty",g.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return se(o,new Date(t),n)}function Qa(e,t,n){return!(e.ts.length===0&&(t||n)||t&&x(e.ts,t)<0||n&&x(e.ts,n)>=0)}function jo(e,t){return t===void 0?e:e.slice(0,t)}function Ke(e,t=""){return typeof e=="string"?e:t}function Za(e,t){return{...t,id:e,ts:Ke(t.ts),author:Ke(t.author,"unknown"),op:Ke(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ke(t.before_hash),after_hash:Ke(t.after_hash)}}function ec(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let o=t.id.localeCompare(n.id);return o!==0?o:t.op.localeCompare(n.op)})}async function tc(e){try{return(await qa.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Dr(t))return[];throw t}}function nc(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function rc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Ya:n==="compact"?Wa:Va}function oc(e,t){let n=G(),r=t==="digest",o=Po(e.to??(r?n:void 0),n,"--to"),i=Po(e.from??(r?Xa:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&x(i,o)>=0)throw new h("Activity --from must be before --to",g.USAGE);let s=hn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new h("Activity --unbounded cannot be combined with --limit",g.USAGE);return{id:xn(e.id,"Activity --id"),op:xn(e.op,"Activity --op"),author:xn(e.author,"Activity --author"),from:i,to:o,limit:rc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function ic(e){let t=S(process.cwd(),e.path);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function sc(e){let t=O(e.settings,N()),n=await ee(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await so({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Uo.join(e.pmRoot,"history");return await jr({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function ac(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Qa(t,n.from,n.to)}async function cc(e,t){let n=[];for(let r of await tc(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Ie(Uo.join(e,r),o);for(let s of i){let a=Za(o,s);ac(s,a,t)&&n.push(a)}}return n}function dc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function uc(e){let t=[...e.entries()].sort(([r,o],[i,s])=>s-o||r.localeCompare(i)),n=t.slice(0,4).map(([r,o])=>`${r}:${o}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function lc(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,x(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),x(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:uc(o.operations)}}).sort((r,o)=>x(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function fc(e){let t=new Map;for(let o of e)t.set(o.op,(t.get(o.op)??0)+1);let n=[...t.entries()].sort((o,i)=>i[1]-o[1]||o[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((o,[,i])=>o+i,0)]),Object.fromEntries(r)}function mc(e,t,n,r,o){if(e==="digest"){let s=lc(t,r),a=jo(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=jo(t,n);return e==="compact"?{rows:{compact_activity:dc(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(o)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function Bo(e,t){let n=await ic(t),r=nc(e),o=oc(e,r),i=await sc(n),s=Et(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=En({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=ec(await cc(i.historyDir,o)).filter(c),u=mc(r,d,o.limit,i.itemsById,f=>xt(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:Ja[r]},omission_receipt:Qr("activity",r),count:u.returnedRows,total_count:u.totalRows,limit:o.limit??null,omitted_count:l,has_more:l>0,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:d.length,item_count:u.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:fc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:It(d,a,s)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var Go="global",pc="external";function Ae(e){let t=e?.trim().toLowerCase();return t===Go||t===pc}function ky(e){let t=e?.trim();if(t)return Ae(t)?Go:t}function vy(e,t,n){let r=e.trim();return Ae(n)?r:pt(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a6fc5da1-b7d1-5b3c-8033-cecccc7861c3")}catch{}})();function Me(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function In(e){let t=Me(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function ge(){let e=W();for(let t of N()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}function Ne(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function gc(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Me(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${o.toLowerCase()}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function hc(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of gc(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=Ne(r.holder_id,o.holder_id);if(i!==0)return i;let s=Ne(r.target_id,o.target_id);return s!==0?s:Ne(r.kind,o.kind)})}function yc(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Me(n.id);if(!i||i.toLowerCase()!==t.toLowerCase())return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function _c(e,t=r=>r==="closed"||r==="canceled",n=ge()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=Me(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=yc(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=Ne(o.holder_id,i.holder_id);if(s!==0)return s;let a=Ne(o.target_id,i.target_id);return a!==0?a:Ne(o.dependency_kind,i.dependency_kind)})}function Cn(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,u,l)=>{let f=Me(d);if(!f||r.has(f.toLowerCase()))return;let m={holder_id:c.id.trim(),target_id:f,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:f.toLowerCase()==="no-active-blocker"};o.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent"),i(c,c.blocked_by,"blocked_by","blocked_by");for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;Ae(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency")}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function wc(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function bc(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!Ae(r.source_kind))continue;let o=Me(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function kc(e,t=ge()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function Fe(e,t,n){let r=n??ge(),o=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=Cn(o,t),a=wc(s);for(let f of a)i.set(f.toLowerCase(),f);let c=bc(o),d=new Set(i.keys()),u=new Map;for(let f of c){let m=f;for(;d.has(m.toLowerCase());)m=`external:${m}`;u.set(f.toLowerCase(),m),d.add(m.toLowerCase())}let l=o.map(f=>{let m=In(f.parent),y=In(f.blocked_by),p=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,_=In(w.id);return _?[{id:Ae(w.source_kind)?u.get(_.toLowerCase()):i.get(_.toLowerCase()),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:f.id.trim(),...m?{parent:i.get(m.toLowerCase())}:{},...y?{blocked_by:i.get(y.toLowerCase())}:{},dependencies:p}});return{graph:$r.fromItems([...l,...a.map(f=>({id:f})),...c.map(f=>({id:u.get(f.toLowerCase())}))],r),details:[...o.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...a.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f.toLowerCase()),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(a.map(f=>f.toLowerCase())),dangling:s,duplicateRows:hc(o,t),orderingContradictions:_c(o,t,r),legacyAliasCounts:kc(o,r)}}import{createHash as vc}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var Ec=64,xc=8;function Ic(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function Ct(e,t=r=>r==="closed"||r==="canceled",n=W()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Ic(i,t)).sort(),o=n.list().map(i=>Ee(i)).sort();return vc("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Ko(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Sn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Ko("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Ec),this.#n=Ko("maxWorkspaces",t.maxWorkspaces,xc)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let l=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},zo=new Sn;function St(){return zo}function Ay(){zo.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Cc=["prerequisite","dependent","ancestor","descendant","provenance","related"],Sc=new TextEncoder;function Tn(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function Tt(e){return Math.max(1,Math.ceil(Sc.encode(JSON.stringify(e)).byteLength/4))}function Dn(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=(r.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Tc(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Dn(i,n,r));return[...new Set(o)].sort()}function Dc(e){return Cc.find(t=>e.includes(t))}function Rc(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let l=0;l<a.length;l+=1){r.signal?.throwIfAborted();let f=a[l];if(f.distance>=i&&u)continue;let m=e.neighborEdges(f.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=i){m.value.some(y=>!s.has(y.id))&&(u=!0);continue}for(let{id:y,edge:p}of m.value){if(s.has(y))continue;s.add(y);let b={id:y,distance:f.distance+1,via:f.id,role:Dn(p,y,n)};c.push(b),a.push(b)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Ac(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Dn(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Nc(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Tc(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Dc(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Tt(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Mc(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=Tt(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Ho(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Tn(r.nodeLimit,20,"nodeLimit"),i=Tn(r.edgeLimit,40,"edgeLimit"),s=Tn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??W(),c=new Map(n.map(Q=>[Q.id,Q])),d=c.get(t)??{id:t},{evidence:u=[],...l}=d,f=[...u],m=Rc(e,t,a,r),{rootEdges:y,...p}=Ac(e,t,a,r),b=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),w=Ce(m.rows,r.cursor,b,({id:Q})=>Q),_=m.rows.slice(w),k=Tt(l)+Tt(f);if(k>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=Nc({candidates:_,details:c,rootEdges:y,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:k}),{nodes:I}=E,P=new Set([t,...I.map(({id:Q})=>Q)]),D=Mc({graph:e,included:P,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:E.usedTokens}),{edges:U,usedTokens:ce}=D,B=w+I.length,L=B<m.rows.length,q=I.at(-1),X=D.candidateCount-U.length,J=m.depthTruncated||L||X>0,be={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:U.length,omittedNodes:m.rows.length-B,omittedEdges:X,evidenceCount:f.length,hasMore:L};return{root:l,summary:be,nodes:I,edges:U,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:ce,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-B,omittedEdges:X,...L&&q?{nextCursor:Z(b,q.id,B-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee0547d9-ae0f-5762-8bff-e25f0a3cd4d5")}catch{}})();var Fc=["tree","graph","context"],Lc=["none","repeated"],Oc=["outgoing","incoming","both"],$c=32,Pc=200,jc=400,Uc=16e3;function Bc(e){let t=e?.trim().toLowerCase()??"tree";if(Fc.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,g.USAGE)}function te(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,g.USAGE);return n}function Dt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,g.USAGE);return t}function Gc(e){let t=e?.trim().toLowerCase()??"none";if(Lc.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,g.USAGE)}function An(e){let t=e?.trim().toLowerCase()??"both";if(Oc.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,g.USAGE)}function Nn(e,t=W()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,g.USAGE)}r.add(i.kind)}return[...r].sort()}function Kc(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function zc(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Kc(e.dependencies)}}function Hc(e){return ft(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function qc(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Wo(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Wc(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Wo(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),l={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=Hc(l),Wc(l,u,d,r,o,i,s,a))return l;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),qc(l,u,t,f,r,o,i,s,a),l}function qo(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Vc(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,qo(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,qo(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function Vo(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();r.add(u);let l=t.get(u);if(!l){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let f of l.dependencies)o.add(`${u}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Yc(e,t=W()){let n=Dt(e.maxDepth),r=te(e.nodeLimit,"node-limit"),o=te(e.edgeLimit,"edge-limit"),i=te(e.tokenBudget,"token-budget"),s=Nn(e.kind,t);return{direction:An(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Xc(e,t,n,r){return Ho(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Rn(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Jc(e,t,n,r){let o=await le(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await fe(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,f])=>f===0))return[];let l=[`linked:${u.map(([f,m])=>`${f}=${m}`).join(",")}`];return Rn(l,"file",a.map(f=>f.path),3),Rn(l,"test",c.map(f=>f.command??f.path),2),Rn(l,"doc",d.map(f=>f.path),2),l}function Qc(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function Zc(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Yo(e,t,n){let r;for(;;){let o=ft(new TextEncoder().encode(pn(fn("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function ed(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function td(e){try{return Xc(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&ed(t))return e.smallestResult;throw t}}function nd(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let y=td({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in y)return y;let p=y;f??=p.meta.tokenBudget,l??=f;let b=Qc({canonicalId:n,context:p,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(m=b,i||(p.meta.tokenBudget=f,p.meta.usedTokens=Yo(Le(b,!1),s,k=>{p.meta.usedTokens=k}),p.meta.usedTokens<=f))return b;if(u>0){u-=1;continue}let w=l,_=w*f/p.meta.usedTokens;l=Math.min(w-1,Math.max(1,Math.floor(_*.9)))}}function rd(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Yc(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),u=new Set(d.map(p=>p.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(p=>l.require(p).kind)):void 0,m=new Set([n,...c.value]),y=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>Zc({row:p,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return nd({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:y})}function od(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function id(e,t,n,r,o,i,s){let a=o??$c,c=te(n.nodeLimit,"node-limit")??Pc,d=te(n.edgeLimit,"edge-limit")??jc,u=te(n.tokenBudget,"token-budget")??Uc,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=Wo(e,r,new Set,a,t==="graph"?"repeated":i,new Set,l),m=Vo(e,r,void 0),y;for(;;){let p=Vc(f),b=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-p.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-p.edges.length)},w={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...b?{truncation:b}:{}};if(y=t==="tree"?{...w,tree:f}:{...w,graph:p},(y.truncation===void 0?ft(new TextEncoder().encode(pn(fn("deps",Le(y,!1)),s)).byteLength):Yo(Le(y,!1),s,k=>{y.truncation.estimated_tokens=k}))<=u)return y;if(!od(f))return l.reasons.add("token_budget"),y;l.reasons.add("token_budget")}}function Le(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function Zy(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let o=Bc(t.format),i=Dt(t.maxDepth),s=Gc(t.collapse);ut(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await T(r),d=O(c,N()),u=await ee(r,c.item_format,d.type_to_folder,void 0,c.schema),l=z(c.schema),f=new Map(u.map(y=>[y.id.trim().toLowerCase(),zc(y)])),m=Cn(u,y=>F(y,l));for(let y of[...m.active,...m.legacy_terminal]){let p=f.get(y.holder_id.trim().toLowerCase()),b=y.kind.trim().toLowerCase();p&&!p.dependencies.some(w=>w.id.trim().toLowerCase()===y.target_id.trim().toLowerCase()&&w.kind===b)&&p.dependencies.push({id:y.target_id,kind:b})}if(!f.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,g.NOT_FOUND);if(o==="context"){let y=f.get(e.trim().toLowerCase()).id,p=a?[]:await Jc(r,y,c,d.type_to_folder),b=k=>F(k,l),w=ge(),_=St().lookup(r,Ct(u,b,w),()=>Fe(u,b,w));return Le(rd({assembly:_.assembly,canonicalId:y,options:t,rootEvidence:p,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Le({id:e,format:o,...Vo(e,f,i)},!0,Object.fromEntries(Object.entries(Fe(u,y=>F(y,l)).legacyAliasCounts))):Le(id(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Fe(u,y=>F(y,l)).legacyAliasCounts)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var sd=5,ad=1e4,cd=8;function Mn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Rt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function ze(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function At(e,t){let n=ze(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function dd(e,t,n){if(t===void 0)return;let r=e.registry(),o=new Set;for(let i of t){let s=r.require(i);if(!s[n])throw new TypeError(`Relationship kind ${s.kind} is not a ${n} kind`);o.add(s.kind)}return o}function ud(e,t,n,r,o){let i=e.registry(),s=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of s.value){let u=i.require(d.edge.kind);u[r]&&o(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function ld(e,t,n,r,o,i){if(t>=n)return e.neighbors.some(s=>!i.seen.has(s))&&(i.truncated=!0),!1;for(let s of e.neighbors)if(!i.seen.has(s)){if(i.seen.add(s),i.queue.push({id:s,depth:t+1}),!i.resumed){s===o&&(i.resumed=!0);continue}if(i.value.length>=r)return i.truncated=!0,!0;i.value.push(s)}return!1}function Nt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=dd(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];u+=1;let y=ud(e,m.id,i,r,o);if(l+=y.inspectedEdges,ld(y,m.depth,a,s,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Xo(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Jo(e,t,n,r,o){let i=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return o.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(s=>!t.nodeSet.has(s.id))}function fd(e,t,n,r,o,i,s){for(let a of Jo(e,t,r,o,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),u=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:u,length:u.length}),s.value.length>=i)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function Qo(e,t,n={}){return Nt(e,t,n,"hierarchy",(r,o)=>Rt(r.edge,o)===r.id)}function Zo(e,t,n={}){return Nt(e,t,n,"hierarchy",(r,o,i)=>Rt(r.edge,o)===i)}function ei(e,t,n={}){return Nt(e,t,n,"ordering",(r,o)=>ze(r.edge,o)===r.id)}function ti(e,t,n={}){return Nt(e,t,n,"ordering",(r,o,i)=>ze(r.edge,o)===i)}function md(e,t,n,r,o,i,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=o+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=l||d>=i){u=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=s){Jo(e,m,r,a,c).length>0&&(u=!0);continue}if(fd(e,m,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function ni(e,t,n,r={}){Xo(e,t),Xo(e,n);let o=r.maxPaths??sd,i=r.maxVisitedPaths??ad,s=r.maxDepth??cd;Mn("maxPaths",o),Mn("maxVisitedPaths",i),Mn("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?o===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:md(e,t,n,r,o,i,s,a)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var pd=16,gd=2,hd=8;function Mt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Ft(e,t,n){let r=e.registry(),o=t===void 0?void 0:new Set(t.map(i=>r.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let s=r.require(i.kind);o!==void 0&&!(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))||n(i,s)}}function yd(e,t){let n=new Map;Ft(e,t,r=>{ri(n,r.source,r.target),ri(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ri(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function _d(e,t){let n=new Map;for(let i of e){let s=t.get(i);n.set(s,(n.get(s)??0)+1)}let r,o=0;for(let[i,s]of n)(s>o||s===o&&i<r)&&(r=i,o=s);return r}function wd(e,t){let n=new Map;for(let[o,i]of e){let s=n.get(i);s===void 0?n.set(i,[o]):s.push(o)}let r=[];for(let o of n.values())o.length<t||(o.sort(),r.push({representative:o[0],size:o.length,members:o}));return r.sort((o,i)=>i.size-o.size||o.representative.localeCompare(i.representative))}function oi(e,t={}){let n=t.maxIterations??pd,r=t.minSize??gd;Mt("maxIterations",n),Mt("minSize",r);let o=yd(e,t.kinds),i=e.nodes(),s=new Map(i.map(l=>[l,l])),a=0,c=!1,d=0,u=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let l of i){d+=1;let f=o.get(l);if(f===void 0)continue;u+=f.length;let m=_d(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:wd(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Lt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Ot(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function $t(e,t){return(t.hierarchy?Rt(e,t):e.source===ze(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function bd(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let o of t){let i=n.require(o);if(!Lt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Ot(i))}return r}function kd(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!Lt(i))continue;let s=Ot(i);if(t!==void 0&&!t.has(s))continue;let a=$t(o,i);if(a.from===a.to)continue;let c=r.get(s);c===void 0&&(c={adjacency:new Map,records:[]},r.set(s,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:o})}return r}function vd(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function Ed(e,t,n,r){let o=[r];for(let i=n;i!==t;i=e.get(i))o.push(i);return o.push(t),o.reverse()}function xd(e,t,n,r,o,i){for(let s of e.get(n.id)??[])if(i.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return Ed(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function Id(e,t,n,r){let o=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let s=0;s<i.length;s+=1){let a=i[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=xd(e,t,a,o,i,r);if(c!==void 0)return c}}function Oe(e,t={}){let n=t.maxDepth??hd;Mt("maxDepth",n),t.limit!==void 0&&Mt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=bd(e,t.kinds),i=kd(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=vd(u);for(let f of u.records){t.signal?.throwIfAborted();let m=Id(l,f,n,a);if(m!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:m})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function Cd(e,t,n,r,o){let i=new Set,s=[];for(let a of n){if(a.id===e||i.has(a.id))continue;if(!o.seen.has(a.id)){if(t>=r){o.truncated=!0;continue}o.seen.add(a.id),o.queue.push({id:a.id,depth:t+1})}i.add(a.id),s.push(a.id);let c=o.predecessors.get(a.id);c===void 0&&(c=new Set,o.predecessors.set(a.id,c)),c.add(e)}return s}function Sd(e,t,n){let r=n.direction??"outgoing",o=n.maxDepth??Number.POSITIVE_INFINITY,i=[],s=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){n.signal?.throwIfAborted();let{id:u,depth:l}=a.queue[d];i.push(u);let f=e.neighborEdges(u,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(u,Cd(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Td(e,t){let n=[],r=new Set([t]),o=[{id:t,index:0}];for(;o.length>0;){let i=o.at(-1),s=e.successors.get(i.id);if(i.index<s.length){let a=s[i.index];i.index+=1,r.has(a)||(r.add(a),o.push({id:a,index:0}))}else n.push(i.id),o.pop()}return n.reverse()}function Dd(e,t,n,r){let o=e,i=t;for(;o!==i;){for(;r.get(o)>r.get(i);)o=n.get(o);for(;r.get(i)>r.get(o);)i=n.get(i)}return o}function Rd(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Dd(r,o,t,n));return r}function Ad(e,t,n,r,o){let i=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(o?.throwIfAborted(),a===t)continue;let c=Rd(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function ii(e,t,n={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(n.maxDepth!==void 0&&(!Number.isInteger(n.maxDepth)||n.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(n.maxDepth)}`);let r=Sd(e,t,n),o=Td(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Ad(r,t,o,i,n.signal),a=new Map(o.map(d=>[d,1]));for(let d=o.length-1;d>=0;d-=1){let u=o[d];if(u===t)continue;let l=s.get(u);a.set(l,a.get(l)+a.get(u))}let c=o.filter(d=>d!==t).map(d=>({id:d,idom:s.get(d),dominatedCount:a.get(d)-1})).sort((d,u)=>u.dominatedCount-d.dominatedCount||d.id.localeCompare(u.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function si(e){return Math.round(e*1e6)/1e6}function ai(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function ci(e,t){let n=new Map(e.nodes().map(o=>[o,new Set]));Ft(e,t,o=>{n.get(o.source).add(o.target),n.get(o.target).add(o.source)});let r=new Map;for(let[o,i]of n)r.set(o,[...i].sort());return r}function Nd(e,t){let n=new Map,r=new Map;return Ft(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=At(o,i);ai(r,s,a),ai(n,a,s)}),{incoming:n,outgoing:r}}function Md(e,t,n){let r=new Map([[e,0]]),o=new Map([[e,1]]),i=new Map,s=[],a=[e],c=0,d=0;for(let u=0;u<a.length;u+=1){let l=a[u];n.visitedNodes+=1,s.push(l);let f=r.get(l);l!==e&&(c+=1,d+=f);for(let m of t.get(l))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){o.set(m,(o.get(m)??0)+o.get(l));let y=i.get(m);y===void 0?i.set(m,[l]):y.push(l)}}return{stack:s,sigma:o,predecessors:i,reachableCount:c,distanceSum:d}}function Fd(e,t,n){let r=new Map;for(let o=e.stack.length-1;o>=0;o-=1){let i=e.stack[o],s=(1+(r.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);i!==t&&n.set(i,(n.get(i)??0)+(r.get(i)??0))}}function Ld(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Od(e,t,n,r,o){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:si((r.get(e)??0)/2),closeness:si(o.get(e))}}function di(e,t={}){let n=ci(e,t.kinds),r=Nd(e,t.kinds),o=e.nodes(),i=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let u of o){t.signal?.throwIfAborted();let l=Md(u,n,a);s.set(u,Ld(l,o.length)),Fd(l,u,i)}let c=0;for(let u of n.values())c+=u.length;let d=o.map(u=>Od(u,n,r,i,s)).sort((u,l)=>l.betweenness-u.betweenness||l.degree-u.degree||u.id.localeCompare(l.id));return{value:{nodeCount:o.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function $d(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Pd(e,t,n){let o=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,o!==e.parent){if(n.discovery.has(o)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(o)));return}return e.children+=1,n.discovery.set(o,n.timer),n.low.set(o,n.timer),n.timer+=1,{node:o,parent:e.node,neighborIndex:0,children:0}}}function jd(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,o=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),o)),r!==t&&o>=n.discovery.get(r)&&n.articulation.add(r),o>n.discovery.get(r)&&n.bridges.push($d(r,e.node))}function Ud(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let o=[{node:e,parent:null,neighborIndex:0,children:0}];for(;o.length>0;){r?.throwIfAborted();let i=o.at(-1);if(i.neighborIndex<t.get(i.node).length){let s=Pd(i,t,n);s!==void 0&&o.push(s)}else jd(i,e,n),o.pop()}}function Pt(e,t={}){let n=ci(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let o of e.nodes())r.discovery.has(o)||Ud(o,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((o,i)=>o.source.localeCompare(i.source)||o.target.localeCompare(i.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!1}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Bd(e){let t=e.registry(),n=new Map,r=new Set;for(let o of e.edges()){let i=t.require(o.kind);if(!i.ordering)continue;let{predecessor:s,successor:a}=At(o,i);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function Gd(e,t,n,r){if(e===void 0)return r;let o=r;for(let i of e)t.has(i)&&(o=Math.min(o,n.get(i)));return o}function Kd(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function zd(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Gd(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>Kd(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function ui(e,t={}){t.signal?.throwIfAborted();let n=bt(e,{registry:e.registry()}),r=Bd(e),o=new Set(n.order),i=n.order.filter(d=>r.participants.has(d)),s=i.reduce((d,u)=>Math.max(d,n.depth[u]+1),0),a=zd(i,r,n.depth,o,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bc561e73-75b8-5ea7-a18c-da70fb991b69")}catch{}})();var jt=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b63fba34-8ca1-5e3a-905d-772ea8ce0f11")}catch{}})();var Hd=25,qd="milestone",Wd="outcome milestone:",Vd=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Pn(e){return Vd.has(e)}var li={error:0,warning:1,info:2};function fi(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function On(e,t,n,r,o,i,s,a){let c=[...o].sort((d,u)=>d.localeCompare(u));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,i),sample_truncated:c.length>i,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,u)=>d.localeCompare(u)).slice(0,i)}}}function Yd(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let[i,s]=(o.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(i);a?a.push(s):n.set(i,[s])}for(let r of n.values())r.sort((o,i)=>o.localeCompare(i));return n}function pi(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function Xd(e,t,n,r){let o=n.get(e.node)??[];if(e.neighborIndex>=o.length)return!1;let i=o[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(i)?r.onStack.has(i)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(i))):(pi(i,r),t.push({node:i,neighborIndex:0})),!0}function Jd(e,t,n,r){t.pop();let o=t.at(-1);if(o&&r.lowLinks.set(o.node,Math.min(r.lowLinks.get(o.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let i=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),i.push(s),s===e.node)break}(i.length>1||i.length===1&&n.get(i[0])?.includes(i[0]))&&r.components.push(i.sort((s,a)=>s.localeCompare(a)))}function Qd(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,o)=>r.localeCompare(o));for(let r of n){if(t.indexes.has(r))continue;let o=[{node:r,neighborIndex:0}];for(pi(r,t);o.length>0;){let i=o.at(-1);Xd(i,o,e,t)||Jd(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function Fn(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function H(e,t,n,r,o,i,s,a){t.length!==0&&e.push(On(r,o,i,s,t,n,a))}function Zd(e,t,n){let r=[],o=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return H(r,o.filter(i=>!t(i.holder_status)).map(Fn),n,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",i=>`${i} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),H(r,o.filter(i=>t(i.holder_status)).map(Fn),n,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",i=>`${i} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),H(r,e.dangling.no_active_blocker_sentinels.map(Fn),n,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",i=>`${i} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),r}function $n(e,t){let n=t.get(e);return n?!n.terminal:!0}function gi(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function eu(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(gi(i));let o=[];return H(o,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",i=>`${i} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),H(o,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",i=>`${i} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),o}function tu(e,t,n,r){let o=[],i=Yd(e);for(let c of Qd(i)){let d=c.some(f=>$n(f,t)),u=new Set(c.map(f=>f.toLowerCase())),l=(e.orderingContradictions??[]).filter(f=>u.has(f.holder_id.toLowerCase())&&u.has(f.target_id.toLowerCase())).map(gi);o.push(d?On("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",f=>`execution-order cycle across ${f} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",l.length===0?void 0:l):On("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",f=>`terminal-only execution-order cycle across ${f} item(s)`,c,r,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc.",l.length===0?void 0:l))}let s=new Map;for(let[c,d]of i)for(let u of d){let l=s.get(u);l?l.push(c):s.set(u,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let u=t.get(d);return u===void 0||!u.terminal})).map(c=>c.id);return H(o,a,r,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),o}function Ut(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function jn(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!Lt(i))continue;let s=$t(o,i);if(s.from===s.to)continue;let a=`${Ot(i)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(o):n.set(a,{...s,edges:[o]})}let r=[...n.values()].filter(o=>o.edges.length>=2);for(let o of r)o.edges.sort((i,s)=>i.kind.localeCompare(s.kind));return r.sort((o,i)=>o.from.localeCompare(i.from)||o.to.localeCompare(i.to))}function nu(e,t,n){let r=[],o=[];for(let s of jn(e))($n(s.from,t)||$n(s.to,t)?r:o).push(Ut(s));let i=[];return H(i,r,n,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",s=>`${s} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),H(i,o,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",s=>`${s} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function ru(e,t){let n=[],r=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?r:n).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let o=[];return H(o,n,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",i=>`${i} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),H(o,r,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",i=>`${i} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),o}function ou(e,t){let n=new Map;for(let r of e.graph.edges()){t?.throwIfAborted();let o=e.graph.registry().require(r.kind),i;if(o.hierarchy?i=$t(r,o):o.kind==="implements"&&(i={from:r.source,to:r.target}),i===void 0)continue;let s=n.get(i.to)??new Set;s.add(i.from),n.set(i.to,s)}return n}function iu(e,t,n){let r=new Set(e),o=[...e].sort();for(let i=0;i<o.length;i+=1){n?.throwIfAborted();for(let s of[...t.get(o[i])??[]].sort())r.has(s)||(r.add(s),o.push(s))}return r}function su(e,t,n,r){let o=0,i=0,s=0,a=0;for(let m of e.values())if(r?.throwIfAborted(),!t.has(m.id)&&!(m.missing||m.status==="external")){if(m.terminal){s+=1,n.has(m.id)&&(a+=1);continue}n.has(m.id)?o+=1:i+=1}let c=o+i,d=s-a,u=o+a,l=i+d,f=u+l;return{active_outcome_reachable_nodes:o,active_outcome_unreachable_nodes:i,active_outcome_reachability_basis_points:c===0?0:Math.floor(o*1e4/c),terminal_nodes:s,terminal_outcome_reachable_nodes:a,terminal_outcome_unreachable_nodes:d,terminal_outcome_reachability_basis_points:s===0?0:Math.floor(a*1e4/s),outcome_reachable_nodes:u,outcome_unreachable_nodes:l,outcome_reachability_basis_points:f===0?0:Math.floor(u*1e4/f)}}function au(e,t,n){let r=new Set(e.details.filter(i=>i.type?.toLowerCase()===qd&&i.title.trim().toLowerCase().startsWith(Wd)).map(i=>i.id)),o=iu(r,ou(e,n),n);return{outcome_nodes:r.size,...su(t,r,o,n)}}function cu(e,t,n,r,o){e.active+=1;let i=t.type??"(untyped)",s=e.byType.get(i);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,s)),s.active+=1,!(n>1)&&(e.degreeLeqOne+=1,s.degree_leq_one+=1,n===0&&(e.isolated+=1,s.isolated+=1),!(r.has(t.id.toLowerCase())||o.has(i.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function du(e,t,n,r,o,i,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let _ of e.graph.nodes()){s?.throwIfAborted();let k=t.get(_);if(k){if(k.missing){a.missing+=1;continue}k.terminal||cu(a,k,e.graph.incidentEdges(_).length,n,r)}}let{isolates:c,sparse:d}=a,u=[];H(u,c,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",_=>`${_} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),H(u,d,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",_=>`${_} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let l=e.graph.edges().length,f=Oe(e.graph,{signal:s}).value,m=new Set(f.map(({edge:_})=>`${_.source.toLowerCase()}\0${_.target.toLowerCase()}\0${_.kind}`));for(let _ of e.orderingContradictions??[])m.add(`${_.holder_id.toLowerCase()}\0${_.target_id.toLowerCase()}\0${_.dependency_kind}`);let y=Object.fromEntries(Object.entries(i).sort(([_],[k])=>_.localeCompare(k))),p=Object.entries(y).reduce((_,[k,E])=>_+(Pn(k)?E:0),0),b=Pt(e.graph,{signal:s}).value,w=au(e,t,s);return{findings:u,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(_=>_.status!=="missing"&&_.status!=="external").length,edges:l,informative_edges:l-m.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:y,edge_share_by_kind:Object.fromEntries(Object.entries(y).map(([_,k])=>[_,k/l])),semantic_edges:p,semantic_edge_share:l===0?0:p/l,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([_],[k])=>_<k?-1:1)),articulation_points:b.articulationPoints.length,bridge_edges:b.bridges.length,...w,finding_subjects_by_code:Object.fromEntries(jt.map(_=>[_,0]))}}}function Bt(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),o=t.maxSampleSize??Hd;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=fi(t.exemptIsolates),s=fi(t.isolateExemptTypes),a=new Map(e.details.map(f=>[f.id,{id:f.id,status:f.status,missing:e.missingIdSet.has(f.id.toLowerCase()),terminal:n(f.status),...f.type===void 0?{}:{type:f.type}}]));t.signal?.throwIfAborted();let c={};for(let f of e.graph.edges())c[f.kind]=(c[f.kind]??0)+1;let d=Zd(e,n,o);t.signal?.throwIfAborted(),d.push(...eu(e,o)),t.signal?.throwIfAborted(),d.push(...tu(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...nu(e,a,o),...ru(e,o)),t.signal?.throwIfAborted();let u=du(e,a,i,s,o,c,t.signal);d.push(...u.findings),d.sort((f,m)=>li[f.severity]-li[m.severity]||f.code.localeCompare(m.code)||f.sample[0].localeCompare(m.sample[0]));let l=u.profile.finding_subjects_by_code;for(let f of d)l[f.code]+=f.count;return{findings:d,profile:{...u.profile,finding_subjects_by_code:l}}}function Ln(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let o of n){let i=(t[o]??0)-(e[o]??0);i!==0&&(r[o]=i)}return r}function mi(e){return e.profile.coverage_by_type??{}}function uu(e,t){let n={},r=mi(e),o=mi(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=Object.assign({active:0,isolated:0,degree_leq_one:0},r[s]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},o[s]),d={active:c.active-a.active,isolated:c.isolated-a.isolated,degree_leq_one:c.degree_leq_one-a.degree_leq_one};Object.values(d).some(u=>u!==0)&&(n[s]=d)}return n}function hi(e,t){let n=uu(e,t),{edge_share_by_kind:r={},semantic_edges:o=0,semantic_edge_share:i=0}=e.profile,{edge_share_by_kind:s={},semantic_edges:a=0,semantic_edge_share:c=0}=t.profile,d=e.profile.recorded_nodes??e.profile.nodes,u=t.profile.recorded_nodes??t.profile.nodes,l=e.profile.informative_edges??e.profile.edges,f=t.profile.informative_edges??t.profile.edges,m=e.profile.redundant_edges??0,y=t.profile.redundant_edges??0,p=e.profile.ordering_contradiction_edges??0,b=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Ln(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:u-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-l,redundant_edges:y-m,ordering_contradiction_edges:b-p,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:Ln(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Ln(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import yi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e4aa41d-fca4-5e55-ab2b-d99f06d90ae2")}catch{}})();var _i=1,Un=500,lu=64,fu="graph-durable-cache";function wi(e){return Te(e,fu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function qe(e){return yi.join(e,"runtime","graph-cache.json")}function bi(e){return yi.join(e,"runtime","graph-audit-baseline.json")}function Bn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==_i||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function Gn(e,t){let n=await ie(qe(e)),r=Bn(n),o=r?.fingerprint===t;return{exists:n!==null,fresh:o,results:o?r.results:{}}}async function Kn(e,t,n,r,o){let i=await wi(e);try{let s=Bn(await ie(qe(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=o;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-lu)))delete a[d];await K(qe(e),JSON.stringify({version:_i,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function zn(e){let t=await wi(e);try{await Rr(qe(e))}finally{await t()}}async function ki(e,t){let n=qe(e),r=await ie(n),o=Bn(r);return o===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:o.fingerprint===t,entry_count:Object.keys(o.results).length,fingerprint:o.fingerprint.slice(0,12),saved_at:o.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function Hn(e,t){return t||e>=Un}function Gt(e){return $e(e)&&Object.values(e).every(he)}function $e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function he(e){return Number.isInteger(e)&&Number(e)>=0}function vi(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function He(e,t){return e===void 0||t(e)}function mu(e){return $e(e)&&Object.values(e).every(vi)}function pu(e){return $e(e)?Object.values(e).every(t=>$e(t)&&[t.active,t.isolated,t.degree_leq_one].every(he)):!1}function gu(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],o=r.filter(s=>e[s]!==void 0).length;if(o!==0&&o!==r.length||!r.every(s=>He(e[s],he)))return;let i={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??n,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return i.recorded_nodes<=t&&i.informative_edges<=n&&i.redundant_edges<=n&&i.ordering_contradiction_edges<=n?i:void 0}function hu(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],o=r.filter(i=>e[i]!==void 0).length;return o!==0&&o!==r.length?!1:t.every(i=>He(e[i],he))&&n.every(i=>He(e[i],he)&&(e[i]===void 0||Number(e[i])<=1e4))&&He(e.finding_subjects_by_code,Gt)}function yu(e,t,n,r){let o=gu(e,n,r);if(o===void 0)return;let i=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],s=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!hu(e,i,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Gt(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...o,...Object.fromEntries(i.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(jt.map(c=>[c,a[c]??t[c]??0]))}}function _u(e,t,n,r,o){let i=[n,r,o],s=i.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==i.length||!mu(n)||!he(r)||!vi(o))return;let a=Object.entries(t);if(a.reduce((d,[,u])=>d+u,0)!==e||Object.keys(n).length!==a.length||a.some(([d,u])=>n[d]!==(e===0?0:u/e)))return;let c=a.reduce((d,[u,l])=>d+(Pn(u)?l:0),0);if(!(r!==c||o!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:o}}function wu(e){if(e!==null)try{let t=JSON.parse(e);if(!$e(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let o=n.affected_subjects_by_code;if(!Gt(o)||!$e(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(he)||!Gt(r.edges_by_kind)||!He(r.coverage_by_type,pu))return;let i=_u(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(i===void 0)return;let s=yu(r,o,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...i,...s,coverage_by_type:a}}}catch{return}}async function Ei(e){return wu(await ie(bi(e)))}async function xi(e,t){await K(bi(e),JSON.stringify(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1eb0e2cb-084a-5a54-b41c-29dfdd6d2f34")}catch{}})();var bu={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function Ii(e){return`${e.source} -${e.kind}-> ${e.target}`}function ku(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Ii(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${Ii(t)}`,`group: ${Ut(e)}`],confidence:"high"}))}function vu(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>ku(t.get(r)));let n=bu[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function Ci(e,t={}){let{redundancyLimit:n,...r}=t,o=Bt(e,r),i=new Map(jn(e).map(d=>[Ut(d),d])),s=o.findings.flatMap(d=>vu(d,i)),a=o.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=Oe(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:o,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6c8bfb7a-687a-5fbb-b408-ffdbab1187a9")}catch{}})();var Ri=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function Si(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function Ti(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Eu(e,t,n){let r=e.trim().toLowerCase();if(!mn.includes(r))throw Lr({command_path:"graph",token:r||"<empty>",allowed:mn});let o=r;if(Ri.has(o)&&!t?.trim())throw new h(`graph ${o} requires an item id.`,g.USAGE);if(o==="paths"&&!n?.trim())throw new h("graph paths requires a source and a target item id.",g.USAGE);return o}function qn(e){throw e instanceof TypeError?new h(e.message,g.USAGE):e}function Wn(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Di(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new h(`Item ${t} not found`,g.NOT_FOUND)}function xu(e,t,n){let r={ancestors:Qo,descendants:Zo,predecessors:ei,successors:ti}[e],o;try{o=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){qn(s)}let i=Wn(o.meta);return{subcommand:e,root:t,count:o.value.length,...i,...o.meta.nextCursor===void 0?{}:{next_cursor:o.meta.nextCursor},...n.summary?{}:{ids:o.value}}}function Iu(e,t,n){let r=ni(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...Wn(r.meta),...n.summary?{}:{paths:r.value.map(o=>({nodes:o.nodes,kinds:o.edges.map(i=>i.kind),length:o.length}))}}}function Cu(e,t){let n;try{n=wt(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??me},...t.after===void 0?{}:{after:t.after}})}catch(r){qn(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function Su(e){let t=e.assembly.graph,n=e.limit??me,r=bt(t,{registry:t.registry()}),o=Lo(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:{acyclic:r.acyclic,ordered_node_count:r.order.length,layer_count:r.layers.length,frontier_count:r.frontier.length,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,...e.summary?{}:{frontier:r.frontier.slice(0,n),critical_path:r.criticalPath.slice(0,n),cycles:r.cycles.slice(0,n)}},knowledge:{component_count:o.components.length,largest_component_size:o.components[0]?.length??0,orphan_count:o.orphans.length,...e.summary?{}:{orphans:o.orphans.slice(0,n),hubs:o.hubs.slice(0,n)}}}}function Tu(e,t){let n=Bt(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},o={},i={},s={};for(let a of n.findings)r[a.severity]=(r[a.severity]??0)+1,o[a.code]=(o[a.code]??0)+1,i[a.severity]=(i[a.severity]??0)+a.count,s[a.code]=(s[a.code]??0)+a.count;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:o,affected_subjects_by_severity:i,affected_subjects_by_code:s,profile:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function Du(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=oi(e.assembly.graph,n),o=r.value;return{subcommand:"communities",community_count:o.communities.length,largest_community_size:o.communities[0]?.size??0,iterations:o.iterations,converged:o.converged,truncated:!o.converged||o.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:o.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Ru(e){let t;try{t=Oe(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){qn(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...Wn(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function Au(e,t){let n=t.limit??me,r=ii(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),o=r.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:o.length,truncated:r.meta.truncated||o.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:o.slice(0,n).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Nu(e){let t=e.limit??me,n=ui(e.assembly.graph),r=n.rows.filter(o=>o.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(o=>({id:o.id,earliest_start:o.earliestStart,latest_start:o.latestStart,slack:o.slack,critical:o.critical}))}}}function Mu(e){let t=e.limit??me,n=di(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(o=>({id:o.id,degree:o.degree,in_degree:o.inDegree,out_degree:o.outDegree,betweenness:o.betweenness,closeness:o.closeness}))}}}function Fu(e){let t=e.limit??me,n=Pt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:o}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:o.length,truncated:r.length>t||o.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:o.slice(0,t)}}}function Lu(e,t){let n=e.limit??me,r=Ci(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),o={},i={};for(let s of r.steps)o[s.op]=(o[s.op]??0)+1,i[s.code]=(i[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:o,steps_by_code:i,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function Ai(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(o=>o.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(o=>o.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function Ni(e,t,n,r,o){return e==="analyze"?Su(r):e==="audit"?Tu(r,o):e==="plan"?Lu(r,o):e==="communities"?Du(r):e==="redundancy"?Ru(r):e==="dominators"?Au(t,r):e==="slack"?Nu(r):e==="centrality"?Mu(r):e==="articulation"?Fu(r):e==="paths"?Iu(t,n,r):e==="impact"?Cu(t,r):xu(e,t,r)}function Ou(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new h("--rebuild and --clear apply only to graph index.",g.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new h("--save-baseline applies only to graph audit.",g.USAGE);if(e==="slack"&&t.kind!==void 0)throw new h("graph slack analyzes every ordering kind; --kind is not supported.",g.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new h("graph index accepts either --rebuild or --clear, not both.",g.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new h("graph impact accepts either --full or --limit, not both.",g.USAGE)}async function $u(e,t,n,r,o,i){let s="status";if(i.clear===!0&&(await zn(e),s="cleared"),i.rebuild===!0){await zn(e);let c=await Gn(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await Kn(e,t,c,Ai(u,void 0,void 0,d),Ni(u,void 0,void 0,d,o));s="rebuilt"}let a=await ki(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:Un,persist_enabled:Hn(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function Pu(e,t,n,r){let o={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:n.profile},i=await Ei(e);return r&&await xi(e,o),i===void 0?n:{...n,baseline:hi(i,o)}}async function ju(e,t,n,r,o){try{await Kn(e,t,n,r,o)}catch{}}async function V_(e,t,n,r,o){let i=Eu(e,t,n);ut(r.summary===!0,r.full===!0,"--summary");let s=S(process.cwd(),o.path);if(!await A($(s)))throw new h(`Tracker is not initialized at ${s}. Run pm init first.`,g.NOT_FOUND);let a=await T(s),c=O(a,N()),d=await ee(s,a.item_format,c.type_to_folder,void 0,a.schema),u=z(a.schema),l=U=>F(U,u);Ou(i,r);let f=ge(),m=Nn(r.kind,f),y=St().lookup(s,Ct(d,l,f),()=>Fe(d,l,f)),p={assembly:y.assembly,...m===void 0?{}:{kinds:m},maxDepth:Dt(r.maxDepth),limit:te(r.limit,"limit"),after:r.after?.trim()||void 0,direction:An(r.direction),maxPaths:te(r.maxPaths,"max-paths"),sample:te(r.sample,"sample"),exemptIsolates:Ti(r.exemptIsolate),exemptIsolateTypes:Ti(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return Si(await $u(s,y.fingerprint,p,d.length,l,r),!1);let b=Ri.has(i)?Di(p.assembly,t):void 0,w=i==="paths"?Di(p.assembly,n):void 0,_=Ai(i,b,w,p),k=await Gn(s,y.fingerprint),E=k.results[_],I=y.memoize(_,()=>E!==void 0?structuredClone(E):Ni(i,b,w,p,l)),P=Hn(d.length,k.exists);!I.reused&&E===void 0&&P&&await ju(s,y.fingerprint,k,_,I.value);let D=I.value.subcommand==="audit"?await Pu(s,y.fingerprint,I.value,p.saveBaseline):I.value;return D.cache={fingerprint:y.fingerprint.slice(0,12),assembly:y.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:E!==void 0?"hit":P?"miss":"off"},Si(D,p.summary,"result_rows")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de8a82e1-0b02-5d5a-9086-686529a1ccab")}catch{}})();var Mi="blocked_by",Fi="blocks",Uu=Object.freeze([Mi,Fi]),Vn="no-active-blocker";function R(e){return e.trim().toLowerCase()}function ye(e){let t=new Set,n=typeof e.blocked_by=="string"?R(e.blocked_by):"";n.length>0&&n!==Vn&&t.add(n);for(let r of e.dependencies??[]){let o=typeof r.id=="string"?R(r.id):"";r.kind===Mi&&o.length>0&&o!==Vn&&t.add(o)}return[...t].sort((r,o)=>r.localeCompare(o))}function Kt(e){let t=new Map;for(let n of e){let r=R(n.id);r.length!==0&&t.set(r,new Set(ye(n)))}for(let n of e){let r=R(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Fi&&typeof o.id=="string"?R(o.id):"";if(i.length===0||i===Vn)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function Li(e,t){let n=R(e.id);return n.length>0?Kt(t).get(n)??ye(e):ye(e)}function Yn(e,t,n,r){let o=e;return(typeof o.id=="string"?r?.get(R(o.id))??Li(o,[...t.values()]):ye(e)).map(s=>{let a=t.get(R(s));return a?{id:s,title:a.title,status:a.status,resolved:F(a.status,n)}:{id:s,title:null,status:null,resolved:!1}})}function zt(e,t,n){return Yn(e,t,n)}function We(e,t){let n=new Map(e.map(s=>[R(s.id),s])),r=Kt(e),o=new Set([...Oi(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=C(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Yn(s,n,t,r).some(d=>!d.resolved))&&i.add(R(s.id))}return i}function Oi(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Bu(e,t,n){let r=[R(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!F(s.status,n))return!0;r.push(R(s.id))}}}return!1}function Gu(e){let t=new Map,n=new Map,r=new Map,o=Kt(e);for(let i of e){t.set(R(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=R(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(R(i.id))){let c=R(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Xn(e,t,n){let{itemsById:r,childrenByParent:o,blockedByReverse:i,blockerIdsByItem:s}=Gu(t),a=new Set([...Oi(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!F(m.status,n)).map(m=>R(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,Bu(m.id,o,n)){f+=1;continue}let y=Yn(m,r,n,s).filter(_=>!_.resolved),p=(i.get(R(m.id))??[]).filter(_=>c.has(R(_))).sort((_,k)=>_.localeCompare(k)),b={item:m,open_blockers:y,unblocks:p},w=n.blocked_statuses.has(C(m.status,n));y.length===0&&!w?d.push(b):u.push(b)}return{ready:d,blocked:u,active_count:l,container_count:f}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc271a73-9767-54bb-a142-d4d4569e3c6a")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function Jn(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let o=n.map(s=>s.trim());if(o.some(s=>s.length===0))throw new h(`${t.label} requires at least one non-empty value`,g.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function Ve(e,t){let n=Jn(e,t);return n===void 0?void 0:new Set(n)}function $i(e,t,n="--type"){let r=Jn(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=ct(i,t);if(!s)throw new h(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,g.USAGE);return s});return new Set(o)}function Pi(e,t="--priority"){let n=Jn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>kt(r,t)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function ji(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ki(e){return{isTerminal(t){return e.terminal_statuses.has(ji(t,e))},classify(t){let n=ji(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function Qn(e){return j(e.acceptance_criteria)===void 0}function Zn(e){return!Number.isFinite(e.estimated_minutes)}function zi(e,t){return t.isTerminal(e.status)?j(e.resolution)===void 0:!1}function Ku(e){return j(e.reviewer)===void 0}function zu(e){return j(e.risk)===void 0}function Hu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):j(e.confidence)===void 0}function qu(e){return j(e.sprint)===void 0}function Wu(e){return j(e.release)===void 0}function er(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Vu(e,t,n){return[[t.acMissing,Qn(e)],[t.estimatesMissing,Zn(e)],[t.resolutionMissing,zi(e,n)],[t.reviewerMissing,Ku(e)],[t.riskMissing,zu(e)],[t.confidenceMissing,Hu(e)],[t.sprintMissing,qu(e)],[t.releaseMissing,Wu(e)]].every(([o,i])=>o!==!0||i)}function Yu(e,t){return Qn(e)||Zn(e)||zi(e,t)}function Hi(e,t,n){return er(t)?!(!Vu(e,t,n)||t.metadataMissing&&!Yu(e,n)):!0}var tr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Xu(e,t){switch(t){case"acceptance_criteria":return!Qn(e);case"estimated_minutes":return!Zn(e);case"resolution":return j(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return j(e.parent)!==void 0}}function Ju(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Qu(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ui(){let e={};for(let t of tr)e[t]={present:0,applicable:0,percent:100};return e}function Bi(e,t,n){for(let r of tr){if(!Ju(t,r,n))continue;let o=e[r];o.applicable+=1,Xu(t,r)&&(o.present+=1)}}function Gi(e){for(let t of tr){let n=e[t];n.percent=Qu(n.present,n.applicable)}}function sw(e,t){let n=Ui(),r={};for(let o of e){Bi(n,o,t);let i=r[o.type]??(r[o.type]=Ui());Bi(i,o,t)}Gi(n);for(let o of Object.values(r))Gi(o);return{overall:n,by_type:r}}var Zu={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function el(e){return Zu[e]}function tl(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function nl(e,t,n){switch(t){case"assignee":return[j(e.assignee)??null];case"parent":return[j(e.parent)??null];case"type":return[j(e.type)??null];case"status":return[j(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return i.length>0?i:[null]}}}function aw(e,t,n,r={}){let o=new Map,i=0;for(let a of e){i+=1;let c=n.classify(a.status);for(let d of nl(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??el(t),key:d,buckets:tl(),total:0},o.set(u,l)),l.buckets[c]+=1,l.total+=1}}let s=[...o.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Pe=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function _e(e){return Array.isArray(e)&&e.length>0}function rl(e){return typeof e=="string"&&e.trim().length>0}function ol(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let n=t.command;return typeof n=="string"&&n.trim().length>0}):!1}function Wi(e,t){switch(t){case"notes":return _e(e.notes);case"learnings":return _e(e.learnings);case"files":return _e(e.files);case"docs":return _e(e.docs);case"tests":return _e(e.tests);case"comments":return _e(e.comments);case"deps":return _e(e.dependencies);case"body":return rl(e.body);case"linked_command":return ol(e.tests)}}function Vi(e){return Pe.some(t=>e[t]!==void 0)}function Yi(e,t){for(let n of Pe){let r=t[n];if(r===void 0)continue;let o=Wi(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Xi(e){return Pe.some(t=>t!=="body"&&e[t]!==void 0)}function Ji(e){return e.body!==void 0}function qi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function il(){let e={};for(let t of Pe)e[t]={present:0,total:0,percent:100};return e}function dw(e){let t=il(),n=e.length;for(let s of e)for(let a of Pe)Wi(s,a)&&(t[a].present+=1);for(let s of Pe)t[s].total=n,t[s].percent=qi(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:qi(o,n)};return{total_items:n,fields:t,body_populated:r,empty_body:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="41f54a9b-b7ba-52c1-bd84-76aa57021827")}catch{}})();var sl=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),Qi=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],rs=e=>{let t=Qi.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new h(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,g.USAGE);return Object.fromEntries(Qi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Zi=["priority","deadline","updated_at","created_at","title","parent"],es=["asc","desc"],al=["id","title","status","type","priority","parent","updated_at"],cl=["id","status","type","title"],Lw={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},dl=["tree_depth","tree_parent","tree_children","tree_title"],os=new Set(mo);function ul(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":r+o>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:o};if(n&&i.status==="partial")throw new h(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,g.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function ll(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var fl=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],ml=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function is(e,t){for(let n of fl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function ss(e,t){for(let n of ml)t[n.key]===!0&&(e[n.summaryKey]=!0)}function pl(e,t,n){for(let r of n){let o=t[r.optionKey];o!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(o):o)}}function gl(e){let t={};return is(t,e),t}function hl(e){let t={};return ss(t,e),t}var yl=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],_l=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],wl=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],bl="-7d";function kl(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),pl(c,n,yl),cs(c,n),n.filterAcMissing===!0&&(c.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),ss(c,n),is(c,n),n.limit!==void 0&&(c.limit=n.limit),n.offset!==void 0&&(c.offset=n.offset),n.includeBody===!0&&(c.include_body=!0),n.fields!==void 0&&(c.fields=n.fields),r&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),ll(a)&&(c.runtime_filters=a),c}function as(e,t,n){let r=F(e.status,n),o=F(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=x(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function vl(e,t){return[...e].sort((n,r)=>as(n,r,t))}function ts(e,t){if(e!==void 0)return se(e,new Date,t)}function Ye(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return se(n,new Date,t)}function El(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new h("Choose only one updated_at window: --today, --recent, or --updated-after.",g.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Ye(bl,"recent"):Ye(e.updatedAfter,"updated-after")}function cs(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function xl(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);return new Set(n)}function ds(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new h("Offset filter must be a non-negative integer",g.USAGE);return n}function Il(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new h("List --fields requires a comma-separated list of field names",g.USAGE);return[...new Set(t)]}function Cl(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,o=Il(e.fields);if(Number(t)+Number(n)+Number(r)+ +(o!==void 0)>1)throw new h("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",g.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...cl]}:t?{mode:"compact",fields:[...al]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Xe(e){return e.startsWith("item.")?e.slice(5):e}function Sl(e,t){if(e.mode!=="fields")return;let n=new Set([...Ar,"body",...dl,...t]),r=e.fields.filter(o=>!n.has(Xe(o)));if(r.length>0)throw new h(`Unknown list --fields value(s): ${r.join(", ")}`,g.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var Tl=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Dl(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Tl.get(t);if(n)return n;if(!Zi.includes(t))throw new h(`Sort field must be one of ${Zi.join("|")} (aliases: updated->updated_at, created->created_at)`,g.USAGE);return t}function Rl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!es.includes(t))throw new h(`Sort order must be one of ${es.join("|")}`,g.USAGE);return t}function Al(e){return V(e,"--tree-depth")}function Nl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function ns(e,t){return uo(e,t,{strict:!0})}function us(e){return Ve(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Ml(e,t,n){let r=us(t);if(r===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...r].filter(s=>!o.has(s));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function Fl(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(e!==void 0&&t==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE)}function Ll(e,t,n,r){let o=Ve(t.assignee,{label:"--assignee"}),i=Nl(t.assigneeFilter);Fl(o,i);let s=sl(t),a=rs(t);return{idsFilter:xl(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:$i(t.type,n),tagFilters:us(t.tag),priorityFilter:Pi(t.priority),deadlineBefore:ts(t.deadlineBefore,"deadline-before"),deadlineAfter:ts(t.deadlineAfter,"deadline-after"),updatedAfter:El(t),updatedBefore:Ye(t.updatedBefore,"updated-before"),createdAfter:Ye(t.createdAfter,"created-after"),createdBefore:Ye(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Ve(t.sprint,{label:"--sprint"}),releaseFilter:Ve(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:er(s),lifecycleClassifier:Ki(r),contentFieldFilters:a,contentFiltersActive:Vi(a)}}function Ol(e,t,n){return $l(e,t,n)&&Pl(e,t)&&jl(e,t)&&Ul(e,t)}function $l(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&F(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(o=>o.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Pl(e,t){return Mr(e,t)}function jl(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Ul(e,t){return t.parentFilter!==void 0&&!t.treeEnabled&&e.parent!==t.parentFilter||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function Bl(e,t,n,r){return!(!Ol(e,t,n)||t.missingMetadataActive&&!Hi(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Yi(e,t.contentFieldFilters)||!ht(e,r))}function Gl(e,t,n,r,o,i){let s=Ll(t,n,r,o);return e.filter(a=>Bl(a,s,o,i))}function Ht(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Kl(e,t,n){let r=e,o=typeof r.title=="string"?r.title:"",i=Ht(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function zl(e,t,n){let r=new Map,o=new Map;for(let d of e){r.set(d.id,d);let u=Ht(d.parent);if(!u)continue;let l=o.get(u);l?l.push(d):o.set(u,[d])}let i=t?[...o.get(t)??[]]:e.filter(d=>{let u=Ht(d.parent);return!u||!r.has(u)}),s=[],a=new Set,c=(d,u)=>{if(a.has(d.id))return;a.add(d.id);let l=o.get(d.id)??[];if(s.push(Kl(d,u,l.length)),!(n!==void 0&&u>=n))for(let f of l)c(f,u+1)};for(let d of i)c(d,0);return s}function Hl(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function ql(e,t){return e===t?0:e===null?1:t===null?-1:x(e,t)}function Wl(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return ql(e.deadline??null,t.deadline??null);case"updated_at":return x(e.updated_at,t.updated_at);case"created_at":return x(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Hl(e.parent??null,t.parent??null);default:return 0}}function Vl(e,t,n,r){return t?[...e].sort((o,i)=>{let s=Wl(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=as(o,i,r);return n==="desc"?-a:a}):vl(e,r)}function Yl(e,t,n=!1){let r=Xe(t.trim());if(r.length===0)return null;let o=e;return n&&r==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:null}function ls(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Yl(r,i,n);return o})}function Xl(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Jl(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Ql(e,t,n){return t.after===void 0?ds(t.offset)??0:Ce(e,t.after,n,r=>r.id)}function fs(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Zl(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=await T(n),o=z(r.schema),i=dt(r.schema),s=Cl(e);return Sl(s,Xl(i.definitions)),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:gt(e,i,"list"),typeRegistry:O(r,N()),projection:s}}async function ef(e,t,n){let r=t.projection.fields.some(c=>Xe(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>os.has(Xe(c))),i=rs(e),s=Xi(i),a=Ji(i);return e.includeBody||r||a?await yo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await ho(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ee(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function tf(e){let t=Dl(e.sort),n=Rl(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new h("List --tree-depth requires --tree",g.USAGE);if(!t&&e.order!==void 0)throw new h("List --order requires --sort",g.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Al(e.treeDepth):void 0,parentRoot:r?Ht(e.parent):void 0}}function nf(e,t,n){let r=ns(t.status,n),o=r??ns(e,n),i=co(t.status),s=r||i?{...t,excludeTerminal:!1}:t,a=i?"all":o===void 0?s.excludeTerminal===!0?null:"all":o.length===1?o[0]:o;return{resolvedStatus:o,explicitAllStatuses:i,effectiveOptions:s,filtersStatus:a}}function rf(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new h("List --after cannot be combined with --offset.",g.USAGE);let i=Jl(t,e.length),s=Ql(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=ls(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?Z(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:fs(i,u,l)}}function ms(e,t,n){return de("list",{status:e,options:lt(t,_o),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function of(e){let{options:t,runtime:n,statusSelection:r,ordering:o}=e,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let p=Xe(y);return p==="body"||os.has(p)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,Ur(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,p])=>p!==void 0&&!i.has(y))].includes(!0))return null;let c=await De(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=V(t.limit),u=ds(t.offset)??0,l=await fo({pmRoot:n.pmRoot,expectedSourceCursor:c.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:d,offset:u}});if(!l)return null;let f=l.items.length>0&&u+l.items.length<l.total,m=f?Z(ms(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:ls(l.items,n.projection,!1),totalMatched:l.total,pageExtras:fs(d,f,m)}}function sf(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:o,treeDepth:i,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let u=n;for(let l of _l){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of wl)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,hl(n),gl(n)),cs(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Je(e,t,n){let r=await Zl(t,n),o=[],i=tf(t),s=nf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await of({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let p=await ef(t,r,o);Ml(p,t.tag,o);let b=Gl(p,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),w=t.dependencyBlocked===!0?(()=>{let E=We(p,r.statusRegistry);return b.filter(I=>E.has(I.id.trim().toLowerCase()))})():b,_=Vl(w,i.sortField,i.sortOrder,r.statusRegistry),k=i.treeEnabled?zl(_,i.parentRoot,i.treeDepth):_;d=rf(k,t,r.projection,i.treeEnabled,ms(s.filtersStatus,t,i))}let u=G(),l=[...new Set(o)].sort((p,b)=>p.localeCompare(b)),f=ul(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let p=kl({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:p,projection:{mode:"compact",fields:m},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:sf({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:m},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as af}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f1677c6e-872e-5c42-ae3d-f73f4ec73616")}catch{}})();var nr=["agenda","day","week","month"],rr=["markdown","toon","json"],cf=["sun","mon","tue","wed","thu","fri","sat"],df=365,uf=365,hs=28,lf=1e3;function or(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new h(`${t} must be a non-negative integer`,g.USAGE);return n}function ff(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new h("Calendar include filter must not be empty",g.USAGE);let r=new Set;for(let o of n){if(o==="deadlines"||o==="deadline"){r.add("deadlines");continue}if(o==="reminders"||o==="reminder"){r.add("reminders");continue}if(o==="events"||o==="event"||o==="scheduled"){r.add("events");continue}throw new h("Calendar include filter must be deadlines|reminders|events|scheduled|all",g.USAGE)}return r}function ys(e,t){let n;for(let r of t){let o=Fr(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function mf(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!nr.includes(t)){let n=ys(t,nr);throw new h(`Calendar view must be one of ${nr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function pf(e){if(!e)return;let t=e.trim().toLowerCase();if(!rr.includes(t)){let n=ys(t,rr);throw new h(`Calendar format must be one of ${rr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function Bw(e,t){let n=pf(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"markdown"}function gf(e,t){if(e===void 0)return;let n=M(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new h(`Calendar status filter must be one of ${r.join("|")}`,g.USAGE)}return n}function hf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Calendar assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function qt(e){return new Date(e).toISOString().slice(0,10)}function _s(e,t){if(!t||t==="UTC")return qt(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,o=n.find(s=>s.type==="month")?.value,i=n.find(s=>s.type==="day")?.value;if(r&&o&&i)return`${r}-${o}-${i}`}catch{}return qt(e)}function cr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function ae(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function ws(e){let t=new Date(cr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function yf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function _f(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function wf(e,t){return x(e,t)>=0?e:t}function ps(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function gs(e,t){e.set(t,(e.get(t)??0)+1)}function bf(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,o)=>ve(r)-ve(o));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,o)=>r-o);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,o)=>r.localeCompare(o));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function bs(e,t,n,r){let o=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(o.getUTCFullYear()!==e||o.getUTCMonth()!==t||o.getUTCDate()!==n))return o.toISOString()}function ks(e){return cf[new Date(e).getUTCDay()]}function kf(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function vf(e){let t=new Set;for(let n of e??[]){let r=kf(n);r&&t.add(r)}return t}function Ef(e,t,n,r,o){let i=e??ae(n,-(r??uf)),s=t??ae(e??n,o??df);return{start:i,end:x(s,i)>0?s:ae(i,1)}}function xf(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[ks(e)],i=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??lf,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:vf(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(o)].sort((s,a)=>ve(s)-ve(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Wt(e,t){return x(t,e.startAt)<0?"continue":e.until&&x(t,e.until)>0||x(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,x(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Vt(e,t){let n=ks(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function If(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Vt(e,t)&&Wt(e,t)==="stop");n+=1)t=ae(t,e.interval);return e.occurrences}function Cf(e,t,n){let r=ve(n),o=ae(t,r),i=new Date(o);return new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function Sf(e){let t=ws(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=ae(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Cf(e,r,o);if(Vt(e,i)&&Wt(e,i)==="stop")return e.occurrences}}return e.occurrences}function Tf(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let s=bs(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Df(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=t+r*e.interval;for(let i of e.sortedMonthDays){let s=bs(o,n,i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Rf(e,t,n,r){let o=xf(e,t,n,r);return t.freq==="daily"?If(o):t.freq==="weekly"?Sf(o):t.freq==="monthly"?Tf(o):Df(o)}function vs(e){return[...e].sort((t,n)=>{let r=x(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function dr(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function Af(e){return e.deadline?{at:e.deadline,date:qt(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...dr(e),item_deadline:e.deadline}:null}function Nf(e){return(e.reminders??[]).map(t=>({at:t.at,date:qt(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...dr(e)}))}function Mf(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Ff(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Lf(e,t,n,r){let o=bf(t.recurrence),i=Mf(t.start_at,t.end_at);return(t.recurrence?Rf(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):_s(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Ff(a,t,i),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:o,...dr(e)}))}function Of(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Af(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Nf(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Lf(i,a,t,r))}return vs(o)}function $f(e,t,n,r,o){let i=Oo(t.type,n),s=t.tag?.trim().toLowerCase(),a=kt(t.priority),c=gf(t.status,r),d=t.assignee?.trim(),u=hf(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(d!==void 0&&u==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE);return e.filter(m=>Pf(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function Pf(e,t){return jf(e,t)&&Uf(e,t)&&ht(e,t.runtimeFieldFilters)}function jf(e,t){return!(t.typeFilter&&e.type!==t.typeFilter||t.tagFilter&&!e.tags.some(n=>n.trim().toLowerCase()===t.tagFilter)||t.priorityFilter!==void 0&&e.priority!==t.priorityFilter||t.statusFilter&&e.status!==t.statusFilter)}function Uf(e,t){return!(t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee||t.assigneeFilter!==void 0&&e.assignee!==t.assigneeFilter||t.sprintFilter!==void 0&&e.sprint!==t.sprintFilter||t.releaseFilter!==void 0&&e.release!==t.releaseFilter)}function Bf(e,t,n){return!(t&&x(e.at,t)<0||n&&x(e.at,n)>=0)}function ir(e,t,n){return e.trim().toLowerCase()==="today"?cr(t):se(e,new Date(t),n)}function Gf(e,t,n){let r=t.date?ir(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?ir(t.from,n,"--from"):void 0,a=t.to?ir(t.to,n,"--to"):void 0;if(s&&a&&x(s,a)>=0)throw new h("Calendar --from must be before --to",g.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new h("--from and --to are only supported for --view agenda",g.USAGE);if(e==="agenda")return Kf(r,t,n,o,i,s,a);if(e==="day"){let d=cr(r);return sr(r,n,o,i,d,ae(d,1))}if(e==="week"){let d=ws(r);return sr(r,n,o,i,d,ae(d,7))}let c=yf(r);return sr(r,n,o,i,c,_f(r))}function Kf(e,t,n,r,o,i,s){if(o)throw new h("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",g.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function sr(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:wf(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function zf(e){let t=new Map;for(let n of e){let r=t.get(n.date)??[];r.push(n),t.set(n.date,r)}return[...t.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>({date:n,count:r.length,events:vs(r)}))}function Hf(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let c of e)t.add(c.item_id),gs(n,c.item_type),gs(r,c.item_status),c.kind==="deadline"?o+=1:c.kind==="reminder"?i+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:o,reminders:i,scheduled:s,by_kind:{deadline:o,reminder:i,event:s},by_type:ps(n),by_status:ps(r),recurring_events:a}}function qf(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Es(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(i=>i.type==="hour")?.value,o=n.find(i=>i.type==="minute")?.value;if(r&&o)return`${r}:${o}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function ar(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Wf(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===_s(e.event_end,e.event_timezone)?Es(e.event_end,e.event_timezone):e.event_end:null}function Vf(e){let t=`${Es(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let i=Wf(e);return i&&n.push(`end=${i}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function Gw(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${qf(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- by-kind: ${ar(e.summary.by_kind)}`),t.push(`- by-type: ${ar(e.summary.by_type)}`),t.push(`- by-status: ${ar(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
|
|
2
|
+
`);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${Vf(r)}`);t.push("")}if(e.warnings&&e.warnings.length>0){t.push("### warnings");for(let n of e.warnings)t.push(`- ${n}`);t.push("")}return Yf(t.join(`
|
|
3
|
+
`))}function Kw(e){return af(e)}function Yf(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function Xf(e){let t=G(),n=mf(e.view),r=Gf(n,e,t),o=V(e.limit),i=ff(e.include),s=or(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=or(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=or(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new h("Calendar occurrence limit must be >= 1",g.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),u=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,l=d&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:l?hs:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Jf(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${hs}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Qf(e,t){return{type:e.type??null,tag:e.tag??null,priority:e.priority??null,status:e.status??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,runtime_filters:t,limit:e.limit??null,include:e.include??null,full_period:e.fullPeriod===!0?"true":null,recurrence_lookahead_days:e.recurrenceLookaheadDays??null,recurrence_lookback_days:e.recurrenceLookbackDays??null,occurrence_limit:e.occurrenceLimit??null}}function Zf(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function xs(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=Xf(e),o=await T(n),i=z(o.schema),s=dt(o.schema),a=gt(e,s,"calendar"),c=O(o,N()),d=[];Jf(d,r.eventsOnlyCapApplied);let u=await ee(n,o.item_format,c.type_to_folder,d,o.schema),l=$f(u,e,c,i,a),f=Ef(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=Of(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Bf(_,r.rangeBounds.start,r.rangeBounds.end)),p=r.limit===void 0?y:y.slice(0,r.limit),b=zf(p),w=[...new Set(d)].sort((_,k)=>_.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Zf(e,r.rangeBounds),filters:Qf(e,a),summary:Hf(p),events:p,days:b,...w.length>0?{warnings:w}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var ur=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],em=Symbol("no-context-author"),tm=Symbol("no-item-assignee");function Is(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function nm(e,t){let n=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(n)?1-Math.min(Math.max(n,0),t)/t:0}function rm(e,t){let n=typeof e=="string"?Date.parse(e):e instanceof Date?e.getTime():typeof e=="number"?e:Number.NaN;if(!Number.isFinite(n)||!Number.isFinite(t))return 0;let r=(n-t)/864e5;return r<=0?1:1/(1+r/30)}function om(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function Yt(e,t,n){return e?.[t]??n}function Xt(e,t){let n=d=>{if(typeof d!="string")return"";try{return se(d,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((d,u)=>{let l=n(d.updated_at),f=n(u.updated_at);return x(f,l)||d.id.localeCompare(u.id)}),o=new Map(r.map((d,u)=>[d.id,u])),i=Math.max(e.length-1,1),s=Is(t.author,em),a=M("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=Is(d.assignee,tm)===s,l=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signals:{recency:e.length===1?1:1-o.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:Yt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:Yt(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:nm(d.priority,4),risk_pressure:om(d.risk),deadline_pressure:rm(d.deadline,c),knowledge_density:Yt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:Yt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var im="context_relevance",sm={structural:.4,recency:.35,activity_density:.25,graph_proximity:.15,claim_focus:.6,priority_pressure:.35,risk_pressure:.2,deadline_pressure:.45,knowledge_density:.25,author_affinity:.2,usage_affinity:.3,semantic_similarity:.5},am=new TextEncoder;function cm(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,o]of Object.entries(n.signals??{})){if(r==="structural"||!ur.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(o!==void 0&&(!Number.isFinite(o)||o<0||o>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function dm(e){let t={...sm};for(let[n,r]of Object.entries(e??{}))r!==void 0&&ur.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function Ss(e,t={}){cm(e);let n=dm(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&o.add(c);let i=ur.filter(a=>o.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},u={},l=0,f=0;for(let m of i){let y=d[m];if(y===void 0)continue;let p=y*n[m];u[m]=p,l+=p,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:l/f,contributions:u}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function um(e,t={}){let n=Ss(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),o=new Map;for(let s of r){if(o.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");o.set(s.id,s.score)}if(o.size!==e.length||e.some(s=>!o.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(s=>{let a=o.get(s.id);return{...s,score:a,contributions:{custom:a}}});return i.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),i.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function Jt(e,t,n={}){let r=Ss(t,n),o=await Br(im,{surface:e,candidates:t,default_report:r});if(!o.handled)return o.warnings.length>0?{...r,warnings:o.warnings}:r;if(!Array.isArray(o.result)||!o.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]};try{let i=await um(t,{...n,scorer:()=>o.result});return o.warnings.length>0?{...i,warnings:o.warnings}:i}catch{return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]}}}var lm=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Cs(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function fm(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(d=>Math.max(0,t[d]??0)),r=Object.values(t).map(d=>Math.max(0,d)).sort((d,u)=>u-d).slice(0,n.length||1),o=d=>d.reduce((u,l,f)=>u+(2**l-1)/Math.log2(f+2),0),i=o(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:Cs(e.required_ids??[],a),continuity_coverage:Cs(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function mm(e){return Math.ceil(am.encode(JSON.stringify(e)).byteLength/4)}function pm(e){return Math.round(e*1e4)/1e4}function gm(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),o=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:o}}async function hm(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:o}=gm(n,e.surface),i={...n,ranking:void 0},s=mm(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:fm({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:o}}function ym(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=lm;for(let i of n)if(!Number.isFinite(t[i]))throw new TypeError(`Context evaluation threshold ${i} must be a finite number`);let r=Object.fromEntries(n.map(i=>[i,pm(e.reduce((s,a)=>s+a.metrics[i],0)/e.length)])),o=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:o.length===0,failures:o}}async function Vw(e,t,n){let r=[];for(let o of e)r.push(await hm(o,t));return ym(r,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b5c90a16-c075-5dc6-a326-ad2da7a6ef6d")}catch{}})();var _m={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},wm=["identity","summary","full"];function bm(e){if(!e.id.trim()||!Number.isInteger(e.rank)||e.rank<1)throw new TypeError("Context packing candidates require a non-empty id and positive integer rank");if(!Number.isFinite(e.score)||e.score<0)throw new TypeError("Context packing candidate scores must be finite and non-negative");let t=wm.map(n=>e.token_costs[n]);if(t.some(n=>!Number.isInteger(n)||n<1)||t[0]>t[1]||t[1]>t[2])throw new TypeError("Context projection costs must be positive monotone integers");if(e.uncertainty!==void 0&&(!Number.isFinite(e.uncertainty)||e.uncertainty<0))throw new TypeError("Context packing uncertainty must be finite and non-negative")}function km(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=_m[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,o=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(o)||o<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:o,profile:t}}function vm(e){let t=new Set;for(let n of e){if(bm(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function Em(e,t,n,r,o){let i=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&o()>=r)return{index:i,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=1;let d=i<0?void 0:e[i],u=n(c)/c.token_costs.identity,l=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(u>l||u===l&&d!==void 0&&(c.rank<d.rank||c.rank===d.rank&&c.id.localeCompare(d.id)<0))&&(i=a)}return{index:i,evaluated:s,timedOut:!1}}function xm(e){let t=new Set,n=[],r=e.tokenBudget,o=d=>{let u=d.lineage??d.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*l)},i=d=>{let u=d.token_costs.identity;n.push({...d,projection:"identity",tokens:u,marginal_value:o(d)}),r-=u;let l=d.lineage??d.cluster;l&&t.add(l)};for(let d of e.ordered.filter(u=>u.required))d.token_costs.identity<=r&&i(d);let s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=Em(s,r,o,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;i(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function Im(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[o],d=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(d,1)-s.marginal_value/Math.max(c,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of i){if(s.projection!==o)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function Ts(e,t){let n=km(t),r=vm(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=xm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Im(a,s.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let d=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!d.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:s.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as Cm}from"node:crypto";import{appendFile as Sm,mkdir as Tm,readFile as Dm,rename as Rm,stat as Am,writeFile as Nm}from"node:fs/promises";import Ds from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var Rs=2048,As=30,Ns=864e5,Mm=262144,Fm="context-usage-ledger",ne=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Ms(e){return Ds.join(e,"runtime","context-usage.jsonl")}function Qe(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new ne("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Fs(e){try{let n=(await Dm(Ms(e.pmRoot),"utf8")).split(`
|
|
5
|
+
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Rs,o=e.retentionDays??As,i=Qe(e).ms-o*Ns;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function Ls(e,t){let n=e.maxEvents??Rs,r=e.retentionDays??As;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new ne("Context usage retention requires positive maxEvents and retentionDays");let o=Ms(e.pmRoot),i=Ds.dirname(o),s=await Te(e.pmRoot,Fm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Tm(i,{recursive:!0}),await Sm(o,t.map(u=>`${JSON.stringify(u)}
|
|
6
|
+
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Am(o)).size<=Mm)return;let c=await Fs(e),d=`${o}.${process.pid}.${Cm()}.tmp`;await Nm(d,`${c.map(u=>JSON.stringify(u)).join(`
|
|
7
|
+
`)}
|
|
8
|
+
`,"utf8"),await Rm(d,o)}finally{await s()}}async function Os(e,t){await Ls(e,[t])}async function Qt(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new ne("Context usage serving requires an author and valid ranked rows");await Os(e,{kind:"serve",at:Qe(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function tb(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new ne("Context usage touch requires author, itemId, and intent");await Os(e,{kind:"touch",at:Qe(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function nb(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new ne("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new ne("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new ne("Context usage touch requires non-empty itemId");r.add(a)}let o=Qe(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await Ls(e,i)}function Lm(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function Zt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Fs(e),n=Qe(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new ne("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(l=>l.kind==="touch"&&l.author===o).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0;for(let l of t){if(l.kind!=="serve"||l.author!==o)continue;a+=1;let f=Date.parse(l.at);for(let m of l.rows){if(!m.included)continue;let y=Lm(i,m.id,f,r);if(y===void 0)continue;c+=1;let p=Math.max(0,(n-y)/Ns);s.set(m.id,(s.get(m.id)??0)+Math.exp(-p/14))}}let d=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,f])=>[l,.05+.95*(d>0?f/d:0)])),positive_judgments:c,serving_events:a}}import Ze from"node:fs/promises";import et from"node:path";import{createHash as Om,randomUUID as $m}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3d0a558b-6a01-5bca-a2f7-21766be6d67c")}catch{}})();var lr=1,fr=1,$s=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Pm={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function en(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ps(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function jm(e){let t={};for(let n of $s){let r=e[n];if(r!==void 0){if(!Ps(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Um(e,t){let n=e.map(o=>[o.id,t(o)]),r=Math.max(0,...n.map(([,o])=>o));return Object.fromEntries(n.map(([o,i])=>[o,r===0?0:i/r]))}function Bm(e){let t=new Map(e.map(o=>[o.id,0])),n=o=>{t.set(o,(t.get(o)??0)+1)};for(let o of e){typeof o.parent=="string"&&o.parent.trim()&&(n(o.id),n(o.parent.trim()));for(let i of o.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(o.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(o=>[o.id,r===0?0:t.get(o.id)/r]))}function Gm(e,t){return{...t,activityDensity:t.activityDensity??Um(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Bm(e)}}function Km(e){if(!en(e)||typeof e.id!="string"||!en(e.signals))return null;let t={},n=new Set($s);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!Ps(o))return null;t[r]=o}return{id:e.id,signals:t}}function zm(e){if(!en(e)||e.format_version!==lr||e.signal_set_version!==fr||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=e.items.map(Km);if(t.some(r=>r===null))return null;let n=t;return new Set(n.map(r=>r.id)).size!==n.length||n.some(r=>r.id.trim().length===0)?null:{format_version:lr,signal_set_version:fr,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function Hm(e,t){if(typeof t.sourceCursor!="string"||t.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(t.source!=="derived_index"&&t.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback");let n=Xt(e,Gm(e,t)).map(({id:r,signals:o})=>({id:r,signals:jm(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:lr,signal_set_version:fr,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var mr=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=et.resolve(t)}async read(){try{return JSON.parse(await Ze.readFile(this.filePath,"utf8"))}catch(t){if(en(t)&&st(t))return null;throw t}}async write(t){let n=et.dirname(this.filePath);await Ze.mkdir(n,{recursive:!0});let r=et.join(n,`.${et.basename(this.filePath)}.${$m()}.tmp`);try{await Ze.writeFile(r,`${JSON.stringify(t)}
|
|
9
|
+
`,{encoding:"utf8",flag:"wx"}),await Ze.rename(r,this.filePath)}finally{try{await Ze.rm(r,{force:!0})}catch{}}}},pr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=zm(l),l!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(l=>l.id).sort((l,f)=>l.localeCompare(f)),s=o?.items.map(l=>l.id)??[],a=o!==null&&o.source_cursor===n.sourceCursor&&o.source===n.source&&s.length===i.length&&s.every((l,f)=>l===i[f]),c;if(a&&o!==null)c=o;else{o!==null&&r.push("context_signal_store_stale"),c=Hm(t,n);try{await this.adapter.write(c)}catch{r.push("context_signal_store_write_failed")}}let d=new Map(c.items.map(l=>[l.id,l.signals])),u=Xt(t,n);return{snapshot:c,candidates:u.map(l=>({...l,signals:{...l.signals,...d.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(l=>Pm[l])}}};function qm(e){let t=Om("sha256");for(let n of[...e].sort((r,o)=>r.id.localeCompare(o.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function tn(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let o=n?null:await De(t.pmRoot),i=t.sourceCursor??o?.source_cursor??qm(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new pr(new mr(et.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:i,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Wm(e){for(let t of e.patch){if(t.path==="/metadata/status"||t.path==="/front_matter/status"){if(typeof t.value=="string")return t.value.trim().toLowerCase();continue}if(t.path!==""||typeof t.value!="object")continue;let n=t.value,r=n.metadata??n.front_matter;if(typeof r?.status=="string")return r.status.trim().toLowerCase()}}function Vm(e,t,n){let r,o;for(let i of t){let s=Wm(i);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&i.op==="create");r=s,a&&Number.isFinite(Date.parse(i.ts))&&(o={id:e,completed_at:i.ts,history_op:i.op})}return o}function js(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}function lb(e,t,n){let r=[];for(let o of e){if(o.completed_at!==void 0||!n.has(o.status.trim().toLowerCase()))continue;let i=Vm(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Ym from"node:path";import{createHash as Xm}from"node:crypto";import Jm from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var Us=1,Qm=1e4,Bs=12;function Zm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function ep(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let o=t.get(r);if(!o)return;if(o.type.toLowerCase()==="epic")return o;r=o.parent}}function tp(e){let t=[...e.items].sort((o,i)=>i.completion.timestamp.localeCompare(o.completion.timestamp)||o.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:o}of t){let i=o.resolution??o.close_reason;i?.trim()&&n.add(i.trim()),r+=(o.notes?.length??0)+(o.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:o,title:i}})=>({id:o,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function np(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(i=>t.statusRegistry.terminal_done_statuses.has(C(i.status,t.statusRegistry))).map(i=>{let s=js(i);if(!s.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:s}}),r=new Map(e.map(i=>[i.id,i])),o=new Map;for(let i of n){let{item:s,completion:a}=i,c=Zm(a.timestamp),d=`epoch:${c}`,u=o.get(d)??{kind:"epoch",key:c,label:c,items:[]};u.items.push(i),o.set(d,u);let l=ep(s,r);if(l){let f=`epic:${l.id}`,m=o.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};m.items.push(i),o.set(f,m)}}return{format_version:Us,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:s})=>(i[s.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...o.values()].map(tp).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function rp(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"&&e.id.length>0&&"title"in e&&typeof e.title=="string"}function op(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(o=>typeof o=="string"&&o.length>0),r=[t.first_closed_at,t.last_closed_at].every(o=>typeof o=="string"&&Number.isFinite(Date.parse(o)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(rp)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function ip(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Us||typeof t.source_cursor!="string"||!t.source_cursor.trim()||!Number.isSafeInteger(t.source_item_count)||t.source_item_count<0||typeof t.generated_at!="string"||!Number.isFinite(Date.parse(t.generated_at))||!Array.isArray(t.rollups)?null:t.rollups.every(op)?t:null}function sp(e){return`scan:${Xm("sha256").update(Ee(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function ap(e,t,n){return n!==void 0?n:(await De(t))?.source_cursor??sp(e)}async function cp(e){try{let t=ip(JSON.parse(await Jm.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&st(t))}}}async function Gs(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Qm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await ap(e,t.pmRoot,t.sourceCursor),o=Ym.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await cp(o),a=s.snapshot;if(s.invalid&&i.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:i};a&&i.push("workspace_memory_stale");let c=np(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await K(o,`${JSON.stringify(c)}
|
|
10
|
+
`)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function dp(e,t,n=Bs){let r=Math.max(0,Math.floor(t)),o=0,i=[];for(let s of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);o+a>r||(i.push(s),o+=a)}return i}function Ks(e,t,n=Bs){if(e.snapshot===null)return;let r=dp(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",source_cursor:e.snapshot.source_cursor,...e.snapshot.completion_time_sources?{completion_time_sources:{...e.snapshot.completion_time_sources}}:{},rollups:r}}function up(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(o=>({rollup:o,score:r.filter(i=>[o.key,o.label,...o.outcomes,...o.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:o})=>o>0).sort((o,i)=>i.score-o.score||i.rollup.last_closed_at.localeCompare(o.rollup.last_closed_at)||o.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:o})=>o)}function kb(e,t,n=5){let r=up(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var zs=16;async function Hs(e,t,n){let r=O(t,N()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<zs;){let a=s.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let c=await le(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await fe(c,{schema:t.schema});o.push(d.document.metadata.id),s=d.document.metadata.parent}return o}async function Sb(e){await qr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Hs(e.pmRoot,e.settings,e.itemId)})}async function Tb(e){await Wr(e)}async function Db(e){await Vr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Hs(e.pmRoot,e.settings,e.itemId)}:{}})}var Rb={lineage_depth:zs,active_items:64,evidence_rows:32};function qs(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee5279f2-7489-59fb-8f96-f2e035434cce")}catch{}})();var lp=["markdown","toon","json","ndjson"],nt=new Set(["Epic","Feature"]),Qs=10,Zs=1e4,ea=["hierarchy","activity","progress","recently_created","unparented","workload"],fp=[...ea,"blockers","files","staleness","tests"],mp=/^(\d{4})-(\d{2})-(\d{2})/,pp=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,gp=/^(\d{4})(\d{2})(\d{2})$/,hp=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function yp(e){if(!e)return;let t=e.trim().toLowerCase();if(!lp.includes(t))throw new h("Context format must be one of markdown|toon|json|ndjson",g.USAGE);return t}var Ws=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function _p(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Ws.has(r))throw new h(`Context --fields value not projectable: ${r} (valid: ${[...Ws].join(", ")})`,g.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new h("Context --fields requires at least one field name",g.USAGE);return t}function tt(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function Yb(e,t){let n=yp(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function wp(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Qs)}function yr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new h("--token-budget must be a positive integer",g.USAGE);return n}function bp(e,t){return t>=Zs&&e===Number.MAX_SAFE_INTEGER?Qs:e}function kp(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!cn.includes(n))throw new h(`Context --depth must be one of ${cn.join("|")}`,g.USAGE);return n}function vp(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!at.includes(s))throw new h(`Context --section must be one of ${at.join("|")}`,g.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...at]:(t==="deep"?fp:ea).filter(o=>n.sections[o])}function Ep(e,t){return e?V(e,"--activity-limit")??t.activity_limit:t.activity_limit}function xp(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new h("--stale-threshold must be a number of days (e.g. 7 or 7d)",g.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new h("--stale-threshold must be positive",g.USAGE);return o}function Vs(e,t){let n=C(e,t),r=M("in_progress",t),o=M("open",t),i=M("blocked",t),s=M("draft",t);return r&&n===r?0:o&&n===o?1:i&&n===i?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function rt(e,t){let n=M("closed",t);return C(e,t)===n}function _r(e,t){let n=M("in_progress",t);return C(e,t)===n}function ta(e,t){let n=M("open",t);return C(e,t)===n}function Ip(e,t){return t.blocked_statuses.has(C(e,t))}var Cp=["compact","brief","fields","includeBody","include_body","parent"];function Sp(e){let t={...e};for(let n of Cp)delete t[n];return t}function wr(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let o=je(e),i=ot(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Tp(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new h("Context --parent requires an item id",g.USAGE);return t}function Dp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Rp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:x(n,r)}function Ap(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Np(e){let t=mp.exec(e)??pp.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),o=Number.parseInt(t[3],10);return r>=1&&r<=12&&o>=1&&o<=Ap(n,r-1)}function Mp(e){let t=gp.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=hp.exec(e);if(n){let[,r,o,i,s,a,c,d]=n,u=c?`:${c}`:"",l=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${o}-${i}T${s}:${a}${u}${l}`}return e}function na(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Np(t))return Number.NaN;let n=Date.parse(Mp(t));return Number.isFinite(n)?n:Number.NaN}function hr(e){let t=na(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Fp(e){let t=na(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function br(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function we(e,t,n){let r=Vs(e.status,n)-Vs(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Dp(e.order,t.order);if(i!==0)return i;let s=Rp(e.deadline,t.deadline);if(s!==0)return s;let a=x(hr(t.updated_at),hr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function gr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function kr(e,t,n=new Set,r="context"){return Ts(e.ranked.map(o=>({id:o.id,item:o.item,rank:o.rank,score:o.score,required:n.has(o.id),cluster:o.item.parent?.trim()||o.item.type,token_costs:{identity:gr({id:o.id,title:o.item.title}),summary:gr({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:gr(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function vr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Er(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(o=>n.has(o.id));return{model:e.model,available_signals:e.available_signals,items:r.map(o=>({id:o.id,rank:o.rank,baseline_rank:o.baseline_rank,score:o.score,contributions:o.contributions})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function ra(e,t){return t>0?Math.round(e/t*100):0}function je(e){let t=new Map;for(let n of e){let r=br(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function it(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:br(e.parent)};if(t&&n){let o=ot(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>rt(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=ra(s,i)}}return r}function Lp(e){let t=0,n=0,r=0,o=new Set;for(let i of e){if(o.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:o.size,deadlines:t,reminders:n,scheduled:r}}function nn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Op(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function $p(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=je(e),s=new Set(t.filter(c=>nt.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let u=ot(c,i),l=i.get(c)??[],f=0,m=0,y=0,p=0;for(let w of u)rt(w.status,n)?f++:_r(w.status,n)?y++:Ip(w.status,n)?p++:ta(w.status,n)&&m++;let b=l.sort((w,_)=>we(w,_,n)).slice(0,r).map(w=>{let _=ot(w.id,i),k=_.filter(E=>rt(E.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:_.length,children_closed:k}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:m,children_in_progress:y,children_blocked:p,children:b})}return a.sort((c,d)=>{let u=o.get(c.id),l=o.get(d.id);return we(u,l,n)}).slice(0,r)}function ot(e,t){let n=[],r=[e],o=new Set;for(;r.length>0;){let i=r.pop();if(o.has(i))continue;o.add(i);let s=t.get(i)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Pp(e,t){return(await Bo({compact:!0,limit:String(e)},t)).compact_activity??[]}function jp(e,t,n,r,o){let i=new Map;for(let c of e){if(!c.parent)continue;let d=i.get(c.parent)??[];d.push(c),i.set(c.parent,d)}let s=t.filter(c=>nt.has(c.type)),a=[];for(let c of s){let d=ot(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,m=0,y=0;for(let p of d)rt(p.status,r)?l++:n.has(p.id.trim().toLowerCase())?y++:_r(p.status,r)?m++:ta(p.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:y,completion_pct:ra(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Up(e,t,n,r){let o=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let s=zt(i,o,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?o.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function Bp(e,t){let n=new Map;for(let r of e)for(let o of r.files??[]){let i=n.get(o.path)??new Set;i.add(r.id),n.set(o.path,i)}return[...n.entries()].map(([r,o])=>({path:r,references:o.size,items:[...o].sort()})).sort((r,o)=>o.references-r.references).slice(0,t)}function Gp(e,t,n){let r=new Map;for(let o of e){let i=o.assignee??null,s=r.get(i)??[];s.push(o),r.set(i,s)}return[...r.entries()].map(([o,i])=>({assignee:o,active:i.length,in_progress:i.filter(s=>_r(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function Kp(e,t,n,r){let o=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<o).map(i=>({id:i.id,title:i.title,status:i.status,updated_at:i.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(i.updated_at).getTime())/(1440*60*1e3))})).sort((i,s)=>s.stale_days-i.stale_days).slice(0,r)}function zp(e,t,n,r){return e.map(o=>({item:o,sortKey:hr(o.created_at)})).sort((o,i)=>{let s=x(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...it(o,t,n),created_at:o.created_at}))}function Hp(e,t,n,r){return e.filter(o=>!br(o.parent)&&!nt.has(o.type)).sort((o,i)=>we(o,i,t)).slice(0,r).map(o=>it(o,t,n))}function qp(e){let t=0,n=0,r=0,o=0,i=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let c=a.test_runs??[];if(c.length>0){n++;let d=!1;for(let u of c)r+=u.passed??0,o+=u.failed??0,i+=u.skipped??0,(u.failed??0)>0&&(d=!0);d&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function Ys(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function oa(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",o=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",i=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${o}${i} ${e.title}`}function Wp(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Vp(e){if("reference_only"in e){let n=e.kind==="reminder"?` \u2014 ${e.reminder_text??"reminder"}`:e.kind==="event"?` \u2014 ${e.event_title??"event"}${e.event_recurring?" (recurring)":""}`:"";return`${Ys(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Ys(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function Xs(e,t,n,r,o){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${o(i)}`);e.push("")}function Yp(e,t,n){if(t.blocked_fallback.length!==0){e.push("## Blocked fallback");for(let r of t.blocked_fallback)e.push(`- ${n(r)}`);e.push("")}}function Xp(e,t){if(e.push("## Agenda"),e.push(`- events: ${t.agenda.summary.events} (deadlines: ${t.agenda.summary.deadlines}, reminders: ${t.agenda.summary.reminders}, scheduled: ${t.agenda.summary.scheduled})`),t.agenda.events.length===0)e.push("No agenda events matched the selected filters.");else for(let n of t.agenda.events)e.push(`- ${Vp(n)}`);e.push("")}function Jp(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let o of n.children){let i=o.children_total>0?Math.round(o.children_closed/o.children_total*100):0;e.push(` - ${o.id} ${o.type} ${o.status} "${o.title}" [${o.children_closed}/${o.children_total} done ${i}%]`)}}e.push("")}}function Qp(e,t){if(!(!t.progress||t.progress.length===0)){e.push("## Progress");for(let n of t.progress)e.push(`- ${n.id} "${n.title}" ${n.completion_pct}% (${n.closed}/${n.total} closed, ${n.in_progress} wip, ${n.open} open, ${n.blocked} blocked)`);e.push("")}}function Zp(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let o of t.recently_created)e.push(n?`- ${r(o)}`:`- ${Fp(o.created_at)} ${oa(o)}`);e.push("")}}function eg(e,t,n){if(!(!t.unparented||t.unparented.length===0)){e.push("## Unparented");for(let r of t.unparented)e.push(`- ${n(r)}`);e.push("")}}function tg(e,t){if(!(!t.activity||t.activity.length===0)){e.push("## Recent activity");for(let n of t.activity){let r=n.msg?` ${n.msg}`:"";e.push(`- ${n.ts.slice(0,16)}Z ${n.id} ${n.op} by:${n.author}${r}`)}e.push("")}}function ng(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",o=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${o}${i}`)}e.push("")}}function rg(e,t){if(!(!t.files||t.files.length===0)){e.push("## Hot files");for(let n of t.files)e.push(`- ${n.path} refs:${n.references} items:[${n.items.join(",")}]`);e.push("")}}function og(e,t){if(!(!t.workload||t.workload.length===0)){e.push("## Workload");for(let n of t.workload){let r=n.assignee??"(unassigned)";e.push(`- ${r} active:${n.active} wip:${n.in_progress} items:[${n.items.join(",")}]`)}e.push("")}}function ig(e,t){if(!(!t.staleness||t.staleness.length===0)){e.push("## Stale items");for(let n of t.staleness)e.push(`- ${n.id} ${n.status} stale:${n.stale_days}d last:${n.updated_at.slice(0,10)} "${n.title}"`);e.push("")}}function sg(e,t){t.tests&&(e.push("## Test health"),e.push(`- items_with_tests: ${t.tests.items_with_tests}`),e.push(`- items_with_recent_runs: ${t.tests.items_with_recent_runs}`),e.push(`- passed: ${t.tests.recent_runs.passed}, failed: ${t.tests.recent_runs.failed}, skipped: ${t.tests.recent_runs.skipped}`),t.tests.items_failing.length>0&&e.push(`- items_failing: [${t.tests.items_failing.join(",")}]`),e.push(""))}function ag(e,t){t.summary.active_items===0&&t.summary.blocked===0&&t.agenda.summary.events===0&&(e.push("## Suggestions"),e.push("No active work items or upcoming events. Consider:"),e.push('- `pm create --type Task --title "..."` to add a new work item'),e.push("- `pm list --status closed --limit 5` to review recent completions"),e.push("- `pm search <keywords>` to find related past work"),e.push("- `pm aggregate` for a full project status overview"))}function Xb(e){let t=[],n=e.focus_fields,r=i=>n?Wp(i,n):oa(i);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let i=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${i.length>0?` (${i.join(", ")})`:""}`)}let o=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(o.length>0&&t.push(`- sections: ${o.join(", ")}`),t.push(""),Xs(t,"High-level focus",e.high_level,"No high-level active items.",r),Xs(t,"Low-level focus",e.low_level,"No low-level active items.",r),Yp(t,e,r),Xp(t,e),e.workspace_memory){t.push("## Workspace memory");for(let i of e.workspace_memory.rollups)t.push(`- ${i.kind}:${i.key} \u2014 ${i.label} (${i.item_count} completed, latest ${i.last_closed_at})`);t.push("")}return Jp(t,e),Qp(t,e),Zp(t,e,n,r),eg(t,e,r),tg(t,e),ng(t,e),rg(t,e),og(t,e),ig(t,e),sg(t,e),ag(t,e),t.join(`
|
|
11
|
+
`)}async function cg(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=r.context??Nr.context,i=z(r.schema),s=kp(e.depth,o),a=wp(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:vp(e.section,s,o),activityLimit:Ep(e.activityLimit,o),staleThresholdDays:xp(e.staleThreshold,o),parentScope:Tp(e.parent),focusFields:_p(e.fields),baseListOptions:Sp(e)}}function xr(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function dg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function ug(e,t){let n=xr(t.sectionsIncluded),r=await Je(void 0,dg(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(c=>!F(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=lg(t.parentScope,o);return a&&(i=i.filter(c=>a.has(c.id.trim().toLowerCase())),s=s.filter(c=>a.has(c.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:i,allItems:s,fullCorpus:o,subtreeIds:a}}function lg(e,t){if(e===void 0)return;let n=wr(t,e);if(!n.found)throw new h(`Context --parent item not found: ${e}`,g.NOT_FOUND);return n.ids}async function fg(e,t,n,r,o,i,s,a,c,d,u,l,f,m,y){let p=[...e].sort((v,ke)=>we(v,ke,o)),b=await Zt({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),w=await tn(p,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:b.affinity,claimFocus:y}),_=await Jt("context",w.candidates),k=_.ranked.map(v=>v.item),E=o.active_statuses,I=k.filter(v=>E.has(C(v.status,o))),P=l?Ce(I,d,u,v=>v.id):0,D=l?I.slice(P,P+s):I,U=l&&D.length>0&&P+D.length<I.length,ce=U&&D.length>0?Z(u,D[D.length-1].id,P+D.length-1):void 0,B=k.filter(v=>r.has(v.id.trim().toLowerCase())),L=new Set([...D.map(v=>v.id),...B.slice(0,s).map(v=>v.id)]),q=kr({..._,ranked:_.ranked.filter(v=>L.has(v.id))},m,new Set(Object.entries(y??{}).filter(([,v])=>v>=1).map(([v])=>v))),X=q.included.map(v=>v.item),J=X.filter(v=>E.has(C(v.status,o))),be=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=je(t),re=xr(i)?Q:void 0,oe=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),sn=v=>{let ke=it(v,o,re);return r.has(v.id.trim().toLowerCase())&&(ke.blocked=!0,ke.blocker_ids=zt(v,oe,o).filter(an=>!an.resolved).map(an=>an.id)),ke},_a=J.filter(v=>nt.has(v.type)).slice(0,l?D.length:s).map(sn),wa=J.filter(v=>!nt.has(v.type)).slice(0,l?D.length:s).map(sn),Tr=I.length===0;return{activeItems:J,blockedItems:be,highLevel:_a,lowLevel:wa,blockedFallback:Tr?be.slice(0,s).map(sn):[],blockedFallbackUsed:Tr,ranking:_,packing:q,featureStore:w,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function mg(e){return de("context",lt(e,wo))}function pg(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Zs}async function gg(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await xs(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Op(s,t.statusRegistry).slice(0,t.limit),c=a.map(d=>r.has(d.item_id)?{at:d.at,date:d.date,kind:d.kind,item_id:d.item_id,reference_only:!0,...d.kind==="reminder"?{reminder_text:d.reminder_text}:{},...d.kind==="event"?{event_title:d.event_title,event_recurring:d.event_recurring}:{}}:d);return{agenda:i,agendaEvents:c,agendaSummary:Lp(a)}}function Js(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function hg(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=je(n),d=n.filter(l=>!F(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?$p(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Pp(t.activityLimit,a):void 0,progress:u("progress")?jp(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Up(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?zp(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Hp(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Bp(i.activeItems,t.limit):void 0,workload:u("workload")?Gp(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Kp(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?qp(i.activeItems):void 0}}function yg(e,t,n){if(!e)return{};let r=M("canceled",n);return{total_items:t.length,closed:t.filter(o=>rt(o.status,n)).length,canceled:t.filter(o=>C(o.status,n)===r).length}}function _g(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function wg(e,t){t&&(e.focus_fields=t,e.high_level=tt(e.high_level,t),e.low_level=tt(e.low_level,t),e.blocked_fallback=tt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=tt(e.recently_created,t)),e.unparented&&(e.unparented=tt(e.unparented,t)))}function bg(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let i of n)delete i.tags,delete i.tags_inherited;return}let r=new Map(n.map(i=>[i.id,i])),o=new Map(n.map(i=>[i.id,i.tags?[...i.tags].sort().join("\0"):void 0]));for(let i of n){if(!i.parent||!i.tags)continue;let s=r.get(i.parent);s&&o.get(i.id)===o.get(s.id)&&(delete i.tags,i.tags_inherited=s.id)}}function kg(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function vg(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await Qt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:o.has(i.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=nn(e.warnings,["context_usage_feedback_write_failed"])}}async function Eg(e,t,n){if(e)return{};let o=(await Pr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),i=o.filter(s=>s.status==="degraded").length;return o.length===0?{}:{extension_health:{total:o.length,ok:o.length-i,degraded:i,packages:o.slice(0,20),...o.length>20?{truncated:!0}:{}}}}async function xg(e,t){let n=Yr(),r=await zr(e),o=n.instance||Hr(t);return qs(r.semantic_attribution?.[o])}async function Jb(e,t){let n=S(process.cwd(),t.path),r=await cg(e,t),o=await ug(t,r),i=bp(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:yr(e.tokenBudget,Math.max(256,i*160))},a=pe(void 0,s.settings.author_default),c=await xg(n,a),d=Eg(e.noExtensionHealth===!0,n,s.settings),u=We(o.fullCorpus,s.statusRegistry),l=await fg(o.listedItemMetadata,o.allItems,o.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,mg(e),pg(e,o.fullCorpus.length),n,s.tokenBudget,c),f=await gg(t,s,o.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),m=await Gs(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=nn(o.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),p=Js(l.activeItems,M("in_progress",s.statusRegistry),s.statusRegistry),b=Js(l.activeItems,M("open",s.statusRegistry),s.statusRegistry),w=await hg({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=yg(xr(s.sectionsIncluded),o.allItems,s.statusRegistry),k={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:l.activeItems.length,in_progress:p,open:b,blocked:l.blockedItems.length,blocked_fallback_used:l.blockedFallbackUsed,high_level:l.highLevel.length,low_level:l.lowLevel.length,agenda_events:f.agendaSummary.events,..._},high_level:l.highLevel,low_level:l.lowLevel,blocked_fallback:l.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...l.pageExtras};return k.workspace_memory=Ks(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(k,await d),_g(k,w,l.featureStore.warning_details),bg(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=Er(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),k.packing=vr(l.packing)),wg(k,s.focusFields),y.length>0&&(k.warnings=y),kg(k,l.activeItems,l.blockedItems),await vg(k,l,n,a),k}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var Ig=["markdown","toon","json"],Cg=5,Sg=1440*60*1e3;function Tg(e){if(!e)return;let t=e.trim().toLowerCase();if(!Ig.includes(t))throw new h("Next format must be one of markdown|toon|json",g.USAGE);return t}function ck(e,t){let n=Tg(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"toon"}function ia(e,t,n){let r=V(e,t);return r===void 0||r<=0?n:r}function Ir(e,t,n,r){return{...it(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status})),unblocks:e.unblocks,rank:r}}function Dg(e,t,n,r){let o=e.item,i=[],s=M("in_progress",t);return i.push(C(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(Ag(o.deadline,n)),i.push(ye(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),i}function aa(e,t,n){let r=pe(n,t),o=[],i=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:s.item.id,assignee:a}):o.push(s)}return{available:o,held:i}}var dk={partitionCallerOwnedReady:aa,resolveNextCallerAuthor:(e,t)=>ca(e,t)};function Rg(e,t){let n=e.filter(r=>r.item.type.trim().toLowerCase()==="decision");return{agent:t?e:e.filter(r=>r.item.type.trim().toLowerCase()!=="decision"),decisions:t?[]:n}}function Ag(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),o=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(o))/Sg);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Ng(e,t){let n=M("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Cr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Mg(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function sa(e,t,n){return[...e].sort((r,o)=>{let i=Cr(r.item,t),s=Cr(o.item,t);return i!==s?Number(i)-Number(s):we(r.item,o.item,n)})}function Fg(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Dg(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Lg(e,t){if(e===null){if(t.length>0){let n=t.find(r=>r.blockers.length>0);return[n?`${t.length} item(s) are blocked; unblock the top one by closing ${n.blockers.map(r=>r.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return['pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}}function Og(e,t,n){let r={};return e>n&&(r.decision_needed_total=e),t>n&&(r.held_by_others_total=t),Object.keys(r).length>0?r:void 0}async function $g(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Qt({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:e.ranking.ranked.map(n=>({id:n.id,rank:n.rank,included:t.has(n.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.result.warnings=nn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Pg(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=Er(e.readyRanking,e.featureStore),e.result.packing=vr(e.packing)),e.result.suggestions=Lg(e.recommended,e.blockedRows),await $g({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function jg(e,t,n){if(!n)return e;let r=wr(t,n);if(!r.found)throw new h(`Next --parent item not found: ${n}`,g.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Ug(e,t,n,r,o,i,s){let a=e.filter(p=>!Cr(p.item,t)),c=a.length>0?a:e,d=await Zt({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await tn(c.map(p=>p.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:d.affinity}),l=await Jt("next",u.candidates),f=kr(l,s,new Set,"next"),m=new Map(c.map(p=>[p.item.id,p]));return{projectedReady:l.ranked.map(p=>m.get(p.id)).filter(p=>p!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function ca(e,t){let n=e.assignee?.trim();return pe(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function uk(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=ca(e,r.author_default),i=z(r.schema),s=G(),a=ia(e.limit,"--limit",Cg),c=yr(e.tokenBudget,Math.max(192,a*128)),d=ia(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Je(void 0,Mg(e,{excludeTerminal:!0}),t),m=await Je(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=jg(f.items,m.items,l),p=m.items,b=Xn(y,p,i),w=je(p),_=Rg(b.ready,e.includeDecisions===!0),k=aa(_.agent,r.author_default,o),E=sa(k.available,w,i),I=[...b.blocked].sort((re,oe)=>we(re.item,oe.item,i)),{projectedReady:P,ranking:D,completedContainer:U,packing:ce,featureStore:B}=await Ug(E,w,i,s,o,n,c),L=P.map((re,oe)=>Ir(re,i,w,oe+1)),q=I.map((re,oe)=>Ir(re,i,w,oe+1)),X=sa(_.decisions,w,i).map((re,oe)=>Ir(re,i,w,oe+1)),J=Fg({projectedReady:P,readyRows:L,statusRegistry:i,now:s,completedContainer:U}),be=Og(X.length,k.held.length,a),Q={output_default:"toon",now:s,recommended:J,ready:L.slice(1,a+1),decision_needed:X.slice(0,a),blocked:u?[]:q.slice(0,d),held_by_others:k.held.slice(0,a),summary:{recommended:J!==null,ready:L.length,blocked:q.length,in_progress:Ng(L,i),candidates:b.active_count,containers:b.container_count,decision_needed:X.length,held_by_others:k.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:be};return Pg({result:Q,recommended:J,blockedRows:q,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:D,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:ce,featureStore:B})}function lk(e){let t=["# pm next","",...Bg(e)];if(t.push(...rn("Recommended",Gg(e.recommended),"No ready work.")),t.push(...rn("Decision needed",(e.decision_needed??[]).map(n=>`- ${on(n)}`),"No human-gated decisions.")),t.push(...rn("Ready",e.ready.map(n=>`- ${on(n)}`),"No ready items.")),e.filters.ready_only||t.push(...rn("Blocked",e.blocked.map(n=>`- ${Kg(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
|
|
12
|
+
`).trimEnd()}function Bg(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function Gg(e){return e?[`- ${on(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function rn(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Kg(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${on(e)} blocked_by:${t}`}function on(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}import{createHash as zg}from"node:crypto";import{setTimeout as Hg}from"node:timers/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e8cd5790-eacf-5ef7-bc0a-11ea3fe17d2d")}catch{}})();var ua=1,la=/^[A-Za-z0-9_-]+$/,qg=100,da=1e3,Wg=250,Ek=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function Y(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,o)=>r.localeCompare(o));return n.length===0?void 0:n}function fa(e){return zg("sha256").update(Ee({type:Y(e.type),author:Y(e.author),item:Y(e.item),harness:Y(e.harness),agent_instance:Y(e.agentInstance),provenance:Y(e.provenanceFilter)})).digest("hex").slice(0,24)}function Sr(e,t){let n={version:ua,fingerprint:t,ts:e.entry.ts,stream_id:e.stream_id,stream_offset:e.stream_offset};return Buffer.from(JSON.stringify(n),"utf8").toString("base64url")}function ma(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===ua,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function pa(e,t){let n=e.trim();if(n.length===0||n.length>4096||!la.test(n))throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"})}if(!ma(r,t))throw new h("Mutation event cursor does not match this query.",g.USAGE,{code:"event_cursor_query_mismatch"});return r}function ga(e){let t=e??qg;if(!Number.isSafeInteger(t)||t<0||t>da)throw new h(`Mutation event limit must be an integer from 0 to ${da}.`,g.USAGE,{code:"invalid_event_limit"});return t}function ha(e){return e instanceof Error&&e.name==="AbortError"}function ya(e,t){let n=e?.trim();if(!n)return{};if(la.test(n))return{cursor:pa(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new h("Mutation event --since must be an event cursor or ISO timestamp.",g.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Vg(e,t){let n=await ln(e,t);if(n===null){if(!await Xr(e))return{...await Jr(e,t),source:"authoritative_history"};n=await ln(e,t)}if(n===null)throw new h("Mutation event index could not be opened after rebuild.",g.GENERIC_FAILURE,{code:"event_index_unavailable"});return{...n,source:"derived_index"}}function Yg(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new h("Mutation event cursor mode must be batch or row.",g.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Xg(e={}){let t=S(e.cwd??process.cwd(),e.pmRoot);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);let n=ga(e.limit),r=Yg(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new h("Mutation event projections are mutually exclusive. Use --provenance or --full.",g.USAGE);let o=await T(t),i=o.agent_identity.identity_vocabulary,s=Et(o.agent_identity.harness_signals),a=vn({provenance:e.provenanceFilter},s),c=Y(e.harness),d=fa(e),{cursor:u,sinceTimestamp:l}=ya(e.since,d),f={...u?{after_ts:u.ts,after_stream_id:u.stream_id,after_stream_offset:u.stream_offset}:l?{since_ts:l}:{},ops:Y(e.type),authors:Y(e.author),harnesses:c,harness_alias_authors:c?Object.entries(i.aliases).filter(([,p])=>c.includes(p)).map(([p])=>p):void 0,agent_instances:Y(e.agentInstance),provenance:[...a].map(([p,b])=>({dimension:p,values:[...b]})),stream_ids:Y(e.item),limit:n},m=await Vg(t,f),y=m.events.map(p=>({...r==="row"?{cursor:Sr(p,d)}:{},item_id:p.stream_id,version:p.stream_offset+1,ts:p.entry.ts,author:p.entry.author,type:p.entry.op,...p.entry.message===void 0?{}:{message:p.entry.message},patch_count:p.entry.patch.length,...e.full===!0?{entry:p.entry}:{},...e.provenance===!0?{provenance:xt(p.entry,i,{itemId:p.stream_id,version:p.stream_offset+1})}:{}}));return{events:y,count:y.length,has_more:m.has_more,cursor_mode:r,...m.events.length===0?{}:{next_cursor:Sr(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:It(m.events.map(p=>p.entry),i,s)}:{}}}async function*Jg(e={}){let t=e.intervalMs??Wg;if(!Number.isSafeInteger(t)||t<10)throw new h("Mutation event follow interval must be an integer of at least 10ms.",g.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Xg({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await Hg(t,void 0,{signal:e.signal})}catch(i){if(ha(i))return;throw i}}}async function*xk(e={}){for await(let t of Jg({...e,cursorMode:"row"}))for(let n of t.events)yield n}var Ik={decodeMutationEventCursor:pa,encodeMutationEventCursor:Sr,eventQueryFingerprint:fa,isAbortError:ha,isMutationEventCursorEnvelope:ma,parseMutationEventLimit:ga,resolveMutationEventStart:ya};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function Sk(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}export{bo as a,ko as b,Be as c,vo as d,Eo as e,uh as f,xo as g,bn as h,Nh as i,Mh as j,Wh as k,Vh as l,bt as m,wt as n,Lo as o,Qh as p,V as q,kt as r,Oo as s,vt as t,Et as u,vn as v,xt as w,cy as x,En as y,It as z,_y as A,Bo as B,Go as C,pc as D,Ae as E,ky as F,vy as G,In as H,ge as I,hc as J,_c as K,Cn as L,wc as M,Fe as N,Ct as O,Sn as P,St as Q,Ay as R,Ho as S,Zy as T,Qo as U,Zo as V,ei as W,ti as X,ni as Y,Ft as Z,oi as _,Oe as $,ii as aa,di as ba,Pt as ca,ui as da,Qd as ea,gi as fa,Ut as ga,jn as ha,Bt as ia,hi as ja,_i as ka,Un as la,qe as ma,bi as na,Gn as oa,Kn as pa,zn as qa,ki as ra,Hn as sa,Ei as ta,xi as ua,Ci as va,Eu as wa,V_ as xa,Sk as ya,Uu as za,ye as Aa,Kt as Ba,Li as Ca,zt as Da,We as Ea,Xn as Fa,Jn as Ga,Ve as Ha,$i as Ia,Pi as Ja,Ki as Ka,er as La,Hi as Ma,sw as Na,aw as Oa,Vi as Pa,Yi as Qa,dw as Ra,sl as Sa,rs as Ta,Zi as Ua,es as Va,al as Wa,cl as Xa,Lw as Ya,pl as Za,gl as _a,hl as $a,Je as ab,Bw as bb,Gw as cb,Kw as db,xs as eb,ur as fb,Xt as gb,im as hb,Ss as ib,um as jb,Jt as kb,lm as lb,fm as mb,hm as nb,ym as ob,Vw as pb,_m as qb,Ts as rb,ne as sb,Qt as tb,tb as ub,nb as vb,Zt as wb,lr as xb,fr as yb,Pm as zb,zm as Ab,Hm as Bb,mr as Cb,pr as Db,tn as Eb,js as Fb,lb as Gb,Qm as Hb,np as Ib,Gs as Jb,dp as Kb,Ks as Lb,up as Mb,kb as Nb,Hs as Ob,Sb as Pb,Tb as Qb,Db as Rb,Rb as Sb,qs as Tb,lp as Ub,_p as Vb,tt as Wb,Yb as Xb,yr as Yb,kp as Zb,vp as _b,wr as $b,we as ac,kr as bc,vr as cc,Er as dc,je as ec,it as fc,nn as gc,Xb as hc,bg as ic,Jb as jc,Ig as kc,ck as lc,dk as mc,Rg as nc,uk as oc,lk as pc,Ek as qc,Xg as rc,Jg as sc,xk as tc,Ik as uc};
|
|
13
|
+
//# sourceMappingURL=chunk-UYCLQVL2.js.map
|