@unbrained/pm-cli 2026.8.15 → 2026.8.17
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/CHANGELOG.md +56 -12
- package/README.md +13 -13
- package/dist/cli/error-guidance.d.ts +5 -0
- package/dist/cli/error-guidance.js +15 -2
- package/dist/cli/public.d.ts +2 -0
- package/dist/cli/public.js +21 -0
- package/dist/cli/register-history-author.js +16 -11
- package/dist/cli/register-mutation.js +4 -4
- package/dist/cli-bundle/bundle-manifest.json +143 -143
- package/dist/cli-bundle/chunks/{chunk-J42EGKDK.js → chunk-2QLOXC3V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LJHOAVGI.js → chunk-3UEGXBMR.js} +49 -43
- package/dist/cli-bundle/chunks/chunk-4JPYF536.js +35 -0
- package/dist/cli-bundle/chunks/chunk-6VDLG2FC.js +13 -0
- package/dist/cli-bundle/chunks/chunk-7IBRGCHX.js +2 -0
- package/dist/cli-bundle/chunks/chunk-HBJAS566.js +8 -0
- package/dist/cli-bundle/chunks/chunk-ION3E43Q.js +197 -0
- package/dist/cli-bundle/chunks/{chunk-WLPDLNEZ.js → chunk-JOKATURE.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MEM2ZS3O.js → chunk-TPXZIBIV.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-YM2YAMF7.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-CT3LFDDN.js → register-list-query-Q7KII4G5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-NWEVA5YS.js → register-mutation-4WBRPXLV.js} +3 -3
- package/dist/cli-bundle/chunks/{register-operations-AHIAG5KM.js → register-operations-SSENDH5B.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-ZJZFVAKE.js → register-setup-DOSFBGKE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WTSER4WJ.js → chunk-267MUUS6.js} +11 -11
- package/dist/cli-bundle/focused-chunks/chunk-2NNFLLNG.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2QSAKMIH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZMFXQ7VF.js → chunk-ATEY76SX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCG4ZI2.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M67F5AIN.js → chunk-CYFK5UPB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EHXIKD6K.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-EXZA4257.js → chunk-KGEXTMPG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-KP2VQQVQ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MHPIL773.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-POEEAD2V.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ITAUHSO6.js → chunk-SALH6B6K.js} +47 -47
- package/dist/cli-bundle/focused-chunks/{chunk-KLVUMNXJ.js → chunk-SYZENPIT.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-KTKH4IMG.js → chunk-XKAMP5OU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NSPYTG6G.js → chunk-XPIC53VA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6XKF3PGV.js → chunk-ZQPGZZWQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZT2DJS27.js +155 -0
- package/dist/cli-bundle/main.js +10 -10
- 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 -2
- package/dist/core/extensions/loader.js +10 -6
- package/dist/core/extensions/manifest-schema.d.ts +20 -0
- package/dist/core/extensions/manifest-schema.js +52 -0
- package/dist/core/history/replay.js +32 -14
- package/dist/core/history/workspace-history.js +32 -10
- package/dist/core/output/output.js +6 -3
- package/dist/core/schema/fields-file.d.ts +1 -1
- package/dist/core/schema/fields-file.js +2 -2
- package/dist/core/schema/runtime-field-values.js +115 -9
- package/dist/core/schema/runtime-schema.d.ts +3 -1
- package/dist/core/schema/runtime-schema.js +124 -3
- package/dist/core/shared/errors.d.ts +12 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/time.d.ts +2 -0
- package/dist/core/shared/time.js +27 -2
- package/dist/core/store/item-store.js +28 -2
- package/dist/sdk/agent/refusal-reachability.d.ts +56 -8
- package/dist/sdk/agent/refusal-reachability.js +414 -4
- package/dist/sdk/author-attribution.d.ts +56 -11
- package/dist/sdk/author-attribution.js +174 -50
- package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +12 -4
- package/dist/sdk/cli-contracts/tool-schema.js +12 -4
- package/dist/sdk/completion.js +11 -4
- package/dist/sdk/compose.d.ts +6 -2
- package/dist/sdk/compose.js +33 -3
- package/dist/sdk/context-intent-contracts.d.ts +8 -4
- package/dist/sdk/context-intent-contracts.js +76 -31
- package/dist/sdk/dependency-flag-validation.d.ts +9 -2
- package/dist/sdk/dependency-flag-validation.js +101 -35
- package/dist/sdk/environment/host-environment-errors.js +25 -7
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +62 -14
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -2
- package/dist/sdk/governance/assurance-action.d.ts +3 -7
- package/dist/sdk/governance/assurance-action.js +97 -2
- package/dist/sdk/governance/boundary-fixtures.d.ts +86 -0
- package/dist/sdk/governance/boundary-fixtures.js +201 -0
- package/dist/sdk/governance/coverage-assurance.d.ts +24 -0
- package/dist/sdk/governance/coverage-assurance.js +61 -0
- package/dist/sdk/governance/defect-recurrence-signals.d.ts +10 -0
- package/dist/sdk/governance/defect-recurrence-signals.js +25 -0
- package/dist/sdk/governance/defect-recurrence.d.ts +242 -0
- package/dist/sdk/governance/defect-recurrence.js +523 -0
- package/dist/sdk/governance/extension-host-version.js +20 -9
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/graph/governance.js +3 -2
- package/dist/sdk/guide-topics.js +191 -2
- package/dist/sdk/index.d.ts +5 -1
- package/dist/sdk/index.js +6 -3
- package/dist/sdk/lifecycle/create.js +4 -2
- package/dist/sdk/lifecycle/update-many.js +15 -2
- package/dist/sdk/lifecycle/update.js +5 -2
- package/dist/sdk/linked-artifacts.js +63 -14
- package/dist/sdk/query/get.d.ts +2 -0
- package/dist/sdk/query/get.js +32 -7
- package/dist/sdk/read-output-contracts.js +5 -3
- package/dist/sdk/relationship-analytics.js +90 -14
- package/dist/sdk/relationship-kinds/contract.d.ts +4 -0
- package/dist/sdk/relationship-kinds/contract.js +3 -2
- package/dist/sdk/relationships.d.ts +1 -1
- package/dist/sdk/relationships.js +11 -2
- package/dist/sdk/runtime.d.ts +2 -5
- package/dist/sdk/runtime.js +3 -2
- package/dist/sdk/schema.d.ts +1 -0
- package/dist/sdk/schema.js +2 -2
- package/dist/sdk/test/execution.d.ts +6 -2
- package/dist/sdk/test/execution.js +39 -13
- package/dist/types.d.ts +29 -2
- package/dist/types.js +4 -2
- package/docs/CONFIGURATION.md +58 -1
- package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +58 -0
- package/docs/DEFECT_RECURRENCE.md +134 -0
- package/docs/DEPENDENCY_KIND_CONTRACT.md +12 -2
- package/docs/README.md +2 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +7 -1
- package/docs/RELATIONSHIP_GRAPH.md +16 -2
- package/docs/RELEASING.md +13 -7
- package/docs/SDK.md +38 -5
- package/docs/SDK_CONTEXT_INTEGRITY.md +33 -5
- package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +13 -5
- package/docs/SDK_RUNTIME_BOUNDARIES.md +9 -1
- package/docs/TESTING.md +18 -1
- package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +1 -1
- package/marketplace.json +2 -2
- package/package.json +6 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/skills/pm-audit/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-developer/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-planner/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-release/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-workflow/SKILL.md +26 -0
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/skills/pm-auditor/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-native/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-release/SKILL.md +26 -0
- package/sdk/public-surface.json +716 -33
- package/dist/cli-bundle/chunks/chunk-24GAV7XL.js +0 -8
- package/dist/cli-bundle/chunks/chunk-AIM6VT2N.js +0 -13
- package/dist/cli-bundle/chunks/chunk-DSWDLTDR.js +0 -197
- package/dist/cli-bundle/chunks/chunk-KIEGUBYQ.js +0 -2
- package/dist/cli-bundle/chunks/chunk-KLKYLSDX.js +0 -2
- package/dist/cli-bundle/chunks/chunk-QHPCJWEJ.js +0 -35
- package/dist/cli-bundle/focused-chunks/chunk-4X57RE4U.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-7NJ4QYQ2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KT5XMYSX.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-OKA6ELTL.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PUISBOPP.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QLNMCESQ.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-SLKC6QLJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-U65UC4G3.js +0 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{$c as z,Ad as Kr,Ah as De,B as Ar,Bd as zr,Bh as mo,C as g,Cd as Hr,Da as cn,Dc as un,Dd as qr,Dh as le,E as h,Ea as at,Ed as Wr,Eh as fe,Ej as ho,Fc as Pr,Fh as po,G as j,Gc as jr,Gh as ee,Hf as pn,Hh as go,Id as Ee,Ie as mn,Jb as xe,Ka as O,La as ct,Lc as Ur,Lf as Se,Nd as Vr,Of as Qr,Q as G,Qf as Zr,Qg as so,Rf as eo,Rg as ao,Sa as S,T as E,Tf as Ue,U as Nr,Ud as pe,V as se,Va as $,Vd as Ie,Vf as ue,Vg as hn,Wa as Mr,Wd as Yr,Wf as gn,Wk as yo,Xd as ln,Xf as to,Ya as dn,Ze as ft,_f as no,aa as Fr,ac as $r,ag as mt,bd as dt,c as A,ca as Lr,d as st,dg as ro,e as Tr,ee as ut,f as ie,fh as gt,g as K,ge as Xr,gh as ht,h as Dr,hg as oo,ig as Te,ke as fn,le as lt,lh as co,md as F,me as de,nd as C,ne as Z,ob as W,od as L,oh as T,qe as Jr,re as Ce,tb as Or,td as Br,uc as N,ud as Gr,ug as io,uh as uo,vg as pt,x as Rr,ya as ve,yh as lo,zh as fo}from"./chunk-ION3E43Q.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 wa(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 ba(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 _o(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 wo(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=ba(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=wa(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=no(e,t);if(o.ok)return o.document;let i=_o(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 bo(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 ko(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 ka 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 va(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=co(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 ah(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Se(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await ka.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 vo(e){let t=[...va({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 xo(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function Eo(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=xo(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 Io(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(Eo),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 Co(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 So(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"?Co(r,i.value,n):So(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 Ea(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 Ia(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 Ca(e,t,n){let r=structuredClone(Ue),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=Ia(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 To(e){return Object.keys(e.metadata).length>0}async function Sa(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 Ta(e){if(!To(e.finalDocument))return{raw:null,path:null,document:null};let t=Gr(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:Mr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Br(t,{format:"toon",schema:e.settings.schema})}}function Da(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 Ra(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(eo({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Aa(e){let t=[];return vo({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 fo(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,ro(e.rewrittenEntries))}catch(c){try{await Na(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 mo({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 Na(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=io(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 Dh(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=Io(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=Ea(f),p=Ca(f,d,c),y=m.hashMismatchesBefore+m.hashMismatchesAfter,k=!!t.dryRun,w=p.replacements>0,_=[];y>0&&_.push(`history_redact_preexisting_hash_mismatches:${y}`),w||_.push("history_redact_no_matches");let b=await Sa(u,o),x=Ta({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:p.finalDocument}),I=(b.path??null)!==(x.path??null)||(b.raw??null)!==(x.raw??null),P=pe(t.author,o.author_default),D=Da(t,p),{rewrittenEntries:U,auditEntryAdded:ce}=Ra({rewritten:p,dryRun:k,changed:w,nextItemDocument:x.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!k&&w&&_.push(...await Aa({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:b,nextItem:x,author:P,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:k,changed:w,patterns:{literal_count:d.filter(M=>M.kind==="literal").length,regex_count:d.filter(M=>M.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:p.entriesChanged,replacements:p.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:y,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:b.path!==null,exists_after:x.path!==null,path_before:b.path,path_after:x.path,changed:I},warnings:[...new Set(_)].sort((M,q)=>M.localeCompare(q)),generated_at:G()}}var Rh={applyLiteralRule:Co,applyRegexRule:So,buildRedactionRules:Io,hasItemMetadata:To,normalizeRegexFlags:xo,normalizeStringArrayInput:_n,parseRegexRule:Eo,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 zh(e,t){let n=mt(e),r=e.length>0?e[e.length-1].after_hash:Zr(),o=t===void 0?void 0:Qr(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 Hh(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=wo(t,a),d=ko(bo(a,c.historyIndex),c),u=to(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:Ba(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function Ro(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:Jr(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 Ao(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 Do(e){return JSON.stringify(_t(e))}function Ma(e,t,n,r){let o=[{id:e,expanded:!1}];for(;o.length>0;){let i=o.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),o.push({id:i.id,expanded:!0});let s=[...t.get(i.id)].sort().reverse();for(let a of s)n.has(a)||o.push({id:a,expanded:!1})}}function Oa(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||Ma(o,t,n,r);return r}function $a(e,t){let n=new Set,r=[];for(let o of[...e].reverse()){if(n.has(o))continue;let i=[],s=[o];for(n.add(o);s.length>0;){let a=s.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(i)}return Ao(r)}function No(e,t){let n=Ge(e);for(let[r,o]of t)for(let i of o)Re(n,i,r);return $a(Oa(e,t),n)}function Pa(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 ja(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let s of i)n.set(s,n.get(s)+1);let r=e.filter(i=>n.get(i)===0).sort(),o=[];for(;r.length>0;){o.push(r);let i=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return o}function Ua(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let o=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],i=o===void 0?[]:[o];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function Ba(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function bt(e,t={}){let n=t.registry??W(),r=[...e.nodes()],o=Pa(e,n),i=ja(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:No(r,o).filter(u=>u.length>1||o.get(u[0]).has(u[0])),d=Ua(s,o);return{exact:!0,acyclic:a,order:s,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Ga(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 Ka(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((p,y)=>p.distance-y.distance||p.id.localeCompare(y.id)||p.path.join("\0").localeCompare(y.path.join("\0")));for(let p of d)c.has(p.id)||c.set(p.id,p);let u=[...c.values()].sort((p,y)=>p.distance-y.distance||p.id.localeCompare(y.id)),l=r===void 0||r===t?-1:u.findIndex(p=>p.id===r);if(r!==void 0&&r!==t&&l<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=u.slice(l+1,l+1+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 za(e,t,n){let r=n.direction,o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Ro(t,n,r,o),{adjacency:c,inspectedEdges:d}=Ga(e,r,n.kinds),u={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},l=0,f=!1,m=!1;e:for(let p=0;p<u.queue.length;p+=1){n.signal?.throwIfAborted();let y=u.queue[p];l+=1;let k=[...c.get(y.id)].sort();if(y.depth>=o){k.some(w=>!u.seen.has(w))&&(f=!0);continue}for(let w of k)if(La(u,w,y,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 za(e,t,{...n,direction:r});let o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Ro(t,n,r,o);return Ka(e,t,n,a,i,s)}function Fo(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:Ao(o),stronglyConnected:No(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 Yh(e,t){let n=new Map(e.edges.map(o=>[Do(o),o])),r=new Map(t.edges.map(o=>[Do(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 Lo(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 xt(e=[]){let t=new Set(Ee),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function Mo(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=Ee){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new 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 Et(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 iy(e,t,n=vt,r=Ee){return xn(t,n,r)(e)}function xn(e,t=vt,n=Ee){let r=Mo(e.harness),o=Mo(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=Ee){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);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 Ha from"node:fs/promises";import Po 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 qa=20,Wa=5,Va=15,Ya="-24h";function gy(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 Xa={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function En(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 Oo(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 Ja(e,t,n){return!(e.ts.length===0&&(t||n)||t&&E(e.ts,t)<0||n&&E(e.ts,n)>=0)}function $o(e,t){return t===void 0?e:e.slice(0,t)}function Ke(e,t=""){return typeof e=="string"?e:t}function Qa(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 Za(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 ec(e){try{return(await Ha.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Tr(t))return[];throw t}}function tc(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 nc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Va:n==="compact"?qa:Wa}function rc(e,t){let n=G(),r=t==="digest",o=Oo(e.to??(r?n:void 0),n,"--to"),i=Oo(e.from??(r?Ya:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&E(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:En(e.id,"Activity --id"),op:En(e.op,"Activity --op"),author:En(e.author,"Activity --author"),from:i,to:o,limit:nc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function oc(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 ic(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 oo({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Po.join(e.pmRoot,"history");return await Pr({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function sc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Ja(t,n.from,n.to)}async function ac(e,t){let n=[];for(let r of await ec(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Ie(Po.join(e,r),o);for(let s of i){let a=Qa(o,s);sc(s,a,t)&&n.push(a)}}return n}function cc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function dc(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 uc(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,E(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),E(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:dc(o.operations)}}).sort((r,o)=>E(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function lc(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 fc(e,t,n,r,o){if(e==="digest"){let s=uc(t,r),a=$o(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=$o(t,n);return e==="compact"?{rows:{compact_activity:cc(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 jo(e,t){let n=await oc(t),r=tc(e),o=rc(e,r),i=await ic(n),s=xt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=xn({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=Za(await ac(i.historyDir,o)).filter(c),u=fc(r,d,o.limit,i.itemsById,f=>Et(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:Xa[r]},omission_receipt:Xr("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:lc(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 Uo="global",mc="external";function Ae(e){let t=e?.trim().toLowerCase();return t===Uo||t===mc}function _y(e){let t=e?.trim();if(t)return Ae(t)?Uo:t}function wy(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 Fe(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=Fe(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 pc(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Fe(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 gc(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 pc(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 hc(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Fe(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 yc(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=Fe(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=hc(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=Fe(d);if(!f||r.has(f.toLowerCase()))return;let m={holder_id:c.id.trim(),target_id:f,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:f.toLowerCase()==="no-active-blocker"};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 _c(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 wc(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=Fe(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function bc(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 Le(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=_c(s);for(let f of a)i.set(f.toLowerCase(),f);let c=wc(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),p=In(f.blocked_by),y=(f.dependencies??[]).flatMap(k=>{if(typeof k!="object"||k===null)return[];let w=k,_=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())}:{},...p?{blocked_by:i.get(p.toLowerCase())}:{},dependencies:y}});return{graph:Or.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:gc(o,t),orderingContradictions:yc(o,t,r),legacyAliasCounts:bc(o,r)}}import{createHash as kc}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var vc=64,xc=8;function Ec(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=>Ec(i,t)).sort(),o=n.list().map(i=>xe(i)).sort();return kc("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Bo(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=Bo("maxResultsPerWorkspace",t.maxResultsPerWorkspace,vc),this.#n=Bo("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()}},Go=new Sn;function St(){return Go}function Ty(){Go.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 Ic=["prerequisite","dependent","ancestor","descendant","provenance","related"],Cc=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(Cc.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 Sc(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 Tc(e){return Ic.find(t=>e.includes(t))}function Dc(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(p=>!s.has(p.id))&&(u=!0);continue}for(let{id:p,edge:y}of m.value){if(s.has(p))continue;s.add(p);let k={id:p,distance:f.distance+1,via:f.id,role:Dn(y,p,n)};c.push(k),a.push(k)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Rc(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 Ac(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Sc(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Tc(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 Nc(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 Ko(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=Dc(e,t,a,r),{rootEdges:p,...y}=Rc(e,t,a,r),k=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),w=Ce(m.rows,r.cursor,k,({id:Q})=>Q),_=m.rows.slice(w),b=Tt(l)+Tt(f);if(b>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let x=Ac({candidates:_,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:b}),{nodes:I}=x,P=new Set([t,...I.map(({id:Q})=>Q)]),D=Nc({graph:e,included:P,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:x.usedTokens}),{edges:U,usedTokens:ce}=D,B=w+I.length,M=B<m.rows.length,q=I.at(-1),X=D.candidateCount-U.length,J=m.depthTruncated||M||X>0,be={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...y,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:U.length,omittedNodes:m.rows.length-B,omittedEdges:X,evidenceCount:f.length,hasMore:M};return{root:l,summary:be,nodes:I,edges:U,evidence:f,meta:{exact:!0,truncated:J,completeness:J?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:ce,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-B,omittedEdges:X,...M&&q?{nextCursor:Z(k,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"],Mc=["outgoing","incoming","both"],Oc=32,$c=200,Pc=400,jc=16e3;function Uc(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 Bc(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(Mc.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 Gc(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 Kc(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Gc(e.dependencies)}}function zc(e){return ft(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Hc(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(Ho(d.id,n,r,o,i,s,a,c+1,d.kind))}}function qc(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 Ho(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+=zc(l),qc(l,u,d,r,o,i,s,a))return l;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),Hc(l,u,t,f,r,o,i,s,a),l}function zo(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 Wc(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,zo(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,zo(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 qo(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 Vc(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 Yc(e,t,n,r){return Ko(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 Xc(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 Jc(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 Qc(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 Wo(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 Zc(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function ed(e){try{return Yc(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Zc(t))return e.smallestResult;throw t}}function td(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 p=ed({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in p)return p;let y=p;f??=y.meta.tokenBudget,l??=f;let k=Jc({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(m=k,i||(y.meta.tokenBudget=f,y.meta.usedTokens=Wo(Me(k,!1),s,b=>{y.meta.usedTokens=b}),y.meta.usedTokens<=f))return k;if(u>0){u-=1;continue}let w=l,_=w*f/y.meta.usedTokens;l=Math.min(w-1,Math.max(1,Math.floor(_*.9)))}}function nd(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Vc(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(y=>l.require(y).kind)):void 0,m=new Set([n,...c.value]),p=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Qc({row:y,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return td({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:p})}function rd(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 od(e,t,n,r,o,i,s){let a=o??Oc,c=te(n.nodeLimit,"node-limit")??$c,d=te(n.edgeLimit,"edge-limit")??Pc,u=te(n.tokenBudget,"token-budget")??jc,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=Ho(e,r,new Set,a,t==="graph"?"repeated":i,new Set,l),m=qo(e,r,void 0),p;for(;;){let y=Wc(f),k=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-y.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-y.edges.length)},w={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...k?{truncation:k}:{}};if(p=t==="tree"?{...w,tree:f}:{...w,graph:y},(p.truncation===void 0?ft(new TextEncoder().encode(pn(fn("deps",Me(p,!1)),s)).byteLength):Wo(Me(p,!1),s,b=>{p.truncation.estimated_tokens=b}))<=u)return p;if(!rd(f))return l.reasons.add("token_budget"),p;l.reasons.add("token_budget")}}function Me(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 Xy(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=Uc(t.format),i=Dt(t.maxDepth),s=Bc(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(p=>[p.id.trim().toLowerCase(),Kc(p)])),m=Cn(u,p=>L(p,l));for(let p of[...m.active,...m.legacy_terminal]){let y=f.get(p.holder_id.trim().toLowerCase()),k=p.kind.trim().toLowerCase();y&&!y.dependencies.some(w=>w.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&w.kind===k)&&y.dependencies.push({id:p.target_id,kind:k})}if(!f.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,g.NOT_FOUND);if(o==="context"){let p=f.get(e.trim().toLowerCase()).id,y=a?[]:await Xc(r,p,c,d.type_to_folder),k=b=>L(b,l),w=ge(),_=St().lookup(r,Ct(u,k,w),()=>Le(u,k,w));return Me(nd({assembly:_.assembly,canonicalId:p,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,_.assembly.legacyAliasCounts)}return a?Me({id:e,format:o,...qo(e,f,i)},!0,Object.fromEntries(Object.entries(Le(u,p=>L(p,l)).legacyAliasCounts))):Me(od(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Le(u,p=>L(p,l)).legacyAliasCounts)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var id=5,sd=1e4,ad=8;function Fn(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 cd(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 dd(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 ud(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=cd(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];u+=1;let p=dd(e,m.id,i,r,o);if(l+=p.inspectedEdges,ud(p,m.depth,a,s,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Vo(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Yo(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 ld(e,t,n,r,o,i,s){for(let a of Yo(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 Xo(e,t,n={}){return Nt(e,t,n,"hierarchy",(r,o)=>Rt(r.edge,o)===r.id)}function Jo(e,t,n={}){return Nt(e,t,n,"hierarchy",(r,o,i)=>Rt(r.edge,o)===i)}function Qo(e,t,n={}){return Nt(e,t,n,"ordering",(r,o)=>ze(r.edge,o)===r.id)}function Zo(e,t,n={}){return Nt(e,t,n,"ordering",(r,o,i)=>ze(r.edge,o)===i)}function fd(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){Yo(e,m,r,a,c).length>0&&(u=!0);continue}if(ld(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 ei(e,t,n,r={}){Vo(e,t),Vo(e,n);let o=r.maxPaths??id,i=r.maxVisitedPaths??sd,s=r.maxDepth??ad;Fn("maxPaths",o),Fn("maxVisitedPaths",i),Fn("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}}:fd(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 md=16,pd=2,gd=8;function Ft(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Lt(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 hd(e,t){let n=new Map;Lt(e,t,r=>{ti(n,r.source,r.target),ti(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ti(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function yd(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 _d(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 ni(e,t={}){let n=t.maxIterations??md,r=t.minSize??pd;Ft("maxIterations",n),Ft("minSize",r);let o=hd(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=yd(f,s);m!==s.get(l)&&(s.set(l,m),c=!1)}}return{value:{communities:_d(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Mt(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 wd(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(!Mt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Ot(i))}return r}function bd(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!Mt(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 kd(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function vd(e,t,n,r){let 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 vd(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function Ed(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??gd;Ft("maxDepth",n),t.limit!==void 0&&Ft("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=wd(e,t.kinds),i=bd(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=kd(u);for(let f of u.records){t.signal?.throwIfAborted();let m=Ed(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 Id(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 Cd(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,Id(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Sd(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 Td(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 Dd(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Td(r,o,t,n));return r}function Rd(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=Dd(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function ri(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=Cd(e,t,n),o=Sd(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Rd(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 oi(e){return Math.round(e*1e6)/1e6}function ii(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function si(e,t){let n=new Map(e.nodes().map(o=>[o,new Set]));Lt(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 Ad(e,t){let n=new Map,r=new Map;return Lt(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=At(o,i);ii(r,s,a),ii(n,a,s)}),{incoming:n,outgoing:r}}function Nd(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 p=i.get(m);p===void 0?i.set(m,[l]):p.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 Md(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:oi((r.get(e)??0)/2),closeness:oi(o.get(e))}}function ai(e,t={}){let n=si(e,t.kinds),r=Ad(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=Nd(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=>Md(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 Od(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function $d(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 Pd(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(Od(r,e.node))}function jd(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=$d(i,t,n);s!==void 0&&o.push(s)}else Pd(i,e,n),o.pop()}}function Pt(e,t={}){let n=si(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)||jd(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 Ud(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 Bd(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 Gd(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 Kd(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Bd(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>Gd(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function ci(e,t={}){t.signal?.throwIfAborted();let n=bt(e,{registry:e.registry()}),r=Ud(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=Kd(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 zd=25,Hd="milestone",qd="outcome milestone:",Wd=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Pn(e){return Wd.has(e)}var di={error:0,warning:1,info:2};function ui(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 Vd(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 fi(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 Yd(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))):(fi(i,r),t.push({node:i,neighborIndex:0})),!0}function Xd(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 Jd(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(fi(r,t);o.length>0;){let i=o.at(-1);Yd(i,o,e,t)||Xd(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function Ln(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 Qd(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(Ln),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(Ln),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(Ln),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 mi(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Zd(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(mi(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 eu(e,t,n,r){let o=[],i=Vd(e);for(let c of Jd(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(mi);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(!Mt(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 tu(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 nu(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 ru(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 ou(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 iu(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 su(e,t,n){let r=new Set(e.details.filter(i=>i.type?.toLowerCase()===Hd&&i.title.trim().toLowerCase().startsWith(qd)).map(i=>i.id)),o=ou(r,ru(e,n),n);return{outcome_nodes:r.size,...iu(t,r,o,n)}}function au(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 cu(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 b=t.get(_);if(b){if(b.missing){a.missing+=1;continue}b.terminal||au(a,b,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 p=Object.fromEntries(Object.entries(i).sort(([_],[b])=>_.localeCompare(b))),y=Object.entries(p).reduce((_,[b,x])=>_+(Pn(b)?x:0),0),k=Pt(e.graph,{signal:s}).value,w=su(e,t,s);return{findings:u,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(_=>_.status!=="missing"&&_.status!=="external").length,edges:l,informative_edges:l-m.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:p,edge_share_by_kind:Object.fromEntries(Object.entries(p).map(([_,b])=>[_,b/l])),semantic_edges:y,semantic_edge_share:l===0?0:y/l,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([_],[b])=>_<b?-1:1)),articulation_points:k.articulationPoints.length,bridge_edges:k.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??zd;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=ui(t.exemptIsolates),s=ui(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=Qd(e,n,o);t.signal?.throwIfAborted(),d.push(...Zd(e,o)),t.signal?.throwIfAborted(),d.push(...eu(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...tu(e,a,o),...nu(e,o)),t.signal?.throwIfAborted();let u=cu(e,a,i,s,o,c,t.signal);d.push(...u.findings),d.sort((f,m)=>di[f.severity]-di[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 Mn(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 li(e){return e.profile.coverage_by_type??{}}function du(e,t){let n={},r=li(e),o=li(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 pi(e,t){let n=du(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,p=t.profile.redundant_edges??0,y=e.profile.ordering_contradiction_edges??0,k=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Mn(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:u-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-l,redundant_edges:p-m,ordering_contradiction_edges:k-y,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:Mn(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Mn(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import gi 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 hi=1,Un=500,uu=64,lu="graph-durable-cache";function yi(e){return Te(e,lu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function qe(e){return gi.join(e,"runtime","graph-cache.json")}function _i(e){return gi.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!==hi||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 yi(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-uu)))delete a[d];await K(qe(e),JSON.stringify({version:hi,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function zn(e){let t=await yi(e);try{await Dr(qe(e))}finally{await t()}}async function wi(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 bi(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function He(e,t){return e===void 0||t(e)}function fu(e){return $e(e)&&Object.values(e).every(bi)}function mu(e){return $e(e)?Object.values(e).every(t=>$e(t)&&[t.active,t.isolated,t.degree_leq_one].every(he)):!1}function pu(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 gu(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 hu(e,t,n,r){let o=pu(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(!gu(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 yu(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||!fu(n)||!he(r)||!bi(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 _u(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,mu))return;let i=yu(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=hu(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 ki(e){return _u(await ie(_i(e)))}async function vi(e,t){await K(_i(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 wu={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 xi(e){return`${e.source} -${e.kind}-> ${e.target}`}function bu(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:xi(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: ${xi(t)}`,`group: ${Ut(e)}`],confidence:"high"}))}function ku(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>bu(t.get(r)));let n=wu[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 Ei(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=>ku(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 Ti=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function Ii(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 Ci(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function vu(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(Ti.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 Si(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:Xo,descendants:Jo,predecessors:Qo,successors:Zo}[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 Eu(e,t,n){let r=ei(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 Iu(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 Cu(e){let t=e.assembly.graph,n=e.limit??me,r=bt(t,{registry:t.registry()}),o=Fo(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 Su(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 Tu(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=ni(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 Du(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 Ru(e,t){let n=t.limit??me,r=ri(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 Au(e){let t=e.limit??me,n=ci(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 Nu(e){let t=e.limit??me,n=ai(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=Ei(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 Di(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 Ri(e,t,n,r,o){return e==="analyze"?Cu(r):e==="audit"?Su(r,o):e==="plan"?Lu(r,o):e==="communities"?Tu(r):e==="redundancy"?Du(r):e==="dominators"?Ru(t,r):e==="slack"?Au(r):e==="centrality"?Nu(r):e==="articulation"?Fu(r):e==="paths"?Eu(t,n,r):e==="impact"?Iu(t,r):xu(e,t,r)}function Mu(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 Ou(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,Di(u,void 0,void 0,d),Ri(u,void 0,void 0,d,o));s="rebuilt"}let a=await wi(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 $u(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 ki(e);return r&&await vi(e,o),i===void 0?n:{...n,baseline:pi(i,o)}}async function Pu(e,t,n,r,o){try{await Kn(e,t,n,r,o)}catch{}}async function H_(e,t,n,r,o){let i=vu(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=>L(U,u);Mu(i,r);let f=ge(),m=Nn(r.kind,f),p=St().lookup(s,Ct(d,l,f),()=>Le(d,l,f)),y={assembly:p.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:Ci(r.exemptIsolate),exemptIsolateTypes:Ci(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return Ii(await Ou(s,p.fingerprint,y,d.length,l,r),!1);let k=Ti.has(i)?Si(y.assembly,t):void 0,w=i==="paths"?Si(y.assembly,n):void 0,_=Di(i,k,w,y),b=await Gn(s,p.fingerprint),x=b.results[_],I=p.memoize(_,()=>x!==void 0?structuredClone(x):Ri(i,k,w,y,l)),P=Hn(d.length,b.exists);!I.reused&&x===void 0&&P&&await Pu(s,p.fingerprint,b,_,I.value);let D=I.value.subcommand==="audit"?await $u(s,p.fingerprint,I.value,y.saveBaseline):I.value;return D.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:x!==void 0?"hit":P?"miss":"off"},Ii(D,y.summary,"result_rows")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de8a82e1-0b02-5d5a-9086-686529a1ccab")}catch{}})();var Ai="blocked_by",Ni="blocks",ju=Object.freeze([Ai,Ni]),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===Ai&&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===Ni&&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 Fi(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))??Fi(o,[...t.values()]):ye(e)).map(s=>{let a=t.get(R(s));return a?{id:s,title:a.title,status:a.status,resolved:L(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([...Li(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 Li(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Uu(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(!L(s.status,n))return!0;r.push(R(s.id))}}}return!1}function Bu(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}=Bu(t),a=new Set([...Li(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!L(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,Uu(m.id,o,n)){f+=1;continue}let p=Yn(m,r,n,s).filter(_=>!_.resolved),y=(i.get(R(m.id))??[]).filter(_=>c.has(R(_))).sort((_,b)=>_.localeCompare(b)),k={item:m,open_blockers:p,unblocks:y},w=n.blocked_statuses.has(C(m.status,n));p.length===0&&!w?d.push(k):u.push(k)}return{ready:d,blocked:u,active_count:l,container_count:f}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc271a73-9767-54bb-a142-d4d4569e3c6a")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function 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 Mi(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 Oi(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 $i(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Bi(e){return{isTerminal(t){return e.terminal_statuses.has($i(t,e))},classify(t){let n=$i(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 Gi(e,t){return t.isTerminal(e.status)?j(e.resolution)===void 0:!1}function Gu(e){return j(e.reviewer)===void 0}function Ku(e){return j(e.risk)===void 0}function zu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):j(e.confidence)===void 0}function Hu(e){return j(e.sprint)===void 0}function qu(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 Wu(e,t,n){return[[t.acMissing,Qn(e)],[t.estimatesMissing,Zn(e)],[t.resolutionMissing,Gi(e,n)],[t.reviewerMissing,Gu(e)],[t.riskMissing,Ku(e)],[t.confidenceMissing,zu(e)],[t.sprintMissing,Hu(e)],[t.releaseMissing,qu(e)]].every(([o,i])=>o!==!0||i)}function Vu(e,t){return Qn(e)||Zn(e)||Gi(e,t)}function Ki(e,t,n){return er(t)?!(!Wu(e,t,n)||t.metadataMissing&&!Vu(e,n)):!0}var tr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Yu(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 Xu(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Ju(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Pi(){let e={};for(let t of tr)e[t]={present:0,applicable:0,percent:100};return e}function ji(e,t,n){for(let r of tr){if(!Xu(t,r,n))continue;let o=e[r];o.applicable+=1,Yu(t,r)&&(o.present+=1)}}function Ui(e){for(let t of tr){let n=e[t];n.percent=Ju(n.present,n.applicable)}}function rw(e,t){let n=Pi(),r={};for(let o of e){ji(n,o,t);let i=r[o.type]??(r[o.type]=Pi());ji(i,o,t)}Ui(n);for(let o of Object.values(r))Ui(o);return{overall:n,by_type:r}}var Qu={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Zu(e){return Qu[e]}function el(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function tl(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 ow(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 tl(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??Zu(t),key:d,buckets:el(),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 nl(e){return typeof e=="string"&&e.trim().length>0}function rl(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 Hi(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 nl(e.body);case"linked_command":return rl(e.tests)}}function qi(e){return Pe.some(t=>e[t]!==void 0)}function Wi(e,t){for(let n of Pe){let r=t[n];if(r===void 0)continue;let o=Hi(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Vi(e){return Pe.some(t=>t!=="body"&&e[t]!==void 0)}function Yi(e){return e.body!==void 0}function zi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function ol(){let e={};for(let t of Pe)e[t]={present:0,total:0,percent:100};return e}function sw(e){let t=ol(),n=e.length;for(let s of e)for(let a of Pe)Hi(s,a)&&(t[a].present+=1);for(let s of Pe)t[s].total=n,t[s].percent=zi(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:zi(o,n)};return{total_items:n,fields:t,body_populated:r,empty_body:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var il=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}),Xi=[{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"}],ts=e=>{let t=Xi.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(Xi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Ji=["priority","deadline","updated_at","created_at","title","parent"],Qi=["asc","desc"],sl=["id","title","status","type","priority","parent","updated_at"],al=["id","status","type","title"],Nw={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},cl=["tree_depth","tree_parent","tree_children","tree_title"],ns=new Set(lo);function dl(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 ul(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var ll=[{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"}],fl=[{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 rs(e,t){for(let n of ll)t[n.key]===!0&&(e[n.summaryKey]=!0)}function os(e,t){for(let n of fl)t[n.key]===!0&&(e[n.summaryKey]=!0)}function ml(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 pl(e){let t={};return rs(t,e),t}function gl(e){let t={};return os(t,e),t}var hl=[{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"}],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"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],_l=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],wl="-7d";function bl(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"),ml(c,n,hl),ss(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),os(c,n),rs(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),ul(a)&&(c.runtime_filters=a),c}function is(e,t,n){let r=L(e.status,n),o=L(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=E(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function kl(e,t){return[...e].sort((n,r)=>is(n,r,t))}function Zi(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 vl(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(wl,"recent"):Ye(e.updatedAfter,"updated-after")}function ss(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 as(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 El(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 Il(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,o=El(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:[...al]}:t?{mode:"compact",fields:[...sl]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Xe(e){return e.startsWith("item.")?e.slice(5):e}function Cl(e,t){if(e.mode!=="fields")return;let n=new Set([...Rr,"body",...cl,...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 Sl=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Tl(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Sl.get(t);if(n)return n;if(!Ji.includes(t))throw new h(`Sort field must be one of ${Ji.join("|")} (aliases: updated->updated_at, created->created_at)`,g.USAGE);return t}function Dl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Qi.includes(t))throw new h(`Sort order must be one of ${Qi.join("|")}`,g.USAGE);return t}function Rl(e){return V(e,"--tree-depth")}function Al(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 es(e,t){return ao(e,t,{strict:!0})}function cs(e){return Ve(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Nl(e,t,n){let r=cs(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=Al(t.assigneeFilter);Fl(o,i);let s=il(t),a=ts(t);return{idsFilter:xl(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Mi(t.type,n),tagFilters:cs(t.tag),priorityFilter:Oi(t.priority),deadlineBefore:Zi(t.deadlineBefore,"deadline-before"),deadlineAfter:Zi(t.deadlineAfter,"deadline-after"),updatedAfter:vl(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:Bi(r),contentFieldFilters:a,contentFiltersActive:qi(a)}}function Ml(e,t,n){return Ol(e,t,n)&&$l(e,t)&&Pl(e,t)&&jl(e,t)}function Ol(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&L(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(o=>o.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function $l(e,t){return Nr(e,t)}function Pl(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 jl(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 Ul(e,t,n,r){return!(!Ml(e,t,n)||t.missingMetadataActive&&!Ki(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Wi(e,t.contentFieldFilters)||!ht(e,r))}function Bl(e,t,n,r,o,i){let s=Ll(t,n,r,o);return e.filter(a=>Ul(a,s,o,i))}function Ht(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Gl(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 Kl(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(Gl(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 zl(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Hl(e,t){return e===t?0:e===null?1:t===null?-1:E(e,t)}function ql(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Hl(e.deadline??null,t.deadline??null);case"updated_at":return E(e.updated_at,t.updated_at);case"created_at":return E(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return zl(e.parent??null,t.parent??null);default:return 0}}function Wl(e,t,n,r){return t?[...e].sort((o,i)=>{let s=ql(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=is(o,i,r);return n==="desc"?-a:a}):kl(e,r)}function Vl(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 ds(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Vl(r,i,n);return o})}function Yl(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Xl(e,t){if(e.noTruncate!==!0)return V(e.limit)??(t>=1e4?20:void 0)}function Jl(e,t,n){return t.after===void 0?as(t.offset)??0:Ce(e,t.after,n,r=>r.id)}function us(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Ql(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=Il(e);return Cl(s,Yl(i.definitions)),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:gt(e,i,"list"),typeRegistry:O(r,N()),projection:s}}async function Zl(e,t,n){let r=t.projection.fields.some(c=>Xe(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>ns.has(Xe(c))),i=ts(e),s=Vi(i),a=Yi(i);return e.includeBody||r||a?await go(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await po(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 ef(e){let t=Tl(e.sort),n=Dl(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?Rl(e.treeDepth):void 0,parentRoot:r?Ht(e.parent):void 0}}function tf(e,t,n){let r=es(t.status,n),o=r??es(e,n),i=so(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 nf(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=Xl(t,e.length),s=Jl(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=ds(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:us(i,u,l)}}function ls(e,t,n){return de("list",{status:e,options:lt(t,ho),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function rf(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(p=>{let y=Xe(p);return y==="body"||ns.has(y)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,jr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([p,y])=>y!==void 0&&!i.has(p))].includes(!0))return null;let c=await De(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=V(t.limit),u=as(t.offset)??0,l=await uo({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(ls(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:ds(l.items,n.projection,!1),totalMatched:l.total,pageExtras:us(d,f,m)}}function of(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 yl){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of _l)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,gl(n),pl(n)),ss(d,n),r&&(d.no_truncate=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Je(e,t,n){let r=await Ql(t,n),o=[],i=ef(t),s=tf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await rf({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let y=await Zl(t,r,o);Nl(y,t.tag,o);let k=Bl(y,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),w=t.dependencyBlocked===!0?(()=>{let x=We(y,r.statusRegistry);return k.filter(I=>x.has(I.id.trim().toLowerCase()))})():k,_=Wl(w,i.sortField,i.sortOrder,r.statusRegistry),b=i.treeEnabled?Kl(_,i.parentRoot,i.treeDepth):_;d=nf(b,t,r.projection,i.treeEnabled,ls(s.filtersStatus,t,i))}let u=G(),l=[...new Set(o)].sort((y,k)=>y.localeCompare(k)),f=dl(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let y=bl({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:y,projection:{mode:"compact",fields:m},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:of({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 sf}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"],af=["sun","mon","tue","wed","thu","fri","sat"],cf=365,df=365,ps=28,uf=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 lf(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 gs(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 ff(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!nr.includes(t)){let n=gs(t,nr);throw new h(`Calendar view must be one of ${nr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function mf(e){if(!e)return;let t=e.trim().toLowerCase();if(!rr.includes(t)){let n=gs(t,rr);throw new h(`Calendar format must be one of ${rr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function Pw(e,t){let n=mf(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 pf(e,t){if(e===void 0)return;let n=F(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 gf(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 hs(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 ys(e){let t=new Date(cr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function hf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function yf(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function _f(e,t){return E(e,t)>=0?e:t}function fs(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function ms(e,t){e.set(t,(e.get(t)??0)+1)}function wf(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 _s(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 ws(e){return af[new Date(e).getUTCDay()]}function bf(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function kf(e){let t=new Set;for(let n of e??[]){let r=bf(n);r&&t.add(r)}return t}function vf(e,t,n,r,o){let i=e??ae(n,-(r??df)),s=t??ae(e??n,o??cf);return{start:i,end:E(s,i)>0?s:ae(i,1)}}function xf(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[ws(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??uf,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:kf(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 E(t,e.startAt)<0?"continue":e.until&&E(t,e.until)>0||E(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,E(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Vt(e,t){let n=ws(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Ef(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 If(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 Cf(e){let t=ys(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=If(e,r,o);if(Vt(e,i)&&Wt(e,i)==="stop")return e.occurrences}}return e.occurrences}function Sf(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=_s(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="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=t+r*e.interval;for(let i of e.sortedMonthDays){let s=_s(o,n,i,e.startDate);if(!(!s||!Vt(e,s))&&Wt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Df(e,t,n,r){let o=xf(e,t,n,r);return t.freq==="daily"?Ef(o):t.freq==="weekly"?Cf(o):t.freq==="monthly"?Sf(o):Tf(o)}function bs(e){return[...e].sort((t,n)=>{let r=E(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function 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 Rf(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 Af(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 Nf(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=wf(t.recurrence),i=Nf(t.start_at,t.end_at);return(t.recurrence?Df(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):hs(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 Mf(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Rf(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Af(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Lf(i,a,t,r))}return bs(o)}function Of(e,t,n,r,o){let i=Lo(t.type,n),s=t.tag?.trim().toLowerCase(),a=kt(t.priority),c=pf(t.status,r),d=t.assignee?.trim(),u=gf(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=>$f(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function $f(e,t){return Pf(e,t)&&jf(e,t)&&ht(e,t.runtimeFieldFilters)}function Pf(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 jf(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 Uf(e,t,n){return!(t&&E(e.at,t)<0||n&&E(e.at,n)>=0)}function ir(e,t,n){return e.trim().toLowerCase()==="today"?cr(t):se(e,new Date(t),n)}function Bf(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&&E(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 Gf(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=ys(r);return sr(r,n,o,i,d,ae(d,7))}let c=hf(r);return sr(r,n,o,i,c,yf(r))}function Gf(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:_f(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Kf(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:bs(r)}))}function zf(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),ms(n,c.item_type),ms(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:fs(n),by_status:fs(r),recurring_events:a}}function Hf(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function ks(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 qf(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===hs(e.event_end,e.event_timezone)?ks(e.event_end,e.event_timezone):e.event_end:null}function Wf(e){let t=`${ks(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=qf(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 jw(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Hf(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(`- ${Wf(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 Vf(t.join(`
|
|
3
|
+
`))}function Uw(e){return sf(e)}function Vf(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function Yf(e){let t=G(),n=ff(e.view),r=Bf(n,e,t),o=V(e.limit),i=lf(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?ps:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Xf(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${ps}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Jf(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 Qf(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 vs(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=Yf(e),o=await T(n),i=z(o.schema),s=dt(o.schema),a=gt(e,s,"calendar"),c=O(o,N()),d=[];Xf(d,r.eventsOnlyCapApplied);let u=await ee(n,o.item_format,c.type_to_folder,d,o.schema),l=Of(u,e,c,i,a),f=vf(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=Mf(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Uf(_,r.rangeBounds.start,r.rangeBounds.end)),y=r.limit===void 0?p:p.slice(0,r.limit),k=Kf(y),w=[...new Set(d)].sort((_,b)=>_.localeCompare(b));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Qf(e,r.rangeBounds),filters:Jf(e,a),summary:zf(y),events:y,days:k,...w.length>0?{warnings:w}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var ur=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Zf=Symbol("no-context-author"),em=Symbol("no-item-assignee");function xs(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function tm(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 nm(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 rm(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 E(f,l)||d.id.localeCompare(u.id)}),o=new Map(r.map((d,u)=>[d.id,u])),i=Math.max(e.length-1,1),s=xs(t.author,Zf),a=F("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=xs(d.assignee,em)===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:tm(d.priority,4),risk_pressure:rm(d.risk),deadline_pressure:nm(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 om="context_relevance",im={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},sm=new TextEncoder;function am(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 cm(e){let t={...im};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 Is(e,t={}){am(e);let n=cm(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 p=d[m];if(p===void 0)continue;let y=p*n[m];u[m]=y,l+=y,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:l/f,contributions:u}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function dm(e,t={}){let n=Is(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=Is(t,n),o=await Ur(om,{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 dm(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 um=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Es(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function lm(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:Es(e.required_ids??[],a),continuity_coverage:Es(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function fm(e){return Math.ceil(sm.encode(JSON.stringify(e)).byteLength/4)}function mm(e){return Math.round(e*1e4)/1e4}function pm(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 gm(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}=pm(n,e.surface),i={...n,ranking:void 0},s=fm(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:lm({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 hm(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=um;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,mm(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 Hw(e,t,n){let r=[];for(let o of e)r.push(await gm(o,t));return hm(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 ym={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},_m=["identity","summary","full"];function wm(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=_m.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 bm(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=ym[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 km(e){let t=new Set;for(let n of e){if(wm(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 vm(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=vm(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 Em(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 Cs(e,t){let n=bm(t),r=km(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=Em(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 Im}from"node:crypto";import{appendFile as Cm,mkdir as Sm,readFile as Tm,rename as Dm,stat as Rm,writeFile as Am}from"node:fs/promises";import Ss 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 Ts=2048,Ds=30,Rs=864e5,Nm=262144,Fm="context-usage-ledger",ne=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function As(e){return Ss.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 Ns(e){try{let n=(await Tm(As(e.pmRoot),"utf8")).split(`
|
|
5
|
+
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Ts,o=e.retentionDays??Ds,i=Qe(e).ms-o*Rs;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function Fs(e,t){let n=e.maxEvents??Ts,r=e.retentionDays??Ds;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new ne("Context usage retention requires positive maxEvents and retentionDays");let o=As(e.pmRoot),i=Ss.dirname(o),s=await Te(e.pmRoot,Fm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Sm(i,{recursive:!0}),await Cm(o,t.map(u=>`${JSON.stringify(u)}
|
|
6
|
+
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Rm(o)).size<=Nm)return;let c=await Ns(e),d=`${o}.${process.pid}.${Im()}.tmp`;await Am(d,`${c.map(u=>JSON.stringify(u)).join(`
|
|
7
|
+
`)}
|
|
8
|
+
`,"utf8"),await Dm(d,o)}finally{await s()}}async function Ls(e,t){await Fs(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 Ls(e,{kind:"serve",at:Qe(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Qw(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 Ls(e,{kind:"touch",at:Qe(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Zw(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 Fs(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 Ns(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 p=Lm(i,m.id,f,r);if(p===void 0)continue;c+=1;let y=Math.max(0,(n-p)/Rs);s.set(m.id,(s.get(m.id)??0)+Math.exp(-y/14))}}let d=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,f])=>[l,.05+.95*(d>0?f/d:0)])),positive_judgments:c,serving_events:a}}import Ze from"node:fs/promises";import et from"node:path";import{createHash as Mm,randomUUID as Om}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,Ms=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],$m={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function en(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Os(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Pm(e){let t={};for(let n of Ms){let r=e[n];if(r!==void 0){if(!Os(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function jm(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 Um(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 Bm(e,t){return{...t,activityDensity:t.activityDensity??jm(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Um(e)}}function Gm(e){if(!en(e)||typeof e.id!="string"||!en(e.signals))return null;let t={},n=new Set(Ms);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!Os(o))return null;t[r]=o}return{id:e.id,signals:t}}function Km(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(Gm);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 zm(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,Bm(e,t)).map(({id:r,signals:o})=>({id:r,signals:Pm(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)}.${Om()}.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=Km(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=zm(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=>$m[l])}}};function Hm(e){let t=Mm("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??Hm(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 qm(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 Wm(e,t,n){let r,o;for(let i of t){let s=qm(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 $s(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 cb(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=Wm(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Vm from"node:path";import{createHash as Ym}from"node:crypto";import Xm 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 Ps=1,Jm=1e4,js=12;function Qm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Zm(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 ep(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 tp(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=$s(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=Qm(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=Zm(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:Ps,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(ep).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function np(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 rp(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(np)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function op(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Ps||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(rp)?t:null}function ip(e){return`scan:${Ym("sha256").update(xe(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function sp(e,t,n){return n!==void 0?n:(await De(t))?.source_cursor??ip(e)}async function ap(e){try{let t=op(JSON.parse(await Xm.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 Us(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Jm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await sp(e,t.pmRoot,t.sourceCursor),o=Vm.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await ap(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=tp(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 cp(e,t,n=js){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 Bs(e,t,n=js){if(e.snapshot===null)return;let r=cp(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 dp(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 _b(e,t,n=5){let r=dp(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 Gs=16;async function Ks(e,t,n){let r=O(t,N()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<Gs;){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 Eb(e){await Hr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Ks(e.pmRoot,e.settings,e.itemId)})}async function Ib(e){await qr(e)}async function Cb(e){await Wr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Ks(e.pmRoot,e.settings,e.itemId)}:{}})}var Sb={lineage_depth:Gs,active_items:64,evidence_rows:32};function zs(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 up=["markdown","toon","json","ndjson"],nt=new Set(["Epic","Feature"]),Xs=10,Js=1e4,Qs=["hierarchy","activity","progress","recently_created","unparented","workload"],lp=[...Qs,"blockers","files","staleness","tests"],fp=/^(\d{4})-(\d{2})-(\d{2})/,mp=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,pp=/^(\d{4})(\d{2})(\d{2})$/,gp=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function hp(e){if(!e)return;let t=e.trim().toLowerCase();if(!up.includes(t))throw new h("Context format must be one of markdown|toon|json|ndjson",g.USAGE);return t}var Hs=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 yp(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Hs.has(r))throw new h(`Context --fields value not projectable: ${r} (valid: ${[...Hs].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 qb(e,t){let n=hp(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 _p(e,t){return V(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Xs)}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 wp(e,t){return t>=Js&&e===Number.MAX_SAFE_INTEGER?Xs:e}function bp(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 kp(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"?lp:Qs).filter(o=>n.sections[o])}function vp(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 qs(e,t){let n=C(e,t),r=F("in_progress",t),o=F("open",t),i=F("blocked",t),s=F("draft",t);return r&&n===r?0:o&&n===o?1:i&&n===i?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function rt(e,t){let n=F("closed",t);return C(e,t)===n}function _r(e,t){let n=F("in_progress",t);return C(e,t)===n}function Zs(e,t){let n=F("open",t);return C(e,t)===n}function Ep(e,t){return t.blocked_statuses.has(C(e,t))}var Ip=["compact","brief","fields","includeBody","include_body","parent"];function Cp(e){let t={...e};for(let n of Ip)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 Sp(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 Tp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Dp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:E(n,r)}function Rp(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Ap(e){let t=fp.exec(e)??mp.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<=Rp(n,r-1)}function Np(e){let t=pp.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=gp.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 ea(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Ap(t))return Number.NaN;let n=Date.parse(Np(t));return Number.isFinite(n)?n:Number.NaN}function hr(e){let t=ea(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Fp(e){let t=ea(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=qs(e.status,n)-qs(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Tp(e.order,t.order);if(i!==0)return i;let s=Dp(e.deadline,t.deadline);if(s!==0)return s;let a=E(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 Cs(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 xr(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 ta(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=ta(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 Mp(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Op(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,p=0,y=0;for(let w of u)rt(w.status,n)?f++:_r(w.status,n)?p++:Ep(w.status,n)?y++:Zs(w.status,n)&&m++;let k=l.sort((w,_)=>we(w,_,n)).slice(0,r).map(w=>{let _=ot(w.id,i),b=_.filter(x=>rt(x.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:_.length,children_closed:b}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:m,children_in_progress:p,children_blocked:y,children:k})}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 $p(e,t){return(await jo({compact:!0,limit:String(e)},t)).compact_activity??[]}function Pp(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,p=0;for(let y of d)rt(y.status,r)?l++:n.has(y.id.trim().toLowerCase())?p++:_r(y.status,r)?m++:Zs(y.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:p,completion_pct:ta(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function jp(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 Up(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 Bp(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 Gp(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 Kp(e,t,n,r){return e.map(o=>({item:o,sortKey:hr(o.created_at)})).sort((o,i)=>{let s=E(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...it(o,t,n),created_at:o.created_at}))}function zp(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 Hp(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 Ws(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function na(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 qp(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Wp(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`${Ws(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Ws(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 Vs(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 Vp(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 Yp(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(`- ${Wp(n)}`);e.push("")}function Xp(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 Jp(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 Qp(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)} ${na(o)}`);e.push("")}}function Zp(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 eg(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 tg(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 ng(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 rg(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 og(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 ig(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 sg(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 Wb(e){let t=[],n=e.focus_fields,r=i=>n?qp(i,n):na(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(""),Vs(t,"High-level focus",e.high_level,"No high-level active items.",r),Vs(t,"Low-level focus",e.low_level,"No low-level active items.",r),Vp(t,e,r),Yp(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 Xp(t,e),Jp(t,e),Qp(t,e,n,r),Zp(t,e,r),eg(t,e),tg(t,e),ng(t,e),rg(t,e),og(t,e),ig(t,e),sg(t,e),t.join(`
|
|
11
|
+
`)}async function ag(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=r.context??Ar.context,i=z(r.schema),s=bp(e.depth,o),a=_p(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:kp(e.section,s,o),activityLimit:vp(e.activityLimit,o),staleThresholdDays:xp(e.staleThreshold,o),parentScope:Sp(e.parent),focusFields:yp(e.fields),baseListOptions:Cp(e)}}function Er(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function cg(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function dg(e,t){let n=Er(t.sectionsIncluded),r=await Je(void 0,cg(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(c=>!L(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=ug(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 ug(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 lg(e,t,n,r,o,i,s,a,c,d,u,l,f,m,p){let y=[...e].sort((v,ke)=>we(v,ke,o)),k=await Zt({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),w=await tn(y,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:k.affinity,claimFocus:p}),_=await Jt("context",w.candidates),b=_.ranked.map(v=>v.item),x=o.active_statuses,I=b.filter(v=>x.has(C(v.status,o))),P=l?Ce(I,d,u,v=>v.id):0,D=l?I.slice(P,P+s):I,U=l&&D.length>0&&P+D.length<I.length,ce=U&&D.length>0?Z(u,D[D.length-1].id,P+D.length-1):void 0,B=b.filter(v=>r.has(v.id.trim().toLowerCase())),M=new Set([...D.map(v=>v.id),...B.slice(0,s).map(v=>v.id)]),q=kr({..._,ranked:_.ranked.filter(v=>M.has(v.id))},m,new Set(Object.entries(p??{}).filter(([,v])=>v>=1).map(([v])=>v))),X=q.included.map(v=>v.item),J=X.filter(v=>x.has(C(v.status,o))),be=X.filter(v=>r.has(v.id.trim().toLowerCase())),Q=je(t),re=Er(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},ya=J.filter(v=>nt.has(v.type)).slice(0,l?D.length:s).map(sn),_a=J.filter(v=>!nt.has(v.type)).slice(0,l?D.length:s).map(sn),Sr=I.length===0;return{activeItems:J,blockedItems:be,highLevel:ya,lowLevel:_a,blockedFallback:Sr?be.slice(0,s).map(sn):[],blockedFallbackUsed:Sr,ranking:_,packing:q,featureStore:w,pageExtras:{...l?{applied_limit:s}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function fg(e){return de("context",lt(e,yo))}function mg(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Js}async function pg(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await vs(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Mp(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 Ys(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function gg(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=je(n),d=n.filter(l=>!L(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Op(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await $p(t.activityLimit,a):void 0,progress:u("progress")?Pp(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?jp(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Kp(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?zp(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Up(i.activeItems,t.limit):void 0,workload:u("workload")?Bp(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Gp(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Hp(i.activeItems):void 0}}function hg(e,t,n){if(!e)return{};let r=F("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 yg(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 _g(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 wg(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 bg(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 kg(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 vg(e,t,n){if(e)return{};let o=(await $r({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=Vr(),r=await Kr(e),o=n.instance||zr(t);return zs(r.semantic_attribution?.[o])}async function Vb(e,t){let n=S(process.cwd(),t.path),r=await ag(e,t),o=await dg(t,r),i=wp(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=vg(e.noExtensionHealth===!0,n,s.settings),u=We(o.fullCorpus,s.statusRegistry),l=await lg(o.listedItemMetadata,o.allItems,o.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,G(),a,e.after,fg(e),mg(e,o.fullCorpus.length),n,s.tokenBudget,c),f=await pg(t,s,o.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(x=>x.id))),m=await Us(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),p=nn(o.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),y=Ys(l.activeItems,F("in_progress",s.statusRegistry),s.statusRegistry),k=Ys(l.activeItems,F("open",s.statusRegistry),s.statusRegistry),w=await gg({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),_=hg(Er(s.sectionsIncluded),o.allItems,s.statusRegistry),b={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:l.activeItems.length,in_progress:y,open:k,blocked:l.blockedItems.length,blocked_fallback_used:l.blockedFallbackUsed,high_level:l.highLevel.length,low_level:l.lowLevel.length,agenda_events:f.agendaSummary.events,..._},high_level:l.highLevel,low_level:l.lowLevel,blocked_fallback:l.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...l.pageExtras};return b.workspace_memory=Bs(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(b,await d),yg(b,w,l.featureStore.warning_details),wg(b,e.noTags===!0),e.explainRanking===!0&&(b.ranking=xr(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(x=>x.id))),b.packing=vr(l.packing)),_g(b,s.focusFields),p.length>0&&(b.warnings=p),bg(b,l.activeItems,l.blockedItems),await kg(b,l,n,a),b}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var Eg=["markdown","toon","json"],Ig=5,Cg=1440*60*1e3;function Sg(e){if(!e)return;let t=e.trim().toLowerCase();if(!Eg.includes(t))throw new h("Next format must be one of markdown|toon|json",g.USAGE);return t}function ik(e,t){let n=Sg(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 ra(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 Tg(e,t,n,r){let o=e.item,i=[],s=F("in_progress",t);return i.push(C(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(Rg(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 ia(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 sk={partitionCallerOwnedReady:ia,resolveNextCallerAuthor:(e,t)=>sa(e,t)};function Dg(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 Rg(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))/Cg);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Ag(e,t){let n=F("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 Ng(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 oa(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:Tg(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 Mg(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 Og(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 $g(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=xr(e.readyRanking,e.featureStore),e.result.packing=vr(e.packing)),e.result.suggestions=Lg(e.recommended,e.blockedRows),await Og({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Pg(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 jg(e,t,n,r,o,i,s){let a=e.filter(y=>!Cr(y.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(y=>y.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(y=>[y.item.id,y]));return{projectedReady:l.ranked.map(y=>m.get(y.id)).filter(y=>y!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function sa(e,t){let n=e.assignee?.trim();return pe(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function ak(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=sa(e,r.author_default),i=z(r.schema),s=G(),a=ra(e.limit,"--limit",Ig),c=yr(e.tokenBudget,Math.max(192,a*128)),d=ra(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Je(void 0,Ng(e,{excludeTerminal:!0}),t),m=await Je(void 0,{excludeTerminal:!1,noTruncate:!0},t),p=Pg(f.items,m.items,l),y=m.items,k=Xn(p,y,i),w=je(y),_=Dg(k.ready,e.includeDecisions===!0),b=ia(_.agent,r.author_default,o),x=oa(b.available,w,i),I=[...k.blocked].sort((re,oe)=>we(re.item,oe.item,i)),{projectedReady:P,ranking:D,completedContainer:U,packing:ce,featureStore:B}=await jg(x,w,i,s,o,n,c),M=P.map((re,oe)=>Ir(re,i,w,oe+1)),q=I.map((re,oe)=>Ir(re,i,w,oe+1)),X=oa(_.decisions,w,i).map((re,oe)=>Ir(re,i,w,oe+1)),J=Fg({projectedReady:P,readyRows:M,statusRegistry:i,now:s,completedContainer:U}),be=Mg(X.length,b.held.length,a),Q={output_default:"toon",now:s,recommended:J,ready:M.slice(1,a+1),decision_needed:X.slice(0,a),blocked:u?[]:q.slice(0,d),held_by_others:b.held.slice(0,a),summary:{recommended:J!==null,ready:M.length,blocked:q.length,in_progress:Ag(M,i),candidates:k.active_count,containers:k.container_count,decision_needed:X.length,held_by_others:b.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:be};return $g({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 ck(e){let t=["# pm next","",...Ug(e)];if(t.push(...rn("Recommended",Bg(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=>`- ${Gg(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 Ug(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 Bg(e){return e?[`- ${on(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function rn(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Gg(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 Kg}from"node:crypto";import{setTimeout as zg}from"node:timers/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f9853cc-0719-544f-8726-3cfd6063b59e")}catch{}})();var ca=1,da=/^[A-Za-z0-9_-]+$/,Hg=100,aa=1e3,qg=250;function Y(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,o)=>r.localeCompare(o));return n.length===0?void 0:n}function ua(e){return Kg("sha256").update(xe({type:Y(e.type),author:Y(e.author),item:Y(e.item),harness:Y(e.harness),agent_instance:Y(e.agentInstance),provenance:Y(e.provenanceFilter)})).digest("hex").slice(0,24)}function la(e,t){let n={version:ca,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 fa(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===ca,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 ma(e,t){let n=e.trim();if(n.length===0||n.length>4096||!da.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(!fa(r,t))throw new h("Mutation event cursor does not match this query.",g.USAGE,{code:"event_cursor_query_mismatch"});return r}function pa(e){let t=e??Hg;if(!Number.isSafeInteger(t)||t<0||t>aa)throw new h(`Mutation event limit must be an integer from 0 to ${aa}.`,g.USAGE,{code:"invalid_event_limit"});return t}function ga(e){return e instanceof Error&&e.name==="AbortError"}function ha(e,t){let n=e?.trim();if(!n)return{};if(da.test(n))return{cursor:ma(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 Wg(e,t){let n=await ln(e,t);if(n===null){if(!await Yr(e))throw new h("Mutation events require a runtime with node:sqlite DatabaseSync support.",g.GENERIC_FAILURE,{code:"event_index_unavailable"});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}async function Vg(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=pa(e.limit);if(e.full===!0&&e.provenance===!0)throw new h("Mutation event projections are mutually exclusive. Use --provenance or --full.",g.USAGE);let r=await T(t),o=r.agent_identity.identity_vocabulary,i=xt(r.agent_identity.harness_signals),s=vn({provenance:e.provenanceFilter},i),a=Y(e.harness),c=ua(e),{cursor:d,sinceTimestamp:u}=ha(e.since,c),l={...d?{after_ts:d.ts,after_stream_id:d.stream_id,after_stream_offset:d.stream_offset}:u?{since_ts:u}:{},ops:Y(e.type),authors:Y(e.author),harnesses:a,harness_alias_authors:a?Object.entries(o.aliases).filter(([,p])=>a.includes(p)).map(([p])=>p):void 0,agent_instances:Y(e.agentInstance),provenance:[...s].map(([p,y])=>({dimension:p,values:[...y]})),stream_ids:Y(e.item),limit:n},f=await Wg(t,l),m=f.events.map(p=>({cursor:la(p,c),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:Et(p.entry,o,{itemId:p.stream_id,version:p.stream_offset+1})}:{}}));return{events:m,count:m.length,has_more:f.has_more,...m.length===0?{}:{next_cursor:m[m.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:It(f.events.map(p=>p.entry),o,i)}:{}}}async function*bk(e={}){let t=e.intervalMs??qg;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 Vg({...e,since:n});if(r.events.length>0){for(let o of r.events)yield o;n=r.next_cursor;continue}try{await zg(t,void 0,{signal:e.signal})}catch(o){if(ga(o))return;throw o}}}var kk={decodeMutationEventCursor:ma,encodeMutationEventCursor:la,eventQueryFingerprint:ua,isAbortError:ga,isMutationEventCursorEnvelope:fa,parseMutationEventLimit:pa,resolveMutationEventStart:ha};(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 xk(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{_o as a,wo as b,Be as c,bo as d,ko as e,ah as f,vo as g,bn as h,Dh as i,Rh as j,zh as k,Hh as l,bt as m,wt as n,Fo as o,Yh as p,V as q,kt as r,Lo as s,vt as t,xt as u,vn as v,Et as w,iy as x,xn as y,It as z,gy as A,jo as B,Uo as C,mc as D,Ae as E,_y as F,wy as G,In as H,ge as I,gc as J,yc as K,Cn as L,_c as M,Le as N,Ct as O,Sn as P,St as Q,Ty as R,Ko as S,Xy as T,Xo as U,Jo as V,Qo as W,Zo as X,ei as Y,Lt as Z,ni as _,Oe as $,ri as aa,ai as ba,Pt as ca,ci as da,Jd as ea,mi as fa,Ut as ga,jn as ha,Bt as ia,pi as ja,hi as ka,Un as la,qe as ma,_i as na,Gn as oa,Kn as pa,zn as qa,wi as ra,Hn as sa,ki as ta,vi as ua,Ei as va,vu as wa,H_ as xa,xk as ya,ju as za,ye as Aa,Kt as Ba,Fi as Ca,zt as Da,We as Ea,Xn as Fa,Jn as Ga,Ve as Ha,Mi as Ia,Oi as Ja,Bi as Ka,er as La,Ki as Ma,rw as Na,ow as Oa,qi as Pa,Wi as Qa,sw as Ra,il as Sa,ts as Ta,Ji as Ua,Qi as Va,sl as Wa,al as Xa,Nw as Ya,ml as Za,pl as _a,gl as $a,Je as ab,Pw as bb,jw as cb,Uw as db,vs as eb,ur as fb,Xt as gb,om as hb,Is as ib,dm as jb,Jt as kb,um as lb,lm as mb,gm as nb,hm as ob,Hw as pb,ym as qb,Cs as rb,ne as sb,Qt as tb,Qw as ub,Zw as vb,Zt as wb,lr as xb,fr as yb,$m as zb,Km as Ab,zm as Bb,mr as Cb,pr as Db,tn as Eb,$s as Fb,cb as Gb,Jm as Hb,tp as Ib,Us as Jb,cp as Kb,Bs as Lb,dp as Mb,_b as Nb,Ks as Ob,Eb as Pb,Ib as Qb,Cb as Rb,Sb,zs as Tb,up as Ub,yp as Vb,tt as Wb,qb as Xb,yr as Yb,bp as Zb,kp as _b,wr as $b,we as ac,kr as bc,vr as cc,xr as dc,je as ec,it as fc,nn as gc,Wb as hc,wg as ic,Vb as jc,Eg as kc,ik as lc,sk as mc,Dg as nc,ak as oc,ck as pc,Vg as qc,bk as rc,kk as sc};
|
|
13
|
+
//# sourceMappingURL=chunk-6VDLG2FC.js.map
|