@unbrained/pm-cli 2026.8.9 → 2026.8.11
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 +142 -80
- package/dist/cli/commander-usage.js +94 -17
- package/dist/cli/error-guidance.d.ts +10 -0
- package/dist/cli/error-guidance.js +76 -25
- package/dist/cli/help-json-payload.js +51 -16
- package/dist/cli/main.js +11 -6
- package/dist/cli/register-assurance.d.ts +8 -0
- package/dist/cli/register-assurance.js +52 -0
- package/dist/cli/register-files-lookup.js +14 -3
- package/dist/cli/register-mutation.js +30 -9
- package/dist/cli/register-operations.js +16 -11
- package/dist/cli-bundle/bundle-manifest.json +163 -163
- package/dist/cli-bundle/chunks/{chunk-RJC7TPF4.js → chunk-2OOU2AFH.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-2RA2YTHJ.js +33 -0
- package/dist/cli-bundle/chunks/chunk-A2SJGHSI.js +3 -0
- package/dist/cli-bundle/chunks/chunk-DSKYD4LG.js +13 -0
- package/dist/cli-bundle/chunks/chunk-HC3GM6YY.js +194 -0
- package/dist/cli-bundle/chunks/chunk-IUNRVDAI.js +2 -0
- package/dist/cli-bundle/chunks/chunk-W7CPZGSB.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-YC3UF2IO.js → chunk-WMEZHCFI.js} +66 -60
- package/dist/cli-bundle/chunks/{chunk-GMX5YOI3.js → chunk-ZU34C3LH.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-ZXOC6HG5.js +5 -0
- package/dist/cli-bundle/chunks/{register-list-query-BUE7PTCU.js → register-list-query-HAUXVUPY.js} +8 -8
- package/dist/cli-bundle/chunks/register-mutation-7Y5U7ABT.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-EQX3DLAZ.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-UQDTNTLJ.js → register-setup-NOCOOWQY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-KNEHLPBF.js → chunk-23FTGO3W.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6DO4YQWZ.js → chunk-2DL3MRTD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-3AYKXMYX.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-4AHEC74N.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MRWVJ3ZG.js → chunk-4H5IA6AV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-4SV3ZKG3.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-55BIB6DV.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-6JW6Z2P5.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-BKPIY34S.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-D4PIWE6D.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-DPO7TEFX.js +31 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3WVHTUAW.js → chunk-E3KCL7AY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ERAAFLPS.js +153 -0
- package/dist/cli-bundle/focused-chunks/chunk-F6E4JZKG.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-FPSYO5ZG.js +18 -0
- package/dist/cli-bundle/focused-chunks/{chunk-73FIJONU.js → chunk-J5EKAIVD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-KDH5OX3D.js +4 -0
- package/dist/cli-bundle/focused-chunks/chunk-OJ3LVVIS.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-TL5M2PAY.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-UDAZWT25.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-VABB4L5Y.js +17 -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 +41 -39
- 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 +9 -9
- package/dist/core/fs/fs-utils.d.ts +10 -0
- package/dist/core/fs/fs-utils.js +16 -4
- 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/session/session-state.d.ts +47 -0
- package/dist/core/session/session-state.js +207 -6
- package/dist/core/shared/author.d.ts +8 -2
- package/dist/core/shared/author.js +85 -52
- package/dist/core/shared/errors.d.ts +12 -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/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/agent/refusal-reachability.d.ts +40 -0
- package/dist/sdk/agent/refusal-reachability.js +72 -0
- package/dist/sdk/agent/subcommand-recovery.d.ts +40 -0
- package/dist/sdk/agent/subcommand-recovery.js +84 -0
- package/dist/sdk/cli-bootstrap.d.ts +9 -1
- package/dist/sdk/cli-bootstrap.js +25 -10
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
- package/dist/sdk/cli-contracts/completeness.js +13 -3
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +77 -21
- package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +6 -3
- package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +513 -0
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +251 -0
- 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 +96 -4
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +49 -6
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +3 -3
- package/dist/sdk/completion.js +9 -3
- package/dist/sdk/config.js +9 -3
- package/dist/sdk/context/semantic-session-attribution.d.ts +32 -0
- package/dist/sdk/context/semantic-session-attribution.js +83 -0
- 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 +3 -1
- package/dist/sdk/core-governance.js +5 -3
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +2 -2
- package/dist/sdk/dependency-flag-validation.d.ts +15 -1
- package/dist/sdk/dependency-flag-validation.js +54 -2
- package/dist/sdk/error-code-catalog.d.ts +13 -0
- package/dist/sdk/error-code-catalog.js +35 -2
- package/dist/sdk/extension.js +18 -17
- package/dist/sdk/files.d.ts +11 -0
- package/dist/sdk/files.js +82 -24
- package/dist/sdk/generated-error-code-catalog.js +104 -13
- package/dist/sdk/governance/assurance-action-contracts.d.ts +7 -0
- package/dist/sdk/governance/assurance-action-contracts.js +5 -0
- package/dist/sdk/governance/assurance-action.d.ts +70 -0
- package/dist/sdk/governance/assurance-action.js +198 -0
- package/dist/sdk/governance/assurance-limits.d.ts +7 -0
- package/dist/sdk/governance/assurance-limits.js +11 -0
- package/dist/sdk/governance/assurance-runtime.d.ts +20 -0
- package/dist/sdk/governance/assurance-runtime.js +131 -0
- package/dist/sdk/governance/assurance.d.ts +432 -0
- package/dist/sdk/governance/assurance.js +689 -0
- package/dist/sdk/governance/health.js +14 -7
- package/dist/sdk/governance/provenance-health.d.ts +13 -0
- package/dist/sdk/governance/provenance-health.js +63 -17
- 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 +15 -6
- package/dist/sdk/graph/run.js +8 -3
- package/dist/sdk/index.d.ts +10 -1
- package/dist/sdk/index.js +12 -3
- package/dist/sdk/lifecycle/claim.js +18 -3
- package/dist/sdk/lifecycle/close.js +17 -14
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +62 -9
- package/dist/sdk/lifecycle/focus.js +13 -3
- package/dist/sdk/lifecycle/plan.js +8 -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 +47 -10
- 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 +28 -16
- package/dist/sdk/merge/receipts.d.ts +3 -0
- package/dist/sdk/merge/receipts.js +81 -17
- package/dist/sdk/output-projection.js +24 -4
- package/dist/sdk/provenance.d.ts +38 -0
- package/dist/sdk/provenance.js +64 -2
- package/dist/sdk/query/context.d.ts +2 -0
- package/dist/sdk/query/context.js +24 -10
- package/dist/sdk/query/light-metadata.d.ts +3 -0
- package/dist/sdk/query/light-metadata.js +19 -0
- package/dist/sdk/runtime-extended-actions.js +22 -5
- package/dist/sdk/runtime-primitives.d.ts +2 -0
- package/dist/sdk/runtime-primitives.js +4 -2
- package/dist/sdk/runtime.d.ts +8 -1
- package/dist/sdk/runtime.js +37 -28
- 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/telemetry.js +7 -4
- package/dist/sdk/traceability/runtime-files-lookup.d.ts +8 -0
- package/dist/sdk/traceability/runtime-files-lookup.js +33 -0
- package/dist/sdk/traceability/source-traceability.d.ts +102 -0
- package/dist/sdk/traceability/source-traceability.js +293 -0
- package/dist/sdk/workspace-snapshot.d.ts +4 -0
- package/dist/sdk/workspace-snapshot.js +24 -11
- package/dist/types.d.ts +8 -2
- package/dist/types.js +2 -2
- package/docs/AGENT_GUIDE.md +3 -1
- package/docs/ASSURANCE.md +132 -0
- package/docs/COMMANDS.md +8 -5
- package/docs/MERGE_SAFETY.md +7 -5
- package/docs/README.md +3 -5
- package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
- package/docs/RELEASING.md +9 -5
- package/docs/SDK.md +44 -8
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +43 -6
- package/docs/SDK_CONTEXT.md +97 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +18 -3
- package/docs/SDK_EVIDENCE_TRACEABILITY.md +39 -1
- package/docs/SDK_RUNTIME_BOUNDARIES.md +36 -1
- package/docs/TESTING.md +12 -9
- package/docs/agent-task-token-baseline.json +2 -2
- package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -0
- package/marketplace.json +2 -2
- package/package.json +7 -6
- 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/extensions/templates/index.ts +9 -3
- 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 +1028 -48
- package/dist/cli-bundle/chunks/chunk-2DTCZXSD.js +0 -13
- package/dist/cli-bundle/chunks/chunk-5JO6R4BS.js +0 -3
- package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +0 -194
- package/dist/cli-bundle/chunks/chunk-EF43KODO.js +0 -2
- package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +0 -28
- package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +0 -2
- package/dist/cli-bundle/chunks/chunk-PYO5GZU6.js +0 -5
- package/dist/cli-bundle/chunks/register-mutation-FC3XLVIK.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-3GSFUDAI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-54TZJ4BM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-C3GCHDSQ.js +0 -31
- package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-P6BBIQRG.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-PZAGVQNN.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-U46GQJNY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-VRXJSGIT.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-XC2ZW3CJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZG54B4XG.js +0 -2
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import{$d as Ge,$g as me,$i as cr,A as m,Ac as Un,Af as Xn,Ag as Ve,C as p,E as R,Eb as Ue,Ed as te,Ef as Jn,Fa as K,Fc as jn,Fd as ue,Ff as ze,Ga as Pe,Gd as Gn,Gg as tr,Hd as Ft,Jg as D,Na as T,Of as Zn,P as M,Pf as qe,Pg as nr,Qa as $,R as v,Ra as Nn,Rd as Hn,S as Rn,T as W,Ta as Dt,Tc as J,Tg as rr,Ug as or,Vc as je,Vg as fe,Wd as Be,Wg as ir,Xb as On,Xd as Ke,Yd as _e,Yg as Ye,Zg as Xe,_g as sr,ah as ar,c as F,cb as Mn,d as Le,e as q,ed as S,fd as I,gd as P,ig as Qn,jg as er,kb as $n,ld as Bn,lf as le,md as Kn,mf as zn,nf as qn,ng as Nt,oc as L,of as Wn,pb as Ln,qf as we,qk as dr,sd as de,sf as Z,ta as ce,tf as Rt,uf as Vn,v as An,xc as At,xf as Yn,ya as Tt,yf as He,z as Fn,za as Oe,zc as Pn,zg as We}from"./chunk-5KN4DZYV.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 df(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 Ff(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 Rf={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 qf(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 Wf(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 rm(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 Em(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 Im(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 Cm(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"],Zm={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 op(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 ip(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 sp(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 lp(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 _p(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 wp(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]="a502be8f-57da-53c2-8de0-118a15688d93")}catch{}})();var sn=1,an=1,Fo=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"];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 Wc(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 Vc(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 Yc(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 Xc(e,t){return{...t,activityDensity:t.activityDensity??Vc(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Yc(e)}}function Jc(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 Zc(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(Jc);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 Qc(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,Xc(e,t)).map(({id:r,signals:o})=>({id:r,signals:Wc(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=Zc(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=Qc(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}}};function ed(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??ed(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 td(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 nd(e,t,n){let r,o;for(let i of t){let s=td(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 Sp(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=nd(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import rd from"node:path";import{createHash as od}from"node:crypto";import id 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,sd=1e4,$o=12;function ad(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function cd(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 dd(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 ud(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=ad(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=cd(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(dd).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function ld(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 fd(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(ld)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function md(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(fd)?t:null}function pd(e){return`scan:${od("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 gd(e,t,n){return n!==void 0?n:(await fe(t))?.source_cursor??pd(e)}async function hd(e){try{let t=md(JSON.parse(await id.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??sd));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await gd(e,t.pmRoot,t.sourceCursor),o=rd.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await hd(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=ud(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 yd(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=yd(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 _d(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 Op(e,t,n=5){let r=_d(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]="dbcd4e0e-3fa0-5ce9-8bbc-6de05779d729")}catch{}})();var wd=["markdown","toon","json","ndjson"],Fe=new Set(["Epic","Feature"]),Go=10,Ho=1e4,zo=["hierarchy","activity","progress","recently_created","unparented","workload"],bd=[...zo,"blockers","files","staleness","tests"],kd=/^(\d{4})-(\d{2})-(\d{2})/,vd=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Ed=/^(\d{4})(\d{2})(\d{2})$/,Id=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function xd(e){if(!e)return;let t=e.trim().toLowerCase();if(!wd.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 Cd(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 Qp(e,t){let n=xd(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 Sd(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 Td(e,t){return t>=Ho&&e===Number.MAX_SAFE_INTEGER?Go:e}function Dd(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 Ad(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"?bd:zo).filter(o=>n.sections[o])}function Fd(e,t){return e?U(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Rd(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 Nd(e,t){return t.blocked_statuses.has(I(e,t))}var Md=["compact","brief","fields","includeBody","include_body","parent"];function $d(e){let t={...e};for(let n of Md)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 Ld(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 Od(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Pd(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 Ud(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function jd(e){let t=kd.exec(e)??vd.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<=Ud(n,r-1)}function Bd(e){let t=Ed.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Id.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||!jd(t))return Number.NaN;let n=Date.parse(Bd(t));return Number.isFinite(n)?n:Number.NaN}function ln(e){let t=Wo(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Kd(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=Od(e.order,t.order);if(i!==0)return i;let s=Pd(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 Gd(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 Hd(e,t){return e.filter(n=>!t.terminal_statuses.has(I(n.item_status,t)))}function zd(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++:Nd(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 qd(e,t){return(await xr({compact:!0,limit:String(e)},t)).compact_activity??[]}function Wd(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 Vd(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 Yd(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 Xd(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 Jd(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 Zd(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 Qd(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 eu(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 tu(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function nu(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 ru(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 ou(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(`- ${nu(n)}`);e.push("")}function iu(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 su(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 au(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)}`:`- ${Kd(o.created_at)} ${Yo(o)}`);e.push("")}}function cu(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 du(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 uu(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 lu(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 fu(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 mu(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 pu(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 gu(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 eg(e){let t=[],n=e.focus_fields,r=i=>n?tu(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),ru(t,e,r),ou(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 iu(t,e),su(t,e),au(t,e,n,r),cu(t,e,r),du(t,e),uu(t,e),lu(t,e),fu(t,e),mu(t,e),pu(t,e),gu(t,e),t.join(`
|
|
11
|
-
`)}async function hu(e,t){let n=T(process.cwd(),t.path),r=await D(n),o=r.context??Fn.context,i=J(r.schema),s=Dd(e.depth,o),a=Sd(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:Ad(e.section,s,o),activityLimit:Fd(e.activityLimit,o),staleThresholdDays:Rd(e.staleThreshold,o),parentScope:Ld(e.parent),focusFields:Cd(e.fields),baseListOptions:$d(e)}}function wn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function yu(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function _u(e,t){let n=wn(t.sectionsIncluded),r=await Ce(void 0,yu(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=wu(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 wu(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 bu(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 ku(e){return Ke("context",Be(e,dr))}function vu(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Ho}async function Eu(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=Hd(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:Gd(a)}}function Ko(e,t,n){let r=String(t);return e.filter(o=>I(o.status,n)===r).length}async function Iu(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")?zd(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await qd(t.activityLimit,a):void 0,progress:u("progress")?Wd(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Vd(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Zd(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Qd(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Yd(i.activeItems,t.limit):void 0,workload:u("workload")?Xd(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Jd(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?eu(i.activeItems):void 0}}function xu(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 Cu(e,t){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)}function Su(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 Tu(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 Du(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 Au(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 Fu(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 tg(e,t){let n=T(process.cwd(),t.path),r=await hu(e,t),o=await _u(t,r),i=Td(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=Fu(e.noExtensionHealth===!0,n,s.settings),d=ve(o.fullCorpus,s.statusRegistry),u=await bu(o.listedItemMetadata,o.allItems,o.fullCorpus,d,s.statusRegistry,s.sectionsIncluded,s.limit,M(),a,e.after,ku(e),vu(e,o.fullCorpus.length),n,s.tokenBudget),l=await Eu(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 Iu({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:d,focusGroups:u,now:l.agenda.now,global:t}),w=xu(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),Cu(_,b),Tu(_,e.noTags===!0),e.explainRanking===!0&&(_.ranking=_n(u.ranking,u.featureStore),_.packing=yn(u.packing)),Su(_,s.focusFields),g.length>0&&(_.warnings=g),Du(_,u.activeItems,u.blockedItems),await Au(_,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 Ru=["markdown","toon","json"],Nu=5,Mu=1440*60*1e3;function $u(e){if(!e)return;let t=e.trim().toLowerCase();if(!Ru.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function fg(e,t){let n=$u(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 Lu(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(Pu(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 mg={partitionCallerOwnedReady:Zo,resolveNextCallerAuthor:(e,t)=>Qo(e,t)};function Ou(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 Pu(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))/Mu);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Uu(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 ju(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 Bu(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Lu(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Ku(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 Gu(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 Hu(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 zu(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=Ku(e.recommended,e.blockedRows),await Hu({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function qu(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 Wu(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 pg(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",Nu),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,ju(e,{excludeTerminal:!0}),t),g=await Ce(void 0,{excludeTerminal:!1,noTruncate:!0},t),h=qu(f.items,g.items,l),y=g.items,b=Ht(h,y,i),w=ge(y),_=Ou(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 Wu(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=Bu({projectedReady:A,readyRows:N,statusRegistry:i,now:s,completedContainer:Q}),xt=Gu(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:Uu(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 zu({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 gg(e){let t=["# pm next","",...Vu(e)];if(t.push(...yt("Recommended",Yu(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=>`- ${Xu(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 Vu(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 Yu(e){return e?[`- ${_t(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function yt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Xu(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",Ju="external";function he(e){let t=e?.trim().toLowerCase();return t===ei||t===Ju}function _g(e){let t=e?.trim();if(t)return he(t)?ei:t}function wg(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 Zu(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 Qu(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 Zu(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 el(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 tl(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 nl(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 rl(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 Ig(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=el(o,t),a=tl(s);for(let f of a)i.set(f.toLowerCase(),f);let c=nl(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:Qu(o,t),legacyAliasCounts:rl(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 ol=5,il=1e4,sl=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 Cg(e,t){let n=$e(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function al(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 cl(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 dl(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=al(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=cl(e,g.id,i,r,o);if(l+=h.inspectedEdges,dl(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 ul(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 Sg(e,t,n={}){return kt(e,t,n,"hierarchy",(r,o)=>bt(r.edge,o)===r.id)}function Tg(e,t,n={}){return kt(e,t,n,"hierarchy",(r,o,i)=>bt(r.edge,o)===i)}function Dg(e,t,n={}){return kt(e,t,n,"ordering",(r,o)=>$e(r.edge,o)===r.id)}function Ag(e,t,n={}){return kt(e,t,n,"ordering",(r,o,i)=>$e(r.edge,o)===i)}function ll(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(ul(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 Fg(e,t,n,r={}){ni(e,t),ni(e,n);let o=r.maxPaths??ol,i=r.maxVisitedPaths??il,s=r.maxDepth??sl;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}}:ll(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 fl=16,ml=2,pl=8;function vt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function gl(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 hl(e,t){let n=new Map;gl(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 yl(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 _l(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 Mg(e,t={}){let n=t.maxIterations??fl,r=t.minSize??ml;vt("maxIterations",n),vt("minSize",r);let o=hl(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=yl(f,s);g!==s.get(l)&&(s.set(l,g),c=!1)}}return{value:{communities:_l(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 wl(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 bl(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 kl(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function vl(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 El(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 vl(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function Il(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=El(e,t,a,o,i,r);if(c!==void 0)return c}}function $g(e,t={}){let n=t.maxDepth??pl;vt("maxDepth",n),t.limit!==void 0&&vt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=wl(e,t.kinds),i=bl(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=kl(u);for(let f of u.records){t.signal?.throwIfAborted();let g=Il(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 xl(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 Cl(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,xl(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Sl(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 Tl(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 Dl(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:Tl(r,o,t,n));return r}function Al(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=Dl(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function Lg(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=Cl(e,t,n),o=Sl(r,t),i=new Map(o.map((d,u)=>[d,u])),s=Al(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 Fl=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 Rl(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 Nl(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 Ml(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 $l(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);Nl(i,o,e,t)||Ml(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 Ll(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 Ol(e,t,n,r){let o=[],i=Rl(e);for(let c of $l(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 Pl(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Ul(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 jl(e,t,n){let r=[],o=[];for(let s of Ul(e))(Tn(s.from,t)||Tn(s.to,t)?r:o).push(Pl(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 Bl(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 Kl(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 Gl(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||Kl(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 Ug(e,t={}){let n=t.isTerminal??(l=>l==="closed"||l==="canceled"),r=t.isBlocked??(l=>l==="blocked"),o=t.maxSampleSize??Fl;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=Ll(e,n,o);t.signal?.throwIfAborted(),d.push(...Ol(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...jl(e,a,o),...Bl(e,o)),t.signal?.throwIfAborted();let u=Gl(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 jg(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 Hl}from"node:crypto";import{setTimeout as zl}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_-]+$/,ql=100,di=1e3,Wl=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 Hl("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??ql;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 Vl(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 Yl(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 Vl(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*Zg(e={}){let t=e.intervalMs??Wl;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 Yl({...e,since:n});if(r.events.length>0){for(let o of r.events)yield o;n=r.next_cursor;continue}try{await zl(t,void 0,{signal:e.signal})}catch(o){if(yi(o))return;throw o}}}var Qg={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 th(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,df as f,pr as g,Ot as h,Ff as i,Rf as j,qf as k,Wf as l,U as m,Ze as n,kr as o,Qe as p,et as q,Ut as r,tt as s,rm 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,Em as L,Im as M,Br as N,Kr as O,Cm as P,hs as Q,Xr as R,qr as S,Wr as T,ys as U,_s as V,Zm as W,Is as X,xs as Y,Cs as Z,Ce as _,op as $,ip as aa,sp 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,lp as na,Sc as oa,vo as pa,G as qa,ft as ra,_p as sa,wp as ta,mt as ua,sn as va,an as wa,Zc as xa,Qc as ya,cn as za,dn as Aa,gt as Ba,No as Ca,Sp as Da,sd as Ea,ud as Fa,Lo as Ga,yd as Ha,Oo as Ia,_d as Ja,Op as Ka,wd as La,Cd as Ma,Ae as Na,Qp as Oa,fn as Pa,Dd as Qa,Ad as Ra,pn as Sa,oe as Ta,hn as Ua,yn as Va,_n as Wa,ge as Xa,Me as Ya,ht as Za,eg as _a,Tu as $a,tg as ab,Ru as bb,fg as cb,mg as db,Ou as eb,pg as fb,gg as gb,ei as hb,Ju as ib,he as jb,_g as kb,wg as lb,vn as mb,ti as nb,Qu as ob,el as pb,tl as qb,Ig as rb,Cg as sb,Sg as tb,Tg as ub,Dg as vb,Ag as wb,Fg as xb,gl as yb,Mg as zb,$g as Ab,Lg as Bb,$l as Cb,Pl as Db,Ul as Eb,Ug as Fb,jg as Gb,th as Hb,Yl as Ib,Zg as Jb,Qg as Kb};
|
|
13
|
-
//# sourceMappingURL=chunk-2DTCZXSD.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{Ia as ie,pa as ae}from"./chunk-GMX5YOI3.js";import{A as s,C as l,Fa as I,Ga as X,Ig as re,Kg as k,Na as b,Pa as J,Qa as Z,Rc as ee,Rf as C,Wb as x,aa as Q,c as w,fi as ne,gg as N,oc as R,ya as P,yg as te}from"./chunk-5KN4DZYV.js";import{execFile as Pe}from"node:child_process";import Ie from"node:path";import{promisify as Re}from"node:util";(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]="cdfc451a-1148-50c5-934a-cd8bc2bb39e7")}catch{}})();var Ne=Re(Pe),Te="@unbrained/pm-cli",$e="latest";function Oe(e){let t=e.project===!0||e.local===!0,r=e.global===!0;if(t&&r)throw new l('Options "--project/--local" and "--global" are mutually exclusive.',s.USAGE);return r?"global":"project"}function S(e){return e.trim().toLowerCase()}function oe(e,t){let r=S(t);return[e.name,e.directory,e.source.input,e.source.location,e.source.package,e.source.repository,e.source.owner&&e.source.repo?`${e.source.owner}/${e.source.repo}`:void 0].some(i=>typeof i=="string"&&S(i)===r)}function Le(e,t){let r=b(process.cwd(),t.path),n=x(r,process.cwd());return{selected_root:e==="global"?n.global:n.project}}async function De(e,t,r){try{let n=await Ne(e,t,{cwd:r?.cwd,encoding:"utf8"});return{stdout:n.stdout,stderr:n.stderr}}catch(n){let i=typeof n=="object"&&n!==null&&"stderr"in n?String(n.stderr??""):"",a=i.trim().length>0?i.trim():n instanceof Error?n.message:String(n);throw new l(`Command failed: ${e} ${t.join(" ")}
|
|
2
|
-
${a}`,s.GENERIC_FAILURE)}}async function Ue(){return Q(import.meta.url,["../../.."])}function A(e){return typeof e.tag=="string"&&e.tag.trim().length>0?e.tag.trim():$e}function E(e){return typeof e.packageName=="string"&&e.packageName.trim().length>0?e.packageName.trim():Te}async function ze(e,t){let r=e.commandRunner??De,n=E(e),i=A(e),a=`${n}@${i}`,o=["npm","install","-g",a];e.repair===!0&&o.push("--force");let _=await Ue(),c={requested:!0,status:"planned",package:n,target:a,command:o,before_version:_,repair:e.repair===!0};if(t)return c;try{await r(o[0],o.slice(1));let f=await r("pm",["--version"]);return{...c,status:"updated",after_version:f.stdout.trim()||void 0}}catch(f){return{...c,status:"failed",error:f instanceof Error?f.message:String(f)}}}function Fe(e){return Ie.isAbsolute(e)||e.startsWith(".")||e.startsWith("..")||e.startsWith("file:")}function je(e,t){if(e.kind==="npm"){let r=e.input.startsWith("npm:")?e.input.slice(4).trim():e.input.trim();return!Fe(r)&&e.package&&e.package.trim().length>0?`npm:${e.package.trim()}@${t}`:e.input.startsWith("npm:")?e.input:`npm:${e.input}`}return e.input}async function Me(e,t){let r=je(e,t);return e.kind!=="local"||await w(r)?r:await w(e.location)?e.location:r}function Ke(e,t,r,n){let i=["pm","install",t,r==="global"?"--global":"--project"];return e.kind==="github"&&n&&n.trim().length>0&&i.push("--ref",n.trim()),i}async function se(e,t){let r=Le(e,t);return(await ae(r.selected_root)).state.entries.filter(i=>i.scope===e)}async function Ve(e,t,r){let n=await se(e,t);return n.find(i=>oe(i,r.name))??n.find(i=>S(i.directory)===S(r.directory))}async function Ye(e,t,r,n,i){let a=A(t),o=await Me(e.source,a),_=Ke(e.source,o,n,e.source.ref),c={name:e.name,directory:e.directory,scope:n,source:e.source,status:"planned",command:_,previous_version:e.manifest_version};if(i)return c;try{await ie(o,{install:!0,project:n==="project",global:n==="global",ref:e.source.kind==="github"?e.source.ref:void 0},r);let f=await Ve(n,r,e);return{...c,status:"updated",installed_version:f?.manifest_version}}catch(f){return{...c,status:"failed",error:f instanceof Error?f.message:String(f)}}}function Be(e,t,r,n){let i=[r?e.status:void 0,...t.map(a=>a.status)].filter(a=>typeof a=="string");return{requested_cli:r,requested_packages:n,planned:i.filter(a=>a==="planned").length,updated:i.filter(a=>a==="updated").length,skipped:i.filter(a=>a==="skipped").length,failed:i.filter(a=>a==="failed").length}}async function Yt(e,t,r){if(t.cliOnly===!0&&t.packagesOnly===!0)throw new l('Options "--cli-only" and "--packages-only" are mutually exclusive.',s.USAGE);let n=Oe(t),i=t.dryRun===!0,a=typeof e=="string"&&e.trim().length>0?e.trim():void 0;if(t.cliOnly===!0&&a)throw new l('A package target cannot be used with "--cli-only".',s.USAGE);let o=!(t.packagesOnly===!0||a),_=t.cliOnly!==!0,c=o?await ze(t,i):{requested:!1,status:"skipped",package:E(t),target:`${E(t)}@${A(t)}`,command:["npm","install","-g",`${E(t)}@${A(t)}`],repair:t.repair===!0,reason:"not_requested"},f=_?await se(n,r):[];if(a&&(f=f.filter(h=>oe(h,a)),f.length===0))throw new l(`Managed package "${a}" was not found in ${n} scope.`,s.NOT_FOUND);let m=[];for(let h of f)m.push(await Ye(h,t,r,n,i));let y=Be(c,m,o,_);return{ok:y.failed===0,action:"upgrade",dry_run:i,scope:n,target:a,cli:c,packages:m,summary:y}}(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]="4f4f5f10-793d-5baa-8985-c0ec855b16c4")}catch{}})();var le=new Set(["item_format"]),ce=new Set(["definition_of_done","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"]),We=new Set(["history_missing_stream_policy","sprint_release_format_policy","parent_reference_policy","metadata_validation_profile","governance_preset","governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default","governance_require_close_reason","governance_create_default_type","governance_workflow_enforcement","governance_parent_reference_policy","governance_metadata_validation_profile","governance_force_required_for_stale_lock","test_result_tracking","telemetry_tracking"]),He=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock","test_result_tracking","telemetry_tracking"]),Qe={off:"disabled",on:"enabled",true:"enabled",false:"disabled",enabled:"enabled",disabled:"disabled"};function Xe(e){let t=e.trim().toLowerCase().replaceAll("-","_");if(le.has(t)||ce.has(t)||We.has(t)||t==="context")return t}function Je(e){let t=e.trim().toLowerCase();return Qe[t]??e}function _e(e,t){let r=Xe(e);return r===void 0?{routable:!1,reason:`Unknown config key "${e}" cannot route a positional value.`}:r==="context"?{routable:!1,reason:"Config set context does not accept a positional value. Use --default-depth, --activity-limit, --stale-threshold-days, or --section-<name> flags."}:le.has(r)?{routable:!0,flag:"format",value:t}:ce.has(r)?{routable:!0,flag:"criterion",values:[t]}:{routable:!0,flag:"policy",value:He.has(r)?Je(t):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]="b4af534e-32f9-5271-b6f1-7d901c282de0")}catch{}})();var q=[{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:!0,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:!0,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:!0,summary:"Default author recorded on mutations when --author is not supplied."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Bounded jittered wait in milliseconds before a contended item mutation fails with lock_conflict; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}],Ze=new Map(q.flatMap(e=>[[e.key,e],[e.path.toLowerCase().replaceAll("-","_"),e]]));function fe(e){if(typeof e!="string")return;let t=e.trim().toLowerCase().replaceAll("-","_");if(t.length!==0)return Ze.get(t)}function xe(e,t){let r=t.trim().toLowerCase();return r==="true"||r==="1"||r==="yes"||r==="on"?{ok:!0,parsed:{descriptor:e,value:!0}}:r==="false"||r==="0"||r==="no"||r==="off"?{ok:!0,parsed:{descriptor:e,value:!1}}:{ok:!1,error:{message:`Config set ${e.key} requires a boolean value (true|false), got "${t}"`}}}function et(e,t,r){return e.non_empty===!0&&r.length===0?{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}}:e.choices&&!e.choices.includes(r)?{ok:!1,error:{message:`Config set ${e.key} must be one of ${e.choices.join("|")}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:r}}}function tt(e,t,r){if(r.length===0)return{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}};let n=Number(r);return Number.isFinite(n)?{ok:!0,value:n}:{ok:!1,error:{message:`Config set ${e.key} requires a finite number, got "${t}"`}}}function rt(e,t,r){return!Number.isInteger(r)||r<0?{ok:!1,error:{message:`Config set ${e.key} requires a non-negative integer, got "${t}"`}}:e.min!==void 0&&r<e.min?{ok:!1,error:{message:`Config set ${e.key} requires an integer >= ${e.min}, got "${t}" (the runtime silently ignores 0 here and falls back to the default)`}}:e.max!==void 0&&r>e.max?{ok:!1,error:{message:`Config set ${e.key} requires an integer <= ${e.max}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:r}}}function nt(e,t,r){return r<0||r>1?{ok:!1,error:{message:`Config set ${e.key} requires a number in [0, 1], got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:r}}}function at(e,t,r){return e.min!==void 0&&r<e.min?{ok:!1,error:{message:`Config set ${e.key} requires a number >= ${e.min}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:r}}}function de(e,t){if(typeof t!="string")return{ok:!1,error:{message:`Config set ${e.key} requires a string value`}};let r=t.trim();if(e.kind==="boolean")return xe(e,t);if(e.kind==="string")return et(e,t,r);let n=tt(e,t,r);return n.ok?e.kind==="integer"?rt(e,t,n.value):e.kind==="ratio"?nt(e,t,n.value):at(e,t,n.value):{ok:!1,error:n.error}}function T(e,t){let r=t.path.split("."),n=e;for(let i of r){if(typeof n!="object"||n===null)return null;n=n[i]}return typeof n=="string"||typeof n=="number"||typeof n=="boolean"?n:null}function ue(e,t,r){let n=t.path.split("."),i=e;for(let _=0;_<n.length-1;_+=1){let c=n[_],f=i[c];if(typeof f!="object"||f===null||Array.isArray(f)){let m={};i[c]=m,i=m}else i=f}let a=n[n.length-1];return i[a]===r?!1:(i[a]=r,!0)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2a186a29-9d21-5ebe-9c66-3e889253b15b")}catch{}})();var me=["project","global"],p={definition_of_done:["definition-of-done","definition_of_done"],item_format:["item-format","item_format"],history_missing_stream_policy:["history-missing-stream-policy","history_missing_stream_policy"],sprint_release_format_policy:["sprint-release-format-policy","sprint_release_format_policy"],parent_reference_policy:["parent-reference-policy","parent_reference_policy"],metadata_validation_profile:["metadata-validation-profile","metadata_validation_profile"],metadata_required_fields:["metadata-required-fields","metadata_required_fields"],lifecycle_stale_blocker_reason_patterns:["lifecycle-stale-blocker-reason-patterns","lifecycle_stale_blocker_reason_patterns"],lifecycle_closure_like_blocked_reason_patterns:["lifecycle-closure-like-blocked-reason-patterns","lifecycle_closure_like_blocked_reason_patterns"],lifecycle_closure_like_resolution_patterns:["lifecycle-closure-like-resolution-patterns","lifecycle_closure_like_resolution_patterns"],lifecycle_closure_like_actual_result_patterns:["lifecycle-closure-like-actual-result-patterns","lifecycle_closure_like_actual_result_patterns"],governance_preset:["governance-preset","governance_preset"],governance_ownership_enforcement:["governance-ownership-enforcement","governance_ownership_enforcement"],governance_create_mode_default:["governance-create-mode-default","governance_create_mode_default"],governance_close_validation_default:["governance-close-validation-default","governance_close_validation_default"],governance_require_close_reason:["governance-require-close-reason","governance_require_close_reason"],governance_create_default_type:["governance-create-default-type","governance_create_default_type"],governance_workflow_enforcement:["governance-workflow-enforcement","governance_workflow_enforcement"],governance_parent_reference_policy:["governance-parent-reference-policy","governance_parent_reference_policy"],governance_metadata_validation_profile:["governance-metadata-validation-profile","governance_metadata_validation_profile"],governance_force_required_for_stale_lock:["governance-force-required-for-stale-lock","governance_force_required_for_stale_lock"],test_result_tracking:["test-result-tracking","test_result_tracking"],telemetry_tracking:["telemetry-tracking","telemetry_tracking"],context:["context"]},it=Object.keys(p).map(e=>p[e][0]),ot=Object.fromEntries(Object.keys(p).flatMap(e=>p[e].map(t=>[t,e]))),st={definition_of_done:"Definition of Done criteria list.",item_format:"Default item file format.",history_missing_stream_policy:"Missing history stream handling policy.",sprint_release_format_policy:"Sprint/release format validation policy.",parent_reference_policy:"Parent reference validation policy.",metadata_validation_profile:"Validate metadata profile policy (core|strict|custom).",metadata_required_fields:"Validate custom metadata required-fields list.",lifecycle_stale_blocker_reason_patterns:"Validate lifecycle stale-blocker reason substring patterns (criteria list).",lifecycle_closure_like_blocked_reason_patterns:"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).",lifecycle_closure_like_resolution_patterns:"Validate lifecycle closure-like resolution substring patterns (criteria list).",lifecycle_closure_like_actual_result_patterns:"Validate lifecycle closure-like actual_result substring patterns (criteria list).",governance_preset:"Governance preset policy (minimal|default|strict|custom).",governance_ownership_enforcement:"Governance ownership enforcement policy (none|warn|strict).",governance_create_mode_default:"Governance default create mode (progressive|strict).",governance_close_validation_default:"Governance default close validation mode (off|warn|strict).",governance_require_close_reason:"Governance close-reason requirement policy (enabled|disabled).",governance_create_default_type:"Governance default item type for `pm create` when --type is omitted.",governance_workflow_enforcement:"Governance per-type transition enforcement mode (off|warn|strict).",governance_parent_reference_policy:"Governance parent reference policy (warn|strict_error).",governance_metadata_validation_profile:"Governance metadata validation profile (core|strict|custom).",governance_force_required_for_stale_lock:"Governance stale-lock force policy (enabled|disabled).",test_result_tracking:"Item-level linked test result persistence policy.",telemetry_tracking:"Telemetry usage reporting policy.",context:"Context command settings (depth, section toggles, limits)."},lt=["lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"],ct=new Set(["metadata_required_fields",...lt]),_t=new Set(["test_result_tracking","telemetry_tracking"]),ft=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock"]),dt=new Set(["governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default"]),ut=new Set(["governance_parent_reference_policy","governance_metadata_validation_profile","governance_workflow_enforcement"]),mt=new Set(["governance_preset","governance_create_default_type"]),ye=e=>ct.has(e),gt=e=>dt.has(e),pt=e=>ut.has(e),yt=e=>mt.has(e);function $(e){return e==="definition_of_done"||ye(e)}function he(e){if(me.includes(e))return e;throw new l(`Invalid config scope "${e}". Allowed: ${me.join(", ")}`,s.USAGE)}function ve(e){if(e==="get"||e==="set"||e==="list"||e==="export")return e;throw new l(`Invalid config action "${e}". Allowed: get, set, list, export`,s.USAGE)}function we(e){let t=ot[e];if(t)return t;let r=q.map(n=>n.key).join(", ");throw new l(`Invalid config key "${e}". Supported: ${it.join(", ")} (underscore variants also accepted). Nested leaf settings: ${r}.`,s.USAGE)}function ke(e,t){let r=[...new Set((e??[]).map(n=>n.trim()).filter(n=>n.length>0))].sort((n,i)=>n.localeCompare(i));if(t){if(r.length>0)throw new l("Config set definition-of-done cannot combine --clear-criteria with --criterion values",s.USAGE);return[]}if(r.length===0)throw new l("Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)",s.USAGE);return r}function be(e){let t=e?.trim().toLowerCase();if(t==="toon")return"toon";throw t==="json_markdown"?new l("Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.",s.USAGE):new l("Config set item-format requires --format toon",s.USAGE)}function U(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="auto_create"||t==="strict_error")return t;throw new l("Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error",s.USAGE)}function z(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set test-result-tracking requires --policy with one of: enabled, disabled",s.USAGE)}function F(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set telemetry-tracking requires --policy with one of: enabled, disabled",s.USAGE)}function G(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="core"||t==="strict"||t==="custom")return t;throw new l("Config set metadata-validation-profile requires --policy with one of: core, strict, custom",s.USAGE)}function j(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="minimal"||t==="default"||t==="strict"||t==="custom")return t;throw new l("Config set governance-preset requires --policy with one of: minimal, default, strict, custom",s.USAGE)}function M(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="none"||t==="warn"||t==="strict")return t;throw new l("Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict",s.USAGE)}function K(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="progressive"||t==="strict")return t;throw new l("Config set governance-create-mode-default requires --policy with one of: progressive, strict",s.USAGE)}function V(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="off"||t==="warn"||t==="strict")return t;if(t==="none"||t==="disabled")return"off";throw new l("Config set governance-close-validation-default requires --policy with one of: off, warn, strict",s.USAGE)}function Y(e){let t=typeof e=="string"?e.trim().toLowerCase().replaceAll("-","_"):void 0;if(t==="off"||t==="warn"||t==="strict")return t;if(t==="none"||t==="disabled")return"off";throw new l("Config set governance-workflow-enforcement requires one of: off, warn, strict",s.USAGE)}function B(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled",s.USAGE)}function W(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set governance-require-close-reason requires --policy with one of: enabled, disabled",s.USAGE)}function O(e,t){switch(e){case"history_missing_stream_policy":return U(t);case"sprint_release_format_policy":return N(t);case"parent_reference_policy":case"governance_parent_reference_policy":return C(t);case"metadata_validation_profile":case"governance_metadata_validation_profile":return G(t);case"governance_preset":return j(t);case"governance_ownership_enforcement":return M(t);case"governance_create_mode_default":return K(t);case"governance_close_validation_default":return V(t);case"governance_require_close_reason":return W(t);case"governance_workflow_enforcement":return Y(t);case"governance_force_required_for_stale_lock":return B(t);case"test_result_tracking":return z(t);case"telemetry_tracking":return F(t);default:return t.trim().toLowerCase().replaceAll("-","_")}}var ge={author:"author",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",estimate:"estimated_minutes",close_reason:"close_reason","close-reason":"close_reason",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release"},ht=["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"];function Ce(e,t){let r=[...new Set((e??[]).map(a=>a.trim()).filter(a=>a.length>0))];if(t){if(r.length>0)throw new l("Config set metadata-required-fields cannot combine --clear-criteria with --criterion values",s.USAGE);return[]}if(r.length===0)throw new l("Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)",s.USAGE);let n=r.map(a=>a.toLowerCase().replaceAll("-","_")),i=n.filter(a=>ge[a]===void 0);if(i.length>0)throw new l(`Config set metadata-required-fields received unsupported values: ${i.join(", ")}. Supported values: ${ht.join(", ")}`,s.USAGE);return[...new Set(n.map(a=>ge[a]))].sort((a,o)=>a.localeCompare(o))}function vt(e,t,r){let n=[...new Set((t??[]).map(i=>i.trim().toLowerCase()).filter(i=>i.length>0))].sort((i,a)=>i.localeCompare(a));if(r){if(n.length>0)throw new l(`Config set ${p[e][0]} cannot combine --clear-criteria with --criterion values`,s.USAGE);return[]}if(n.length===0)throw new l(`Config set ${p[e][0]} requires at least one --criterion value (or --clear-criteria to clear)`,s.USAGE);return n}function Ee(e){return[...new Set(e)].sort((t,r)=>t.localeCompare(r))}function wt(e,t){if(e==="list"||e==="export"){if(typeof t=="string"&&t.trim().length>0)throw new l(`Config action "${e}" does not accept <key>`,s.USAGE);return}if(typeof t!="string"||t.trim().length===0)throw new l(`Config action "${e}" requires <key>`,s.USAGE);return we(t)}function Se(e){if(!e)throw new l("Config action requires <key>",s.USAGE)}var kt={definition_of_done:e=>[...e.workflow.definition_of_done],item_format:e=>e.item_format,history_missing_stream_policy:e=>e.history.missing_stream,sprint_release_format_policy:e=>e.validation.sprint_release_format,parent_reference_policy:e=>e.validation.parent_reference,metadata_validation_profile:e=>e.validation.metadata_profile,metadata_required_fields:e=>[...e.validation.metadata_required_fields],lifecycle_stale_blocker_reason_patterns:e=>[...e.validation.lifecycle_stale_blocker_reason_patterns],lifecycle_closure_like_blocked_reason_patterns:e=>[...e.validation.lifecycle_closure_like_blocked_reason_patterns],lifecycle_closure_like_resolution_patterns:e=>[...e.validation.lifecycle_closure_like_resolution_patterns],lifecycle_closure_like_actual_result_patterns:e=>[...e.validation.lifecycle_closure_like_actual_result_patterns],governance_preset:e=>e.governance.preset,governance_ownership_enforcement:e=>e.governance.ownership_enforcement,governance_create_mode_default:e=>e.governance.create_mode_default,governance_close_validation_default:e=>e.governance.close_validation_default,governance_require_close_reason:e=>e.governance.require_close_reason?"enabled":"disabled",governance_create_default_type:e=>e.governance.create_default_type??"",governance_workflow_enforcement:e=>e.governance.workflow_enforcement??"off",governance_parent_reference_policy:e=>e.governance.parent_reference,governance_metadata_validation_profile:e=>e.governance.metadata_profile,governance_force_required_for_stale_lock:e=>e.governance.force_required_for_stale_lock?"enabled":"disabled",test_result_tracking:e=>e.testing.record_results_to_items?"enabled":"disabled",telemetry_tracking:e=>e.telemetry.enabled?"enabled":"disabled",context:e=>({default_depth:e.context.default_depth,activity_limit:e.context.activity_limit,stale_threshold_days:e.context.stale_threshold_days,sections:{...e.context.sections}})};function H(e,t){return kt[t](e)}function g(e,t){return t.length===0?e:{...e,warnings:t}}async function bt(e,t){let r=process.cwd(),n=e==="project"?b(r,t.path):J(r),i=Z(n);if(e==="project"&&!await w(i))throw new l(`Tracker is not initialized at ${n}. Run pm init first.`,s.NOT_FOUND);return{pmRoot:n,settingsPath:i}}function Ct(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="true"||t==="enabled"||t==="on"||t==="1")return!0;if(t==="false"||t==="disabled"||t==="off"||t==="0")return!1;throw new l(`Context section toggle must be true|false|enabled|disabled, got "${e}"`,s.USAGE)}function pe(e,t){let r=e.trim(),n=Number(r);if(/^\d+$/u.test(r)&&Number.isSafeInteger(n)&&n>0)return n;throw new l(`Context ${t} must be a positive integer`,s.USAGE)}async function Et(e,t,r,n,i){let a=!1,o=e.context;if(t.defaultDepth!==void 0){let c=t.defaultDepth.trim().toLowerCase();if(!P.includes(c))throw new l(`Context --default-depth must be one of ${P.join("|")}`,s.USAGE);o.default_depth!==c&&(o.default_depth=c,a=!0)}if(t.activityLimit!==void 0){let c=pe(t.activityLimit,"--activity-limit");o.activity_limit!==c&&(o.activity_limit=c,a=!0)}if(t.staleThresholdDays!==void 0){let c=pe(t.staleThresholdDays,"--stale-threshold-days");o.stale_threshold_days!==c&&(o.stale_threshold_days=c,a=!0)}let _=[["hierarchy",t.sectionHierarchy],["activity",t.sectionActivity],["progress",t.sectionProgress],["blockers",t.sectionBlockers],["files",t.sectionFiles],["workload",t.sectionWorkload],["staleness",t.sectionStaleness],["tests",t.sectionTests]];for(let[c,f]of _){let m=Ct(f);if(m!==void 0){let y=c;o.sections[y]!==m&&(o.sections[y]=m,a=!0)}}return a&&await k(r.pmRoot,e,"config:set:context"),g({scope:n,key:"context",context_settings:{default_depth:o.default_depth,activity_limit:o.activity_limit,stale_threshold_days:o.stale_threshold_days,sections:{...o.sections}},settings_path:r.settingsPath,changed:a},i)}function St(e,t,r){if(r.value!==void 0&&r.value!==t)throw new l(`Config set ${e} received both positional value "${t}" and --value "${r.value}". Pass only one.`,s.USAGE);return{...r,value:t}}function Ae(e,t,r,n,i,a){if(i===void 0)return a;if(e!=="set")throw new l(`Config action "${e}" does not accept a positional value. Only "set" takes <value>.`,s.USAGE);if(typeof t!="string"||t.trim().length===0)throw new l('Config action "set" requires <key> before a positional <value>.',s.USAGE);if(n)return St(t,i,a);Se(r);let o=_e(r,i);if(!o.routable)throw new l(o.reason,s.USAGE);if(o.flag==="criterion"){if(a.criterion!==void 0&&a.criterion.length>0)throw new l(`Config set ${t} received both positional value "${i}" and --criterion. Pass criteria via --criterion only when supplying more than one value.`,s.USAGE);return{...a,criterion:o.values}}if(o.flag==="format")return{...a,format:o.value};if(a.policy!==void 0&&O(r,a.policy)!==O(r,o.value))throw new l(`Config set ${t} received both positional value "${i}" and --policy "${a.policy}". Pass only one.`,s.USAGE);return{...a,policy:o.value}}function At(e){let t=Object.keys(p).map(n=>({key:n,aliases:p[n],value_kind:n==="context"?"object":$(n)?"string_array":"enum",set_flags:n==="context"?["--default-depth","--activity-limit","--stale-threshold-days","--section-<name>"]:$(n)?["--criterion","--clear-criteria"]:n==="item_format"?["--format"]:["--policy"],summary:st[n],value:H(e.settings,n)})),r=q.map(n=>({key:n.key,canonical_key:n.key.replaceAll("_","-"),path:n.path,kind:n.kind,value:T(e.settings,n),summary:n.summary,...n.choices?{choices:[...n.choices]}:{},...n.min===void 0?{}:{min:n.min},...n.max===void 0?{}:{max:n.max}}));return g({scope:e.scope,keys:t,nested_settings:r,count:t.length,settings_path:e.target.settingsPath,changed:!1},e.warnings)}function qt(e){let t=Object.fromEntries(Object.keys(p).map(r=>[r,H(e.settings,r)]));return g({scope:e.scope,values:t,settings_path:e.target.settingsPath,changed:!1},e.warnings)}function Gt(e,t){let r=H(e.settings,t),n={scope:e.scope,key:t,settings_path:e.target.settingsPath,changed:!1};return t==="item_format"?g({...n,format:e.settings.item_format,has_explicit_item_format:e.metadata.has_explicit_item_format},e.warnings):t==="context"?g({...n,context_settings:r},e.warnings):Array.isArray(r)?g({...n,criteria:r},e.warnings):g({...n,policy:r},e.warnings)}async function Pt(e,t,r,n){if(t==="get"){let _=T(e.settings,r);return g({scope:e.scope,key:r.key,nested_setting:{key:r.key,path:r.path,kind:r.kind,value:_},settings_path:e.target.settingsPath,changed:!1},e.warnings)}let i=n.value;if(typeof i!="string")throw new l(`Config set ${r.key} requires a value. Pass it positionally (\`pm config ${e.scope} set ${r.key} <value>\`) or via --value.`,s.USAGE);let a=de(r,i);if(!a.ok)throw new l(a.error.message,s.USAGE);let o=ue(e.settings,r,a.parsed.value);return o&&await k(e.target.pmRoot,e.settings,`config:set:${r.path}`),g({scope:e.scope,key:r.key,nested_setting:{key:r.key,path:r.path,kind:r.kind,value:a.parsed.value},settings_path:e.target.settingsPath,changed:o},e.warnings)}async function d(e,t,r){t&&await k(e.target.pmRoot,e.settings,r)}function L(e,t,r){return e!==r||t!==r}function u(e,t,r,n){return g({scope:e.scope,key:t,policy:r,settings_path:e.target.settingsPath,changed:n},e.warnings)}function D(e,t,r,n){return g({scope:e.scope,key:t,criteria:r,settings_path:e.target.settingsPath,changed:n},e.warnings)}async function It(e,t){let r=be(t.format),n=e.settings.item_format!==r||!e.metadata.has_explicit_item_format,i;if(n){let a=I(e.settings,R()),o=await ne(e.target.pmRoot,r,"config:set:item_format:migrate",a.type_to_folder,e.settings.schema);i={target_format:o.target_format,scanned:o.scanned,migrated:o.migrated,removed:o.removed,warnings:o.warnings},e.settings.item_format=r,await k(e.target.pmRoot,e.settings,"config:set:item_format")}return g({scope:e.scope,key:"item_format",format:e.settings.item_format,has_explicit_item_format:!0,migration:i,settings_path:e.target.settingsPath,changed:n},e.warnings)}async function Rt(e,t,r){if(t==="history_missing_stream_policy"){let a=U(r.policy),o=e.settings.history.missing_stream!==a;return e.settings.history.missing_stream=a,await d(e,o,"config:set:history_missing_stream_policy"),u(e,t,e.settings.history.missing_stream,o)}if(t==="sprint_release_format_policy"){let a=N(r.policy),o=e.settings.validation.sprint_release_format!==a;return e.settings.validation.sprint_release_format=a,await d(e,o,"config:set:sprint_release_format_policy"),u(e,t,e.settings.validation.sprint_release_format,o)}if(t==="parent_reference_policy"){let a=C(r.policy),o=e.settings.validation.parent_reference!==a||e.settings.governance.preset!=="custom"||e.settings.governance.parent_reference!==a;return e.settings.validation.parent_reference=a,e.settings.governance.preset="custom",e.settings.governance.parent_reference=a,await d(e,o,"config:set:parent_reference_policy"),u(e,t,e.settings.validation.parent_reference,o)}let n=G(r.policy),i=e.settings.validation.metadata_profile!==n||e.settings.governance.preset!=="custom"||e.settings.governance.metadata_profile!==n;return e.settings.validation.metadata_profile=n,e.settings.governance.preset="custom",e.settings.governance.metadata_profile=n,await d(e,i,"config:set:metadata_validation_profile"),u(e,t,e.settings.validation.metadata_profile,i)}async function Nt(e,t,r){if(t==="metadata_required_fields"){let _=Ce(r.criterion,r.clearCriteria),c=_.length!==e.settings.validation.metadata_required_fields.length||_.some((f,m)=>f!==e.settings.validation.metadata_required_fields[m]);return e.settings.validation.metadata_required_fields=_,await d(e,c,"config:set:metadata_required_fields"),D(e,t,[...e.settings.validation.metadata_required_fields],c)}let i={lifecycle_stale_blocker_reason_patterns:e.settings.validation.lifecycle_stale_blocker_reason_patterns,lifecycle_closure_like_blocked_reason_patterns:e.settings.validation.lifecycle_closure_like_blocked_reason_patterns,lifecycle_closure_like_resolution_patterns:e.settings.validation.lifecycle_closure_like_resolution_patterns,lifecycle_closure_like_actual_result_patterns:e.settings.validation.lifecycle_closure_like_actual_result_patterns}[t],a=vt(t,r.criterion,r.clearCriteria),o=a.length!==i.length||a.some((_,c)=>_!==i[c]);return i.splice(0,i.length,...a),await d(e,o,`config:set:${t}`),D(e,t,[...i],o)}async function Tt(e,t,r){if(t==="governance_preset"){let c=j(r.policy),f=e.settings.governance.preset!==c;return e.settings.governance.preset=c,await d(e,f,"config:set:governance_preset"),u(e,t,e.settings.governance.preset,f)}let n=typeof r.policy=="string",i=n?r.policy.trim():"";if(n&&i.length===0){let c=e.settings.governance.create_default_type!==void 0;return delete e.settings.governance.create_default_type,await d(e,c,"config:set:governance_create_default_type"),u(e,t,e.settings.governance.create_default_type??"",c)}if(i.length===0)throw new l('Config set governance-create-default-type requires an item type value (or an empty value "" to clear it)',s.USAGE);let a=I(e.settings,R()),o=X(i,a);if(!o)throw new l(te(i,a.types,ee(e.target.pmRoot,e.settings.schema)),s.USAGE);let _=e.settings.governance.create_default_type!==o;return e.settings.governance.create_default_type=o,await d(e,_,"config:set:governance_create_default_type"),u(e,t,e.settings.governance.create_default_type,_)}async function $t(e,t,r){if(t==="governance_ownership_enforcement"){let a=M(r.policy),o=e.settings.governance.preset!=="custom"||e.settings.governance.ownership_enforcement!==a;return e.settings.governance.preset="custom",e.settings.governance.ownership_enforcement=a,await d(e,o,"config:set:governance_ownership_enforcement"),u(e,t,e.settings.governance.ownership_enforcement,o)}if(t==="governance_create_mode_default"){let a=K(r.policy),o=e.settings.governance.preset!=="custom"||e.settings.governance.create_mode_default!==a;return e.settings.governance.preset="custom",e.settings.governance.create_mode_default=a,await d(e,o,"config:set:governance_create_mode_default"),u(e,t,e.settings.governance.create_mode_default,o)}let n=V(r.policy),i=e.settings.governance.preset!=="custom"||e.settings.governance.close_validation_default!==n;return e.settings.governance.preset="custom",e.settings.governance.close_validation_default=n,await d(e,i,"config:set:governance_close_validation_default"),u(e,t,e.settings.governance.close_validation_default,i)}async function Ot(e,t,r){if(t==="governance_parent_reference_policy"){let a=C(r.policy),o=e.settings.governance.preset!=="custom"||L(e.settings.governance.parent_reference,e.settings.validation.parent_reference,a);return e.settings.governance.preset="custom",e.settings.governance.parent_reference=a,e.settings.validation.parent_reference=a,await d(e,o,"config:set:governance_parent_reference_policy"),u(e,t,e.settings.governance.parent_reference,o)}if(t==="governance_metadata_validation_profile"){let a=G(r.policy),o=e.settings.governance.preset!=="custom"||L(e.settings.governance.metadata_profile,e.settings.validation.metadata_profile,a);return e.settings.governance.preset="custom",e.settings.governance.metadata_profile=a,e.settings.validation.metadata_profile=a,await d(e,o,"config:set:governance_metadata_validation_profile"),u(e,t,e.settings.governance.metadata_profile,o)}let n=Y(r.policy),i=(e.settings.governance.workflow_enforcement??"off")!==n;return e.settings.governance.workflow_enforcement=n,await d(e,i,"config:set:governance_workflow_enforcement"),u(e,t,e.settings.governance.workflow_enforcement,i)}async function Lt(e,t,r){if(t==="governance_require_close_reason"){let _=W(r.policy)==="enabled",c=e.settings.governance.require_close_reason!==_;return e.settings.governance.require_close_reason=_,await d(e,c,"config:set:governance_require_close_reason"),u(e,t,e.settings.governance.require_close_reason?"enabled":"disabled",c)}let i=B(r.policy)==="enabled",a=e.settings.governance.preset!=="custom"||e.settings.governance.force_required_for_stale_lock!==i;return e.settings.governance.preset="custom",e.settings.governance.force_required_for_stale_lock=i,await d(e,a,"config:set:governance_force_required_for_stale_lock"),u(e,t,e.settings.governance.force_required_for_stale_lock?"enabled":"disabled",a)}async function Dt(e,t,r){if(t==="test_result_tracking"){let _=z(r.policy)==="enabled",c=e.settings.testing.record_results_to_items!==_;return e.settings.testing.record_results_to_items=_,await d(e,c,"config:set:test_result_tracking"),u(e,t,e.settings.testing.record_results_to_items?"enabled":"disabled",c)}let i=F(r.policy)==="enabled",a=e.settings.telemetry.enabled!==i||!e.settings.telemetry.first_run_prompt_completed;return e.settings.telemetry.enabled=i,e.settings.telemetry.first_run_prompt_completed=!0,await d(e,a,"config:set:telemetry_tracking"),u(e,t,e.settings.telemetry.enabled?"enabled":"disabled",a)}async function Ut(e,t,r){let n=ke(r.criterion,r.clearCriteria),i=n.length!==e.settings.workflow.definition_of_done.length||n.some((a,o)=>a!==e.settings.workflow.definition_of_done[o]);return e.settings.workflow.definition_of_done=n,await d(e,i,"config:set:definition_of_done"),D(e,t,[...e.settings.workflow.definition_of_done],i)}async function zt(e,t,r){if(r.clearCriteria===!0&&!$(t))throw new l("--clear-criteria is only supported with config set criteria-list keys",s.USAGE);return t==="item_format"?It(e,r):t==="context"?Et(e.settings,r,e.target,e.scope,e.warnings):t==="definition_of_done"?Ut(e,t,r):ye(t)?Nt(e,t,r):_t.has(t)?Dt(e,t,r):ft.has(t)?Lt(e,t,r):gt(t)?$t(e,t,r):pt(t)?Ot(e,t,r):yt(t)?Tt(e,t,r):Rt(e,t,r)}async function _r(e,t,r,n,i,a){let o=he(e),_=ve(t),c=_==="get"||_==="set"?fe(r):void 0,f=c?void 0:wt(_,r),m=Ae(_,r,f,c,a,n),y=await bt(o,i),{settings:h,metadata:qe,warnings:Ge}=await re(y.pmRoot),v={scope:o,target:y,settings:h,metadata:qe,warnings:Ee(Ge)};return c?Pt(v,_,c,m):_==="list"?At(v):_==="export"?qt(v):(Se(f),_==="get"?Gt(v,f):zt(v,f,m))}var fr={hasGovernanceValidationMirrorChange:L,applyPositionalValue:Ae,normalizeAction:ve,normalizeCriteria:ke,normalizeGovernanceCloseValidationDefault:V,normalizeGovernanceCreateModeDefault:K,normalizeGovernanceForceRequiredForStaleLockPolicy:B,normalizeGovernanceOwnershipEnforcement:M,normalizeGovernancePreset:j,normalizeGovernanceRequireCloseReasonPolicy:W,normalizeGovernanceWorkflowEnforcement:Y,normalizeHistoryMissingStreamPolicy:U,normalizeItemFormat:be,normalizeKey:we,normalizeMetadataRequiredFields:Ce,normalizePolicyForConflict:O,normalizeScope:he,normalizeTelemetryTrackingPolicy:F,normalizeTestResultTrackingPolicy:z,normalizeValidateMetadataProfile:G,normalizeWarnings:Ee};export{Yt as a,fe as b,de as c,T as d,ue as e,_r as f,fr as g};
|
|
3
|
-
//# sourceMappingURL=chunk-5JO6R4BS.js.map
|