@unbrained/pm-cli 2026.8.8 → 2026.8.10
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 +59 -0
- package/dist/cli/commander-usage.js +17 -12
- package/dist/cli/help-json-payload.js +51 -16
- package/dist/cli/main.js +7 -6
- package/dist/cli-bundle/bundle-manifest.json +162 -162
- package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-2ZMXX3Q6.js → chunk-EBO7OUUE.js} +70 -70
- package/dist/cli-bundle/chunks/{chunk-NUXRRNAB.js → chunk-ETML5C6H.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
- package/dist/cli-bundle/chunks/chunk-JZSNADRR.js +5 -0
- package/dist/cli-bundle/chunks/chunk-MENWVGJW.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ALDHXLPS.js → chunk-S4EITGLA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TIGKWVLA.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-CBLA33YK.js → chunk-TRWXF476.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-WFZAMJHZ.js → register-list-query-OJ6ZXKV4.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-SOKKOTHQ.js → register-mutation-DKI7QC7O.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-2HL5ZHMK.js → register-setup-S3KT2LTH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ANTMGYLI.js → chunk-2COZ67XT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YSAHYUXX.js → chunk-34SX654S.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-7UN6BHHO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TCSAPH33.js → chunk-CHIBMEZR.js} +6 -6
- package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
- package/dist/cli-bundle/focused-chunks/chunk-GHTN2ILR.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-JMVA4HKR.js +5 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PL2EYDJK.js → chunk-KR5RVXLQ.js} +31 -29
- package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-M6RPIXKC.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
- package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-RKWSCYYN.js +2 -0
- package/dist/cli-bundle/main.js +13 -13
- 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 +38 -38
- 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 +1 -1
- 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 +2 -2
- package/dist/core/diagnostics/remediation.js +19 -9
- package/dist/core/fs/fs-utils.d.ts +10 -0
- package/dist/core/fs/fs-utils.js +16 -4
- package/dist/core/history/history.js +13 -4
- package/dist/core/item/actionability.d.ts +7 -1
- package/dist/core/item/actionability.js +71 -15
- package/dist/core/item/item-format.js +3 -32
- package/dist/core/schema/fields-file.d.ts +1 -2
- package/dist/core/schema/fields-file.js +4 -11
- package/dist/core/schema/runtime-schema.js +3 -10
- package/dist/core/schema/status-defs-file.d.ts +1 -2
- package/dist/core/schema/status-defs-file.js +4 -32
- package/dist/core/schema/status-token.d.ts +2 -0
- package/dist/core/schema/status-token.js +32 -0
- package/dist/core/schema/type-workflows.d.ts +1 -2
- package/dist/core/schema/type-workflows.js +4 -11
- package/dist/core/shared/author.d.ts +25 -0
- package/dist/core/shared/author.js +128 -10
- package/dist/core/shared/errors.d.ts +4 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/text-normalization.d.ts +1 -1
- package/dist/core/shared/text-normalization.js +2 -2
- package/dist/sdk/actionability.d.ts +1 -1
- package/dist/sdk/actionability.js +3 -3
- package/dist/sdk/agent/command-recovery.d.ts +4 -0
- package/dist/sdk/agent/command-recovery.js +52 -0
- package/dist/sdk/agent/command-suggestions.d.ts +4 -0
- package/dist/sdk/agent/command-suggestions.js +67 -0
- package/dist/sdk/agent/create-option-policy.d.ts +12 -0
- package/dist/sdk/agent/create-option-policy.js +32 -0
- package/dist/sdk/agent/item-addressing.d.ts +19 -0
- package/dist/sdk/agent/item-addressing.js +208 -0
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +20 -5
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
- package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
- package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +8 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +20 -3
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
- package/dist/sdk/cli-contracts/tool-schema.js +17 -4
- package/dist/sdk/context-intent-runtime.js +8 -5
- package/dist/sdk/context-signal-store.d.ts +34 -0
- package/dist/sdk/context-signal-store.js +24 -2
- package/dist/sdk/core-governance.d.ts +1 -1
- package/dist/sdk/core-governance.js +3 -3
- package/dist/sdk/dependencies.d.ts +2 -0
- package/dist/sdk/dependencies.js +7 -6
- package/dist/sdk/dependency-flag-validation.d.ts +15 -1
- package/dist/sdk/dependency-flag-validation.js +54 -2
- package/dist/sdk/extension/bundled-catalog.js +19 -6
- package/dist/sdk/generated-error-code-catalog.js +110 -2
- package/dist/sdk/governance/health.js +38 -12
- package/dist/sdk/governance/provenance-health.d.ts +39 -0
- package/dist/sdk/governance/provenance-health.js +185 -0
- package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
- package/dist/sdk/governance/validate-item-reader.js +18 -0
- package/dist/sdk/governance/validate.d.ts +2 -2
- package/dist/sdk/governance/validate.js +25 -11
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +3 -2
- package/dist/sdk/graph/assembly.d.ts +4 -0
- package/dist/sdk/graph/assembly.js +22 -2
- package/dist/sdk/graph/run.d.ts +2 -0
- package/dist/sdk/graph/run.js +3 -2
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +6 -2
- package/dist/sdk/lifecycle/close.js +27 -19
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +66 -19
- package/dist/sdk/lifecycle/plan.js +6 -3
- package/dist/sdk/lifecycle/update-many.js +39 -27
- package/dist/sdk/lifecycle/update.d.ts +6 -1
- package/dist/sdk/lifecycle/update.js +51 -28
- package/dist/sdk/merge/driver.d.ts +2 -1
- package/dist/sdk/merge/driver.js +7 -4
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/install.d.ts +4 -0
- package/dist/sdk/merge/install.js +29 -17
- package/dist/sdk/merge/receipts.d.ts +17 -1
- package/dist/sdk/merge/receipts.js +112 -20
- package/dist/sdk/merge/reconcile.js +21 -4
- package/dist/sdk/merge/three-way.d.ts +6 -2
- package/dist/sdk/merge/three-way.js +24 -10
- package/dist/sdk/output-projection.js +24 -4
- package/dist/sdk/query/context.d.ts +2 -0
- package/dist/sdk/query/context.js +7 -4
- package/dist/sdk/query/get.d.ts +11 -0
- package/dist/sdk/query/get.js +37 -3
- package/dist/sdk/query/light-metadata.d.ts +3 -0
- package/dist/sdk/query/light-metadata.js +19 -0
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +23 -4
- package/dist/sdk/relationship-kinds/contract.d.ts +48 -0
- package/dist/sdk/relationship-kinds/contract.js +22 -0
- package/dist/sdk/relationships.d.ts +6 -41
- package/dist/sdk/relationships.js +12 -126
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.d.ts +4 -1
- package/dist/sdk/runtime.js +8 -3
- package/dist/sdk/schema-migration.js +7 -9
- package/dist/sdk/similarity-scoring.d.ts +1 -2
- package/dist/sdk/similarity-scoring.js +4 -16
- package/dist/sdk/similarity.d.ts +5 -0
- package/dist/sdk/similarity.js +40 -10
- package/dist/sdk/structured-mutations.js +5 -2
- package/dist/sdk/test/linked-command-detection.d.ts +2 -7
- package/dist/sdk/test/linked-command-detection.js +22 -9
- package/dist/sdk/workspace-snapshot.d.ts +4 -0
- package/dist/sdk/workspace-snapshot.js +24 -11
- package/docs/AGENT_GUIDE.md +5 -2
- package/docs/COMMANDS.md +27 -6
- package/docs/DEPENDENCY_KIND_CONTRACT.md +29 -0
- package/docs/ITEM_READ_PROJECTIONS.md +26 -0
- package/docs/MERGE_SAFETY.md +17 -8
- package/docs/README.md +2 -5
- package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
- package/docs/RELATIONSHIP_GRAPH.md +1 -1
- package/docs/SDK.md +33 -8
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +36 -2
- package/docs/SDK_CONTEXT.md +97 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +33 -3
- package/docs/SENTRY_CONTRACT_EPOCHS.md +20 -0
- package/docs/agent-task-token-baseline.json +2 -2
- package/marketplace.json +2 -2
- package/package.json +5 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +415 -43
- package/dist/cli-bundle/chunks/chunk-GKA54IJM.js +0 -5
- package/dist/cli-bundle/chunks/chunk-KRY7SRUO.js +0 -2
- package/dist/cli-bundle/chunks/chunk-MNJ4NNSY.js +0 -26
- package/dist/cli-bundle/chunks/chunk-OJPCFDDY.js +0 -13
- package/dist/cli-bundle/chunks/chunk-PFSD3DAN.js +0 -194
- package/dist/cli-bundle/chunks/chunk-SQ7QZFQ6.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-5XQETS6E.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-54EU2UVO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5FLBTZJQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5GJ57YKN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CMDS3KYT.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-DMKOMTTY.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-F5B3HBEZ.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-FI6DWU2M.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-FNOKJG6N.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-FPDYXZBK.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-GWI6YIKJ.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-HCUC62AB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HGNKPSCB.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-IAS7PMLG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-SM2PJGP3.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-U646T7Z6.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-YKPE4PPY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZOLDTUU7.js +0 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{$g as me,A as Fn,Ac as Un,Ag as We,B as m,Bf as Xn,Bg as Ve,D as p,Eb as Ue,F as R,Fa as K,Fc as jn,Fd as te,Ff as Jn,Ga as Pe,Gd as ue,Gf as ze,Gg as tr,Hd as Gn,Id as Ft,Jg as D,Na as T,P as M,Pf as Zn,Pg as nr,Qa as $,Qf as qe,R as v,Ra as Nn,S as Rn,Sd as Hn,T as W,Ta as Dt,Tg as rr,Uc as J,Ug as or,Vg as fe,Wc as je,Wg as ir,Xb as On,Xd as Be,Yd as Ke,Yg as Ye,Zd as _e,Zg as Xe,_g as sr,ae as Ge,ah as ar,aj as cr,c as F,cb as Mn,e as Le,f as q,fd as S,gd as I,hd as P,jg as Qn,kb as $n,kg as er,md as Bn,mf as le,nd as Kn,nf as zn,oc as L,of as qn,og as Nt,pb as Ln,pf as Wn,rf as we,rk as dr,ta as ce,td as de,tf as Z,uf as Rt,vf as Vn,w as An,xc as At,ya as Tt,yf as Yn,za as Oe,zc as Pn,zf as He}from"./chunk-JUDU4RO4.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 ki(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new p(`History for this item contains invalid timestamp at entry ${o+1}.`,m.GENERIC_FAILURE);i<=t&&(n=o)}),n}function vi(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 ur(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 lr(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=vi(t);if(!r)throw new p(`Missing ${o} target. Use a timestamp or version number.`,m.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new p(`${i} version must be between 1 and ${t.length} for this item.`,m.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new p(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,m.USAGE,s);let d=ki(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new p(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,m.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function be(e,t,n,r){let o=Yn(e,t);if(o.ok)return o.document;let i=ur(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 p(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,m.GENERIC_FAILURE)}function fr(e,t){let n=structuredClone(we);for(let r=0;r<=t;r+=1){let o=e[r];if(!o)throw new p(`History target entry ${r+1} does not exist.`,m.USAGE);if(Z(n)!==o.before_hash)throw new p(`History hash mismatch before replay at entry ${r+1}.`,m.GENERIC_FAILURE);if(n=be(n,o.patch,r+1,o.op),Z(n)!==o.after_hash)throw new p(`History hash mismatch after replay at entry ${r+1}.`,m.GENERIC_FAILURE)}return n}function mr(e,t){if(Object.keys(e.metadata).length>0)return e;throw new p(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,m.USAGE)}import Mt from"node:fs/promises";import Ei 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 Ii(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=tr(e.settings);if(n.ownership_enforcement==="strict")throw new p(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,m.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function xi(e){let t=await Le(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new p(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);let n=await Ye(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await Xe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new p(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function uf(e){let t=e.writeHistoryRaw??q;try{await t(e.historyPath,e.nextHistoryRaw),await le(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await Ei.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await le(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function pr(e){let t=[...Ii({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await ze(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 xi({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 $t(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function gr(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function hr(e){let t=e.trim();if(t.length===0)throw new p("history-redact --regex requires a non-empty pattern.",m.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=gr(t.slice(o+1)))}if(n.length===0)throw new p("history-redact --regex cannot use an empty pattern.",m.USAGE);try{new RegExp(n,r)}catch{throw new p("Invalid --regex value; provide a valid JavaScript regular expression.",m.USAGE)}return{kind:"regex",source:n,flags:r}}function yr(e,t){let n=[...new Set($t(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set($t(t).map(i=>i.trim()))].filter(i=>i.length>0).map(hr),o=[...n,...r];if(o.length===0)throw new p("history-redact requires at least one matcher via --literal or --regex.",m.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 _r(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 wr(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 Lt(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?_r(r,i.value,n):wr(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function Je(e,t,n){if(typeof e=="string")return Lt(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=Je(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=Je(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function Ci(e){let t=structuredClone(we),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];Z(t)!==i.before_hash&&(n+=1),t=be(t,i.patch,o+1,i.op),Z(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function Si(e,t,n){let r=0,o=!1,i=e.message;if(typeof e.message=="string"){let a=Lt(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=Je(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 Ti(e,t,n){let r=structuredClone(we),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=Si(e[a],t,n);i+=c.replacements,c.changed&&(o+=1);let d=Z(r);r=be(r,c.entry.patch,a+1,c.entry.op);let u=Z(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function br(e){return Object.keys(e.metadata).length>0}async function Di(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await Xe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function Ai(e){if(!br(e.finalDocument))return{raw:null,path:null,document:null};let t=Kn(Rt(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new p("history-redact would change the item id; narrow your patterns.",m.USAGE);return{document:t,path:Nn(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Bn(t,{format:"toon",schema:e.settings.schema})}}function Fi(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 Ri(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??Rt(e.rewritten.finalDocument);return t.push(Wn({nowIso:M(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Ni(e){let t=[];return pr({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 or(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 q(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await Mt.rm(e.currentItem.path,{force:!0}),await q(e.subject.historyPath,Xn(e.rewrittenEntries))}catch(c){try{await Mi(e.subject.historyPath,n,o,i)}finally{await le(e.subject.historyPath)}throw c}await le(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await ir({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 $i(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Mi(e,t,n,r){t===null?await Mt.rm(e,{force:!0}):await q(e,t);for(let o of n){let i=r.get(o);i===void 0?await Mt.rm(o,{force:!0}):await q(o,i)}}async function $i(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await At({path:o,scope:"project",op:"history_redact"}));return n.push(...await At({path:e,scope:"project",op:"history_redact:history"})),n}async function Ot(e,t,n,r){let o=await Ye(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:Dt(e,o.id),located:o};let i=qe(t,n.id_prefix),s=Zn(t),a=i===s?[i]:[i,s];for(let c of a){let d=Dt(e,c);if(await F(d))return{id:c,historyPath:d,located:null}}throw new p(`Item ${t} not found`,m.NOT_FOUND)}async function Rf(e,t,n){let r=T(process.cwd(),n.path);if(!await F($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let o=await D(r),i=K(o,L()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=yr(t.literal,t.regex),u=await Ot(r,e,o,i.type_to_folder);if(!await F(u.historyPath))throw new p(`No history stream exists for ${u.id}.`,m.NOT_FOUND);let l=await Le(u.historyPath),f=await ue(u.historyPath,u.id);if(f.length===0)throw new p(`No history entries exist for ${u.id}; nothing to redact.`,m.USAGE);let g=Ci(f),h=Ti(f,d,c),y=g.hashMismatchesBefore+g.hashMismatchesAfter,b=!!t.dryRun,w=h.replacements>0,_=[];y>0&&_.push(`history_redact_preexisting_hash_mismatches:${y}`),w||_.push("history_redact_no_matches");let E=await Di(u,o),C=Ai({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:h.finalDocument}),B=(E.path??null)!==(C.path??null)||(E.raw??null)!==(C.raw??null),A=te(t.author,o.author_default),ie=Fi(t,h),{rewrittenEntries:Q,auditEntryAdded:ye}=Ri({rewritten:h,dryRun:b,changed:w,nextItemDocument:C.document,author:A,message:ie}),Y=He(Q);if(!Y.ok)throw new p(`history-redact produced an invalid rewritten chain (${Y.errors.join(", ")}).`,m.GENERIC_FAILURE);return!b&&w&&_.push(...await Ni({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:E,nextItem:C,author:A,force:t.force,rewrittenEntries:Q})),{id:u.id,dry_run:b,changed:w,patterns:{literal_count:d.filter(N=>N.kind==="literal").length,regex_count:d.filter(N=>N.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:h.entriesChanged,replacements:h.replacements,hash_mismatches_before:g.hashMismatchesBefore,hash_mismatches_after:g.hashMismatchesAfter,preexisting_hash_mismatches:y,audit_entry_added:ye,verify_ok:Y.ok,verify_errors:Y.errors},item:{existed_before:E.path!==null,exists_after:C.path!==null,path_before:E.path,path_after:C.path,changed:B},warnings:[...new Set(_)].sort((N,X)=>N.localeCompare(X)),generated_at:M()}}var Nf={applyLiteralRule:_r,applyRegexRule:wr,buildRedactionRules:yr,hasItemMetadata:br,normalizeRegexFlags:gr,normalizeStringArrayInput:$t,parseRegexRule:hr,redactStringValue:Lt,redactUnknownValue:Je};(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]="bccbd81b-988f-569d-8dbf-c0998d813953")}catch{}})();function Wf(e,t){let n=He(e),r=e.length>0?e[e.length-1].after_hash:qn(),o=t===void 0?void 0:zn(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 Vf(e,t,n={}){let r=T(n.cwd??process.cwd(),n.pmRoot);if(!await F($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let o=await D(r),i=K(o,L()),s=await Ot(r,e,o,i.type_to_folder),a=await ue(s.historyPath,s.id);if(a.length===0)throw new p(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let c=lr(t,a),d=mr(fr(a,c.historyIndex),c),u=Vn(d,{schema:o.schema});if(u.metadata.id!==s.id)throw new p(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,m.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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function U(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 p(`${t} must be a non-negative integer`,m.USAGE);return r}function Ze(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 p(`${t} filter must be 0..4`,m.USAGE);return r}function kr(e,t,n="--type"){if(e===void 0)return;let r=Pe(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.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 Qe={version:1,aliases:{}};function et(e=[]){let t=new Set(de),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 vr(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 Pt(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 Ut(e,t=de){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 p(`Provenance predicate must use dimension=value; received "${i.trim()}".`,m.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 p(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,m.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new p(`Provenance predicate must use dimension=value; received "${i.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function tt(e,t=Qe,n={}){let r=Pt(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 om(e,t,n=Qe,r=de){return jt(t,n,r)(e)}function jt(e,t=Qe,n=de){let r=vr(e.harness),o=vr(e.agentInstance),i=Ut(e,n);return s=>{let c=Pt(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 nt(e,t=Qe,n=de){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);Pt(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 Li from"node:fs/promises";import Ir 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]="a7efa5e0-5610-51ca-8288-4f5410dbcf51")}catch{}})();var Oi=20,Pi=5;function Bt(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new p(`${t} must not be empty`,m.USAGE);return n}function Er(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new p("Activity time bounds must not be empty",m.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return W(o,new Date(t),n)}function Ui(e,t,n){return!(e.ts.length===0&&(t||n)||t&&v(e.ts,t)<0||n&&v(e.ts,n)>=0)}function ji(e,t){return t===void 0?e:e.slice(0,t)}function ke(e,t=""){return typeof e=="string"?e:t}function Bi(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 Ki(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 Gi(e){try{return(await Li.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(t.code==="ENOENT")return[];throw t}}function Hi(e){let t=M(),n=Er(e.from,t,"--from"),r=Er(e.to,t,"--to");if(n&&r&&v(n,r)>=0)throw new p("Activity --from must be before --to",m.USAGE);let o=Nt(e.limit);if(e.unbounded===!0&&o!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:Bt(e.id,"Activity --id"),op:Bt(e.op,"Activity --op"),author:Bt(e.author,"Activity --author"),from:n,to:r,limit:e.unbounded===!0?void 0:o??(e.compact===!0?Oi:Pi),limitSource:e.unbounded===!0||o!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function zi(e){let t=T(process.cwd(),e.path);if(!await F($(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await D(t)}}async function qi(e){let t=K(e.settings,L()),n=await me(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Jn({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Ir.join(e.pmRoot,"history");return await Pn({path:r,scope:"project"}),r}function Wi(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Ui(t,n.from,n.to)}async function Vi(e,t){let n=[];for(let r of await Gi(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await ue(Ir.join(e,r),o);for(let s of i){let a=Bi(o,s);Wi(s,a,t)&&n.push(a)}}return n}function Yi(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}async function xr(e,t){let n=await zi(t),r=Hi(e),o=await qi(n),i=et(n.settings.agent_identity.harness_signals),s=n.settings.agent_identity.identity_vocabulary,a=jt({harness:r.harness,agentInstance:r.agentInstance,provenance:r.provenance},s,i),c=Ki(await Vi(o,r)).filter(a),d=ji(c,r.limit),u=e.compact===!0,l=u?Yi(d):void 0,f=e.provenance===!0?d.map(b=>tt(b,s,{itemId:b.id})):void 0,g=c.length-d.length,h=e.provenance===!0?"provenance":u?"compact":"full";return{...{compact:{compact_activity:l},provenance:{provenance_activity:f},full:{activity:d}}[h],compact:u,projection:{mode:h,row_key:h==="compact"?"compact_activity":h==="provenance"?"provenance_activity":"activity"},omission_receipt:Hn("activity",h),count:d.length,total_count:c.length,limit:r.limit??null,omitted_count:g,has_more:g>0,...e.provenanceSummary===!0?{provenance_summary:nt(c,s,i)}:{},applied_bound:{kind:r.limit===void 0?"unbounded":"limit",source:r.limitSource,value:r.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]="de8a82e1-0b02-5d5a-9086-686529a1ccab")}catch{}})();var Cr="blocked_by",Sr="blocks",Xi=Object.freeze([Cr,Sr]),Kt="no-active-blocker";function x(e){return e.trim().toLowerCase()}function ne(e){let t=new Set,n=typeof e.blocked_by=="string"?x(e.blocked_by):"";n.length>0&&n!==Kt&&t.add(n);for(let r of e.dependencies??[]){let o=typeof r.id=="string"?x(r.id):"";r.kind===Cr&&o.length>0&&o!==Kt&&t.add(o)}return[...t].sort((r,o)=>r.localeCompare(o))}function rt(e){let t=new Map;for(let n of e){let r=x(n.id);r.length!==0&&t.set(r,new Set(ne(n)))}for(let n of e){let r=x(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Sr&&typeof o.id=="string"?x(o.id):"";if(i.length===0||i===Kt)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 Tr(e,t){let n=x(e.id);return n.length>0?rt(t).get(n)??ne(e):ne(e)}function Gt(e,t,n,r){let o=e;return(typeof o.id=="string"?r?.get(x(o.id))??Tr(o,[...t.values()]):ne(e)).map(s=>{let a=t.get(x(s));return a?{id:s,title:a.title,status:a.status,resolved:P(a.status,n)}:{id:s,title:null,status:null,resolved:!1}})}function ot(e,t,n){return Gt(e,t,n)}function ve(e,t){let n=new Map(e.map(s=>[x(s.id),s])),r=rt(e),o=new Set([...Dr(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=I(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Gt(s,n,t,r).some(d=>!d.resolved))&&i.add(x(s.id))}return i}function Dr(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Ji(e,t,n){let r=[x(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(!P(s.status,n))return!0;r.push(x(s.id))}}}return!1}function Zi(e){let t=new Map,n=new Map,r=new Map,o=rt(e);for(let i of e){t.set(x(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=x(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(x(i.id))){let c=x(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Ht(e,t,n){let{itemsById:r,childrenByParent:o,blockedByReverse:i,blockerIdsByItem:s}=Zi(t),a=new Set([...Dr(n),...n.blocked_statuses]),c=new Set(t.filter(g=>!P(g.status,n)).map(g=>x(g.id))),d=[],u=[],l=0,f=0;for(let g of e){if(!a.has(I(g.status,n)))continue;if(l+=1,Ji(g.id,o,n)){f+=1;continue}let h=Gt(g,r,n,s).filter(_=>!_.resolved),y=(i.get(x(g.id))??[]).filter(_=>c.has(x(_))).sort((_,E)=>_.localeCompare(E)),b={item:g,open_blockers:h,unblocks:y},w=n.blocked_statuses.has(I(g.status,n));h.length===0&&!w?d.push(b):u.push(b)}return{ready:d,blocked:u,active_count:l,container_count:f}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc271a73-9767-54bb-a142-d4d4569e3c6a")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function zt(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 p(`${t.label} requires at least one non-empty value`,m.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function Ee(e,t){let n=zt(e,t);return n===void 0?void 0:new Set(n)}function Ar(e,t,n="--type"){let r=zt(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=Pe(i,t);if(!s)throw new p(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,m.USAGE);return s});return new Set(o)}function Fr(e,t="--priority"){let n=zt(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Ze(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 Rr(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Lr(e){return{isTerminal(t){return e.terminal_statuses.has(Rr(t,e))},classify(t){let n=Rr(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 qt(e){return R(e.acceptance_criteria)===void 0}function Wt(e){return!Number.isFinite(e.estimated_minutes)}function Or(e,t){return t.isTerminal(e.status)?R(e.resolution)===void 0:!1}function Qi(e){return R(e.reviewer)===void 0}function es(e){return R(e.risk)===void 0}function ts(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):R(e.confidence)===void 0}function ns(e){return R(e.sprint)===void 0}function rs(e){return R(e.release)===void 0}function Vt(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function os(e,t,n){return[[t.acMissing,qt(e)],[t.estimatesMissing,Wt(e)],[t.resolutionMissing,Or(e,n)],[t.reviewerMissing,Qi(e)],[t.riskMissing,es(e)],[t.confidenceMissing,ts(e)],[t.sprintMissing,ns(e)],[t.releaseMissing,rs(e)]].every(([o,i])=>o!==!0||i)}function is(e,t){return qt(e)||Wt(e)||Or(e,t)}function Pr(e,t,n){return Vt(t)?!(!os(e,t,n)||t.metadataMissing&&!is(e,n)):!0}var Yt=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function ss(e,t){switch(t){case"acceptance_criteria":return!qt(e);case"estimated_minutes":return!Wt(e);case"resolution":return R(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return R(e.parent)!==void 0}}function as(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function cs(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Nr(){let e={};for(let t of Yt)e[t]={present:0,applicable:0,percent:100};return e}function Mr(e,t,n){for(let r of Yt){if(!as(t,r,n))continue;let o=e[r];o.applicable+=1,ss(t,r)&&(o.present+=1)}}function $r(e){for(let t of Yt){let n=e[t];n.percent=cs(n.present,n.applicable)}}function Im(e,t){let n=Nr(),r={};for(let o of e){Mr(n,o,t);let i=r[o.type]??(r[o.type]=Nr());Mr(i,o,t)}$r(n);for(let o of Object.values(r))$r(o);return{overall:n,by_type:r}}var ds={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function us(e){return ds[e]}function ls(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function fs(e,t,n){switch(t){case"assignee":return[R(e.assignee)??null];case"parent":return[R(e.parent)??null];case"type":return[R(e.type)??null];case"status":return[R(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 xm(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 fs(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??us(t),key:d,buckets:ls(),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 re(e){return Array.isArray(e)&&e.length>0}function ms(e){return typeof e=="string"&&e.trim().length>0}function ps(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 jr(e,t){switch(t){case"notes":return re(e.notes);case"learnings":return re(e.learnings);case"files":return re(e.files);case"docs":return re(e.docs);case"tests":return re(e.tests);case"comments":return re(e.comments);case"deps":return re(e.dependencies);case"body":return ms(e.body);case"linked_command":return ps(e.tests)}}function Br(e){return pe.some(t=>e[t]!==void 0)}function Kr(e,t){for(let n of pe){let r=t[n];if(r===void 0)continue;let o=jr(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Gr(e){return pe.some(t=>t!=="body"&&e[t]!==void 0)}function Hr(e){return e.body!==void 0}function Ur(e,t){return t===0?100:Math.round(e/t*1e3)/10}function gs(){let e={};for(let t of pe)e[t]={present:0,total:0,percent:100};return e}function Sm(e){let t=gs(),n=e.length;for(let s of e)for(let a of pe)jr(s,a)&&(t[a].present+=1);for(let s of pe)t[s].total=n,t[s].percent=Ur(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:Ur(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 hs=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}),zr=[{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"}],Xr=e=>{let t=zr.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new p(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(zr.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},qr=["priority","deadline","updated_at","created_at","title","parent"],Wr=["asc","desc"],ys=["id","title","status","type","priority","parent","updated_at"],_s=["id","status","type","title"],Qm={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},ws=["tree_depth","tree_parent","tree_children","tree_title"],Jr=new Set(rr);function bs(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 p(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,m.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 ks(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var vs=[{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"}],Es=[{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 Zr(e,t){for(let n of vs)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Qr(e,t){for(let n of Es)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Is(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 xs(e){let t={};return Zr(t,e),t}function Cs(e){let t={};return Qr(t,e),t}var Ss=[{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"}],Ts=[{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"}],Ds=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],As="-7d";function Fs(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"),Is(c,n,Ss),to(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),Qr(c,n),Zr(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),ks(a)&&(c.runtime_filters=a),c}function eo(e,t,n){let r=P(e.status,n),o=P(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=v(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Rs(e,t){return[...e].sort((n,r)=>eo(n,r,t))}function Vr(e,t){if(e!==void 0)return W(e,new Date,t)}function Ie(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return W(n,new Date,t)}function Ns(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 p("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Ie(As,"recent"):Ie(e.updatedAfter,"updated-after")}function to(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Ms(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);return new Set(n)}function no(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 p("Offset filter must be a non-negative integer",m.USAGE);return n}function $s(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 p("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Ls(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,o=$s(e.fields);if(Number(t)+Number(n)+Number(r)+ +(o!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[..._s]}:t?{mode:"compact",fields:[...ys]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function xe(e){return e.startsWith("item.")?e.slice(5):e}function Os(e,t){if(e.mode!=="fields")return;let n=new Set([...An,"body",...ws,...t]),r=e.fields.filter(o=>!n.has(xe(o)));if(r.length>0)throw new p(`Unknown list --fields value(s): ${r.join(", ")}`,m.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 Ps=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Us(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Ps.get(t);if(n)return n;if(!qr.includes(t))throw new p(`Sort field must be one of ${qr.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function js(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Wr.includes(t))throw new p(`Sort order must be one of ${Wr.join("|")}`,m.USAGE);return t}function Bs(e){return U(e,"--tree-depth")}function Ks(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function Yr(e,t){return er(e,t,{strict:!0})}function ro(e){return Ee(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Gs(e,t,n){let r=ro(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 Hs(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function zs(e,t,n,r){let o=Ee(t.assignee,{label:"--assignee"}),i=Ks(t.assigneeFilter);Hs(o,i);let s=hs(t),a=Xr(t);return{idsFilter:Ms(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ar(t.type,n),tagFilters:ro(t.tag),priorityFilter:Fr(t.priority),deadlineBefore:Vr(t.deadlineBefore,"deadline-before"),deadlineAfter:Vr(t.deadlineAfter,"deadline-after"),updatedAfter:Ns(t),updatedBefore:Ie(t.updatedBefore,"updated-before"),createdAfter:Ie(t.createdAfter,"created-after"),createdBefore:Ie(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Ee(t.sprint,{label:"--sprint"}),releaseFilter:Ee(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Vt(s),lifecycleClassifier:Lr(r),contentFieldFilters:a,contentFiltersActive:Br(a)}}function qs(e,t,n){return Ws(e,t,n)&&Vs(e,t)&&Ys(e,t)&&Xs(e,t)}function Ws(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&P(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 Vs(e,t){return Rn(e,t)}function Ys(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 Xs(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 Js(e,t,n,r){return!(!qs(e,t,n)||t.missingMetadataActive&&!Pr(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Kr(e,t.contentFieldFilters)||!Ve(e,r))}function Zs(e,t,n,r,o,i){let s=zs(t,n,r,o);return e.filter(a=>Js(a,s,o,i))}function it(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Qs(e,t,n){let r=e,o=typeof r.title=="string"?r.title:"",i=it(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 ea(e,t,n){let r=new Map,o=new Map;for(let d of e){r.set(d.id,d);let u=it(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=it(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(Qs(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 ta(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function na(e,t){return e===t?0:e===null?1:t===null?-1:v(e,t)}function ra(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return na(e.deadline??null,t.deadline??null);case"updated_at":return v(e.updated_at,t.updated_at);case"created_at":return v(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return ta(e.parent??null,t.parent??null);default:return 0}}function oa(e,t,n,r){return t?[...e].sort((o,i)=>{let s=ra(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=eo(o,i,r);return n==="desc"?-a:a}):Rs(e,r)}function ia(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 oo(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=ia(r,i,n);return o})}function sa(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function aa(e,t){if(e.noTruncate!==!0)return U(e.limit)??(t>=1e4?20:void 0)}function ca(e,t,n){return t.after===void 0?no(t.offset)??0:Ge(e,t.after,n,r=>r.id)}function io(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function da(e,t){let n=T(process.cwd(),t.path);if(!await F($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await D(n),o=J(r.schema),i=je(r.schema),s=Ls(e);return Os(s,sa(i.definitions)),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:We(e,i,"list"),typeRegistry:K(r,L()),projection:s}}async function ua(e,t,n){let r=t.projection.fields.some(c=>xe(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>Jr.has(xe(c))),i=Xr(e),s=Gr(i),a=Hr(i);return e.includeBody||r||a?await ar(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await sr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await me(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function la(e){let t=Us(e.sort),n=js(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new p("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new p("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Bs(e.treeDepth):void 0,parentRoot:r?it(e.parent):void 0}}function fa(e,t,n){let r=Yr(t.status,n),o=r??Yr(e,n),i=Qn(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 ma(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new p("List --after cannot be combined with --offset.",m.USAGE);let i=aa(t,e.length),s=ca(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=oo(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?_e(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:io(i,u,l)}}function so(e,t,n){return Ke("list",{status:e,options:Be(t,cr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function pa(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(h=>{let y=xe(h);return y==="body"||Jr.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,Un(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([h,y])=>y!==void 0&&!i.has(h))].includes(!0))return null;let c=await fe(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=U(t.limit),u=no(t.offset)??0,l=await nr({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,g=f?_e(so(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:oo(l.items,n.projection,!1),totalMatched:l.total,pageExtras:io(d,f,g)}}function ga(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 Ts){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of Ds)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,Cs(n),xs(n)),to(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 Ce(e,t,n){let r=await da(t,n),o=[],i=la(t),s=fa(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await pa({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let y=await ua(t,r,o);Gs(y,t.tag,o);let b=Zs(y,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),w=t.dependencyBlocked===!0?(()=>{let C=ve(y,r.statusRegistry);return b.filter(B=>C.has(B.id.trim().toLowerCase()))})():b,_=oa(w,i.sortField,i.sortOrder,r.statusRegistry),E=i.treeEnabled?ea(_,i.parentRoot,i.treeDepth):_;d=ma(E,t,r.projection,i.treeEnabled,so(s.filtersStatus,t,i))}let u=M(),l=[...new Set(o)].sort((y,b)=>y.localeCompare(b)),f=bs(l,c!==null,t.strictRead===!0),g=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let y=Fs({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:g},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:ga({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:g},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as ha}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 Xt=["agenda","day","week","month"],Jt=["markdown","toon","json"],ya=["sun","mon","tue","wed","thu","fri","sat"],_a=365,wa=365,uo=28,ba=1e3;function Zt(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return n}function ka(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 p("Calendar include filter must not be empty",m.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 p("Calendar include filter must be deadlines|reminders|events|scheduled|all",m.USAGE)}return r}function lo(e,t){let n;for(let r of t){let o=Mn(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function va(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Xt.includes(t)){let n=lo(t,Xt);throw new p(`Calendar view must be one of ${Xt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Ea(e){if(!e)return;let t=e.trim().toLowerCase();if(!Jt.includes(t)){let n=lo(t,Jt);throw new p(`Calendar format must be one of ${Jt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function ip(e,t){let n=Ea(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"markdown"}function Ia(e,t){if(e===void 0)return;let n=S(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new p(`Calendar status filter must be one of ${r.join("|")}`,m.USAGE)}return n}function xa(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Calendar assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function st(e){return new Date(e).toISOString().slice(0,10)}function fo(e,t){if(!t||t==="UTC")return st(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 st(e)}function nn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function V(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function mo(e){let t=new Date(nn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return V(t.toISOString(),r)}function Ca(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Sa(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Ta(e,t){return v(e,t)>=0?e:t}function ao(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function co(e,t){e.set(t,(e.get(t)??0)+1)}function Da(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)=>ce(r)-ce(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 po(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 go(e){return ya[new Date(e).getUTCDay()]}function Aa(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Fa(e){let t=new Set;for(let n of e??[]){let r=Aa(n);r&&t.add(r)}return t}function Ra(e,t,n,r,o){let i=e??V(n,-(r??wa)),s=t??V(e??n,o??_a);return{start:i,end:v(s,i)>0?s:V(i,1)}}function Na(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[go(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??ba,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Fa(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)=>ce(s)-ce(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function at(e,t){return v(t,e.startAt)<0?"continue":e.until&&v(t,e.until)>0||v(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,v(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function ct(e,t){let n=go(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Ma(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(ct(e,t)&&at(e,t)==="stop");n+=1)t=V(t,e.interval);return e.occurrences}function $a(e,t,n){let r=ce(n),o=V(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 La(e){let t=mo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=V(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=$a(e,r,o);if(ct(e,i)&&at(e,i)==="stop")return e.occurrences}}return e.occurrences}function Oa(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=po(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!ct(e,s))&&at(e,s)==="stop")return e.occurrences}}return e.occurrences}function Pa(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=po(o,n,i,e.startDate);if(!(!s||!ct(e,s))&&at(e,s)==="stop")return e.occurrences}}return e.occurrences}function Ua(e,t,n,r){let o=Na(e,t,n,r);return t.freq==="daily"?Ma(o):t.freq==="weekly"?La(o):t.freq==="monthly"?Oa(o):Pa(o)}function ho(e){return[...e].sort((t,n)=>{let r=v(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 rn(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 ja(e){return e.deadline?{at:e.deadline,date:st(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,...rn(e),item_deadline:e.deadline}:null}function Ba(e){return(e.reminders??[]).map(t=>({at:t.at,date:st(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,...rn(e)}))}function Ka(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Ga(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Ha(e,t,n,r){let o=Da(t.recurrence),i=Ka(t.start_at,t.end_at);return(t.recurrence?Ua(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):fo(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Ga(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,...rn(e)}))}function za(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?ja(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Ba(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Ha(i,a,t,r))}return ho(o)}function qa(e,t,n,r,o){let i=kr(t.type,n),s=t.tag?.trim().toLowerCase(),a=Ze(t.priority),c=Ia(t.status,r),d=t.assignee?.trim(),u=xa(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(d!==void 0&&u==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(g=>Wa(g,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function Wa(e,t){return Va(e,t)&&Ya(e,t)&&Ve(e,t.runtimeFieldFilters)}function Va(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 Ya(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 Xa(e,t,n){return!(t&&v(e.at,t)<0||n&&v(e.at,n)>=0)}function Qt(e,t,n){return e.trim().toLowerCase()==="today"?nn(t):W(e,new Date(t),n)}function Ja(e,t,n){let r=t.date?Qt(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?Qt(t.from,n,"--from"):void 0,a=t.to?Qt(t.to,n,"--to"):void 0;if(s&&a&&v(s,a)>=0)throw new p("Calendar --from must be before --to",m.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new p("--from and --to are only supported for --view agenda",m.USAGE);if(e==="agenda")return Za(r,t,n,o,i,s,a);if(e==="day"){let d=nn(r);return en(r,n,o,i,d,V(d,1))}if(e==="week"){let d=mo(r);return en(r,n,o,i,d,V(d,7))}let c=Ca(r);return en(r,n,o,i,c,Sa(r))}function Za(e,t,n,r,o,i,s){if(o)throw new p("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",m.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function en(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:Ta(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Qa(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:ho(r)}))}function ec(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),co(n,c.item_type),co(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:ao(n),by_status:ao(r),recurring_events:a}}function tc(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function yo(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 tn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function nc(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===fo(e.event_end,e.event_timezone)?yo(e.event_end,e.event_timezone):e.event_end:null}function rc(e){let t=`${yo(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=nc(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 sp(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${tc(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: ${tn(e.summary.by_kind)}`),t.push(`- by-type: ${tn(e.summary.by_type)}`),t.push(`- by-status: ${tn(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(`- ${rc(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 oc(t.join(`
|
|
3
|
+
`))}function ap(e){return ha(e)}function oc(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function ic(e){let t=M(),n=va(e.view),r=Ja(n,e,t),o=U(e.limit),i=ka(e.include),s=Zt(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Zt(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Zt(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new p("Calendar occurrence limit must be >= 1",m.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?uo:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function sc(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${uo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function ac(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 cc(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 _o(e,t){let n=T(process.cwd(),t.path);if(!await F($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=ic(e),o=await D(n),i=J(o.schema),s=je(o.schema),a=We(e,s,"calendar"),c=K(o,L()),d=[];sc(d,r.eventsOnlyCapApplied);let u=await me(n,o.item_format,c.type_to_folder,d,o.schema),l=qa(u,e,c,i,a),f=Ra(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),h=za(l,f,r.includeSources,r.occurrenceLimit).filter(_=>Xa(_,r.rangeBounds.start,r.rangeBounds.end)),y=r.limit===void 0?h:h.slice(0,r.limit),b=Qa(y),w=[...new Set(d)].sort((_,E)=>_.localeCompare(E));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:cc(e,r.rangeBounds),filters:ac(e,a),summary:ec(y),events:y,days:b,...w.length>0?{warnings:w}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1f898377-b606-5bfd-932d-6ce5f2f9c717")}catch{}})();var on=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],dc=Symbol("no-context-author"),uc=Symbol("no-item-assignee");function wo(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function lc(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 fc(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 mc(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 dt(e,t,n){return e?.[t]??n}function ut(e,t){let n=d=>{if(typeof d!="string")return"";try{return W(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 v(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=wo(t.author,dc),a=S("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=wo(d.assignee,uc)===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:dt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:dt(t.claimFocus,d.id,I(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:lc(d.priority,4),risk_pressure:mc(d.risk),deadline_pressure:fc(d.deadline,c),knowledge_density:dt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:dt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var pc="context_relevance",gc={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},hc=new TextEncoder;function yc(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"||!on.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 _c(e){let t={...gc};for(let[n,r]of Object.entries(e??{}))r!==void 0&&on.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 ko(e,t={}){yc(e);let n=_c(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=on.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 g of i){let h=d[g];if(h===void 0)continue;let y=h*n[g];u[g]=y,l+=y,f+=n[g]}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 wc(e,t={}){let n=ko(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 lt(e,t,n={}){let r=ko(t,n),o=await jn(pc,{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 wc(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 bc=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function bo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function kc(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:bo(e.required_ids??[],a),continuity_coverage:bo(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function vc(e){return Math.ceil(hc.encode(JSON.stringify(e)).byteLength/4)}function Ec(e){return Math.round(e*1e4)/1e4}function Ic(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 xc(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}):await t.next({...e.options,explainRanking:!0}),{rankedIds:r,attribution:o}=Ic(n,e.surface),i={...n,ranking:void 0},s=vc(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:kc({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 Cc(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=bc;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,Ec(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 fp(e,t,n){let r=[];for(let o of e)r.push(await xc(o,t));return Cc(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 Sc={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Tc=["identity","summary","full"];function Dc(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=Tc.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 Ac(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=Sc[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 Fc(e){let t=new Set;for(let n of e){if(Dc(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 Rc(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 Nc(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=Rc(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 Mc(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 vo(e,t){let n=Ac(t),r=Fc(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Nc({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Mc(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 $c}from"node:crypto";import{appendFile as Lc,mkdir as Oc,readFile as Pc,rename as Uc,stat as jc,writeFile as Bc}from"node:fs/promises";import Eo from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var Io=2048,xo=30,Co=864e5,Kc=262144,Gc="context-usage-ledger",G=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function So(e){return Eo.join(e,"runtime","context-usage.jsonl")}function Se(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new G("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function To(e){try{let n=(await Pc(So(e.pmRoot),"utf8")).split(`
|
|
5
|
+
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Io,o=e.retentionDays??xo,i=Se(e).ms-o*Co;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function Do(e,t){let n=e.maxEvents??Io,r=e.retentionDays??xo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new G("Context usage retention requires positive maxEvents and retentionDays");let o=So(e.pmRoot),i=Eo.dirname(o),s=await ze(e.pmRoot,Gc,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Oc(i,{recursive:!0}),await Lc(o,t.map(u=>`${JSON.stringify(u)}
|
|
6
|
+
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await jc(o)).size<=Kc)return;let c=await To(e),d=`${o}.${process.pid}.${$c()}.tmp`;await Bc(d,`${c.map(u=>JSON.stringify(u)).join(`
|
|
7
|
+
`)}
|
|
8
|
+
`,"utf8"),await Uc(d,o)}finally{await s()}}async function Ao(e,t){await Do(e,[t])}async function ft(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 G("Context usage serving requires an author and valid ranked rows");await Ao(e,{kind:"serve",at:Se(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function wp(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new G("Context usage touch requires author, itemId, and intent");await Ao(e,{kind:"touch",at:Se(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function bp(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 G("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new G("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new G("Context usage touch requires non-empty itemId");r.add(a)}let o=Se(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await Do(e,i)}function Hc(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function mt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await To(e),n=Se(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new G("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 g of l.rows){if(!g.included)continue;let h=Hc(i,g.id,f,r);if(h===void 0)continue;c+=1;let y=Math.max(0,(n-h)/Co);s.set(g.id,(s.get(g.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 Te from"node:fs/promises";import De from"node:path";import{createHash as zc,randomUUID as qc}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2a0f64cf-f6a4-5304-921d-c83b98d3a31f")}catch{}})();var sn=1,an=1,Fo=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Wc={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 pt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ro(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Vc(e){let t={};for(let n of Fo){let r=e[n];if(r!==void 0){if(!Ro(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Yc(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 Xc(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 Jc(e,t){return{...t,activityDensity:t.activityDensity??Yc(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Xc(e)}}function Zc(e){if(!pt(e)||typeof e.id!="string"||!pt(e.signals))return null;let t={},n=new Set(Fo);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!Ro(o))return null;t[r]=o}return{id:e.id,signals:t}}function Qc(e){if(!pt(e)||e.format_version!==sn||e.signal_set_version!==an||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(Zc);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:sn,signal_set_version:an,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function ed(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=ut(e,Jc(e,t)).map(({id:r,signals:o})=>({id:r,signals:Vc(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:sn,signal_set_version:an,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var cn=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=De.resolve(t)}async read(){try{return JSON.parse(await Te.readFile(this.filePath,"utf8"))}catch(t){if(pt(t)&&t.code==="ENOENT")return null;throw t}}async write(t){let n=De.dirname(this.filePath);await Te.mkdir(n,{recursive:!0});let r=De.join(n,`.${De.basename(this.filePath)}.${qc()}.tmp`);try{await Te.writeFile(r,`${JSON.stringify(t)}
|
|
9
|
+
`,{encoding:"utf8",flag:"wx"}),await Te.rename(r,this.filePath)}finally{try{await Te.rm(r,{force:!0})}catch{}}}},dn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=Qc(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=ed(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=ut(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=>Wc[l])}}};function td(e){let t=zc("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 gt(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 fe(t.pmRoot),i=t.sourceCursor??o?.source_cursor??td(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new dn(new cn(De.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 nd(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 rd(e,t,n){let r,o;for(let i of t){let s=nd(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 No(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 Tp(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=rd(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import od from"node:path";import{createHash as id}from"node:crypto";import sd 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]="2e225010-1b53-59e9-8188-dcbe4a4f7eb7")}catch{}})();var Mo=1,ad=1e4,$o=12;function cd(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function dd(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 ud(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 ld(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(I(i.status,t.statusRegistry))).map(i=>{let s=No(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=cd(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=dd(s,r);if(l){let f=`epic:${l.id}`,g=o.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};g.items.push(i),o.set(f,g)}}return{format_version:Mo,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(ud).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function fd(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 md(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(fd)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function pd(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Mo||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(md)?t:null}function gd(e){return`scan:${id("sha256").update(Ue(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function hd(e,t,n){return n!==void 0?n:(await fe(t))?.source_cursor??gd(e)}async function yd(e){try{let t=pd(JSON.parse(await sd.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&t.code==="ENOENT")}}}async function Lo(e,t){let n=Math.max(1,Math.floor(t.minimumItems??ad));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await hd(e,t.pmRoot,t.sourceCursor),o=od.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await yd(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=ld(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await q(o,`${JSON.stringify(c)}
|
|
10
|
+
`)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function _d(e,t,n=$o){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 Oo(e,t,n=$o){if(e.snapshot===null)return;let r=_d(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 wd(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 Pp(e,t,n=5){let r=wd(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]="161507f0-b1a7-59a6-9a60-d8f09806ed3f")}catch{}})();var bd=["markdown","toon","json","ndjson"],Fe=new Set(["Epic","Feature"]),Go=10,Ho=1e4,zo=["hierarchy","activity","progress","recently_created","unparented","workload"],kd=[...zo,"blockers","files","staleness","tests"],vd=/^(\d{4})-(\d{2})-(\d{2})/,Ed=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Id=/^(\d{4})(\d{2})(\d{2})$/,xd=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Cd(e){if(!e)return;let t=e.trim().toLowerCase();if(!bd.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var Po=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 Sd(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Po.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...Po].join(", ")})`,m.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new p("Context --fields requires at least one field name",m.USAGE);return t}function Ae(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function eg(e,t){let n=Cd(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Td(e,t){return U(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Go)}function fn(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new p("--token-budget must be a positive integer",m.USAGE);return n}function Dd(e,t){return t>=Ho&&e===Number.MAX_SAFE_INTEGER?Go:e}function Ad(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Tt.includes(n))throw new p(`Context --depth must be one of ${Tt.join("|")}`,m.USAGE);return n}function Fd(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!Oe.includes(s))throw new p(`Context --section must be one of ${Oe.join("|")}`,m.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...Oe]:(t==="deep"?kd:zo).filter(o=>n.sections[o])}function Rd(e,t){return e?U(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Nd(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new p("--stale-threshold must be a number of days (e.g. 7 or 7d)",m.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new p("--stale-threshold must be positive",m.USAGE);return o}function Uo(e,t){let n=I(e,t),r=S("in_progress",t),o=S("open",t),i=S("blocked",t),s=S("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 Re(e,t){let n=S("closed",t);return I(e,t)===n}function mn(e,t){let n=S("in_progress",t);return I(e,t)===n}function qo(e,t){let n=S("open",t);return I(e,t)===n}function Md(e,t){return t.blocked_statuses.has(I(e,t))}var $d=["compact","brief","fields","includeBody","include_body","parent"];function Ld(e){let t={...e};for(let n of $d)delete t[n];return t}function pn(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=ge(e),i=Ne(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Od(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new p("Context --parent requires an item id",m.USAGE);return t}function Pd(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Ud(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:v(n,r)}function jd(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Bd(e){let t=vd.exec(e)??Ed.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<=jd(n,r-1)}function Kd(e){let t=Id.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=xd.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 Wo(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Bd(t))return Number.NaN;let n=Date.parse(Kd(t));return Number.isFinite(n)?n:Number.NaN}function ln(e){let t=Wo(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Gd(e){let t=Wo(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function gn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function oe(e,t,n){let r=Uo(e.status,n)-Uo(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Pd(e.order,t.order);if(i!==0)return i;let s=Ud(e.deadline,t.deadline);if(s!==0)return s;let a=v(ln(t.updated_at),ln(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function un(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function hn(e,t,n=new Set,r="context"){return vo(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:un({id:o.id,title:o.item.title}),summary:un({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:un(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function yn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function _n(e,t){return{model:e.model,available_signals:e.available_signals,items:e.ranked.map(n=>({id:n.id,rank:n.rank,baseline_rank:n.baseline_rank,score:n.score,contributions:n.contributions})),...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 Vo(e,t){return t>0?Math.round(e/t*100):0}function ge(e){let t=new Map;for(let n of e){let r=gn(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function Me(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:gn(e.parent)};if(t&&n){let o=Ne(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>Re(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=Vo(s,i)}}return r}function Hd(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 ht(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function zd(e,t){return e.filter(n=>!t.terminal_statuses.has(I(n.item_status,t)))}function qd(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=ge(e),s=new Set(t.filter(c=>Fe.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let u=Ne(c,i),l=i.get(c)??[],f=0,g=0,h=0,y=0;for(let w of u)Re(w.status,n)?f++:mn(w.status,n)?h++:Md(w.status,n)?y++:qo(w.status,n)&&g++;let b=l.sort((w,_)=>oe(w,_,n)).slice(0,r).map(w=>{let _=Ne(w.id,i),E=_.filter(C=>Re(C.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:_.length,children_closed:E}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:g,children_in_progress:h,children_blocked:y,children:b})}return a.sort((c,d)=>{let u=o.get(c.id),l=o.get(d.id);return oe(u,l,n)}).slice(0,r)}function Ne(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 Wd(e,t){return(await xr({compact:!0,limit:String(e)},t)).compact_activity??[]}function Vd(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=>Fe.has(c.type)),a=[];for(let c of s){let d=Ne(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,g=0,h=0;for(let y of d)Re(y.status,r)?l++:n.has(y.id.trim().toLowerCase())?h++:mn(y.status,r)?g++:qo(y.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:g,blocked:h,completion_pct:Vo(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Yd(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=ot(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 Xd(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 Jd(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=>mn(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function Zd(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 Qd(e,t,n,r){return e.map(o=>({item:o,sortKey:ln(o.created_at)})).sort((o,i)=>{let s=v(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...Me(o,t,n),created_at:o.created_at}))}function eu(e,t,n,r){return e.filter(o=>!gn(o.parent)&&!Fe.has(o.type)).sort((o,i)=>oe(o,i,t)).slice(0,r).map(o=>Me(o,t,n))}function tu(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 jo(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Yo(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 nu(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function ru(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`${jo(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${jo(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 Bo(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 ou(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 iu(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(`- ${ru(n)}`);e.push("")}function su(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 au(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 cu(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)}`:`- ${Gd(o.created_at)} ${Yo(o)}`);e.push("")}}function du(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 uu(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 lu(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 fu(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 mu(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 pu(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 gu(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 hu(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 tg(e){let t=[],n=e.focus_fields,r=i=>n?nu(i,n):Yo(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(""),Bo(t,"High-level focus",e.high_level,"No high-level active items.",r),Bo(t,"Low-level focus",e.low_level,"No low-level active items.",r),ou(t,e,r),iu(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 su(t,e),au(t,e),cu(t,e,n,r),du(t,e,r),uu(t,e),lu(t,e),fu(t,e),mu(t,e),pu(t,e),gu(t,e),hu(t,e),t.join(`
|
|
11
|
+
`)}async function yu(e,t){let n=T(process.cwd(),t.path),r=await D(n),o=r.context??Fn.context,i=J(r.schema),s=Ad(e.depth,o),a=Td(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:Fd(e.section,s,o),activityLimit:Rd(e.activityLimit,o),staleThresholdDays:Nd(e.staleThreshold,o),parentScope:Od(e.parent),focusFields:Sd(e.fields),baseListOptions:Ld(e)}}function wn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function _u(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function wu(e,t){let n=wn(t.sectionsIncluded),r=await Ce(void 0,_u(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(c=>!P(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=bu(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 bu(e,t){if(e===void 0)return;let n=pn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function ku(e,t,n,r,o,i,s,a,c,d,u,l,f,g){let h=[...e].sort((k,ae)=>oe(k,ae,o)),y=await mt({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await gt(h,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:y.affinity}),w=await lt("context",b.candidates),_=w.ranked.map(k=>k.item),E=o.active_statuses,C=_.filter(k=>E.has(I(k.status,o))),B=l?Ge(C,d,u,k=>k.id):0,A=l?C.slice(B,B+s):C,ie=l&&A.length>0&&B+A.length<C.length,Q=ie&&A.length>0?_e(u,A[A.length-1].id,B+A.length-1):void 0,ye=_.filter(k=>r.has(k.id.trim().toLowerCase())),Y=new Set([...A.map(k=>k.id),...ye.slice(0,s).map(k=>k.id)]),N=hn({...w,ranked:w.ranked.filter(k=>Y.has(k.id))},g),X=N.included.map(k=>k.item),ee=X.filter(k=>E.has(I(k.status,o))),se=X.filter(k=>r.has(k.id.trim().toLowerCase())),xt=ge(t),Ct=wn(i)?xt:void 0,z=new Map(n.map(k=>[k.id.trim().toLowerCase(),k])),O=k=>{let ae=Me(k,o,Ct);return r.has(k.id.trim().toLowerCase())&&(ae.blocked=!0,ae.blocker_ids=ot(k,z,o).filter(St=>!St.resolved).map(St=>St.id)),ae},wi=ee.filter(k=>Fe.has(k.type)).slice(0,l?A.length:s).map(O),bi=ee.filter(k=>!Fe.has(k.type)).slice(0,l?A.length:s).map(O),Dn=C.length===0;return{activeItems:ee,blockedItems:se,highLevel:wi,lowLevel:bi,blockedFallback:Dn?se.slice(0,s).map(O):[],blockedFallbackUsed:Dn,ranking:w,packing:N,featureStore:b,pageExtras:{...l?{applied_limit:s}:{},...ie?{has_more:!0,truncated:!0}:{},...Q?{next_cursor:Q}:{}}}}function vu(e){return Ke("context",Be(e,dr))}function Eu(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Ho}async function Iu(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await _o(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=zd(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:Hd(a)}}function Ko(e,t,n){let r=String(t);return e.filter(o=>I(o.status,n)===r).length}async function xu(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=ge(n),d=n.filter(l=>!P(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?qd(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Wd(t.activityLimit,a):void 0,progress:u("progress")?Vd(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Yd(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Qd(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?eu(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Xd(i.activeItems,t.limit):void 0,workload:u("workload")?Jd(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Zd(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?tu(i.activeItems):void 0}}function Cu(e,t,n){if(!e)return{};let r=S("canceled",n);return{total_items:t.length,closed:t.filter(o=>Re(o.status,n)).length,canceled:t.filter(o=>I(o.status,n)===r).length}}function Su(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 Tu(e,t){t&&(e.focus_fields=t,e.high_level=Ae(e.high_level,t),e.low_level=Ae(e.low_level,t),e.blocked_fallback=Ae(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Ae(e.recently_created,t)),e.unparented&&(e.unparented=Ae(e.unparented,t)))}function Du(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 Au(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 Fu(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await ft({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=ht(e.warnings,["context_usage_feedback_write_failed"])}}async function Ru(e,t,n){if(e)return{};let o=(await On({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 ng(e,t){let n=T(process.cwd(),t.path),r=await yu(e,t),o=await wu(t,r),i=Dd(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:fn(e.tokenBudget,Math.max(256,i*160))},a=te(void 0,s.settings.author_default),c=Ru(e.noExtensionHealth===!0,n,s.settings),d=ve(o.fullCorpus,s.statusRegistry),u=await ku(o.listedItemMetadata,o.allItems,o.fullCorpus,d,s.statusRegistry,s.sectionsIncluded,s.limit,M(),a,e.after,vu(e),Eu(e,o.fullCorpus.length),n,s.tokenBudget),l=await Iu(t,s,o.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),f=await Lo(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:l.agenda.now}),g=ht(o.listed.warnings,l.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],f.warnings),h=Ko(u.activeItems,S("in_progress",s.statusRegistry),s.statusRegistry),y=Ko(u.activeItems,S("open",s.statusRegistry),s.statusRegistry),b=await xu({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:d,focusGroups:u,now:l.agenda.now,global:t}),w=Cu(wn(s.sectionsIncluded),o.allItems,s.statusRegistry),_={output_default:"toon",now:l.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:l.agenda.anchor,start:l.agenda.range.start,end:l.agenda.range.end,past:l.agenda.range.past,from:l.agenda.range.from,to:l.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??l.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:h,open:y,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:l.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:l.agendaSummary,events:l.agendaEvents},...u.pageExtras};return _.workspace_memory=Oo(f,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(_,await c),Su(_,b,u.featureStore.warning_details),Du(_,e.noTags===!0),e.explainRanking===!0&&(_.ranking=_n(u.ranking,u.featureStore),_.packing=yn(u.packing)),Tu(_,s.focusFields),g.length>0&&(_.warnings=g),Au(_,u.activeItems,u.blockedItems),await Fu(_,u,n,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]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var Nu=["markdown","toon","json"],Mu=5,$u=1440*60*1e3;function Lu(e){if(!e)return;let t=e.trim().toLowerCase();if(!Nu.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function mg(e,t){let n=Lu(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"toon"}function Xo(e,t,n){let r=U(e,t);return r===void 0||r<=0?n:r}function bn(e,t,n,r){return{...Me(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 Ou(e,t,n,r){let o=e.item,i=[],s=S("in_progress",t);return i.push(I(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(Uu(o.deadline,n)),i.push(ne(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 Zo(e,t,n){let r=te(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 pg={partitionCallerOwnedReady:Zo,resolveNextCallerAuthor:(e,t)=>Qo(e,t)};function Pu(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 Uu(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))/$u);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function ju(e,t){let n=S("in_progress",t);return e.filter(r=>I(r.status,t)===n).length}function kn(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Bu(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 Jo(e,t,n){return[...e].sort((r,o)=>{let i=kn(r.item,t),s=kn(o.item,t);return i!==s?Number(i)-Number(s):oe(r.item,o.item,n)})}function Ku(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Ou(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Gu(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 Hu(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 zu(e){try{let t=new Set(e.packing.included.map(n=>n.id));await ft({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=ht(e.result.warnings,["context_usage_feedback_write_failed"])}}async function qu(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=_n(e.readyRanking,e.featureStore),e.result.packing=yn(e.packing)),e.result.suggestions=Gu(e.recommended,e.blockedRows),await zu({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Wu(e,t,n){if(!n)return e;let r=pn(t,n);if(!r.found)throw new p(`Next --parent item not found: ${n}`,m.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Vu(e,t,n,r,o,i,s){let a=e.filter(y=>!kn(y.item,t)),c=a.length>0?a:e,d=await mt({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await gt(c.map(y=>y.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:d.affinity}),l=await lt("next",u.candidates),f=hn(l,s,new Set,"next"),g=new Map(c.map(y=>[y.item.id,y]));return{projectedReady:l.ranked.map(y=>g.get(y.id)).filter(y=>y!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function Qo(e,t){let n=e.assignee?.trim();return te(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function gg(e,t){let n=T(process.cwd(),t.path),r=await D(n),o=Qo(e,r.author_default),i=J(r.schema),s=M(),a=Xo(e.limit,"--limit",Mu),c=fn(e.tokenBudget,Math.max(192,a*128)),d=Xo(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Ce(void 0,Bu(e,{excludeTerminal:!0}),t),g=await Ce(void 0,{excludeTerminal:!1,noTruncate:!0},t),h=Wu(f.items,g.items,l),y=g.items,b=Ht(h,y,i),w=ge(y),_=Pu(b.ready,e.includeDecisions===!0),E=Zo(_.agent,r.author_default,o),C=Jo(E.available,w,i),B=[...b.blocked].sort((z,O)=>oe(z.item,O.item,i)),{projectedReady:A,ranking:ie,completedContainer:Q,packing:ye,featureStore:Y}=await Vu(C,w,i,s,o,n,c),N=A.map((z,O)=>bn(z,i,w,O+1)),X=B.map((z,O)=>bn(z,i,w,O+1)),ee=Jo(_.decisions,w,i).map((z,O)=>bn(z,i,w,O+1)),se=Ku({projectedReady:A,readyRows:N,statusRegistry:i,now:s,completedContainer:Q}),xt=Hu(ee.length,E.held.length,a),Ct={output_default:"toon",now:s,recommended:se,ready:N.slice(1,a+1),decision_needed:ee.slice(0,a),blocked:u?[]:X.slice(0,d),held_by_others:E.held.slice(0,a),summary:{recommended:se!==null,ready:N.length,blocked:X.length,in_progress:ju(N,i),candidates:b.active_count,containers:b.container_count,decision_needed:ee.length,held_by_others:E.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:xt};return qu({result:Ct,recommended:se,blockedRows:X,candidatesWarnings:f.warnings,corpusWarnings:g.warnings,readyRanking:ie,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:ye,featureStore:Y})}function hg(e){let t=["# pm next","",...Yu(e)];if(t.push(...yt("Recommended",Xu(e.recommended),"No ready work.")),t.push(...yt("Decision needed",(e.decision_needed??[]).map(n=>`- ${_t(n)}`),"No human-gated decisions.")),t.push(...yt("Ready",e.ready.map(n=>`- ${_t(n)}`),"No ready items.")),e.filters.ready_only||t.push(...yt("Blocked",e.blocked.map(n=>`- ${Ju(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 Yu(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 Xu(e){return e?[`- ${_t(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function yt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Ju(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${_t(e)} blocked_by:${t}`}function _t(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}`}(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 ei="global",Zu="external";function he(e){let t=e?.trim().toLowerCase();return t===ei||t===Zu}function wg(e){let t=e?.trim();if(t)return he(t)?ei:t}function bg(e,t,n){let r=e.trim();return he(n)?r:qe(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]="62ec8e0e-658e-5a32-b458-439d5ffd1229")}catch{}})();function wt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function vn(e){let t=wt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function ti(){let e=$n();for(let t of L()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}function En(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Qu(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=wt(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 el(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 Qu(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=En(r.holder_id,o.holder_id);if(i!==0)return i;let s=En(r.target_id,o.target_id);return s!==0?s:En(r.kind,o.kind)})}function tl(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=wt(d);if(!f||r.has(f.toLowerCase()))return;let g={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(`${g.holder_id}::${g.target_id}::${g.kind}::${g.source}`,g)};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;he(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 nl(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 rl(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!he(r.source_kind))continue;let o=wt(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function ol(e,t=ti()){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 xg(e,t,n){let r=n??ti(),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=tl(o,t),a=nl(s);for(let f of a)i.set(f.toLowerCase(),f);let c=rl(o),d=new Set(i.keys()),u=new Map;for(let f of c){let g=f;for(;d.has(g.toLowerCase());)g=`external:${g}`;u.set(f.toLowerCase(),g),d.add(g.toLowerCase())}let l=o.map(f=>{let g=vn(f.parent),h=vn(f.blocked_by),y=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,_=vn(w.id);return _?[{id:he(w.source_kind)?u.get(_.toLowerCase()):i.get(_.toLowerCase()),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:f.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},...h?{blocked_by:i.get(h.toLowerCase())}:{},dependencies:y}});return{graph:Ln.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:el(o,t),legacyAliasCounts:ol(o,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]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var il=5,sl=1e4,al=8;function In(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function bt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function $e(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function Sg(e,t){let n=$e(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function cl(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 dl(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 ul(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 kt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=cl(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 g=d.queue[f];u+=1;let h=dl(e,g.id,i,r,o);if(l+=h.inspectedEdges,ul(h,g.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 ni(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function ri(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 ll(e,t,n,r,o,i,s){for(let a of ri(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 Tg(e,t,n={}){return kt(e,t,n,"hierarchy",(r,o)=>bt(r.edge,o)===r.id)}function Dg(e,t,n={}){return kt(e,t,n,"hierarchy",(r,o,i)=>bt(r.edge,o)===i)}function Ag(e,t,n={}){return kt(e,t,n,"ordering",(r,o)=>$e(r.edge,o)===r.id)}function Fg(e,t,n={}){return kt(e,t,n,"ordering",(r,o,i)=>$e(r.edge,o)===i)}function fl(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 g=c.queue[f];if(d+=1,g.edges.length>=s){ri(e,g,r,a,c).length>0&&(u=!0);continue}if(ll(e,g,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function Rg(e,t,n,r={}){ni(e,t),ni(e,n);let o=r.maxPaths??il,i=r.maxVisitedPaths??sl,s=r.maxDepth??al;In("maxPaths",o),In("maxVisitedPaths",i),In("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}}:fl(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 ml=16,pl=2,gl=8;function vt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function hl(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 yl(e,t){let n=new Map;hl(e,t,r=>{oi(n,r.source,r.target),oi(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function oi(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function _l(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 wl(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 $g(e,t={}){let n=t.maxIterations??ml,r=t.minSize??pl;vt("maxIterations",n),vt("minSize",r);let o=yl(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 g=_l(f,s);g!==s.get(l)&&(s.set(l,g),c=!1)}}return{value:{communities:wl(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Et(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function It(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function xn(e,t){return(t.hierarchy?bt(e,t):e.source===$e(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function bl(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(!Et(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(It(i))}return r}function kl(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!Et(i))continue;let s=It(i);if(t!==void 0&&!t.has(s))continue;let a=xn(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 vl(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function El(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 Il(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 El(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function xl(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=Il(e,t,a,o,i,r);if(c!==void 0)return c}}function Lg(e,t={}){let n=t.maxDepth??gl;vt("maxDepth",n),t.limit!==void 0&&vt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=bl(e,t.kinds),i=kl(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=vl(u);for(let f of u.records){t.signal?.throwIfAborted();let g=xl(l,f,n,a);if(g!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:g})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function Cl(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 Sl(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,Cl(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Tl(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 Dl(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 Al(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Dl(r,o,t,n));return r}function Fl(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=Al(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function Og(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=Sl(e,t,n),o=Tl(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Fl(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]="76fa19c7-a421-5026-8de8-450285987c4e")}catch{}})();var Rl=25,ii={error:0,warning:1,info:2};function Sn(e,t,n,r,o,i,s){let a=[...o].sort((c,d)=>c.localeCompare(d));return{code:e,severity:t,policy:n,message:r(a.length),count:a.length,sample:a.slice(0,i),sample_truncated:a.length>i,remediation:s}}function Nl(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 ci(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 Ml(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))):(ci(i,r),t.push({node:i,neighborIndex:0})),!0}function $l(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 Ll(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(ci(r,t);o.length>0;){let i=o.at(-1);Ml(i,o,e,t)||$l(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function Cn(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(Sn(r,o,i,s,t,n,a))}function Ol(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(Cn),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(Cn),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(Cn),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 Tn(e,t){let n=t.get(e);return n?!n.terminal:!0}function Pl(e,t,n,r){let o=[],i=Nl(e);for(let c of Ll(i)){let d=c.some(u=>Tn(u,t));o.push(d?Sn("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",u=>`execution-order cycle across ${u} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear."):Sn("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",u=>`terminal-only execution-order cycle across ${u} 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."))}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 Ul(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function jl(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!Et(i))continue;let s=xn(o,i);if(s.from===s.to)continue;let a=`${It(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 Bl(e,t,n){let r=[],o=[];for(let s of jl(e))(Tn(s.from,t)||Tn(s.to,t)?r:o).push(Ul(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 Kl(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 Gl(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 Hl(e,t,n,r,o,i){let s={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let u of e.graph.nodes()){let l=t.get(u);if(l){if(l.missing){s.missing+=1;continue}l.terminal||Gl(s,l,e.graph.incidentEdges(u).length,n,r)}}let{isolates:a,sparse:c}=s,d=[];return H(d,a,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",u=>`${u} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),H(d,c,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",u=>`${u} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one."),{findings:d,profile:{nodes:e.graph.nodes().length,edges:e.graph.edges().length,edge_basis:"deduplicated_directed",edges_by_kind:Object.fromEntries(Object.entries(i).sort(([u],[l])=>u.localeCompare(l))),active_nodes:s.active,missing_nodes:s.missing,isolated_active_nodes:s.isolated,degree_leq_one_active_nodes:s.degreeLeqOne,coverage_by_type:Object.fromEntries([...s.byType.entries()].sort(([u],[l])=>u<l?-1:1))}}}function jg(e,t={}){let n=t.isTerminal??(l=>l==="closed"||l==="canceled"),r=t.isBlocked??(l=>l==="blocked"),o=t.maxSampleSize??Rl;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=new Set((t.exemptIsolates??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),s=new Set((t.isolateExemptTypes??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),a=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:n(l.status),...l.type===void 0?{}:{type:l.type}}]));t.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let d=Ol(e,n,o);t.signal?.throwIfAborted(),d.push(...Pl(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...Bl(e,a,o),...Kl(e,o)),t.signal?.throwIfAborted();let u=Hl(e,a,i,s,o,c);return d.push(...u.findings),d.sort((l,f)=>ii[l.severity]-ii[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:d,profile:u.profile}}function si(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 ai(e){return e.profile.coverage_by_type??{}}function Bg(e,t){let n={},r=ai(e),o=ai(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=r[s],c=o[s],d={active:(c?.active??0)-(a?.active??0),isolated:(c?.isolated??0)-(a?.isolated??0),degree_leq_one:(c?.degree_leq_one??0)-(a?.degree_leq_one??0)};Object.values(d).some(u=>u!==0)&&(n[s]=d)}return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:si(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,edges:t.profile.edges-e.profile.edges,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:si(e.profile.edges_by_kind,t.profile.edges_by_kind),coverage_by_type:n}}}import{createHash as zl}from"node:crypto";import{setTimeout as ql}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 ui=1,li=/^[A-Za-z0-9_-]+$/,Wl=100,di=1e3,Vl=250;function j(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 fi(e){return zl("sha256").update(Ue({type:j(e.type),author:j(e.author),item:j(e.item),harness:j(e.harness),agent_instance:j(e.agentInstance),provenance:j(e.provenanceFilter)})).digest("hex").slice(0,24)}function mi(e,t){let n={version:ui,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 pi(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===ui,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 gi(e,t){let n=e.trim();if(n.length===0||n.length>4096||!li.test(n))throw new p("Invalid mutation event cursor.",m.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new p("Invalid mutation event cursor.",m.USAGE,{code:"invalid_event_cursor"})}if(!pi(r,t))throw new p("Mutation event cursor does not match this query.",m.USAGE,{code:"event_cursor_query_mismatch"});return r}function hi(e){let t=e??Wl;if(!Number.isSafeInteger(t)||t<0||t>di)throw new p(`Mutation event limit must be an integer from 0 to ${di}.`,m.USAGE,{code:"invalid_event_limit"});return t}function yi(e){return e instanceof Error&&e.name==="AbortError"}function _i(e,t){let n=e?.trim();if(!n)return{};if(li.test(n))return{cursor:gi(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new p("Mutation event --since must be an event cursor or ISO timestamp.",m.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Yl(e,t){let n=await Ft(e,t);if(n===null){if(!await Gn(e))throw new p("Mutation events require a runtime with node:sqlite DatabaseSync support.",m.GENERIC_FAILURE,{code:"event_index_unavailable"});n=await Ft(e,t)}if(n===null)throw new p("Mutation event index could not be opened after rebuild.",m.GENERIC_FAILURE,{code:"event_index_unavailable"});return n}async function Xl(e={}){let t=T(e.cwd??process.cwd(),e.pmRoot);if(!await F($(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);let n=hi(e.limit);if(e.full===!0&&e.provenance===!0)throw new p("Mutation event projections are mutually exclusive. Use --provenance or --full.",m.USAGE);let r=await D(t),o=r.agent_identity.identity_vocabulary,i=et(r.agent_identity.harness_signals),s=Ut({provenance:e.provenanceFilter},i),a=j(e.harness),c=fi(e),{cursor:d,sinceTimestamp:u}=_i(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:j(e.type),authors:j(e.author),harnesses:a,harness_alias_authors:a?Object.entries(o.aliases).filter(([,h])=>a.includes(h)).map(([h])=>h):void 0,agent_instances:j(e.agentInstance),provenance:[...s].map(([h,y])=>({dimension:h,values:[...y]})),stream_ids:j(e.item),limit:n},f=await Yl(t,l),g=f.events.map(h=>({cursor:mi(h,c),item_id:h.stream_id,version:h.stream_offset+1,ts:h.entry.ts,author:h.entry.author,type:h.entry.op,...h.entry.message===void 0?{}:{message:h.entry.message},patch_count:h.entry.patch.length,...e.full===!0?{entry:h.entry}:{},...e.provenance===!0?{provenance:tt(h.entry,o,{itemId:h.stream_id,version:h.stream_offset+1})}:{}}));return{events:g,count:g.length,has_more:f.has_more,...g.length===0?{}:{next_cursor:g[g.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:nt(f.events.map(h=>h.entry),o,i)}:{}}}async function*Qg(e={}){let t=e.intervalMs??Vl;if(!Number.isSafeInteger(t)||t<10)throw new p("Mutation event follow interval must be an integer of at least 10ms.",m.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Xl({...e,since:n});if(r.events.length>0){for(let o of r.events)yield o;n=r.next_cursor;continue}try{await ql(t,void 0,{signal:e.signal})}catch(o){if(yi(o))return;throw o}}}var eh={decodeMutationEventCursor:gi,encodeMutationEventCursor:mi,eventQueryFingerprint:fi,isAbortError:yi,isMutationEventCursorEnvelope:pi,parseMutationEventLimit:hi,resolveMutationEventStart:_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]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function nh(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{ur as a,lr as b,be as c,fr as d,mr as e,uf as f,pr as g,Ot as h,Rf as i,Nf as j,Wf as k,Vf as l,U as m,Ze as n,kr as o,Qe as p,et as q,Ut as r,tt as s,om as t,jt as u,nt as v,xr as w,Xi as x,ne as y,rt as z,Tr as A,ot as B,ve as C,Ht as D,zt as E,Ee as F,Ar as G,Fr as H,Lr as I,Vt as J,Pr as K,Im as L,xm as M,Br as N,Kr as O,Sm as P,hs as Q,Xr as R,qr as S,Wr as T,ys as U,_s as V,Qm as W,Is as X,xs as Y,Cs as Z,Ce as _,ip as $,sp as aa,ap as ba,_o as ca,on as da,ut as ea,pc as fa,ko as ga,wc as ha,lt as ia,bc as ja,kc as ka,xc as la,Cc as ma,fp as na,Sc as oa,vo as pa,G as qa,ft as ra,wp as sa,bp as ta,mt as ua,sn as va,an as wa,Wc as xa,Qc as ya,ed as za,cn as Aa,dn as Ba,gt as Ca,No as Da,Tp as Ea,ad as Fa,ld as Ga,Lo as Ha,_d as Ia,Oo as Ja,wd as Ka,Pp as La,bd as Ma,Sd as Na,Ae as Oa,eg as Pa,fn as Qa,Ad as Ra,Fd as Sa,pn as Ta,oe as Ua,hn as Va,yn as Wa,_n as Xa,ge as Ya,Me as Za,ht as _a,tg as $a,Du as ab,ng as bb,Nu as cb,mg as db,pg as eb,Pu as fb,gg as gb,hg as hb,ei as ib,Zu as jb,he as kb,wg as lb,bg as mb,vn as nb,ti as ob,el as pb,tl as qb,nl as rb,xg as sb,Sg as tb,Tg as ub,Dg as vb,Ag as wb,Fg as xb,Rg as yb,hl as zb,$g as Ab,Lg as Bb,Og as Cb,Ll as Db,Ul as Eb,jl as Fb,jg as Gb,Bg as Hb,nh as Ib,Xl as Jb,Qg as Kb,eh as Lb};
|
|
13
|
+
//# sourceMappingURL=chunk-TIGKWVLA.js.map
|