@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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{a as ti,e as ii}from"./chunk-55BIB6DV.js";import{b as ni,e as Jt,f as rt,g as ri}from"./chunk-4H5IA6AV.js";import{a as Ur,c as Kr,d as Br,g as Gr}from"./chunk-23FTGO3W.js";import{B as zr,C as he,E as te,F as ge,G as ye,H as Vr,K as Yr,L as nt,M as Xr,N as Vt,O as Yt,P as Xt,Q as Qr,U as Jr,V as Qt,ca as Zr,e as qr,f as Hr,g as zt,h as Wr,la as _e,ua as ei}from"./chunk-FPSYO5ZG.js";import{Fa as hr,f as mr,xa as pr}from"./chunk-4AHEC74N.js";import{A as br,B as kr,C as vr,D as Sr,Ea as Fr,Ga as Ar,H as Ce,Ia as Ht,La as Wt,M as Er,Ma as Mr,T as ee,U as D,Ua as T,V as S,W as et,Wa as Rr,X as U,Xa as Dr,Y as xr,_a as Lr,ab as Or,eb as Nr,gb as fe,ha as C,ia as M,ib as $r,ja as K,jb as me,k as F,kb as pe,lb as tt,ma as Cr,mb as J,nb as Pr,p as xe,pa as V,pb as jr,q as yr,t as _r,wa as Tr,xa as Ir,z as wr}from"./chunk-ERAAFLPS.js";import{Da as fr,E as O,F as Xe,K as E,M as cr,N as $,O as qt,Q as Qe,Qa as P,Sa as B,T as Se,U as R,Z as dr,_ as ur,a as rr,h as sr,p as N,s as ar,v as Gt}from"./chunk-KDH5OX3D.js";import{j as Je,l as ue,m as le,n as Ee,q as Ze,r as gr}from"./chunk-F6E4JZKG.js";import{E as de,J as Bt,K as Ve,R as ir,S as Ye,W as or,Y as m,Z as p,aa as lr}from"./chunk-D4PIWE6D.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]="bccbd81b-988f-569d-8dbf-c0998d813953")}catch{}})();function oi(e,t){let n=Ht(e),r=e.length>0?e[e.length-1].after_hash:Ir(),i=t===void 0?void 0:Tr(t),o=i===void 0?void 0:i===r,s=[...n.errors];return o===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:o}}async function si(e,t,n={}){let r=E(n.cwd??process.cwd(),n.pmRoot);if(!await N($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await T(r),o=O(i,F()),s=await Gr(r,e,i,o.type_to_folder),a=await V(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 d=Ur(t,a),c=Br(Kr(a,d.historyIndex),d),l=Fr(c,{schema:i.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex];return{document:l,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:u.ts,target:d,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 j(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 it(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 ai(e,t,n="--type"){if(e===void 0)return;let r=Xe(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import ba from"node:fs/promises";import ui 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]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var Zt={version:1,aliases:{}};function ot(e=[]){let t=new Set(Ce),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let i of Object.keys(r.provenance_environment_keys??{}))n(i);for(let i of Object.keys(r.provenance_resolvers??{}))n(i);for(let i of r.provenance_unavailable_dimensions??[])n(i)}return[...t].sort()}function ci(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 en(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 wa(e,t=Ce){let n=new Set(t),r=new Map,i=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let o of i.flatMap(s=>s.split(","))){let s=o.indexOf("=");if(s<0)throw new p(`Provenance predicate must use dimension=value; received "${o.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let a=o.slice(0,s).trim().toLowerCase(),d=o.slice(s+1).trim();if(!n.has(a))throw new p(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,m.USAGE,{code:"unknown_provenance_dimension"});if(d.length===0)throw new p(`Provenance predicate must use dimension=value; received "${o.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let c=r.get(a)??new Set;c.add(d),r.set(a,c)}return r}function st(e,t=Zt,n={}){let r=en(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 at(e,t=Zt,n=Ce){let r=ci(e.harness),i=ci(e.agentInstance),o=wa(e,n);return s=>{let d=en(s,t).agent_harness;if(r&&(!d||!r.has(d))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,l]of o){let u=s.agent_provenance?.[c];if(!u||!l.has(u.value))return!1}return!0}}function ct(e,t=Zt,n=Ce){let r=new Set(n),i=new Map,o=0;for(let s of e){for(let d of Object.keys(s.agent_provenance??{}))r.add(d);en(s,t).agent_harness?o+=1:i.set(s.author,(i.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:o,unresolved:e.length-o,unresolved_authors:[...i].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,d=0;for(let c of e){let l=c.agent_provenance?.[s];l===null?d+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:d,legacy_missing:e.length-a-d}})}}(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 ka=20,va=5;function tn(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 di(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 i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return U(i,new Date(t),n)}function Sa(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function Ea(e,t){return t===void 0?e:e.slice(0,t)}function Te(e,t=""){return typeof e=="string"?e:t}function xa(e,t){return{...t,id:e,ts:Te(t.ts),author:Te(t.author,"unknown"),op:Te(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Te(t.before_hash),after_hash:Te(t.after_hash)}}function Ca(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let i=t.id.localeCompare(n.id);return i!==0?i:t.op.localeCompare(n.op)})}async function Ta(e){try{return(await ba.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(t.code==="ENOENT")return[];throw t}}function Ia(e){let t=D(),n=di(e.from,t,"--from"),r=di(e.to,t,"--to");if(n&&r&&S(n,r)>=0)throw new p("Activity --from must be before --to",m.USAGE);let i=te(e.limit);if(e.unbounded===!0&&i!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:tn(e.id,"Activity --id"),op:tn(e.op,"Activity --op"),author:tn(e.author,"Activity --author"),from:n,to:r,limit:e.unbounded===!0?void 0:i??(e.compact===!0?ka:va),limitSource:e.unbounded===!0||i!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Fa(e){let t=E(process.cwd(),e.path);if(!await N($(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function Aa(e){let t=O(e.settings,F()),n=await J(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Dr({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=ui.join(e.pmRoot,"history");return await xe({path:r,scope:"project"}),r}function Ma(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Sa(t,n.from,n.to)}async function Ra(e,t){let n=[];for(let r of await Ta(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await V(ui.join(e,r),i);for(let s of o){let a=xa(i,s);Ma(s,a,t)&&n.push(a)}}return n}function Da(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}async function li(e,t){let n=await Fa(t),r=Ia(e),i=await Aa(n),o=ot(n.settings.agent_identity.harness_signals),s=n.settings.agent_identity.identity_vocabulary,a=at({harness:r.harness,agentInstance:r.agentInstance,provenance:r.provenance},s,o),d=Ca(await Ra(i,r)).filter(a),c=Ea(d,r.limit),l=e.compact===!0,u=l?Da(c):void 0,f=e.provenance===!0?c.map(b=>st(b,s,{itemId:b.id})):void 0,h=d.length-c.length,y=e.provenance===!0?"provenance":l?"compact":"full";return{...{compact:{compact_activity:u},provenance:{provenance_activity:f},full:{activity:c}}[y],compact:l,projection:{mode:y,row_key:y==="compact"?"compact_activity":y==="provenance"?"provenance_activity":"activity"},omission_receipt:Je("activity",y),count:c.length,total_count:d.length,limit:r.limit??null,omitted_count:h,has_more:h>0,...e.provenanceSummary===!0?{provenance_summary:ct(d,s,o)}:{},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]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function nn(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 d=e[s+1];if(d===","||d==="\\"){r+=d,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new p(`${t.label} requires at least one non-empty value`,m.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function G(e,t){let n=nn(e,t);return n===void 0?void 0:new Set(n)}function dt(e,t,n="--type"){let r=nn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=Xe(o,t);if(!s)throw new p(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,m.USAGE);return s});return new Set(i)}function ut(e,t="--priority"){let n=nn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>it(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 fi(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function lt(e){return{isTerminal(t){return e.terminal_statuses.has(fi(t,e))},classify(t){let n=fi(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 rn(e){return R(e.acceptance_criteria)===void 0}function on(e){return!Number.isFinite(e.estimated_minutes)}function gi(e,t){return t.isTerminal(e.status)?R(e.resolution)===void 0:!1}function La(e){return R(e.reviewer)===void 0}function Oa(e){return R(e.risk)===void 0}function Na(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):R(e.confidence)===void 0}function $a(e){return R(e.sprint)===void 0}function Pa(e){return R(e.release)===void 0}function Ie(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function ja(e,t,n){return[[t.acMissing,rn(e)],[t.estimatesMissing,on(e)],[t.resolutionMissing,gi(e,n)],[t.reviewerMissing,La(e)],[t.riskMissing,Oa(e)],[t.confidenceMissing,Na(e)],[t.sprintMissing,$a(e)],[t.releaseMissing,Pa(e)]].every(([i,o])=>i!==!0||o)}function Ua(e,t){return rn(e)||on(e)||gi(e,t)}function ft(e,t,n){return Ie(t)?!(!ja(e,t,n)||t.metadataMissing&&!Ua(e,n)):!0}var sn=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Ka(e,t){switch(t){case"acceptance_criteria":return!rn(e);case"estimated_minutes":return!on(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 Ba(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Ga(e,t){return t===0?100:Math.round(e/t*1e3)/10}function mi(){let e={};for(let t of sn)e[t]={present:0,applicable:0,percent:100};return e}function pi(e,t,n){for(let r of sn){if(!Ba(t,r,n))continue;let i=e[r];i.applicable+=1,Ka(t,r)&&(i.present+=1)}}function hi(e){for(let t of sn){let n=e[t];n.percent=Ga(n.present,n.applicable)}}function Np(e,t){let n=mi(),r={};for(let i of e){pi(n,i,t);let o=r[i.type]??(r[i.type]=mi());pi(o,i,t)}hi(n);for(let i of Object.values(r))hi(i);return{overall:n,by_type:r}}var qa={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Ha(e){return qa[e]}function Wa(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function za(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(),o=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return o.length>0?o:[null]}}}function $p(e,t,n,r={}){let i=new Map,o=0;for(let a of e){o+=1;let d=n.classify(a.status);for(let c of za(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??Ha(t),key:c,buckets:Wa(),total:0},i.set(l,u)),u.buckets[d]+=1,u.total+=1}}let s=[...i.values()].sort((a,d)=>d.total!==a.total?d.total-a.total:a.key===null?1:d.key===null?-1:a.label.localeCompare(d.label));return{dimension:t,rows:s,total_items:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var we=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function ne(e){return Array.isArray(e)&&e.length>0}function Va(e){return typeof e=="string"&&e.trim().length>0}function Ya(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 _i(e,t){switch(t){case"notes":return ne(e.notes);case"learnings":return ne(e.learnings);case"files":return ne(e.files);case"docs":return ne(e.docs);case"tests":return ne(e.tests);case"comments":return ne(e.comments);case"deps":return ne(e.dependencies);case"body":return Va(e.body);case"linked_command":return Ya(e.tests)}}function mt(e){return we.some(t=>e[t]!==void 0)}function pt(e,t){for(let n of we){let r=t[n];if(r===void 0)continue;let i=_i(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function wi(e){return we.some(t=>t!=="body"&&e[t]!==void 0)}function bi(e){return e.body!==void 0}function yi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Xa(){let e={};for(let t of we)e[t]={present:0,total:0,percent:100};return e}function jp(e){let t=Xa(),n=e.length;for(let s of e)for(let a of we)_i(s,a)&&(t[a].present+=1);for(let s of we)t[s].total=n,t[s].percent=yi(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:yi(i,n)};return{total_items:n,fields:t,body_populated:r,empty_body:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var ht=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}),ki=[{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"}],Me=e=>{let t=ki.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(ki.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},vi=["priority","deadline","updated_at","created_at","title","parent"],Si=["asc","desc"],Qa=["id","title","status","type","priority","parent","updated_at"],Ja=["id","status","type","title"],uh={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Za=["tree_depth","tree_parent","tree_children","tree_title"],Ti=new Set(Nr);function ec(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,i=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,o={status:t?"unchecked":r+i>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:i};if(n&&o.status==="partial")throw new p(`List source is incomplete: ${r} item document(s) and ${i} 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 o}function tc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var nc=[{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"}],rc=[{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 Ii(e,t){for(let n of nc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Fi(e,t){for(let n of rc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function an(e,t,n){for(let r of n){let i=t[r.optionKey];i!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(i):i)}}function Re(e){let t={};return Ii(t,e),t}function De(e){let t={};return Fi(t,e),t}var ic=[{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"}],oc=[{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"}],sc=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],ac="-7d";function Ai(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:i,sortField:o,sortOrder:s,runtimeFieldFilters:a}=e,d={};return t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency"),an(d,n,ic),Ri(d,n),n.filterAcMissing===!0&&(d.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(d.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(d.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(d.filter_metadata_missing=!0),Fi(d,n),Ii(d,n),n.limit!==void 0&&(d.limit=n.limit),n.offset!==void 0&&(d.offset=n.offset),n.includeBody===!0&&(d.include_body=!0),n.fields!==void 0&&(d.fields=n.fields),r&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),o!==void 0&&(d.sort=o,d.order=s),tc(a)&&(d.runtime_filters=a),d}function cn(e,t,n){let r=K(e.status,n),i=K(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=S(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function cc(e,t){return[...e].sort((n,r)=>cn(n,r,t))}function Ei(e,t){if(e!==void 0)return U(e,new Date,t)}function Fe(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return U(n,new Date,t)}function Mi(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?Fe(ac,"recent"):Fe(e.updatedAfter,"updated-after")}function Ri(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Di(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 dn(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 Li(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 Oi(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,i=Li(e.fields);if(Number(t)+Number(n)+Number(r)+ +(i!==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:[...Ja]}:t?{mode:"compact",fields:[...Qa]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function be(e){return e.startsWith("item.")?e.slice(5):e}function dc(e,t){if(e.mode!=="fields")return;let n=new Set([...Ye,"body",...Za,...t]),r=e.fields.filter(i=>!n.has(be(i)));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 uc=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Ni(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=uc.get(t);if(n)return n;if(!vi.includes(t))throw new p(`Sort field must be one of ${vi.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function $i(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Si.includes(t))throw new p(`Sort order must be one of ${Si.join("|")}`,m.USAGE);return t}function lc(e){return j(e,"--tree-depth")}function Pi(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 xi(e,t){return he(e,t,{strict:!0})}function ji(e){return G(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function fc(e,t,n){let r=ji(t);if(r===void 0)return;let i=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),o=[...r].filter(s=>!i.has(s));o.length>0&&n.push(`unknown_tags:${o.join(",")}`)}function mc(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 pc(e,t,n,r){let i=G(t.assignee,{label:"--assignee"}),o=Pi(t.assigneeFilter);mc(i,o);let s=ht(t),a=Me(t);return{idsFilter:Di(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:dt(t.type,n),tagFilters:ji(t.tag),priorityFilter:ut(t.priority),deadlineBefore:Ei(t.deadlineBefore,"deadline-before"),deadlineAfter:Ei(t.deadlineAfter,"deadline-after"),updatedAfter:Mi(t),updatedBefore:Fe(t.updatedBefore,"updated-before"),createdAfter:Fe(t.createdAfter,"created-after"),createdBefore:Fe(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:G(t.sprint,{label:"--sprint"}),releaseFilter:G(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Ie(s),lifecycleClassifier:lt(r),contentFieldFilters:a,contentFiltersActive:mt(a)}}function hc(e,t,n){return gc(e,t,n)&&yc(e,t)&&_c(e,t)&&wc(e,t)}function gc(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&K(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(i=>i.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function yc(e,t){return et(e,t)}function _c(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 wc(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 bc(e,t,n,r){return!(!hc(e,t,n)||t.missingMetadataActive&&!ft(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!pt(e,t.contentFieldFilters)||!ye(e,r))}function Ui(e,t,n,r,i,o){let s=pc(t,n,r,i);return e.filter(a=>bc(a,s,i,o))}function Ae(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Ki(e,t,n){let r=e,i=typeof r.title=="string"?r.title:"",o=Ae(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:n,tree_title:`${" ".repeat(t)}${i}`}}function Bi(e,t,n){let r=new Map,i=new Map;for(let c of e){r.set(c.id,c);let l=Ae(c.parent);if(!l)continue;let u=i.get(l);u?u.push(c):i.set(l,[c])}let o=t?[...i.get(t)??[]]:e.filter(c=>{let l=Ae(c.parent);return!l||!r.has(l)}),s=[],a=new Set,d=(c,l)=>{if(a.has(c.id))return;a.add(c.id);let u=i.get(c.id)??[];if(s.push(Ki(c,l,u.length)),!(n!==void 0&&l>=n))for(let f of u)d(f,l+1)};for(let c of o)d(c,0);return s}function Gi(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function qi(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function Hi(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return qi(e.deadline??null,t.deadline??null);case"updated_at":return S(e.updated_at,t.updated_at);case"created_at":return S(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Gi(e.parent??null,t.parent??null);default:return 0}}function Wi(e,t,n,r){return t?[...e].sort((i,o)=>{let s=Hi(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=cn(i,o,r);return n==="desc"?-a:a}):cc(e,r)}function zi(e,t,n=!1){let r=be(t.trim());if(r.length===0)return null;let i=e;return n&&r==="title"&&typeof i.tree_title=="string"?i.tree_title:Object.prototype.hasOwnProperty.call(i,r)?i[r]??null:null}function un(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=zi(r,o,n);return i})}function Vi(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Yi(e,t){if(e.noTruncate!==!0)return j(e.limit)??(t>=1e4?20:void 0)}function kc(e,t,n){return t.after===void 0?dn(t.offset)??0:Ze(e,t.after,n,r=>r.id)}function Xi(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function vc(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),i=P(r.schema),o=B(r.schema),s=Oi(e);return dc(s,Vi(o.definitions)),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:ge(e,o,"list"),typeRegistry:O(r,F()),projection:s}}async function Sc(e,t,n){let r=t.projection.fields.some(d=>be(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>Ti.has(be(d))),o=Me(e),s=wi(o),a=bi(o);return e.includeBody||r||a?await Pr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await tt(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await J(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Ec(e){let t=Ni(e.sort),n=$i(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?lc(e.treeDepth):void 0,parentRoot:r?Ae(e.parent):void 0}}function xc(e,t,n){let r=xi(t.status,n),i=r??xi(e,n),o=zr(t.status),s=r||o?{...t,excludeTerminal:!1}:t,a=o?"all":i===void 0?s.excludeTerminal===!0?null:"all":i.length===1?i[0]:i;return{resolvedStatus:i,explicitAllStatuses:o,effectiveOptions:s,filtersStatus:a}}function Cc(e,t,n,r,i){if(t.after!==void 0&&t.offset!==void 0)throw new p("List --after cannot be combined with --offset.",m.USAGE);let o=Yi(t,e.length),s=kc(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=un(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Ee(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:Xi(o,l,u)}}function Qi(e,t,n){return le("list",{status:e,options:ue(t,mr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Tc(e){let{options:t,runtime:n,statusSelection:r,ordering:i}=e,o=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let g=be(y);return g==="body"||Ti.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,i.treeEnabled,i.sortField!==void 0,s,yr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!o.has(y))].includes(!0))return null;let d=await fe(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=j(t.limit),l=dn(t.offset)??0,u=await Or({pmRoot:n.pmRoot,expectedSourceCursor:d.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:c,offset:l}});if(!u)return null;let f=u.items.length>0&&l+u.items.length<u.total,h=f?Ee(Qi(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:un(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Xi(c,f,h)}}function Ic(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:i,treeDepth:o,sortField:s,sortOrder:a,runtimeFieldFilters:d}=e,c={};t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency");let l=n;for(let u of oc){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of sc)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,De(n),Re(n)),Ri(c,n),r&&(c.no_truncate=!0),i&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),s!==void 0&&(c.sort=s,c.order=a),c.runtime_filters=d,c}async function Y(e,t,n){let r=await vc(t,n),i=[],o=Ec(t),s=xc(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await Tc({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await Sc(t,r,i);fc(g,t.tag,i);let b=Ui(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let I=rt(g,r.statusRegistry);return b.filter(L=>I.has(L.id.trim().toLowerCase()))})():b,w=Wi(_,o.sortField,o.sortOrder,r.statusRegistry),v=o.treeEnabled?Bi(w,o.parentRoot,o.treeDepth):w;c=Cc(v,t,r.projection,o.treeEnabled,Qi(s.filtersStatus,t,o))}let l=D(),u=[...new Set(i)].sort((g,b)=>g.localeCompare(b)),f=ec(u,d!==null,t.strictRead===!0),h=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=Ai({filtersStatus:s.filtersStatus,options:t,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:g,projection:{mode:"compact",fields:h},...u.length>0?{warnings:u}:{}}}return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:Ic({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:h},sorting:{sort:o.sortField??"default",order:o.sortField?o.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}var lh={applyFilters:Ui,buildCompactListFilterSummary:Ai,buildContentFilterEcho:Re,buildGovernanceMissingFilterEcho:De,resolveContentFieldFilters:Me,resolveMissingMetadataFilters:ht,compareBySortField:Hi,compareDefaultSort:cn,compareNullableString:Gi,compareNullableTimestamp:qi,normalizeProjectionField:be,parseAssigneeFilter:Pi,parseFieldSelectors:Li,parseIdsFilter:Di,parseOffset:dn,parseProjectionConfig:Oi,resolveListUpdatedAfter:Mi,resolveListPageLimit:Yi,parseSortField:Ni,parseSortOrder:$i,orderItemsAsTree:Bi,projectListItems:un,readListFieldValue:zi,runtimeMetadataKeysForProjection:Vi,sortItems:Wi,trimNonEmpty:Ae,withTreeMetadata:Ki};(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]="ab1153b1-2d91-58a5-9b4a-1d9c5f35a54a")}catch{}})();var Fc=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Ac=["filterAcMissing","filterEstimatesMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","hasNotes","hasLearnings","hasFiles","hasDocs","hasTests","hasComments","hasDeps","hasBody","hasLinkedCommand","noNotes","noLearnings","noFiles","noDocs","noTests","noComments","noDeps","emptyBody","noLinkedCommand"];function Mc(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function mh(e,t,n={}){let r=n.includePagination!==!1;return[t,...Fc.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(Mc)||Ac.some(o=>e?.[o]===!0)}function Ji(e){return{type:e.type,tag:e.tag,priority:e.priority,deadlineBefore:e.deadlineBefore,deadlineAfter:e.deadlineAfter,assignee:e.assignee,assigneeFilter:e.assigneeFilter,parent:e.parent,sprint:e.sprint,release:e.release}}(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]="56486369-9164-58d3-ac34-46d57859f96d")}catch{}})();var Zi=["parent","type","priority","status","assignee","tags","sprint","release"];function to(e,t){let n=he(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function no(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),i=n&&n.length>0?n:void 0,o=r&&r.length>0?r:void 0;if(!i&&!o)return null;if(i&&o&&i!==o)throw new p("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=i??o;if(!t.includes(s))throw new p(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:i!==void 0,avg:o!==void 0}}function ro(e){let t=e?.trim()??"status";if(t.length===0)throw new p("--group-by requires at least one field name",m.USAGE);let n=ei(t);if(n.length===0)throw new p("--group-by requires a comma-separated list of fields",m.USAGE);for(let r of n)if(!Zi.includes(r))throw new p(`Aggregate group fields must be one of ${Zi.join("|")}; received "${r}"`,m.USAGE);return n}function io(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function oo(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return io(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function so(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function ao(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var Rc={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function eo(e,t){return t==null||t===""?Rc[e]:String(t)}function Dc(e,t){return e.length===1?eo(e[0],t[e[0]]):e.map(n=>`${n}=${eo(n,t[n])}`).join(" | ")}function co(e,t,n){for(let r of n){let i=so(e.group[r],t.group[r]);if(i!==0)return i}return 0}function uo(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let i=r.trim();if(i.length===0)return null;let o=Number(i);if(Number.isFinite(o))return o}return null}function lo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function ln(e,t,n){let r=C(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function Lc(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function Oc(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Nc(e){e.accumulator.row.count+=1,e.includeCompletion&&ln(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Oc(e.accumulator,e.numericValue)}function $c(e,t){let n={};for(let r of e)n[r]=oo(r,t);return n}function Pc(e,t,n,r){let i={...e.row,group_label:Dc(t,e.row.group)};return n&&(i.open=e.open_count,i.in_progress=e.in_progress_count,i.closed=e.closed_count,i.other=e.other_count,i.completion_pct=lo(e.closed_count,e.row.count)),r!==null&&(i.null_count=e.null_count,r.sum&&(i.sum=e.numeric_sum),r.avg&&(i.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),i}function jc(e){return{group_by:e.groupBy,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function _h(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=E(process.cwd(),t.path),r=await T(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...B(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=ro(e.groupBy),a=to(e.status,i),d=no(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,l=e.includeUnparented===!0,u=await Y(void 0,{...Ji(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of u.items){let w=_,v=$c(s,w);if(s.includes("parent")&&v.parent===null&&!l){h+=1;continue}let I=ao(s,v),L=f.get(I),x=d===null?null:uo(w,d.field);if(L)Nc({accumulator:L,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:x});else{let A=Lc(v,x);c&&ln(A,w.status,i),f.set(I,A)}y+=1}let g=[...f.values()].map(_=>Pc(_,s,c,d)).sort((_,w)=>co(_,w,s)),b=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:y,items_skipped_unparented:h},filters:jc({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:D(),...b?{warnings:b}:{}}}var wh={buildGroupKey:ao,compareAggregateRows:co,compareNullableGroupValue:so,completionPct:lo,normalizeTagGroupValue:io,parseGroupBy:ro,parseNumericAggregation:no,parseStatus:to,readNumericAggregateValue:uo,resolveGroupValue:oo,updateCompletionCounts:ln};import{encode as Uc}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 fn=["agenda","day","week","month"],mn=["markdown","toon","json"],Kc=["sun","mon","tue","wed","thu","fri","sat"],Bc=365,Gc=365,po=28,qc=1e3;function pn(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 Hc(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)throw new p("Calendar include filter must not be empty",m.USAGE);let r=new Set;for(let i of n){if(i==="deadlines"||i==="deadline"){r.add("deadlines");continue}if(i==="reminders"||i==="reminder"){r.add("reminders");continue}if(i==="events"||i==="event"||i==="scheduled"){r.add("events");continue}throw new p("Calendar include filter must be deadlines|reminders|events|scheduled|all",m.USAGE)}return r}function ho(e,t){let n;for(let r of t){let i=rr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Wc(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!fn.includes(t)){let n=ho(t,fn);throw new p(`Calendar view must be one of ${fn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function zc(e){if(!e)return;let t=e.trim().toLowerCase();if(!mn.includes(t)){let n=ho(t,mn);throw new p(`Calendar format must be one of ${mn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function xh(e,t){let n=zc(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 Vc(e,t){if(e===void 0)return;let n=C(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new p(`Calendar status filter must be one of ${r.join("|")}`,m.USAGE)}return n}function Yc(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 gt(e){return new Date(e).toISOString().slice(0,10)}function go(e,t){if(!t||t==="UTC")return gt(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,i=n.find(s=>s.type==="month")?.value,o=n.find(s=>s.type==="day")?.value;if(r&&i&&o)return`${r}-${i}-${o}`}catch{}return gt(e)}function _n(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function X(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function yo(e){let t=new Date(_n(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return X(t.toISOString(),r)}function Xc(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Qc(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Jc(e,t){return S(e,t)>=0?e:t}function fo(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function mo(e,t){e.set(t,(e.get(t)??0)+1)}function Zc(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,i)=>de(r)-de(i));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,i)=>r-i);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,i)=>r.localeCompare(i));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function _o(e,t,n,r){let i=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(i.getUTCFullYear()!==e||i.getUTCMonth()!==t||i.getUTCDate()!==n))return i.toISOString()}function wo(e){return Kc[new Date(e).getUTCDay()]}function ed(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function td(e){let t=new Set;for(let n of e??[]){let r=ed(n);r&&t.add(r)}return t}function nd(e,t,n,r,i){let o=e??X(n,-(r??Gc)),s=t??X(e??n,i??Bc);return{start:o,end:S(s,o)>0?s:X(o,1)}}function rd(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[wo(e)],o=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??qc,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:td(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(i)].sort((s,a)=>de(s)-de(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function yt(e,t){return S(t,e.startAt)<0?"continue":e.until&&S(t,e.until)>0||S(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,S(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function _t(e,t){let n=wo(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function id(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(_t(e,t)&&yt(e,t)==="stop");n+=1)t=X(t,e.interval);return e.occurrences}function od(e,t,n){let r=de(n),i=X(t,r),o=new Date(i);return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function sd(e){let t=yo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=X(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=od(e,r,i);if(_t(e,o)&&yt(e,o)==="stop")return e.occurrences}}return e.occurrences}function ad(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let o of e.sortedMonthDays){let s=_o(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!_t(e,s))&&yt(e,s)==="stop")return e.occurrences}}return e.occurrences}function cd(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=t+r*e.interval;for(let o of e.sortedMonthDays){let s=_o(i,n,o,e.startDate);if(!(!s||!_t(e,s))&&yt(e,s)==="stop")return e.occurrences}}return e.occurrences}function dd(e,t,n,r){let i=rd(e,t,n,r);return t.freq==="daily"?id(i):t.freq==="weekly"?sd(i):t.freq==="monthly"?ad(i):cd(i)}function bo(e){return[...e].sort((t,n)=>{let r=S(t.at,n.at);if(r!==0)return r;let i=t.item_priority-n.item_priority;if(i!==0)return i;let o=t.item_id.localeCompare(n.item_id);if(o!==0)return o;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function wn(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 ud(e){return e.deadline?{at:e.deadline,date:gt(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,...wn(e),item_deadline:e.deadline}:null}function ld(e){return(e.reminders??[]).map(t=>({at:t.at,date:gt(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,...wn(e)}))}function fd(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function md(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function pd(e,t,n,r){let i=Zc(t.recurrence),o=fd(t.start_at,t.end_at);return(t.recurrence?dd(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):go(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:md(a,t,o),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:i,...wn(e)}))}function hd(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?ud(o):null;s&&i.push(s),n.has("reminders")&&i.push(...ld(o));for(let a of n.has("events")?o.events??[]:[])i.push(...pd(o,a,t,r))}return bo(i)}function gd(e,t,n,r,i){let o=ai(t.type,n),s=t.tag?.trim().toLowerCase(),a=it(t.priority),d=Vc(t.status,r),c=t.assignee?.trim(),l=Yc(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(c&&(c.toLowerCase()==="none"||c.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(c!==void 0&&l==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>yd(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function yd(e,t){return _d(e,t)&&wd(e,t)&&ye(e,t.runtimeFieldFilters)}function _d(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 wd(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 bd(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function hn(e,t,n){return e.trim().toLowerCase()==="today"?_n(t):U(e,new Date(t),n)}function kd(e,t,n){let r=t.date?hn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?hn(t.from,n,"--from"):void 0,a=t.to?hn(t.to,n,"--to"):void 0;if(s&&a&&S(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 vd(r,t,n,i,o,s,a);if(e==="day"){let c=_n(r);return gn(r,n,i,o,c,X(c,1))}if(e==="week"){let c=yo(r);return gn(r,n,i,o,c,X(c,7))}let d=Xc(r);return gn(r,n,i,o,d,Qc(r))}function vd(e,t,n,r,i,o,s){if(i)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:o??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function gn(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Jc(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function Sd(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:bo(r)}))}function Ed(e){let t=new Set,n=new Map,r=new Map,i=0,o=0,s=0,a=0;for(let d of e)t.add(d.item_id),mo(n,d.item_type),mo(r,d.item_status),d.kind==="deadline"?i+=1:d.kind==="reminder"?o+=1:(s+=1,d.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:i,reminders:o,scheduled:s,by_kind:{deadline:i,reminder:o,event:s},by_type:fo(n),by_status:fo(r),recurring_events:a}}function xd(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function ko(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(o=>o.type==="hour")?.value,i=n.find(o=>o.type==="minute")?.value;if(r&&i)return`${r}:${i}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function yn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Cd(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===go(e.event_end,e.event_timezone)?ko(e.event_end,e.event_timezone):e.event_end:null}function Td(e){let t=`${ko(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let o=Cd(e);return o&&n.push(`end=${o}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function Ch(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${xd(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: ${yn(e.summary.by_kind)}`),t.push(`- by-type: ${yn(e.summary.by_type)}`),t.push(`- by-status: ${yn(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(`- ${Td(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 Id(t.join(`
|
|
3
|
+
`))}function Th(e){return Uc(e)}function Id(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function Fd(e){let t=D(),n=Wc(e.view),r=kd(n,e,t),i=j(e.limit),o=Hc(e.include),s=pn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=pn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=pn(e.occurrenceLimit,"Calendar occurrence limit");if(d!==void 0&&d<1)throw new p("Calendar occurrence limit must be >= 1",m.USAGE);let c=o.has("events")&&!o.has("deadlines")&&!o.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,u=c&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:d,recurrenceLookaheadDays:u?po:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function Ad(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${po}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Md(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 Rd(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 vo(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=Fd(e),i=await T(n),o=P(i.schema),s=B(i.schema),a=ge(e,s,"calendar"),d=O(i,F()),c=[];Ad(c,r.eventsOnlyCapApplied);let l=await J(n,i.item_format,d.type_to_folder,c,i.schema),u=gd(l,e,d,o,a),f=nd(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=hd(u,f,r.includeSources,r.occurrenceLimit).filter(w=>bd(w,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),b=Sd(g),_=[...new Set(c)].sort((w,v)=>w.localeCompare(v));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Rd(e,r.rangeBounds),filters:Md(e,a),summary:Ed(g),events:g,days:b,..._.length>0?{warnings:_}:{}}}(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 bn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Dd=Symbol("no-context-author"),Ld=Symbol("no-item-assignee");function So(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Od(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 Nd(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 $d(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 wt(e,t,n){return e?.[t]??n}function bt(e,t){let n=c=>{if(typeof c!="string")return"";try{return U(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,l)=>{let u=n(c.updated_at),f=n(l.updated_at);return S(f,u)||c.id.localeCompare(l.id)}),i=new Map(r.map((c,l)=>[c.id,l])),o=Math.max(e.length-1,1),s=So(t.author,Dd),a=C("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=So(c.assignee,Ld)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:wt(t.graphProximity,c.id,c.parent?.3:0),claim_focus:wt(t.claimFocus,c.id,M(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:Od(c.priority,4),risk_pressure:$d(c.risk),deadline_pressure:Nd(c.deadline,d),knowledge_density:wt(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:wt(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Pd="context_relevance",jd={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},Ud=new TextEncoder;function Kd(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,i]of Object.entries(n.signals??{})){if(r==="structural"||!bn.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(i!==void 0&&(!Number.isFinite(i)||i<0||i>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function Bd(e){let t={...jd};for(let[n,r]of Object.entries(e??{}))r!==void 0&&bn.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 xo(e,t={}){Kd(e);let n=Bd(t.weights),r=Math.max(e.length-1,1),i=new Set(["structural"]);for(let a of e)for(let[d,c]of Object.entries(a.signals??{}))c!==void 0&&i.add(d);let o=bn.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},l={},u=0,f=0;for(let h of o){let y=c[h];if(y===void 0)continue;let g=y*n[h];l[h]=g,u+=g,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function Gd(e,t={}){let n=xo(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),i=new Map;for(let s of r){if(i.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");i.set(s.id,s.score)}if(i.size!==e.length||e.some(s=>!i.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let o=n.ranked.map(s=>{let a=i.get(s.id);return{...s,score:a,contributions:{custom:a}}});return o.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),o.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:o}}async function kt(e,t,n={}){let r=xo(t,n),i=await _r(Pd,{surface:e,candidates:t,default_report:r});if(!i.handled)return i.warnings.length>0?{...r,warnings:i.warnings}:r;if(!Array.isArray(i.result)||!i.result.every(o=>typeof o=="object"&&o!==null&&typeof o.id=="string"&&typeof o.score=="number"&&Number.isFinite(o.score)))return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]};try{let o=await Gd(t,{...n,scorer:()=>i.result});return i.warnings.length>0?{...o,warnings:i.warnings}:o}catch{return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]}}}var qd=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Eo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Hd(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(c=>Math.max(0,t[c]??0)),r=Object.values(t).map(c=>Math.max(0,c)).sort((c,l)=>l-c).slice(0,n.length||1),i=c=>c.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),o=i(r),s=n.findIndex(c=>c>0),a=new Set(e.ranked_ids),d=e.actual_tokens<=e.token_budget;return{ndcg:o===0?1:i(n)/o,reciprocal_rank:s<0?0:1/(s+1),required_recall:Eo(e.required_ids??[],a),continuity_coverage:Eo(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Wd(e){return Math.ceil(Ud.encode(JSON.stringify(e)).byteLength/4)}function zd(e){return Math.round(e*1e4)/1e4}function Vd(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(o=>o.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(o=>o.id),r=new Set(n),i=(e.ranking?.items??[]).filter(o=>r.has(o.id)).map(o=>({id:o.id,contributions:o.contributions}));return{rankedIds:n,attribution:i}}async function Yd(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:i}=Vd(n,e.surface),o={...n,ranking:void 0},s=Wd(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Hd({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:i}}function Xd(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=qd;for(let o of n)if(!Number.isFinite(t[o]))throw new TypeError(`Context evaluation threshold ${o} must be a finite number`);let r=Object.fromEntries(n.map(o=>[o,zd(e.reduce((s,a)=>s+a.metrics[o],0)/e.length)])),i=n.filter(o=>r[o]<t[o]).map(o=>`${o}:${r[o]}<${t[o]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:i.length===0,failures:i}}async function Rh(e,t,n){let r=[];for(let i of e)r.push(await Yd(i,t));return Xd(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 Qd={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Jd=["identity","summary","full"];function Zd(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=Jd.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 eu(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=Qd[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,i=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(i)||i<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:i,profile:t}}function tu(e){let t=new Set;for(let n of e){if(Zd(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 nu(e,t,n,r,i){let o=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&i()>=r)return{index:o,evaluated:s,timedOut:!0};let d=e[a];if(d.token_costs.identity>t)continue;s+=1;let c=o<0?void 0:e[o],l=n(d)/d.token_costs.identity,u=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(l>u||l===u&&c!==void 0&&(d.rank<c.rank||d.rank===c.rank&&d.id.localeCompare(c.id)<0))&&(o=a)}return{index:o,evaluated:s,timedOut:!1}}function ru(e){let t=new Set,n=[],r=e.tokenBudget,i=c=>{let l=c.lineage??c.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*u)},o=c=>{let l=c.token_costs.identity;n.push({...c,projection:"identity",tokens:l,marginal_value:i(c)}),r-=l;let u=c.lineage??c.cluster;u&&t.add(u)};for(let c of e.ordered.filter(l=>l.required))c.token_costs.identity<=r&&o(c);let s=e.ordered.filter(c=>!c.required),a=!0,d=0;for(;s.length>0;){let c=nu(s,r,i,e.deadline,e.readClock);if(d+=c.evaluated,c.timedOut&&(a=!1),c.index<0||c.timedOut)break;o(s.splice(c.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:d}}function iu(e,t){let n=t;for(let r of["summary","full"]){let i=r==="summary"?"identity":"summary",o=[...e].sort((s,a)=>{let d=s.token_costs[r]-s.token_costs[i],c=a.token_costs[r]-a.token_costs[i];return a.marginal_value/Math.max(c,1)-s.marginal_value/Math.max(d,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of o){if(s.projection!==i)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function Co(e,t){let n=eu(t),r=tu(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=ru({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=iu(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let c=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!c.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.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 ou}from"node:crypto";import{appendFile as su,mkdir as au,readFile as cu,rename as du,stat as uu,writeFile as lu}from"node:fs/promises";import To 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,Fo=30,Ao=864e5,fu=262144,mu="context-usage-ledger",q=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Mo(e){return To.join(e,"runtime","context-usage.jsonl")}function Le(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new q("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Ro(e){try{let n=(await cu(Mo(e.pmRoot),"utf8")).split(`
|
|
5
|
+
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Io,i=e.retentionDays??Fo,o=Le(e).ms-i*Ao;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function Do(e,t){let n=e.maxEvents??Io,r=e.retentionDays??Fo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new q("Context usage retention requires positive maxEvents and retentionDays");let i=Mo(e.pmRoot),o=To.dirname(i),s=await xr(e.pmRoot,mu,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await au(o,{recursive:!0}),await su(i,t.map(l=>`${JSON.stringify(l)}
|
|
6
|
+
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await uu(i)).size<=fu)return;let d=await Ro(e),c=`${i}.${process.pid}.${ou()}.tmp`;await lu(c,`${d.map(l=>JSON.stringify(l)).join(`
|
|
7
|
+
`)}
|
|
8
|
+
`,"utf8"),await du(c,i)}finally{await s()}}async function Lo(e,t){await Do(e,[t])}async function vt(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 q("Context usage serving requires an author and valid ranked rows");await Lo(e,{kind:"serve",at:Le(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function jh(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new q("Context usage touch requires author, itemId, and intent");await Lo(e,{kind:"touch",at:Le(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Oo(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 q("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new q("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new q("Context usage touch requires non-empty itemId");r.add(a)}let i=Le(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await Do(e,o)}function pu(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function St(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Ro(e),n=Le(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new q("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(u=>u.kind==="touch"&&u.author===i).map(u=>({entry:u,time:Date.parse(u.at)})),s=new Map,a=0,d=0;for(let u of t){if(u.kind!=="serve"||u.author!==i)continue;a+=1;let f=Date.parse(u.at);for(let h of u.rows){if(!h.included)continue;let y=pu(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/Ao);s.set(h.id,(s.get(h.id)??0)+Math.exp(-g/14))}}let c=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([u,f])=>[u,.05+.95*(c>0?f/c:0)])),positive_judgments:d,serving_events:a}}import Oe from"node:fs/promises";import Ne from"node:path";import{createHash as hu,randomUUID as gu}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2a0f64cf-f6a4-5304-921d-c83b98d3a31f")}catch{}})();var kn=1,vn=1,No=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],yu={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function Et(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function $o(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function _u(e){let t={};for(let n of No){let r=e[n];if(r!==void 0){if(!$o(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function wu(e,t){let n=e.map(i=>[i.id,t(i)]),r=Math.max(0,...n.map(([,i])=>i));return Object.fromEntries(n.map(([i,o])=>[i,r===0?0:o/r]))}function bu(e){let t=new Map(e.map(i=>[i.id,0])),n=i=>{t.set(i,(t.get(i)??0)+1)};for(let i of e){typeof i.parent=="string"&&i.parent.trim()&&(n(i.id),n(i.parent.trim()));for(let o of i.dependencies??[])typeof o.id!="string"||!o.id.trim()||(n(i.id),n(o.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(i=>[i.id,r===0?0:t.get(i.id)/r]))}function ku(e,t){return{...t,activityDensity:t.activityDensity??wu(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??bu(e)}}function vu(e){if(!Et(e)||typeof e.id!="string"||!Et(e.signals))return null;let t={},n=new Set(No);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!$o(i))return null;t[r]=i}return{id:e.id,signals:t}}function Su(e){if(!Et(e)||e.format_version!==kn||e.signal_set_version!==vn||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(vu);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:kn,signal_set_version:vn,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function Eu(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=bt(e,ku(e,t)).map(({id:r,signals:i})=>({id:r,signals:_u(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:kn,signal_set_version:vn,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var Sn=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=Ne.resolve(t)}async read(){try{return JSON.parse(await Oe.readFile(this.filePath,"utf8"))}catch(t){if(Et(t)&&t.code==="ENOENT")return null;throw t}}async write(t){let n=Ne.dirname(this.filePath);await Oe.mkdir(n,{recursive:!0});let r=Ne.join(n,`.${Ne.basename(this.filePath)}.${gu()}.tmp`);try{await Oe.writeFile(r,`${JSON.stringify(t)}
|
|
9
|
+
`,{encoding:"utf8",flag:"wx"}),await Oe.rename(r,this.filePath)}finally{try{await Oe.rm(r,{force:!0})}catch{}}}},En=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let u=await this.adapter.read();i=Su(u),u!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(u=>u.id).sort((u,f)=>u.localeCompare(f)),s=i?.items.map(u=>u.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((u,f)=>u===o[f]),d;if(a&&i!==null)d=i;else{i!==null&&r.push("context_signal_store_stale"),d=Eu(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(u=>[u.id,u.signals])),l=bt(t,n);return{snapshot:d,candidates:l.map(u=>({...u,signals:{...u.signals,...c.get(u.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(u=>yu[u])}}};function xu(e){let t=hu("sha256");for(let n of[...e].sort((r,i)=>r.id.localeCompare(i.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function xt(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let i=n?null:await fe(t.pmRoot),o=t.sourceCursor??i?.source_cursor??xu(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new En(new Sn(Ne.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import Cu from"node:path";import{createHash as Tu}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]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Po(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}}import Iu 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 jo=1,Fu=1e4,Uo=12;function Au(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Mu(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let i=t.get(r);if(!i)return;if(i.type.toLowerCase()==="epic")return i;r=i.parent}}function Ru(e){let t=[...e.items].sort((i,o)=>o.completion.timestamp.localeCompare(i.completion.timestamp)||i.item.id.localeCompare(o.item.id)),n=new Set,r=0;for(let{item:i}of t){let o=i.resolution??i.close_reason;o?.trim()&&n.add(o.trim()),r+=(i.notes?.length??0)+(i.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:i,title:o}})=>({id:i,title:o})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function Du(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(o=>t.statusRegistry.terminal_done_statuses.has(M(o.status,t.statusRegistry))).map(o=>{let s=Po(o);if(!s.resolved)throw new TypeError(`Completed item ${o.id} has no reporting timestamp`);return{item:o,completion:s}}),r=new Map(e.map(o=>[o.id,o])),i=new Map;for(let o of n){let{item:s,completion:a}=o,d=Au(a.timestamp),c=`epoch:${d}`,l=i.get(c)??{kind:"epoch",key:d,label:d,items:[]};l.items.push(o),i.set(c,l);let u=Mu(s,r);if(u){let f=`epic:${u.id}`,h=i.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};h.items.push(o),i.set(f,h)}}return{format_version:jo,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((o,{completion:s})=>(o[s.source]+=1,o),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...i.values()].map(Ru).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Lu(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 Ou(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(i=>typeof i=="string"&&i.length>0),r=[t.first_closed_at,t.last_closed_at].every(i=>typeof i=="string"&&Number.isFinite(Date.parse(i)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(Lu)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Nu(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==jo||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(Ou)?t:null}function $u(e){return`scan:${Tu("sha256").update(lr(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Pu(e,t,n){return n!==void 0?n:(await fe(t))?.source_cursor??$u(e)}async function ju(e){try{let t=Nu(JSON.parse(await Iu.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 Ct(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Fu));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Pu(e,t.pmRoot,t.sourceCursor),i=Cu.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await ju(i),a=s.snapshot;if(s.invalid&&o.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:o};a&&o.push("workspace_memory_stale");let d=Du(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await ar(i,`${JSON.stringify(d)}
|
|
10
|
+
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function Uu(e,t,n=Uo){let r=Math.max(0,Math.floor(t)),i=0,o=[];for(let s of e.rollups){if(o.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);i+a>r||(o.push(s),i+=a)}return o}function Ko(e,t,n=Uo){if(e.snapshot===null)return;let r=Uu(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 Ku(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(i=>({rollup:i,score:r.filter(o=>[i.key,i.label,...i.outcomes,...i.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(o)).length})).filter(({score:i})=>i>0).sort((i,o)=>o.score-i.score||o.rollup.last_closed_at.localeCompare(i.rollup.last_closed_at)||i.rollup.key.localeCompare(o.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:i})=>i)}function Bo(e,t,n=5){let r=Ku(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var Go=16;async function qo(e,t,n){let r=O(t,F()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<Go;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await me(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await pe(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function ag(e){await kr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await qo(e.pmRoot,e.settings,e.itemId)})}async function cg(e){await vr(e)}async function dg(e){await Sr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await qo(e.pmRoot,e.settings,e.itemId)}:{}})}var ug={lineage_depth:Go,active_items:64,evidence_rows:32};function Ho(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="757a0349-9fb6-579d-ab29-fabaad790ce4")}catch{}})();var Bu=["markdown","toon","json","ndjson"],Pe=new Set(["Epic","Feature"]),Qo=10,Jo=1e4,Zo=["hierarchy","activity","progress","recently_created","unparented","workload"],Gu=[...Zo,"blockers","files","staleness","tests"],qu=/^(\d{4})-(\d{2})-(\d{2})/,Hu=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Wu=/^(\d{4})(\d{2})(\d{2})$/,zu=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Vu(e){if(!e)return;let t=e.trim().toLowerCase();if(!Bu.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var Wo=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 Yu(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Wo.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...Wo].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 $e(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function Fg(e,t){let n=Vu(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 Xu(e,t){return j(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Qo)}function Tn(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 Qu(e,t){return t>=Jo&&e===Number.MAX_SAFE_INTEGER?Qo:e}function Ju(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Bt.includes(n))throw new p(`Context --depth must be one of ${Bt.join("|")}`,m.USAGE);return n}function Zu(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!Ve.includes(s))throw new p(`Context --section must be one of ${Ve.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...Ve]:(t==="deep"?Gu:Zo).filter(i=>n.sections[i])}function el(e,t){return e?j(e,"--activity-limit")??t.activity_limit:t.activity_limit}function tl(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 i=parseInt(r[1],10);if(i<=0)throw new p("--stale-threshold must be positive",m.USAGE);return i}function zo(e,t){let n=M(e,t),r=C("in_progress",t),i=C("open",t),o=C("blocked",t),s=C("draft",t);return r&&n===r?0:i&&n===i?1:o&&n===o?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function je(e,t){let n=C("closed",t);return M(e,t)===n}function In(e,t){let n=C("in_progress",t);return M(e,t)===n}function es(e,t){let n=C("open",t);return M(e,t)===n}function nl(e,t){return t.blocked_statuses.has(M(e,t))}var rl=["compact","brief","fields","includeBody","include_body","parent"];function il(e){let t={...e};for(let n of rl)delete t[n];return t}function Fn(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let i=ke(e),o=Ue(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function ol(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 sl(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function al(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:S(n,r)}function cl(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function dl(e){let t=qu.exec(e)??Hu.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),i=Number.parseInt(t[3],10);return r>=1&&r<=12&&i>=1&&i<=cl(n,r-1)}function ul(e){let t=Wu.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=zu.exec(e);if(n){let[,r,i,o,s,a,d,c]=n,l=d?`:${d}`:"",u=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${i}-${o}T${s}:${a}${l}${u}`}return e}function ts(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!dl(t))return Number.NaN;let n=Date.parse(ul(t));return Number.isFinite(n)?n:Number.NaN}function Cn(e){let t=ts(e);return Number.isFinite(t)?new Date(t).toISOString():""}function ll(e){let t=ts(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function An(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function re(e,t,n){let r=zo(e.status,n)-zo(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=sl(e.order,t.order);if(o!==0)return o;let s=al(e.deadline,t.deadline);if(s!==0)return s;let a=S(Cn(t.updated_at),Cn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function xn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Mn(e,t,n=new Set,r="context"){return Co(e.ranked.map(i=>({id:i.id,item:i.item,rank:i.rank,score:i.score,required:n.has(i.id),cluster:i.item.parent?.trim()||i.item.type,token_costs:{identity:xn({id:i.id,title:i.item.title}),summary:xn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:xn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Rn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Dn(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 ns(e,t){return t>0?Math.round(e/t*100):0}function ke(e){let t=new Map;for(let n of e){let r=An(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Ke(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:An(e.parent)};if(t&&n){let i=Ue(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>je(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=ns(s,o)}}return r}function fl(e){let t=0,n=0,r=0,i=new Set;for(let o of e){if(i.add(o.item_id),o.kind==="deadline"){t+=1;continue}if(o.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:i.size,deadlines:t,reminders:n,scheduled:r}}function Tt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function ml(e,t){return e.filter(n=>!t.terminal_statuses.has(M(n.item_status,t)))}function pl(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=ke(e),s=new Set(t.filter(d=>Pe.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=Ue(d,o),u=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of l)je(_.status,n)?f++:In(_.status,n)?y++:nl(_.status,n)?g++:es(_.status,n)&&h++;let b=u.sort((_,w)=>re(_,w,n)).slice(0,r).map(_=>{let w=Ue(_.id,o),v=w.filter(I=>je(I.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:w.length,children_closed:v}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:l.length,children_closed:f,children_open:h,children_in_progress:y,children_blocked:g,children:b})}return a.sort((d,c)=>{let l=i.get(d.id),u=i.get(c.id);return re(l,u,n)}).slice(0,r)}function Ue(e,t){let n=[],r=[e],i=new Set;for(;r.length>0;){let o=r.pop();if(i.has(o))continue;i.add(o);let s=t.get(o)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function hl(e,t){return(await li({compact:!0,limit:String(e)},t)).compact_activity??[]}function gl(e,t,n,r,i){let o=new Map;for(let d of e){if(!d.parent)continue;let c=o.get(d.parent)??[];c.push(d),o.set(d.parent,c)}let s=t.filter(d=>Pe.has(d.type)),a=[];for(let d of s){let c=Ue(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,y=0;for(let g of c)je(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?y++:In(g.status,r)?h++:es(g.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:l,closed:u,open:f,in_progress:h,blocked:y,completion_pct:ns(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function yl(e,t,n,r){let i=new Map(t.map(o=>[o.id.trim().toLowerCase(),o]));return e.slice(0,r).map(o=>{let s=Jt(o,i,n),a=s.find(c=>!c.resolved)?.id??s[0]?.id??null,d=a?i.get(a.trim().toLowerCase()):void 0;return{id:o.id,title:o.title,blocked_by:a,blocked_by_title:d?.title??null,blocked_by_status:d?.status??null,blocked_reason:o.blocked_reason??null,unblock_note:o.unblock_note??null}})}function _l(e,t){let n=new Map;for(let r of e)for(let i of r.files??[]){let o=n.get(i.path)??new Set;o.add(r.id),n.set(i.path,o)}return[...n.entries()].map(([r,i])=>({path:r,references:i.size,items:[...i].sort()})).sort((r,i)=>i.references-r.references).slice(0,t)}function wl(e,t,n){let r=new Map;for(let i of e){let o=i.assignee??null,s=r.get(o)??[];s.push(i),r.set(o,s)}return[...r.entries()].map(([i,o])=>({assignee:i,active:o.length,in_progress:o.filter(s=>In(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function bl(e,t,n,r){let i=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(o=>new Date(o.updated_at).getTime()<i).map(o=>({id:o.id,title:o.title,status:o.status,updated_at:o.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(o.updated_at).getTime())/(1440*60*1e3))})).sort((o,s)=>s.stale_days-o.stale_days).slice(0,r)}function kl(e,t,n,r){return e.map(i=>({item:i,sortKey:Cn(i.created_at)})).sort((i,o)=>{let s=S(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...Ke(i,t,n),created_at:i.created_at}))}function vl(e,t,n,r){return e.filter(i=>!An(i.parent)&&!Pe.has(i.type)).sort((i,o)=>re(i,o,t)).slice(0,r).map(i=>Ke(i,t,n))}function Sl(e){let t=0,n=0,r=0,i=0,o=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let d=a.test_runs??[];if(d.length>0){n++;let c=!1;for(let l of d)r+=l.passed??0,i+=l.failed??0,o+=l.skipped??0,(l.failed??0)>0&&(c=!0);c&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:i,skipped:o},items_failing:s.sort()}}function Vo(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function rs(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",i=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",o=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${i}${o} ${e.title}`}function El(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function xl(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`${Vo(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Vo(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 Yo(e,t,n,r,i){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let o of n)e.push(`- ${i(o)}`);e.push("")}function Cl(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 Tl(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(`- ${xl(n)}`);e.push("")}function Il(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let i of n.children){let o=i.children_total>0?Math.round(i.children_closed/i.children_total*100):0;e.push(` - ${i.id} ${i.type} ${i.status} "${i.title}" [${i.children_closed}/${i.children_total} done ${o}%]`)}}e.push("")}}function Fl(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 Al(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let i of t.recently_created)e.push(n?`- ${r(i)}`:`- ${ll(i.created_at)} ${rs(i)}`);e.push("")}}function Ml(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 Rl(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 Dl(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",i=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",o=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${i}${o}`)}e.push("")}}function Ll(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 Ol(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 Nl(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 $l(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 Pl(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 Ag(e){let t=[],n=e.focus_fields,r=o=>n?El(o,n):rs(o);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let o=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${o.length>0?` (${o.join(", ")})`:""}`)}let i=e.sections_included.filter(o=>o!=="blockers"||(e.blockers?.length??0)>0);if(i.length>0&&t.push(`- sections: ${i.join(", ")}`),t.push(""),Yo(t,"High-level focus",e.high_level,"No high-level active items.",r),Yo(t,"Low-level focus",e.low_level,"No low-level active items.",r),Cl(t,e,r),Tl(t,e),e.workspace_memory){t.push("## Workspace memory");for(let o of e.workspace_memory.rollups)t.push(`- ${o.kind}:${o.key} \u2014 ${o.label} (${o.item_count} completed, latest ${o.last_closed_at})`);t.push("")}return Il(t,e),Fl(t,e),Al(t,e,n,r),Ml(t,e,r),Rl(t,e),Dl(t,e),Ll(t,e),Ol(t,e),Nl(t,e),$l(t,e),Pl(t,e),t.join(`
|
|
11
|
+
`)}async function jl(e,t){let n=E(process.cwd(),t.path),r=await T(n),i=r.context??or.context,o=P(r.schema),s=Ju(e.depth,i),a=Xu(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:Zu(e.section,s,i),activityLimit:el(e.activityLimit,i),staleThresholdDays:tl(e.staleThreshold,i),parentScope:ol(e.parent),focusFields:Yu(e.fields),baseListOptions:il(e)}}function Ln(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Ul(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Kl(e,t){let n=Ln(t.sectionsIncluded),r=await Y(void 0,Ul(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!K(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=Bl(t.parentScope,i);return a&&(o=o.filter(d=>a.has(d.id.trim().toLowerCase())),s=s.filter(d=>a.has(d.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:o,allItems:s,fullCorpus:i,subtreeIds:a}}function Bl(e,t){if(e===void 0)return;let n=Fn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function Gl(e,t,n,r,i,o,s,a,d,c,l,u,f,h,y){let g=[...e].sort((k,ce)=>re(k,ce,i)),b=await St({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await xt(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:b.affinity,claimFocus:y}),w=await kt("context",_.candidates),v=w.ranked.map(k=>k.item),I=i.active_statuses,L=v.filter(k=>I.has(M(k.status,i))),x=u?Ze(L,c,l,k=>k.id):0,A=u?L.slice(x,x+s):L,He=u&&A.length>0&&x+A.length<L.length,We=He&&A.length>0?Ee(l,A[A.length-1].id,x+A.length-1):void 0,Pt=v.filter(k=>r.has(k.id.trim().toLowerCase())),oe=new Set([...A.map(k=>k.id),...Pt.slice(0,s).map(k=>k.id)]),se=Mn({...w,ranked:w.ranked.filter(k=>oe.has(k.id))},h,new Set(Object.entries(y??{}).filter(([,k])=>k>=1).map(([k])=>k))),ae=se.included.map(k=>k.item),Z=ae.filter(k=>I.has(M(k.status,i))),ze=ae.filter(k=>r.has(k.id.trim().toLowerCase())),jt=ke(t),W=Ln(o)?jt:void 0,z=new Map(n.map(k=>[k.id.trim().toLowerCase(),k])),Ut=k=>{let ce=Ke(k,i,W);return r.has(k.id.trim().toLowerCase())&&(ce.blocked=!0,ce.blocker_ids=Jt(k,z,i).filter(Kt=>!Kt.resolved).map(Kt=>Kt.id)),ce},ya=Z.filter(k=>Pe.has(k.type)).slice(0,u?A.length:s).map(Ut),_a=Z.filter(k=>!Pe.has(k.type)).slice(0,u?A.length:s).map(Ut),nr=L.length===0;return{activeItems:Z,blockedItems:ze,highLevel:ya,lowLevel:_a,blockedFallback:nr?ze.slice(0,s).map(Ut):[],blockedFallbackUsed:nr,ranking:w,packing:se,featureStore:_,pageExtras:{...u?{applied_limit:s}:{},...He?{has_more:!0,truncated:!0}:{},...We?{next_cursor:We}:{}}}}function ql(e){return le("context",ue(e,pr))}function Hl(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Jo}async function Wl(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await vo(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=ml(s,t.statusRegistry).slice(0,t.limit),d=a.map(c=>r.has(c.item_id)?{at:c.at,date:c.date,kind:c.kind,item_id:c.item_id,reference_only:!0,...c.kind==="reminder"?{reminder_text:c.reminder_text}:{},...c.kind==="event"?{event_title:c.event_title,event_recurring:c.event_recurring}:{}}:c);return{agenda:o,agendaEvents:d,agendaSummary:fl(a)}}function Xo(e,t,n){let r=String(t);return e.filter(i=>M(i.status,n)===r).length}async function zl(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=ke(n),c=n.filter(u=>!K(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?pl(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await hl(t.activityLimit,a):void 0,progress:l("progress")?gl(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?yl(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?kl(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?vl(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?_l(o.activeItems,t.limit):void 0,workload:l("workload")?wl(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?bl(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Sl(o.activeItems):void 0}}function Vl(e,t,n){if(!e)return{};let r=C("canceled",n);return{total_items:t.length,closed:t.filter(i=>je(i.status,n)).length,canceled:t.filter(i=>M(i.status,n)===r).length}}function Yl(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function Xl(e,t){t&&(e.focus_fields=t,e.high_level=$e(e.high_level,t),e.low_level=$e(e.low_level,t),e.blocked_fallback=$e(e.blocked_fallback,t),e.recently_created&&(e.recently_created=$e(e.recently_created,t)),e.unparented&&(e.unparented=$e(e.unparented,t)))}function Ql(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let o of n)delete o.tags,delete o.tags_inherited;return}let r=new Map(n.map(o=>[o.id,o])),i=new Map(n.map(o=>[o.id,o.tags?[...o.tags].sort().join("\0"):void 0]));for(let o of n){if(!o.parent||!o.tags)continue;let s=r.get(o.parent);s&&i.get(o.id)===i.get(s.id)&&(delete o.tags,o.tags_inherited=s.id)}}function Jl(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 Zl(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await vt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:i.has(o.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=Tt(e.warnings,["context_usage_feedback_write_failed"])}}async function ef(e,t,n){if(e)return{};let i=(await fr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),o=i.filter(s=>s.status==="degraded").length;return i.length===0?{}:{extension_health:{total:i.length,ok:i.length-o,degraded:o,packages:i.slice(0,20),...i.length>20?{truncated:!0}:{}}}}async function tf(e,t){let n=Er(),r=await wr(e),i=n.instance||br(t);return Ho(r.semantic_attribution?.[i])}async function Mg(e,t){let n=E(process.cwd(),t.path),r=await jl(e,t),i=await Kl(t,r),o=Qu(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Tn(e.tokenBudget,Math.max(256,o*160))},a=ee(void 0,s.settings.author_default),d=await tf(n,a),c=ef(e.noExtensionHealth===!0,n,s.settings),l=rt(i.fullCorpus,s.statusRegistry),u=await Gl(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,D(),a,e.after,ql(e),Hl(e,i.fullCorpus.length),n,s.tokenBudget,d),f=await Wl(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(I=>I.id))),h=await Ct(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=Tt(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=Xo(u.activeItems,C("in_progress",s.statusRegistry),s.statusRegistry),b=Xo(u.activeItems,C("open",s.statusRegistry),s.statusRegistry),_=await zl({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),w=Vl(Ln(s.sectionsIncluded),i.allItems,s.statusRegistry),v={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:g,open:b,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return v.workspace_memory=Ko(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(v,await c),Yl(v,_,u.featureStore.warning_details),Ql(v,e.noTags===!0),e.explainRanking===!0&&(v.ranking=Dn(u.ranking,u.featureStore),v.packing=Rn(u.packing)),Xl(v,s.focusFields),y.length>0&&(v.warnings=y),Jl(v,u.activeItems,u.blockedItems),await Zl(v,u,n,a),v}(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 nf=["markdown","toon","json"],rf=5,of=1440*60*1e3;function sf(e){if(!e)return;let t=e.trim().toLowerCase();if(!nf.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function Bg(e,t){let n=sf(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 is(e,t,n){let r=j(e,t);return r===void 0||r<=0?n:r}function On(e,t,n,r){return{...Ke(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(i=>({id:i.id,title:i.title,status:i.status})),unblocks:e.unblocks,rank:r}}function af(e,t,n,r){let i=e.item,o=[],s=C("in_progress",t);return o.push(M(i.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&o.push("completed container \u2014 governance closeout"),o.push(`priority p${i.priority}${i.priority===0?" (highest)":""}`),typeof i.deadline=="string"&&i.deadline.trim().length>0&&o.push(df(i.deadline,n)),o.push(ni(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),o}function ss(e,t,n){let r=ee(n,t),i=[],o=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?o.push({id:s.item.id,assignee:a}):i.push(s)}return{available:i,held:o}}var Gg={partitionCallerOwnedReady:ss,resolveNextCallerAuthor:(e,t)=>as(e,t)};function cf(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 df(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),i=new Date(Date.parse(t)).toISOString().slice(0,10),o=Math.round((Date.parse(r)-Date.parse(i))/of);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function uf(e,t){let n=C("in_progress",t);return e.filter(r=>M(r.status,t)===n).length}function Nn(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function lf(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 os(e,t,n){return[...e].sort((r,i)=>{let o=Nn(r.item,t),s=Nn(i.item,t);return o!==s?Number(o)-Number(s):re(r.item,i.item,n)})}function ff(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:af(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function mf(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 pf(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 hf(e){try{let t=new Set(e.packing.included.map(n=>n.id));await vt({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=Tt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function gf(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=Dn(e.readyRanking,e.featureStore),e.result.packing=Rn(e.packing)),e.result.suggestions=mf(e.recommended,e.blockedRows),await hf({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function yf(e,t,n){if(!n)return e;let r=Fn(t,n);if(!r.found)throw new p(`Next --parent item not found: ${n}`,m.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function _f(e,t,n,r,i,o,s){let a=e.filter(g=>!Nn(g.item,t)),d=a.length>0?a:e,c=await St({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await xt(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),u=await kt("next",l.candidates),f=Mn(u,s,new Set,"next"),h=new Map(d.map(g=>[g.item.id,g]));return{projectedReady:u.ranked.map(g=>h.get(g.id)).filter(g=>g!==void 0),ranking:u,completedContainer:a.length===0,packing:f,featureStore:l}}function as(e,t){let n=e.assignee?.trim();return ee(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function qg(e,t){let n=E(process.cwd(),t.path),r=await T(n),i=as(e,r.author_default),o=P(r.schema),s=D(),a=is(e.limit,"--limit",rf),d=Tn(e.tokenBudget,Math.max(192,a*128)),c=is(e.blockedLimit,"--blocked-limit",a),l=e.readyOnly===!0,u=typeof e.parent=="string"?e.parent.trim():"",f=await Y(void 0,lf(e,{excludeTerminal:!0}),t),h=await Y(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=yf(f.items,h.items,u),g=h.items,b=ri(y,g,o),_=ke(g),w=cf(b.ready,e.includeDecisions===!0),v=ss(w.agent,r.author_default,i),I=os(v.available,_,o),L=[...b.blocked].sort((W,z)=>re(W.item,z.item,o)),{projectedReady:x,ranking:A,completedContainer:He,packing:We,featureStore:Pt}=await _f(I,_,o,s,i,n,d),oe=x.map((W,z)=>On(W,o,_,z+1)),se=L.map((W,z)=>On(W,o,_,z+1)),ae=os(w.decisions,_,o).map((W,z)=>On(W,o,_,z+1)),Z=ff({projectedReady:x,readyRows:oe,statusRegistry:o,now:s,completedContainer:He}),ze=pf(ae.length,v.held.length,a),jt={output_default:"toon",now:s,recommended:Z,ready:oe.slice(1,a+1),decision_needed:ae.slice(0,a),blocked:l?[]:se.slice(0,c),held_by_others:v.held.slice(0,a),summary:{recommended:Z!==null,ready:oe.length,blocked:se.length,in_progress:uf(oe,o),candidates:b.active_count,containers:b.container_count,decision_needed:ae.length,held_by_others:v.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:u.length>0?u:null,limit:a,blocked_limit:c,ready_only:l,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:ze};return gf({result:jt,recommended:Z,blockedRows:se,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:A,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:We,featureStore:Pt})}function Hg(e){let t=["# pm next","",...wf(e)];if(t.push(...It("Recommended",bf(e.recommended),"No ready work.")),t.push(...It("Decision needed",(e.decision_needed??[]).map(n=>`- ${Ft(n)}`),"No human-gated decisions.")),t.push(...It("Ready",e.ready.map(n=>`- ${Ft(n)}`),"No ready items.")),e.filters.ready_only||t.push(...It("Blocked",e.blocked.map(n=>`- ${kf(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 wf(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 bf(e){return e?[`- ${Ft(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function It(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function kf(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Ft(e)} blocked_by:${t}`}function Ft(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]="1638ef81-7558-5d51-8561-99c958de2d03")}catch{}})();function vf(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function Sf(e,t){return e.map((n,r)=>{let i=new Set,o=Ar(n.patch);for(let s of o)i.add(zt(s.path)),s.from&&i.add(zt(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function Ef(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),i=O(r,F()),o=e.trim()===Wt,s=o?Wt:Lr(e,r.id_prefix),a=await me(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?Mr(n):Qe(n,d);if(!a&&!await N(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Rr({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function Jg(e,t,n){let r=te(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await Ef(e,n),d=await V(i,s),c=a.agent_identity.identity_vocabulary,l=ot(a.agent_identity.harness_signals),u=at({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,l),f=d.map((x,A)=>({entry:x,version:A+1})).filter(({entry:x})=>u(x)),h=vf(f,r),y=h.map(({entry:x})=>x),g=t.compact===!0,b=g?Sf(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:x,version:A})=>st(x,c,{itemId:s,version:A})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",v={compact:{compact_history:b},provenance:{provenance_history:_},full:{history:y}}[w],L={id:s,...v,compact:g,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:Je("history",w),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:ct(f.map(({entry:x})=>x),c,l)}:{}};if((t.diff||t.field!==void 0)&&(L.diff=Wr(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let x=o?(await pe(o,{schema:a.schema})).document:void 0;L.verification=oi(d,x)}return L}(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]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var cs=1e6,ds=20;function us(e,t,n,r=ds){if(!Number.isSafeInteger(r)||r<0)throw new p("Child projection sample limit must be a non-negative integer.",m.USAGE);let i=e.trim().toLowerCase(),o={},s=[],a=0,d=0;for(let f of t){if(d+=1,d>cs)throw new p(`Child projection exceeded the ${cs.toLocaleString("en-US")} item safety bound.`,m.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});if(f.parent?.trim().toLowerCase()!==i)continue;s.push(f);let h=f.status.trim().toLowerCase();o[h]=(o[h]??0)+1,K(h,n)||(a+=1)}s.sort((f,h)=>f.id.localeCompare(h.id));let c=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),l=s.length>c.length,u=r===0?ds:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[h])=>f.localeCompare(h))),sample:c,sample_limit:r,truncated:l,next_offset:l?c.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${c.length} --limit ${u}`:null,scanned:d}}(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]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var xf=new Set(["event","meeting","reminder"]);function Cf(e){return xf.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function ls(e){if(!Cf(e))return;let t=[...e.events??[]].sort((r,i)=>r.start_at.localeCompare(i.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.location??null,reminders:[...e.reminders??[]],events: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]="f68f4074-51ba-5065-8cca-fe16acd48927")}catch{}})();var Tf=["brief","standard","deep"],If=new Set(["epic","feature","milestone","plan"]),Ff=new Set(Object.keys(ir).map(e=>e.toLowerCase()));function ms(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function ps(e){let t=e.trim().toLowerCase();return t.length>0&&(If.has(t)||!Ff.has(t))}function fs(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Af(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,i=[...t].reverse().find(s=>s.op==="claim"),o=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:i?fs(i):null,last_release:o?fs(o):null}}function Mf(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Tf.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Rf(e,t){let n=ms(e);if(t==="deep")return{...e,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:n.notes,tests_count:n.tests,collection_counts:n};let{comments:r,notes:i,learnings:o,files:s,tests:a,docs:d,reminders:c,events:l,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function Df(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function Mt(e){return e.startsWith("item.")?e.slice(5):e}function Lf(e,t){if(e===null)return;let n=new Set([...Ye,...t,"notes_count","tests_count","collection_counts"]),r=new Set(["body","linked","claim_state","children","schedule"]),i=new Set(["linked.files","linked.tests","linked.docs"]),o=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),s=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),a=e.filter(d=>{let c=Mt(d);return!n.has(c)&&!r.has(c)&&!i.has(c)&&!o.has(c)&&!s.has(c)});if(a.length>0)throw new p(`Unknown get --fields value(s): ${a.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"]})}function Of(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:ms(e)},i={};for(let o of t){let s=Mt(o);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(i[s]=Object.hasOwn(r,s)?r[s]:n[s])}return i}function Be(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function At(e,t){return e.some(n=>{let r=Mt(n);return r===t||r.startsWith(`${t}.`)})}function Nf(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":Mf(e.depth),treeDepth:e.tree===!0?j(e.treeDepth,"--tree-depth"):void 0,fields:Df(e.fields),fieldProjection:e.fields!==void 0}}async function $f(e,t,n){let r=E(process.cwd(),t.path);if(!await N($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await T(r),o=O(i,F());if(n!==void 0){let d=await si(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:d.document.metadata.id,metadata:d.document.metadata,body:d.document.body,historical:d}}let s=await me(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await jr(r,e,i.id_prefix,o.type_to_folder);let a=await pe(s,{schema:i.schema});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Pf(e,t,n){let r=B(t.schema).definitions.map(i=>i.metadata_key);if(Lf(e,r),n&&At(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function $n(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Be(r,i):At(r,i):n!=="brief"}async function jf(e,t){if(!t)return;let n=Qe(e.pmRoot,e.locatedId),r=await V(n,e.locatedId);return Af(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function Uf(e,t,n,r){let i=r||Be(n,"linked.files"),o=r||Be(n,"linked.tests"),s=r||Be(n,"linked.docs");!r&&!i&&!o&&!s||(e.linked={files:i?t.metadata.files??[]:[],tests:o?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Kf(e,t,n,r){if(!t)return;let i=P(e.settings.schema),o=await J(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=us(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function Bf(e,t,n,r){if(!r)return;let i=ls(t.metadata);if(i){if(n===null||Be(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>Mt(s)===`schedule.${o}`)))}}async function Gf(e,t,n,r){if(t.tree!==!0)return;let i=await Y(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function py(e,t,n={}){let r=Nf(n),i=await $f(e,t,n.at);Pf(r.fields,i.settings,i.historical!==void 0);let o=$n({...r,field:"body"}),s=$n({...r,field:"linked"}),a=$n({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?At(r.fields,"children"):r.depth!=="brief"&&ps(i.metadata.type)),c=r.fieldProjection?At(r.fields,"schedule"):r.depth!=="brief",l=await jf(i,a),u={item:r.fieldProjection?Of(i.metadata,r.fields):Rf(i.metadata,r.depth)};o&&(u.item.body=i.body),Uf(u,i,r.fields,s),l&&(u.claim_state=l),Bf(u,i,r.fields,c);let f=await Kf(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await Gf(i,n,r.treeDepth,t);if(h!==void 0&&(u.tree=h),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await Oo({pmRoot:i.pmRoot,author:ee(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return u}var hy={shouldAutoIncludeGetChildren:ps};(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]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function hs(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var qf=[{optionKey:"status",summaryKey:"status",normalize:e=>hs(e)?"all":e},{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:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function Ge(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return an(l,r,qf),Object.assign(l,De(r)),Object.assign(l,Re(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=d),r.limit!==void 0&&(l.limit=r.limit),c&&Object.keys(c).length>0&&(l.runtime_filters=c),l}function qe(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:l,runtimeFieldFilters:u}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||hs(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...De(r),...Re(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?d:null,query_expansion_enabled:c.enabled,query_expansion_provider:c.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.limit),runtime_filters:u}}(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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function Hf(e){return le("search",{query:e.query.trim(),mode:e.mode,options:ue(e.searchOptions,hr)})}function gs(e){let t=gr(e.sorted,{cursor:e.searchOptions.after,fingerprint:Hf(e),limit:e.limit,readId:n=>n.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="47576eb5-4ddf-5e04-9e1d-c961da39b754")}catch{}})();var Wf=["id","title","status","type","priority","updated_at","score","matched_fields"],zf=new Set(["score","matched_fields","highlights"]),Vf=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function ys(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new p("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function Rt(e){return e===!0}function _s(e){return ur(e,0,1)??void 0}function ws(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new p("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function bs(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new p("Search --min-score must be a finite number >= 0",m.USAGE);return t}function ve(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return U(n,new Date,t)}function Q(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Pn(e,t){if(e!==void 0)return U(e,new Date,t)}function Yf(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("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function jn(e){let t=e.compact===!0,n=e.full===!0,r=Yf(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE);return t?{mode:"compact",fields:[...Wf]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function Un(e,t){if(e.mode!=="fields")return;let n=new Set(t.definitions.flatMap(i=>[i.key,i.metadata_key])),r=e.fields.filter(i=>{let o=i.trim(),s=o.startsWith("item.")?o.slice(5):o;return!zf.has(o)&&!Vf.has(s)&&!n.has(s)});if(r.length>0)throw new p(`Unknown search --fields value(s): ${r.join(", ")}`,m.USAGE,{examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."]})}function Kn(e){let t=Q(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function Bn(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function Gn(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function qn(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Hn(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},n=e.search?.tuning;if(!n)return t;let r=(i,o)=>typeof i=="number"&&Number.isFinite(i)&&i>=0?i:o;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import Lt from"node:fs/promises";import Qn 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]="42fde1a1-ee4b-5564-93b2-78d5a0fc7555")}catch{}})();var Wn=4,Xf=20,Qf=200,Jf=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function zn(e,t){let n=[],r=new Set;for(let i of e){let o=i.trim().replaceAll(/\s+/g," ");if(o.length===0)continue;let s=o.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(o),n.length>=t))break}return n}function Zf(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function em(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function ks(e,t=Wn){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=_e(n);if(r.length===0)return[n];let i=r.filter(a=>!Jf.has(a.toLowerCase())),o=r.map(a=>Zf(a)),s=i.map(a=>em(a));return zn([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function vs(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?zn(t.filter(n=>typeof n=="string"),Wn):[]}function Ss(e,t,n){return zn([...e,...t],Math.max(1,n))}function Es(e,t){let r=e.search?.query_expansion,i=Se(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:Wn}}function xs(e,t){let r=e.search?.rerank,i=Se(r?.model),s=dr(r?.top_k)??Xf;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Qf,s)}}function Cs(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let i of t){if(typeof i!="object"||i===null)continue;let o=Se(i.id),s=i.score;if(!o||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(o);(a===void 0||s>a)&&n.set(o,s)}let r=[...n.entries()].map(([i,o])=>({id:i,score:o}));return r.sort((i,o)=>i.score!==o.score?o.score-i.score:i.id.localeCompare(o.id)),r}function tm(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Ts(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function nm(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=tm(e,t),i=Ts(t),o=n*i;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||!Number.isFinite(o)||o===0?0:Math.max(-1,Math.min(1,r/o))}async function Is(e,t,n,r,i){if(r.length===0)return new Map;let o=Se(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await nt(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=Ts(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],y=d[f+1];if(!y)continue;let g=nm(c,y,l);u.set(h.id,Math.max(0,Math.min(1,(g+1)/2)))}return u}(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]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var rm=1.2,im=.75;function Vn(e){return _e(e)}function om(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function As(e){let t=[],n=new Map,r=0;for(let o of e){let s=Vn(o.text),a=om(s);r+=s.length;for(let d of a.keys())n.set(d,(n.get(d)??0)+1);t.push({id:o.id,termFrequencies:a,length:s.length})}let i=t.length;return{documents:t,documentFrequency:n,documentCount:i,averageDocumentLength:i>0?r/i:0}}function sm(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Ms(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let i=[...new Set(t.filter(s=>s.length>0))];if(i.length===0)return r;let o=new Map;for(let s of i){let a=e.documentFrequency.get(s);a!==void 0&&o.set(s,sm(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[d,c]of o){let l=s.termFrequencies.get(d);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=c*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function Fs(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Rs(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function Ds(e){let t=e?.search?.bm25;return{k1:Fs(t?.k1,rm,0,1e3),b:Fs(t?.b,im,0,1)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1750b332-dd40-5497-b410-26c8c7436329")}catch{}})();var am=2,cm=120,dm=6,um=40,lm=1e3,fm=900,mm="\xAB",pm="\xBB",Ls=60,$s=["tag","status","type","priority"];function Ps(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let i=n.code;typeof i=="string"&&t.push(i.toLowerCase()),n=n.cause}return t.join(" ")}function js(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Ps(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function Us(e,t){let n=js(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function Ks(e,t,n){try{let r=await Zr(e);r.warnings.length>0&&n.push(...r.warnings);let i=ti(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
13
|
+
`)}catch{}}var w_={applyFilters:zs,applyExactQueryFilters:Ws,applyInlineQueryFilters:Gs,buildHitHighlights:ea,buildVerboseSearchFilters:qe,buildExplicitSemanticFallbackWarning:Us,buildCompactSearchFilterSummary:Ge,buildHybridLexicalScore:ra,buildRerankCorpus:fa,buildSemanticHits:ca,classifyImplicitSemanticFallbackReason:js,collectErrorCauseCodes:Ps,collectExactPhraseFields:qs,collectLinkedPaths:Vs,combineHybridHits:tr,computeBuiltInBm25Hits:ua,computeSemanticOrHybridHits:ma,resolveBuiltInBm25Mode:da,countOccurrences:Zn,dependencyEntries:Jn,documentContainsExactPhrase:Hs,emptySearchResult:ia,highlightFieldSnippet:Zs,loadDocuments:pa,markTokenRuns:Js,parseInlineQueryFilters:Bs,maybeEmitVectorIndexStaleWarning:Ks,loadLinkedCorpus:Xs,mergeVectorHitsById:la,normalizeExtensionProviderHits:aa,normalizeScoreMap:Yn,parseProjectionConfig:jn,parseTimestampWindow:ve,parseTokens:Kn,projectSearchHits:ga,readSearchFieldValue:ha,requireSemanticDependencies:er,resolveExtensionSearchProvider:oa,resolveExtensionSearchProviderByName:$t,resolveExtensionVectorAdapter:sa,resolveLinkedCorpusRoots:Ys,scoreDocument:ta,sortHits:na,stringArray:Nt,textEntries:ie,validateSearchProjectionFields:Un};function Bs(e){let t={},n=[];for(let r of e.split(/\s+/).filter(i=>i.length>0)){let i=r.indexOf(":"),o=i>0?r.slice(0,i).toLowerCase():"",s=i>0?r.slice(i+1):"",a=$s.includes(o)?o:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}n.push(r)}return{residualQuery:n.join(" "),inlineFilters:t}}function Gs(e,t,n){let r={...e};for(let i of $s){let o=t[i];if(o!==void 0){if(R(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Nt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function ie(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function Jn(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function qs(e){let t=e.metadata;return[t.title,t.description,t.status,Nt(t.tags).join(" "),e.body,ie(t.comments).map(n=>n.text).join(" "),ie(t.notes).map(n=>n.text).join(" "),ie(t.learnings).map(n=>n.text).join(" "),Vt(t).join(" "),Yt(t).join(" "),Jn(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),Xt(t)]}function Hs(e,t){return qs(e).some(n=>Q(n).includes(t))}function Ws(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&Q(r.metadata.title)!==t||n.phraseExact&&!Hs(r,t)))}function hm(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null".',m.USAGE)}function gm(e,t,n){let r=G(e.assignee,{label:"--assignee"});hm(r);let i=ht(e),o=Me(e);return{typeFilter:dt(e.type,t),tagFilter:G(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:ut(e.priority),deadlineBefore:Pn(e.deadlineBefore,"deadline-before"),deadlineAfter:Pn(e.deadlineAfter,"deadline-after"),updatedAfter:ve(e.updatedAfter,"updated-after"),updatedBefore:ve(e.updatedBefore,"updated-before"),createdAfter:ve(e.createdAfter,"created-after"),createdBefore:ve(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:G(e.sprint,{label:"--sprint"}),releaseFilter:G(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Ie(i),contentFieldFilters:o,contentFiltersActive:mt(o)}}function ym(e,t){return _m(e,t)&&wm(e,t)&&bm(e,t)}function _m(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let n=t.tagFilter;return!(n&&!Nt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function wm(e,t){return et(e,t)}function bm(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function km(e,t,n,r){let i=e.metadata;return!(!ym(i,t)||!ye(i,n)||t.missingMetadataActive&&!ft(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!pt(i,t.contentFieldFilters))}function zs(e,t,n,r,i,o){let s=gm(t,n,i);return e.filter(a=>km(a,s,r,o))}function Zn(e,t){let n=0,r=0;for(;;){let i=e.indexOf(t,r);if(i<0)return n;n+=1,r=i+t.length}}function vm(e){return _e(e)}function Vs(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),i=[...t,...n,...r].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),o=new Map;for(let s of i)o.set(`${s.scope}:${s.path}`,s);return[...o.values()]}async function Os(e){let t=Qn.resolve(e);try{let n=await Lt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function Ys(e,t){let[n,r]=await Promise.all([Os(e),Os(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function Xs(e,t){let n=Vs(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=Qn.resolve(o.resolved,i.path);if(!Gt(o.resolved,s))continue;let a;try{a=await Lt.realpath(s)}catch{continue}if(Gt(o.realpath,a))try{await xe({path:s,scope:i.scope}),r.push(await Lt.readFile(s,"utf8"))}catch{}}return r.join(`
|
|
14
|
+
`)}var Qs=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>Nt(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>ie(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>ie(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>ie(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Vt(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Yt(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>Jn(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Xt(e.metadata)}],Sm=new Map(Qs.map(e=>[e.name,e]));function Em(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Js(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(Em);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${mm}${i}${pm}`)}function Zs(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,i=l.length)}if(r<0)return null;let o=Math.max(0,r-Ls),s=Math.min(e.length,r+i+Ls),a=Js(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function ea(e,t,n){let r=[];for(let i of t){let o=Sm.get(i);if(o===void 0)continue;let s=Zs(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function xm(e,t,n){return[...Qs.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function Cm(e,t,n){let r=Q(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=Q(i),s=o.length>0&&r.startsWith(o)?r.slice(o.length).trim():r;return t!==r&&t!==s?null:{item:e,score:t===r?lm:fm,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function Tm(e,t,n,r,i){for(let o of e){let s=t.get(o)??0;s>0&&(i.score+=s*r.title_exact_bonus,i.matched.add("title"),i.matchedTokens.add(o));for(let a of n){let d=Zn(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function Im(e,t,n,r){Q(e.title)===t&&(r.score+=cm,r.matched.add("title"));for(let o of n){let s=Zn(Q(o.value),t);s>0&&(r.score+=s*o.weight*dm,r.matched.add(o.name))}}function ta(e,t,n,r,i,o,s=!1){let a=e.metadata,d=Cm(a,n,o);if(d)return d;let c=new Map;for(let g of vm(a.title))c.set(g,(c.get(g)??0)+1);let l=xm(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};Tm(t,c,l,i,u);let f=new Set(t),h=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&h&&(u.score+=um),t.length>=am&&n.includes(" ")&&Im(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,b)=>g.localeCompare(b)),matched_all_terms:h}}function na(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=K(n.item.status,t),s=K(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let d=S(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function ra(e,t,n,r,i,o,s,a=!1){return ta(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function Yn(e){if(e.size===0)return new Map;let t=[...e.values()],n=Math.min(...t),r=Math.max(...t);if(r===n)return new Map([...e.keys()].map(o=>[o,1]));let i=new Map;for(let[o,s]of e)i.set(o,(s-n)/(r-n));return i}function ia(e,t,n,r,i,o,s,a,d,c,l,u,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let b=Ge({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:b,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:qe({effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,queryExpansion:a,rerank:d,runtimeFieldFilters:u??{}}),projection:{mode:c.mode,fields:g},now:D(),...l.length>0?{warnings:l}:{}}}function er(e,t,n,r){if(!t.active)throw new p(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!n.active&&!r)throw new p(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,m.USAGE);return{provider:t.active,vectorStore:n.active??null}}var H=R;function $t(e){let t=F(),n=qr(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,i=r.query,o=r.queryExpansion??r.query_expansion,s=r.rerank,a=H(r.name)??H(n.definition.name)??e;if(!a)return null;let d={providerName:a,...typeof i=="function"?{query:i}:{},...typeof o=="function"?{queryExpansion:o}:{},...typeof s=="function"?{rerank:s}:{}};return!d.query&&!d.queryExpansion&&!d.rerank?null:d}function oa(e){let t=H(e.search?.provider),n=$t(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function sa(e){let t=F(),n=H(e.vector_store?.adapter),r=Hr(t,n);if(!r)return null;let i=r.runtime_definition??r.definition,o=i.query;if(typeof o!="function")return null;let s=i.upsert;return{adapterName:H(i.name)??H(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function aa(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=H(s.id),d=s.score;if(!a||typeof d!="number"||!Number.isFinite(d)||i.has(a))continue;let c=n.get(a);if(!c)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,h)=>f.localeCompare(h)):[`provider:${e}`];i.add(a),o.push({item:c.metadata,score:d,matched_fields:u})}return o}function ca(e,t){let n=[],r=new Map;for(let i of e){if(r.has(i.id))continue;let o=t.get(i.id);o&&(r.set(i.id,i.score),n.push({item:o.metadata,score:i.score,matched_fields:["semantic"]}))}return{semanticHits:n,semanticScores:r}}function Ot(e,t){let n=t.filter(c=>c.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(c=>c.item.id)),i=e.filter(c=>!r.has(c.item.id)),o=i.reduce((c,l)=>Math.max(c,l.score),0),s=n.sort((c,l)=>l.score-c.score),a=o+s.length+1;return[...s.map((c,l)=>({...c,score:a-l,matched_fields:["id"]})),...i]}function tr(e,t,n,r,i="semantic"){let o=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=Yn(t),d=Yn(o),c=new Set([...t.keys(),...o.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,y=d.get(u)??0,g=h*r+y*l;if(g<=0)return null;let b=new Set;t.has(u)&&b.add(i);for(let _ of s.get(u)??[])b.add(_);return{item:f.metadata,score:g,matched_fields:[...b].sort((_,w)=>_.localeCompare(w))}}).filter(u=>u!==null)}function da(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function ua(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Rs(Qr(s,{fields:e.corpusFields}))})),n=As(t),r=Ms(n,Vn(e.query),e.bm25Params),i=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...r].map(([a,d])=>({item:i.get(a).metadata,score:d,matched_fields:["bm25"]}));return Ot(s,e.keywordHits)}let o=tr(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Ot(o,e.keywordHits)}function la(e){let t=new Map;for(let r of e)for(let i of r){let o=t.get(i.id);(!o||i.score>o.score)&&t.set(i.id,i)}let n=[...t.values()];return n.sort((r,i)=>r.score!==i.score?i.score-r.score:r.id.localeCompare(i.id)),n}function fa(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
|
|
15
|
+
`)}async function Fm(e,t){let n=e.queryExpansion.enabled?ks(t,e.queryExpansion.max_queries):[t],r=n.length>0?n:[t];if(!e.queryExpansion.enabled)return r;if(e.queryExpansionExtension?.expand)try{let i=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return Ss(r,vs(i),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),r}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),r}async function Am(e,t,n,r){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:n,settings:e.settings}))}catch(i){if(!e.vectorStore)throw new p(`Extension vector adapter query failed and no built-in fallback store is configured (${i instanceof Error?i.message:String(i)})`,m.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await Qt(e.vectorStore,t,n,r)}if(e.vectorStore)return await Qt(e.vectorStore,t,n,r);throw new p("Semantic search requires either a configured vector store or an extension vector adapter query handler",m.USAGE)}function Mm(e,t,n){return[...e].sort((i,o)=>i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)).slice(0,n).map(i=>{let o=t.get(i.item.id);return o?{hit:i,text:fa(o)}:null}).filter(i=>i!==null)}async function Rm(e,t,n){if(!e.rerankExtension?.rerank)return null;try{let r=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:n.map(o=>({id:o.hit.item.id,text:o.text,score:o.hit.score}))})),i=Cs(r);return i.length>0?new Map(i.map(o=>[o.id,o.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function Dm(e,t,n){let r=await Rm(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Is(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Lm(e,t){let n=new Set(t.keys()),r=e.map(i=>{let o=t.get(i.item.id);if(o===void 0)return i;let s=new Set(i.matched_fields);return s.add("rerank"),{...i,score:o,matched_fields:[...s].sort((a,d)=>a.localeCompare(d))}});return r.sort((i,o)=>{let s=n.has(i.item.id),a=n.has(o.item.id);return s!==a?s?-1:1:i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)}),r}async function Om(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=Mm(n,r,e.rerank.top_k),o=await Dm(e,t,i);return o&&o.size>0?Lm(n,o):n}async function ma(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},i=e.query.trim(),o=await Fm(e,i),s=await nt(e.provider,o,n),a=await Promise.all(s.map(async y=>await Am(e,y,t,r))),d=la(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=ca(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Ot(l,e.keywordHits),vectorMatchCount:f};let h=await Om(e,i,tr(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Ot(h,e.keywordHits),vectorMatchCount:f}}async function pa(e,t,n,r){let i=sr(F()),o=async(c,l,u)=>{let f=async(h,y)=>{await xe({path:h,scope:"project"});let g=await Lt.readFile(h,"utf8");return Cr(g,{format:y,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",y=qt(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${Qn.relative(e,y)}`),""}}},s=[],a=await $r(e,t,n,s,r),d=[];if(a.length===0){let c=await tt(e,t,n,s,r);for(let l of c){let u=qt(e,l.type,l.id,t,n),f=await o(l,u,t);d.push({metadata:l,body:f})}return{documents:d,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let l=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:l})}return{documents:d,warnings:[...new Set(s)].sort((c,l)=>c.localeCompare(l))}}function ha(e,t){let n=t.trim();if(n.length===0)return null;if(n==="score")return e.score;if(n==="matched_fields")return e.matched_fields;if(n.startsWith("item.")){let o=n.slice(5);return o.length===0?null:e.item[o]??null}let r=e,i=e.item;return Object.prototype.hasOwnProperty.call(i,n)?i[n]??null:Object.prototype.hasOwnProperty.call(r,n)?r[n]??null:null}function ga(e,t){return t.mode==="full"?e.map(({matched_all_terms:n,exact_id_match:r,...i})=>i):e.map(n=>{let r={};for(let i of t.fields)r[i]=ha(n,i);return r})}function Nm(e){let t=$t(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function $m(e){let t=$t(H(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Pm(e,t){let n=[],r=Bs(e),i=Object.keys(r.inlineFilters).length>0;if(i&&r.residualQuery.trim().length===0)throw new p("Inline field:value tokens consumed the entire query, leaving no search terms.",m.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let o=i?r.residualQuery:e,s=Gs(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:Rt(s.includeLinked),titleExact:Rt(s.titleExact),phraseExact:Rt(s.phraseExact),matchMode:ws(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:bs(s.minScore),countOnly:s.count===!0,tokens:Kn(o),normalizedQuery:Q(o),limit:te(s.limit),projection:jn(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function jm(e,t){let n=E(process.cwd(),t.path);if(!await N($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),i=Vr(r).settings,o=P(i.schema),s=B(i.schema);Un(e.projection,s);let a=ge(e.options,s,"search"),d=O(i,F()),c=Yr(i),l=Jr(i,n),u=oa(i),f=sa(i),h=_s(e.options.semanticWeight),y=Es(i,c.active?.name??null),g=xs(i,c.active?.model??H(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:Bn(i),scoreThreshold:e.minScoreOverride??Gn(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??qn(i),tuning:Hn(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:da({configuredProvider:H(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:Nm(y),rerank:g,rerankExtension:$m(i),effectiveMode:ys(e.options.mode)}}async function Um(e,t){let n=await pa(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=he(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=lt(t.statusRegistry),o=zs(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:Ws(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function Km(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await Ys(i,cr(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await Xs(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function Bm(e,t,n){let r=await Km(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>ra(o,e.tokens,e.normalizedQuery,e.includeLinked,r,t.tuning,t.settings.id_prefix,i)).filter(o=>o!==null).filter(o=>e.matchMode!=="and"||o.matched_all_terms===!0)}function Ns(e,t){return ia(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t)}async function Gm(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=ua({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:Xr(t.settings),bm25Params:Ds(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&i.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),o}async function qm(e,t,n,r){if(!t.extensionSearchProvider)return null;let i=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let o=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:n}));return aa(t.extensionSearchProvider.providerName,o,r)}catch(o){if(!i)throw new p(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${o instanceof Error?o.message:String(o)}`,m.GENERIC_FAILURE);return null}}function Hm(e,t,n,r){return t.vectorMatchCount>0?t.hits:(r.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?n:t.hits)}async function Wm(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await Ks(e.pmRoot,n,r),e.extensionSearchProvider||er(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function zm(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await Gm(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await Wm(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await qm(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=er(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await ma({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=Hm(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(Us(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function Vm(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return Xn({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Ge({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let n=e.projection.mode==="full"?null:[...e.projection.fields];return Xn({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:qe({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:n},now:D()},e.warnings)}function Xn(e,t){return t.length===0?e:{...e,warnings:t}}function Dt(e,t){return t?{...e,workspace_memory:t}:e}function Ym(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(o=>[o.metadata.id,o])),i=n.map(o=>({...o,highlights:ea(r.get(o.item.id),o.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:i,projection:e.projection}:{hits:i,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function Xm(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return Xn({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Ge({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=i.mode==="full"?null:[...i.fields];return{query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:qe({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:i.mode,fields:a},now:D(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Qm(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function b_(e,t,n){Qm(t);let r=Pm(e,t),i=await jm(r,n),o=await Um(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Ct(o.allDocuments.map(I=>I.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:D()});s.push(...a.warnings);let d=Bo(a,r.query);i.effectiveMode==="hybrid"&&i.semanticWeightProvided&&i.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let c={query:r.query,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:i.scoreThreshold,hybridSemanticWeight:i.hybridSemanticWeight,queryExpansion:i.queryExpansion,rerank:i.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:i.runtimeFieldFilters};if(i.effectiveMode==="keyword"&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Dt(Ns({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await Bm(r,i,o.filteredDocuments),u=await zm({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Dt(Ns({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(I=>I.exact_id_match===!0||I.score>=i.scoreThreshold),h=na(f,i.statusRegistry),y=h.length,g=gs({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),b={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return Dt(Vm(b,y),d);let{hits:_,projection:w}=Ym(r,o.filteredDocuments,g.limited),v=ga(_,w);return Dt(Xm(b,v,y,g.limited.length,w,g.pageExtras),d)}(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]="6152efa9-8338-57f0-b3de-5707befed019")}catch{}})();async function x_(e,t={}){let n=await ii({pmRoot:E(process.cwd(),e.path),...t.status===void 0?{}:{statuses:t.status.flatMap(r=>r.split(",").map(i=>i.trim()).filter(Boolean))},...t.since===void 0?{}:{since:t.since},...t.threshold===void 0?{}:{threshold:t.threshold},...t.limit===void 0?{}:{limit:t.limit}});return{...n,clusters:n.clusters.map(r=>{let i=r.id;return{...r,canonical_id:i,close_command:`pm close <duplicate-id> --duplicate-of ${i}`}}),guidance:{strategy:"review_then_close_duplicate",command:"pm close <duplicate-id> --duplicate-of <canonical-id>"}}}export{si as a,j as b,it as c,ai as d,ot as e,wa as f,st as g,ct as h,li as i,mh as j,nn as k,G as l,dt as m,ut as n,lt as o,Np as p,$p as q,jp as r,ht as s,Me as t,vi as u,Si as v,Qa as w,Ja as x,uh as y,an as z,Re as A,De as B,Y as C,lh as D,_h as E,wh as F,xh as G,Ch as H,Th as I,vo as J,bn as K,bt as L,Pd as M,xo as N,Gd as O,kt as P,qd as Q,Hd as R,Yd as S,Xd as T,Rh as U,Qd as V,Co as W,q as X,vt as Y,jh as Z,Oo as _,St as $,kn as aa,vn as ba,yu as ca,Su as da,Eu as ea,Sn as fa,En as ga,xt as ha,Fu as ia,Du as ja,Ct as ka,Uu as la,Ko as ma,Ku as na,Bo as oa,qo as pa,ag as qa,cg as ra,dg as sa,ug as ta,Ho as ua,Bu as va,Yu as wa,$e as xa,Fg as ya,Tn as za,Ju as Aa,Zu as Ba,Fn as Ca,re as Da,Mn as Ea,Rn as Fa,Dn as Ga,ke as Ha,Ke as Ia,Tt as Ja,Ag as Ka,Ql as La,Mg as Ma,nf as Na,Bg as Oa,Gg as Pa,cf as Qa,qg as Ra,Hg as Sa,Jg as Ta,cs as Ua,ds as Va,us as Wa,py as Xa,hy as Ya,Ge as Za,qe as _a,Hf as $a,gs as ab,Bn as bb,Gn as cb,qn as db,Hn as eb,Ps as fb,js as gb,w_ as hb,b_ as ib,x_ as jb};
|
|
16
|
+
//# sourceMappingURL=chunk-4SV3ZKG3.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{oa as b,pa as D,qa as T,ra as x}from"./chunk-FPSYO5ZG.js";import{Ua as I,cb as _,gb as g,ha as M,mb as S}from"./chunk-ERAAFLPS.js";import{E as w,K as h,Qa as A}from"./chunk-KDH5OX3D.js";import{Y as m,Z as f}from"./chunk-D4PIWE6D.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]="13c02696-29a7-598e-888a-3502fd88bfbe")}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]="a2fad90a-3575-5f3e-8cbe-ac380ac45591")}catch{}})();var N=3,R=20,$=.8,z=100,E=1e3,C=1e6;function ce(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`]}function L(e){let t=e.limit??N,n=e.threshold??$;if(!Number.isSafeInteger(t)||t<0||t>R)throw new f(`Similarity limit must be an integer from 0 to ${R}.`,m.USAGE);if(!Number.isFinite(n)||n<0||n>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:n}}function O(e){let t=e.limit??z;if(!Number.isSafeInteger(t)||t<0||t>E)throw new f(`Duplicate cluster limit must be an integer from 0 to ${E}.`,m.USAGE);let n=e.since===void 0?void 0:new Date(e.since);if(n&&Number.isNaN(n.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:n}}async function q(e,t){let n=h(e.cwd??process.cwd(),e.pmRoot),r=await I(n),a=w(r),i=e.statuses?.map(c=>c.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&i?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let s=A(r.schema),l=i?.map(c=>{if(c==="all")return c;let p=M(c,s);if(!p)throw new f(`Unknown duplicate-cluster status "${c}". Allowed: all, ${s.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),d=l?.includes("all")===!0;if(d&&l?.some(c=>c!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let o=d?void 0:l,u=o?new Set(o):void 0;return{items:(await S(n,r.item_format,a.type_to_folder,void 0,r.schema)).filter(c=>(!u||u.has(c.status))&&(!t||new Date(c.created_at).getTime()>=t.getTime())).sort((c,p)=>c.id.localeCompare(p.id)).map(c=>({item:c,prepared:D(c.title)})),statuses:o}}function U(e,t=C){let n=new Set,r=[new Map,new Map,new Map];for(let[a,i]of e.entries()){let s=[[i.prepared.normalized],i.prepared.issueCodes,i.prepared.tokens];for(let[l,d]of s.entries())for(let o of d){let u=r[l].get(o)??[];for(let c of u)n.add(`${c}:${a}`);if(n.size>t)throw new f(`Duplicate sweep exceeded ${C} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the batch duplicate query until its deterministic candidate set fits the disclosed safety bound."});u.push(a),r[l].set(o,u)}}return n}var ue={buildDuplicateClusters:k,collectDuplicateCandidatePairs:U,createDuplicateUnionFind:v};function v(e){let t=Array.from({length:e},(r,a)=>a);return{parent:t,findRoot:r=>{let a=r;for(;t[a]!==a;)a=t[a];for(;t[r]!==r;){let i=t[r];t[r]=a,r=i}return a}}}function F(e,t,n,r){let a=[];for(let i of t){let[s,l]=i.split(":").map(c=>Number.parseInt(c,10)),d=x(e[s].prepared,e[l].prepared);if(d.score<n)continue;let o=r.findRoot(s),u=r.findRoot(l);o!==u&&(r.parent[u]=o),a.push({left_id:e[s].item.id,right_id:e[l].item.id,...d})}return a}function k(e,t,n,r){let a=new Map;for(let i of e.keys()){let s=n.findRoot(i),l=a.get(s)??[];l.push(i),a.set(s,l)}return[...a.values()].filter(i=>i.length>1).map(i=>{let s=new Set(i.map(d=>e[d].item.id)),l=t.filter(d=>s.has(d.left_id)&&s.has(d.right_id)).sort((d,o)=>o.score-d.score||d.left_id.localeCompare(o.left_id)||d.right_id.localeCompare(o.right_id));return{id:e[i[0]].item.id,items:i.map(d=>{let o=e[d].item;return{id:o.id,title:o.title,status:o.status,type:o.type}}),matches:l,max_score:l[0]?.score??0}}).sort((i,s)=>s.max_score-i.max_score||i.id.localeCompare(s.id)).slice(0,r)}function G(e,t,n,r,a){return t.filter(i=>!n.has(i.id)).map(i=>({id:i.id,title:i.title,status:i.status,type:i.type,...T(e,i.title)})).filter(i=>i.score>=r).sort((i,s)=>s.score-i.score||i.id.localeCompare(s.id)).slice(0,a)}async function P(e,t={}){let n=e.title.trim();if(n.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:r,threshold:a}=L(t),i=h(t.cwd??process.cwd(),t.pmRoot),s=await I(i),l=w(s),d=await g(i,Object.values(l.type_to_folder)),o=b(n),u=d&&o.length>0?await _({pmRoot:i,expectedSourceCursor:d.source_cursor,query:o.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(r*10,50)}):null,c=u===null?await S(i,s.item_format,l.type_to_folder,void 0,s.schema):u.items,p=G(n,c,new Set(e.excludeIds??[]),a,r);return{items:p,count:p.length,threshold:a,source:u?"persistent_index":"metadata_fallback"}}async function me(e={}){let{threshold:t}=L({...e,limit:void 0}),{limit:n,since:r}=O(e),{items:a,statuses:i}=await q(e,r),s=U(a),l=v(a.length),d=F(a,s,t,l),o=k(a,d,l,n);return{clusters:o,count:o.length,threshold:t,source:"metadata_scan",filters:{statuses:i??null,since:e.since??null},cost:{item_count:a.length,candidate_pairs:s.size,scored_pairs:s.size}}}async function fe(e,t){if(t.mode==="off")return;let n=await P(e,t);if(n.count===0)return;let r=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!r){let a=n.items.map(i=>`${i.id} (${i.status}): ${i.title}`).join("; ");throw new f(`Likely duplicate item(s) found: ${a}. Reuse the canonical item or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:"Reuse an existing item, or explicitly acknowledge the duplicate with --allow-duplicate.",recovery:{suggested_flags:["--allow-duplicate"]}})}return{mode:t.mode,bypassed:r,result: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]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function we(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,a)=>r.localeCompare(a))}export{we as a,ce as b,ue as c,P as d,me as e,fe as f};
|
|
2
|
+
//# sourceMappingURL=chunk-55BIB6DV.js.map
|