@unbrained/pm-cli 2026.9.5 → 2026.9.7
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 +39 -3
- package/dist/cli/main.js +10 -8
- package/dist/cli/register-operations.js +13 -8
- package/dist/cli-bundle/bundle-manifest.json +150 -158
- package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +9 -0
- package/dist/cli-bundle/chunks/{chunk-WWAEGW4V.js → chunk-BAX2BYUW.js} +66 -66
- package/dist/cli-bundle/chunks/{chunk-IBYREGSP.js → chunk-CKOL5U7J.js} +51 -51
- package/dist/cli-bundle/chunks/{chunk-ZRAQS3UA.js → chunk-JT6XF6GE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HUAQITVW.js → chunk-JX4DH4WC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QPZHQY2O.js → chunk-NPN5I67J.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-66VPKFP2.js → chunk-OF76PSDQ.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +232 -0
- package/dist/cli-bundle/chunks/{chunk-3HBDTJRK.js → chunk-RWWBOWJ5.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +40 -0
- package/dist/cli-bundle/chunks/{chunk-SF6SM6U5.js → chunk-WI2AYPA7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-AYKGODWT.js → register-list-query-5JL52D33.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-YZYG53SQ.js → register-mutation-ZPG7KMVP.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-UJCRVGBG.js → register-setup-H4SVAVX7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-QL66QNWG.js → chunk-3BZEOXLT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-WOCIPMW7.js → chunk-EZR3GHFE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +56 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3ASU6WGI.js → chunk-LIJIA4TY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-H5FOGAVD.js → chunk-M6PBRFSH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-B2TTQGFG.js → chunk-NTPY5GSO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +177 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YEF5PQQ2.js → chunk-PEFABF7E.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-KWWCBWFO.js → chunk-QTVCLMSZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4OSHLNUE.js → chunk-QTZRBUYA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +10 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +2 -0
- package/dist/cli-bundle/main.js +20 -20
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +37 -37
- 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 +42 -42
- 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 +9 -9
- package/dist/core/extensions/module-graph-snapshot.js +5 -4
- package/dist/core/fs/host-environment-errors.d.ts +27 -0
- package/dist/core/fs/host-environment-errors.js +142 -0
- package/dist/core/output/mutation-projection.js +12 -5
- package/dist/core/store/item-metadata-query-index.js +13 -10
- package/dist/core/store/item-metadata-read-work.d.ts +19 -0
- package/dist/core/store/item-metadata-read-work.js +44 -0
- package/dist/core/store/item-store.js +6 -2
- package/dist/core/validate/fix-planning.d.ts +1 -1
- package/dist/core/validate/fix-planning.js +2 -2
- package/dist/core/validate/missing-link-owners.d.ts +1 -1
- package/dist/core/validate/missing-link-owners.js +5 -3
- package/dist/core/validate/stale-file-classification.d.ts +6 -4
- package/dist/core/validate/stale-file-classification.js +20 -5
- package/dist/mcp/server.js +12 -5
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +7 -5
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +4 -3
- package/dist/sdk/cli-contracts/grammar-contracts.js +11 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +5 -2
- package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +254 -5
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +52 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +18 -6
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +17 -5
- package/dist/sdk/context/usage-ledger.d.ts +41 -0
- package/dist/sdk/context/usage-ledger.js +186 -0
- package/dist/sdk/context-usage.d.ts +18 -9
- package/dist/sdk/context-usage.js +37 -112
- package/dist/sdk/dependency-provenance.d.ts +7 -0
- package/dist/sdk/dependency-provenance.js +14 -4
- package/dist/sdk/duplicates.d.ts +2 -0
- package/dist/sdk/duplicates.js +3 -2
- package/dist/sdk/environment/host-environment-errors.d.ts +5 -27
- package/dist/sdk/environment/host-environment-errors.js +4 -137
- package/dist/sdk/extension/install-runtime.js +9 -6
- package/dist/sdk/extension/install-snapshot.js +7 -6
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +8 -8
- package/dist/sdk/governance/assurance-action.d.ts +3 -2
- package/dist/sdk/governance/assurance-action.js +23 -11
- package/dist/sdk/governance/assurance-runtime.d.ts +2 -0
- package/dist/sdk/governance/assurance-runtime.js +6 -3
- package/dist/sdk/governance/defect-recurrence-coverage.d.ts +93 -0
- package/dist/sdk/governance/defect-recurrence-coverage.js +189 -0
- package/dist/sdk/governance/defect-recurrence-graph.d.ts +33 -0
- package/dist/sdk/governance/defect-recurrence-graph.js +121 -0
- package/dist/sdk/governance/defect-recurrence.d.ts +8 -0
- package/dist/sdk/governance/defect-recurrence.js +118 -17
- package/dist/sdk/governance/health.d.ts +17 -2
- package/dist/sdk/governance/health.js +31 -10
- package/dist/sdk/governance/linked-file-report.d.ts +41 -0
- package/dist/sdk/governance/linked-file-report.js +72 -0
- package/dist/sdk/governance/validate.d.ts +5 -2
- package/dist/sdk/governance/validate.js +21 -37
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/history-repair.d.ts +7 -0
- package/dist/sdk/history-repair.js +48 -13
- package/dist/sdk/lifecycle/close.d.ts +8 -0
- package/dist/sdk/lifecycle/close.js +16 -8
- package/dist/sdk/lifecycle/create.js +9 -12
- package/dist/sdk/lifecycle/update.js +12 -12
- package/dist/sdk/lifecycle-policy.d.ts +3 -0
- package/dist/sdk/lifecycle-policy.js +2 -2
- package/dist/sdk/merge/abandoned-receipts.d.ts +15 -0
- package/dist/sdk/merge/abandoned-receipts.js +47 -0
- package/dist/sdk/merge/driver.js +4 -2
- package/dist/sdk/merge/index.d.ts +1 -0
- package/dist/sdk/merge/index.js +2 -2
- package/dist/sdk/merge/receipt-operation.d.ts +15 -0
- package/dist/sdk/merge/receipt-operation.js +97 -0
- package/dist/sdk/merge/receipt-schema.d.ts +20 -0
- package/dist/sdk/merge/receipt-schema.js +398 -0
- package/dist/sdk/merge/receipts.d.ts +16 -7
- package/dist/sdk/merge/receipts.js +54 -340
- package/dist/sdk/merge/reconcile.d.ts +2 -0
- package/dist/sdk/merge/reconcile.js +11 -4
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/duplicate-candidates.d.ts +7 -0
- package/dist/sdk/query/duplicate-candidates.js +71 -0
- package/dist/sdk/query/get.js +7 -7
- package/dist/sdk/query.d.ts +2 -0
- package/dist/sdk/query.js +4 -2
- package/dist/sdk/read-output-session.js +5 -3
- package/dist/sdk/runtime.js +4 -2
- package/dist/sdk/similarity.d.ts +24 -3
- package/dist/sdk/similarity.js +50 -55
- package/docs/AGENT_GUIDE.md +23 -2
- package/docs/BOUNDED_CONTEXT_READS.md +185 -0
- package/docs/CLOSE_EVIDENCE_RECOVERY.md +35 -0
- package/docs/COMMANDS.md +30 -8
- package/docs/CONTEXT_RELEVANCE.md +16 -4
- package/docs/DEFECT_RECURRENCE.md +80 -6
- package/docs/EXTENSIONS.md +18 -19
- package/docs/MERGE_SAFETY.md +50 -0
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +66 -0
- package/docs/PR_REVIEW_LOOP.md +18 -3
- package/docs/README.md +18 -1
- package/docs/RELEASING.md +7 -2
- package/docs/SDK_LIFECYCLE.md +27 -0
- package/docs/SDK_RUNTIME_BOUNDARIES.md +11 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
- package/marketplace.json +2 -2
- package/package.json +6 -3
- 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/README.md +10 -1
- package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +50 -65
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +1 -0
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-LUI4E32I.js +0 -231
- package/dist/cli-bundle/chunks/chunk-SVK5Y64D.js +0 -40
- package/dist/cli-bundle/chunks/chunk-V5GBD5KV.js +0 -9
- package/dist/cli-bundle/chunks/register-operations-KFSCC7QV.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-24IG6ONG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3ITLIBKS.js +0 -56
- package/dist/cli-bundle/focused-chunks/chunk-3NQD5YDG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-65N6JHAN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-GUBM3RGY.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-JX3RCVCX.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-MV752SUC.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-PKIPMCFS.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-RJMR2JIF.js +0 -9
- package/dist/cli-bundle/focused-chunks/chunk-WIUPWIZR.js +0 -177
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{a as sn,b as an,d as cn,e as dn,f as un,g as ln,h as fn}from"./chunk-H5FOGAVD.js";import{$ as ve,Ha as Se,N as mn,O as ki,Qa as Ai,X as Si,Y as be,Ya as Ri,_ as re,a as Le,aa as ke,ab as Li,b as gi,ba as Ei,d as yi,e as _i,ea as Ci,fa as gt,ga as xi,ha as pn,i as wi,ia as hn,ja as gn,ka as Ii,oa as Ti,p as bi,pa as yn,q as vi,ya as Fi}from"./chunk-GUBM3RGY.js";import{Ma as Pr,Ua as jr,t as $r}from"./chunk-24IG6ONG.js";import{a as Oe,c as Mi,f as _n,g as bt,h as Di,i as vt}from"./chunk-3NQD5YDG.js";import{$ as Zr,D as ne,Ea as pt,Fa as si,Ga as ai,O as j,Oa as M,P as D,Q as G,Qa as ci,Ra as di,T as Jr,Ua as ui,W as Y,Wa as li,_a as fi,ab as ye,cb as mi,eb as U,f as zr,fb as _e,g as qr,gb as we,h as Vr,i as Yr,ib as ht,j as Xr,jb as ee,ka as ei,kb as pi,la as ti,ma as ni,mb as hi,n as De,va as ri,vb as yt,w as Qr,wb as _t,xa as ii,za as oi,zb as wt}from"./chunk-WIUPWIZR.js";import{b as Tr,m as P,o as z}from"./chunk-B2TTQGFG.js";import{A as Gr,D as O,G as Hr,H as S,I as dt,J as B,N as ut,P as lt,S as ft,V as Wr,W as mt,b as ge,c as Kr,e as ct,r as x,w as Me,x as Br}from"./chunk-RJMR2JIF.js";import{$ as m,Aa as R,Ba as ot,Db as Nr,Ec as pe,Fc as he,Ga as C,Gc as Re,H as me,Ia as Mr,Ka as on,Kc as at,Lc as Ur,M as nn,Ma as st,N as rt,Pa as Ae,Qa as L,V as xr,Va as Dr,Wa as Lr,Z as Ir,aa as p,i as Cr,ja as Fr,ka as it,la as Ar,na as Rr,ob as Or,qa as rn}from"./chunk-PKIPMCFS.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]="c14a67b4-102d-5219-b2b3-15d39da36627")}catch{}})();var Ba=["invalid_envelope","source_incomplete","source_unchecked","filtered_corpus","terminal_items_excluded","strict_read_unproven","page_incomplete","count_mismatch","projection_incomplete","field_omission","omission_receipt_missing","omission_receipt_invalid","read_output_missing","read_output_invalid","read_output_dimensions_incomplete","budget_compaction","budget_omission","session_projection","invalid_item_id","duplicate_item_id"],wn=class extends Error{receipt;constructor(t){super(`Complete-list certification failed: ${t.map(n=>n.code).join(", ")}.`),this.name="PmCompleteListValidationError",this.receipt={contract_version:1,contract:"complete_list",findings:t,recovery:{suggested_retry:"pm list --all --output-include full --strict-read --no-truncate --output-budget unbounded --output-limit unbounded --json",sdk:"await client.listAllComplete()"}}}};function Mp(e={}){return{excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0}}function X(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function F(e,t,n,r){t&&e.push({code:n,message:r})}function Ga(e,t){let n=X(e.completeness)?e.completeness:{};F(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),F(t,n.status!=="complete"&&n.status!=="partial","source_unchecked","The source scan did not prove completeness.");let r=n.unreadable_item_count,i=n.unreadable_directory_count;F(t,n.status==="complete"&&(r!==0||i!==0)&&Number.isSafeInteger(r)&&Number.isSafeInteger(i),"source_incomplete","The source scan reports unreadable tracker artifacts despite a complete status."),F(t,n.status==="complete"&&(!Number.isSafeInteger(r)||!Number.isSafeInteger(i)||Number(r)<0||Number(i)<0),"source_unchecked","The source scan did not report safe non-negative unreadable counts.");let o=X(e.filters)?e.filters:{},s=X(o.runtime_filters)?o.runtime_filters:{},a=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return F(t,o.status!=="all"||Object.keys(s).length>0||Object.keys(o).some(d=>!a.has(d)),"filtered_corpus","The list did not explicitly select every lifecycle status."),F(t,o.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),F(t,o.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),o}function Ha(e,t,n){F(n,e.has_more!==!1||e.next_cursor!==null||e.truncated!==!1||e.applied_limit!==void 0||t.no_truncate!==!0,"page_incomplete","Pagination or a row ceiling may have withheld items."),F(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let r=X(e.projection)?e.projection:{};F(n,r.mode!=="full"||r.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let i=X(e.omission_receipt)?e.omission_receipt:void 0;F(n,i===void 0,"omission_receipt_missing","The result carries no field-omission receipt."),F(n,i!==void 0&&(i.has_omissions!==!1||i.omitted_field_group_count!==0||!Number.isSafeInteger(i.omitted_field_group_count)||!Array.isArray(i.omitted_field_groups)||i.omitted_field_groups.length!==0),"omission_receipt_invalid","The field-omission receipt is malformed or contradicts its no-omission claim."),F(n,i?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function Wa(e){return e.contract_version!==1||e.command!=="list"||e.within_budget!==!0||e.strings_compacted!==!1||e.rows_compacted!==!1||e.result_omitted!==!1}function za(e){if(!Array.isArray(e.requested_dimensions))return!1;let t=new Set(e.requested_dimensions);return["include","amount","cost"].every(n=>t.has(n))}function qa(e,t){let n=X(e.read_output)?e.read_output:void 0;F(t,n===void 0,"read_output_missing","The result carries no universal read-output receipt."),F(t,n!==void 0&&Wa(n),"read_output_invalid","The universal read-output receipt does not prove an intact list result."),F(t,n!==void 0&&!za(n),"read_output_dimensions_incomplete","The universal read-output receipt does not prove full, unbounded include, amount, and cost dimensions."),F(t,n?.strings_compacted===!0||n?.rows_compacted===!0||e.output_budget_truncation!==void 0,"budget_compaction","Universal output shaping compacted the result.");let r=X(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;F(t,n?.result_omitted===!0||r?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),F(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function Va(e,t){let n=e.map(r=>X(r)&&typeof r.id=="string"?r.id.trim():"");F(t,n.some(r=>r.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),F(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function Ya(e){if(!X(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:Ba[0],message:"The result must be an object with an items array."}]};let t=e,n=[],r=Ga(t,n);return Ha(t,r,n),qa(t,n),Va(t.items,n),{ok:n.length===0,findings:n}}function Xa(e){let t=Ya(e);if(!t.ok)throw new wn(t.findings);let n=e;return{...n,complete_list:{contract_version:1,item_count:n.items.length,unique_item_id_count:new Set(n.items.map(r=>r.id)).size,terminal_items_included:!0,source_complete:!0,full_projection:!0,no_omissions:!0,unbounded:!0}}}function Dp(e){Xa(e)}(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]="6fe766e2-93e8-5653-beb5-16bd92efae51")}catch{}})();function Oi(e,t){let n=oi(e),r=e.length>0?e[e.length-1].after_hash:ni(),i=t===void 0||n.item_hash_version===void 0?void 0:ti(t,n.item_hash_version),o=t===void 0?void 0:i===void 0?ei(t):i[Math.max(0,i.indexOf(r))],s=o===void 0?void 0:o===r,a=[...n.errors];return s===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:o,current_matches_latest:s}}async function Ni(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);await U(r);let i=await M(r),o=R(i,x()),s=await wi(r,e,i,o.type_to_folder),a=await Y(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=gi(t,a),c=_i(yi(a,d.historyIndex),d),l=ri(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],f=Le(a,!0);return{document:l,reconstructed:!0,as_of_version:f===null?null:f+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 K(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 kt(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new p(`${t} filter must be 0..4`,m.USAGE);return r}function $i(e,t,n="--type"){if(e===void 0)return;let r=ot(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import Ja from"node:fs/promises";import Ki 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 bn={version:1,aliases:{}};function St(e=[]){let t=new Set(De),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let 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 Pi(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 vn(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 Qa(e,t=De){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 Et(e,t=bn,n={}){let r=vn(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 Ct(e,t=bn,n=De){let r=Pi(e.harness),i=Pi(e.agentInstance),o=Qa(e,n);return s=>{let d=vn(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 xt(e,t=bn,n=De){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);vn(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]="7005305a-5fd4-56b8-a0a0-5612e8bf48cc")}catch{}})();var Za=20,ec=5,tc=15,nc="-24h";function yh(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var rc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function kn(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 ji(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 B(i,new Date(t),n)}function ic(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function Ui(e,t){return t===void 0?e:e.slice(0,t)}function Ne(e,t=""){return typeof e=="string"?e:t}function oc(e,t){return{...t,id:e,ts:Ne(t.ts),author:Ne(t.author,"unknown"),op:Ne(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ne(t.before_hash),after_hash:Ne(t.after_hash)}}function sc(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 ac(e){try{return(await Ja.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Ar(t))return[];throw t}}function cc(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function dc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?tc:n==="compact"?Za:ec}function uc(e,t){let n=O(),r=t==="digest",i=ji(e.to??(r?n:void 0),n,"--to"),o=ji(e.from??(r?nc:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&S(o,i)>=0)throw new p("Activity --from must be before --to",m.USAGE);let s=re(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:kn(e.id,"Activity --id"),op:kn(e.op,"Activity --op"),author:kn(e.author,"Activity --author"),from:o,to:i,limit:dc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function lc(e){let t=C(process.cwd(),e.path);return await U(t),{pmRoot:t,settings:await M(t)}}async function fc(e){let t=R(e.settings,x()),n=await ee(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await di({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=Ki.join(e.pmRoot,"history");return await Me({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function mc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:ic(t,n.from,n.to)}async function pc(e,t){let n=[];for(let r of await ac(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await Y(Ki.join(e,r),i);for(let s of o){let a=oc(i,s);mc(s,a,t)&&n.push(a)}}return n}function hc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function gc(e){let t=[...e.entries()].sort(([r,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function yc(e,t){let n=new Map;for(let r of e){let i=n.get(r.id);if(i===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}i.eventCount+=1,S(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),S(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:gc(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function _c(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function wc(e,t,n,r,i){if(e==="digest"){let s=yc(t,r),a=Ui(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Ui(t,n);return e==="compact"?{rows:{compact_activity:hc(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function Bi(e,t){let n=await lc(t),r=cc(e),i=uc(e,r),o=await fc(n),s=St(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=Ct({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=sc(await pc(o.historyDir,i)).filter(d),l=wc(r,c,i.limit,o.itemsById,f=>Et(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:rc[r]},omission_receipt:ct("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:i.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:c.length,item_count:l.totalRows,author_count:new Set(c.map(f=>f.author)).size,operation_counts:_c(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:xt(c,a,s)}:{},applied_bound:{kind:i.limit===void 0?"unbounded":"limit",source:i.limitSource,value:i.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 Sn(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 q(e,t){let n=Sn(e,t);return n===void 0?void 0:new Set(n)}function It(e,t,n="--type"){let r=Sn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=ot(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 Tt(e,t="--priority"){let n=Sn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>kt(r,t)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function Gi(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ft(e){return{isTerminal(t){return e.terminal_statuses.has(Gi(t,e))},classify(t){let n=Gi(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 En(e){return L(e.acceptance_criteria)===void 0}function Cn(e){return!Number.isFinite(e.estimated_minutes)}function qi(e,t){return t.isTerminal(e.status)?L(e.resolution)===void 0:!1}function bc(e){return L(e.reviewer)===void 0}function vc(e){return L(e.risk)===void 0}function kc(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):L(e.confidence)===void 0}function Sc(e){return L(e.sprint)===void 0}function Ec(e){return L(e.release)===void 0}function $e(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Cc(e,t,n){return[[t.acMissing,En(e)],[t.estimatesMissing,Cn(e)],[t.resolutionMissing,qi(e,n)],[t.reviewerMissing,bc(e)],[t.riskMissing,vc(e)],[t.confidenceMissing,kc(e)],[t.sprintMissing,Sc(e)],[t.releaseMissing,Ec(e)]].every(([i,o])=>i!==!0||o)}function xc(e,t){return En(e)||Cn(e)||qi(e,t)}function At(e,t,n){return $e(t)?!(!Cc(e,t,n)||t.metadataMissing&&!xc(e,n)):!0}var xn=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Ic(e,t){switch(t){case"acceptance_criteria":return!En(e);case"estimated_minutes":return!Cn(e);case"resolution":return L(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return L(e.parent)!==void 0}}function Tc(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Fc(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Hi(){let e={};for(let t of xn)e[t]={present:0,applicable:0,percent:100};return e}function Wi(e,t,n){for(let r of xn){if(!Tc(t,r,n))continue;let i=e[r];i.applicable+=1,Ic(t,r)&&(i.present+=1)}}function zi(e){for(let t of xn){let n=e[t];n.percent=Fc(n.present,n.applicable)}}function Ch(e,t){let n=Hi(),r={};for(let i of e){Wi(n,i,t);let o=r[i.type]??(r[i.type]=Hi());Wi(o,i,t)}zi(n);for(let i of Object.values(r))zi(i);return{overall:n,by_type:r}}var Ac={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Rc(e){return Ac[e]}function Mc(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Dc(e,t,n){switch(t){case"assignee":return[L(e.assignee)??null];case"parent":return[L(e.parent)??null];case"type":return[L(e.type)??null];case"status":return[L(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 xh(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 Dc(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??Rc(t),key:c,buckets:Mc(),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 Ee=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function ie(e){return Array.isArray(e)&&e.length>0}function Lc(e){return typeof e=="string"&&e.trim().length>0}function Oc(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 Yi(e,t){switch(t){case"notes":return ie(e.notes);case"learnings":return ie(e.learnings);case"files":return ie(e.files);case"docs":return ie(e.docs);case"tests":return ie(e.tests);case"comments":return ie(e.comments);case"deps":return ie(e.dependencies);case"body":return Lc(e.body);case"linked_command":return Oc(e.tests)}}function Rt(e){return Ee.some(t=>e[t]!==void 0)}function Mt(e,t){for(let n of Ee){let r=t[n];if(r===void 0)continue;let i=Yi(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Xi(e){return Ee.some(t=>t!=="body"&&e[t]!==void 0)}function Qi(e){return e.body!==void 0}function Vi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Nc(){let e={};for(let t of Ee)e[t]={present:0,total:0,percent:100};return e}function Th(e){let t=Nc(),n=e.length;for(let s of e)for(let a of Ee)Yi(s,a)&&(t[a].present+=1);for(let s of Ee)t[s].total=n,t[s].percent=Vi(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:Vi(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]="ccdb7d16-4f38-58d4-a19d-4ab1516cb1d7")}catch{}})();var Dt=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}),Ji=[{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"}],je=e=>{let t=Ji.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(Ji.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Zi=["priority","deadline","updated_at","created_at","title","parent"],eo=["asc","desc"],io=new Set(fi);function $c(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 Pc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var jc=[{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"}],Uc=[{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 oo(e,t){for(let n of jc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function so(e,t){for(let n of Uc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Tn(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 Ue(e){let t={};return oo(t,e),t}function Ke(e){let t={};return so(t,e),t}var Kc=[{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"}],Bc=[{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"}],Gc=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Hc="-7d";function ao(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"),Tn(d,n,Kc),uo(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),so(d,n),oo(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),Pc(a)&&(d.runtime_filters=a),d}function Fn(e,t,n){let r=G(e.status,n),i=G(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 Wc(e,t){return[...e].sort((n,r)=>Fn(n,r,t))}function to(e,t){if(e!==void 0)return B(e,new Date,t)}function Pe(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return B(n,new Date,t)}function co(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?Pe(Hc,"recent"):Pe(e.updatedAfter,"updated-after")}function uo(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function lo(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 An(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 fo(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 mo(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=fo(e.fields);if(Number(n)+Number(r)+Number(i)+ +(o!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return i?{mode:"full",fields:[]}:r?{mode:"brief",fields:[...an]}:n?{mode:"compact",fields:[...sn]}:o?{mode:"fields",fields:[...new Set(o.map(a=>te(a)))]}:{mode:"full",fields:[]}}function te(e){return e.startsWith("item.")?e.slice(5):e}function zc(e,t,n){if(e.mode!=="fields")return;let r=cn(t),i=new Set(r.map(s=>te(s))),o=e.fields.filter(s=>!i.has(te(s)));if(o.length>0)throw new p(`Unknown list --fields value(s): ${o.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"],recovery:{allowed_values:r,suggested_retry:`pm ${n} --fields id,title,status --limit 10`,suggested_retry_args:[n,"--fields","id,title,status","--limit","10"]}})}var qc=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function po(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=qc.get(t);if(n)return n;if(!Zi.includes(t))throw new p(`Sort field must be one of ${Zi.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function ho(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!eo.includes(t))throw new p(`Sort order must be one of ${eo.join("|")}`,m.USAGE);return t}function Vc(e){return K(e,"--tree-depth")}function go(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 no(e,t){return be(e,t,{strict:!0})}function yo(e){return q(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Yc(e,t,n){let r=yo(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 Xc(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 Qc(e,t,n,r){let i=q(t.assignee,{label:"--assignee"}),o=go(t.assigneeFilter);Xc(i,o);let s=Dt(t),a=je(t);return{idsFilter:lo(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:It(t.type,n),tagFilters:yo(t.tag),priorityFilter:Tt(t.priority),deadlineBefore:to(t.deadlineBefore,"deadline-before"),deadlineAfter:to(t.deadlineAfter,"deadline-after"),updatedAfter:co(t),updatedBefore:Pe(t.updatedBefore,"updated-before"),createdAfter:Pe(t.createdAfter,"created-after"),createdBefore:Pe(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:q(t.sprint,{label:"--sprint"}),releaseFilter:q(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:$e(s),lifecycleClassifier:Ft(r),contentFieldFilters:a,contentFiltersActive:Rt(a)}}function Jc(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&G(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 Zc(e,t){return dt(e,t)}function ed(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 td(e,t,n){let r=e.parent?.trim().toLowerCase(),i=[...new Set([...n?.get(e.id.trim().toLowerCase())??[],...r?[r]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!i.includes(t.parentFilter.trim().toLowerCase())||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 nd(e,t,n,r,i){return!(!Jc(e,t,n)||!Zc(e,t)||!ed(e,t)||!td(e,t,i)||t.missingMetadataActive&&!At(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Mt(e,t.contentFieldFilters)||!ke(e,r))}function _o(e,t,n,r,i,o,s){let a=Qc(t,n,r,i);return e.filter(d=>nd(d,a,i,o,s))}function Ce(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function In(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??Ce(typeof i.parent=="string"?i.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function rd(e,t){let n=new Map,r=new Map;for(let i of e){let o=i.id.trim().toLowerCase();n.set(o,i);let s=t?t.parents_by_child.get(o)??[]:[Ce(i.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let d=r.get(a)??[];d.push(i),r.set(a,d)}}return{byId:n,childrenByParent:r}}function id(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[Ce(o.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function wo(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=rd(e,r),a=id(e,t,o,s,r),d=[],c=new Set,l=new Map(i.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),u=[...a].reverse().map(f=>({node:f,depth:0,parentId:t===void 0?void 0:l.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:f,depth:h,parentId:_}=u.pop(),g=f.id.trim().toLowerCase();if(c.has(g))continue;c.add(g);let y=s.get(g)??[];if(d.push(In(f,h,y.length,_)),!(n!==void 0&&h>=n))for(let w of[...y].reverse())u.push({node:w,depth:h+1,parentId:l.get(g)})}if(t===void 0&&n===void 0)for(let f of e){let h=f.id.trim().toLowerCase();c.has(h)||(c.add(h),d.push(In(f,0,s.get(h)?.length??0)))}return d}function bo(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function vo(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function ko(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return vo(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 bo(e.parent??null,t.parent??null);default:return 0}}function So(e,t,n,r){return t?[...e].sort((i,o)=>{let s=ko(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=Fn(i,o,r);return n==="desc"?-a:a}):Wc(e,r)}function Eo(e,t,n=!1){let r=te(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 Rn(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Eo(r,o,n);return i})}function Co(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function xo(e,t){if(e.noTruncate!==!0)return K(e.limit)??(t>=1e4?20:void 0)}function od(e,t,n){return t.after===void 0?An(t.offset)??0:at(e,t.after,n,r=>r.id)}function Io(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function sd(e,t){let n=C(process.cwd(),t.path);await U(n);let r=await M(n),i=P(r.schema),o=z(r.schema),s=e.projectionCommand??"list",a=mo(e,s);return zc(a,Co(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:ve(e,o,"list"),typeRegistry:R(r,x()),projection:a}}async function ad(e,t,n){let r=t.projection.fields.some(d=>te(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>io.has(te(d))),o=je(e),s=Xi(o),a=Qi(o);return e.includeBody||r||a?await pi(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await ht(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ee(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function cd(e){let t=po(e.sort),n=ho(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?Vc(e.treeDepth):void 0,parentRoot:r?Ce(e.parent):void 0}}function dd(e,t,n){let r=no(t.status,n),i;t.lifecycleBucket==="in_progress"?i=[n.in_progress_status]:t.lifecycleBucket==="open"&&(i=[...n.active_statuses].filter(c=>c!==n.in_progress_status).sort((c,l)=>c.localeCompare(l)));let o=r??i??no(e,n),s=Si(t.status),a=r||s?{...t,excludeTerminal:!1}:t,d="all";return s?d="all":r!==void 0?d=r.length===1?r[0]:r:t.lifecycleBucket!==void 0?d=t.lifecycleBucket:o!==void 0?d=o.length===1?o[0]:o:a.excludeTerminal===!0&&(d=null),{resolvedStatus:o,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:d}}function ud(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=xo(t,e.length),s=od(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=Rn(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Re(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:Io(o,l,u)}}function To(e,t,n){return he("list",{status:e,options:pe(t,$r),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function ld(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","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(_=>{let g=te(_);return g==="body"||io.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,Br(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([_,g])=>g!==void 0&&!o.has(_))].includes(!0))return null;let d=await ye(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=K(t.limit),l=An(t.offset)??0,u=await li({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?Re(To(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:Rn(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Io(c,f,h)}}function fd(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 Bc){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of Gc)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,Ke(n),Ue(n)),uo(c,n),r&&(c.no_truncate=!0),n.strictRead===!0&&(c.strict_read=!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 Q(e,t,n){let r=await sd(t,n),i=[],o=cd(t),s=dd(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await ld({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await ad(t,r,i),w=o.treeEnabled||Ce(t.parent)!==void 0?wt(_t(g,yt())):void 0;Yc(g,t.tag,i);let b=_o(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,w?.parents_by_child),v=t.dependencyBlocked===!0?(()=>{let T=bt(g,r.statusRegistry);return b.filter(I=>T.has(I.id.trim().toLowerCase()))})():b,E=So(v,o.sortField,o.sortOrder,r.statusRegistry),H=o.treeEnabled?wo(E,o.parentRoot,o.treeDepth,w,g):E;c=ud(H,t,r.projection,o.treeEnabled,To(s.filtersStatus,t,o))}let l=O(),u=[...new Set(i)].sort((g,y)=>g.localeCompare(y)),f=$c(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=ao({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:fd({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 rg={applyFilters:_o,buildCompactListFilterSummary:ao,buildContentFilterEcho:Ue,buildGovernanceMissingFilterEcho:Ke,resolveContentFieldFilters:je,resolveMissingMetadataFilters:Dt,compareBySortField:ko,compareDefaultSort:Fn,compareNullableString:bo,compareNullableTimestamp:vo,normalizeProjectionField:te,parseAssigneeFilter:go,parseFieldSelectors:fo,parseIdsFilter:lo,parseOffset:An,parseProjectionConfig:mo,resolveListUpdatedAfter:co,resolveListPageLimit:xo,parseSortField:po,parseSortOrder:ho,orderItemsAsTree:wo,projectListItems:Rn,readListFieldValue:Eo,runtimeMetadataKeysForProjection:Co,sortItems:So,trimNonEmpty:Ce,withTreeMetadata:In};(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 md=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],pd=["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 hd(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function sg(e,t,n={}){let r=n.includePagination!==!1;return[t,...md.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(hd)||pd.some(o=>e?.[o]===!0)}function Fo(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 Ao=["parent","type","priority","status","assignee","tags","sprint","release"];function Mo(e,t){let n=be(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Do(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 Lo(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=Ai(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(!Ao.includes(r))throw new p(`Aggregate group fields must be one of ${Ao.join("|")}; received "${r}"`,m.USAGE);return n}function Oo(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 No(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 Oo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function $o(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 Po(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var gd={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Ro(e,t){return t==null||t===""?gd[e]:String(t)}function yd(e,t){return e.length===1?Ro(e[0],t[e[0]]):e.map(n=>`${n}=${Ro(n,t[n])}`).join(" | ")}function jo(e,t,n){for(let r of n){let i=$o(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 Ko(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Mn(e,t,n){let r=j(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 _d(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 wd(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function bd(e){e.accumulator.row.count+=1,e.includeCompletion&&Mn(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&wd(e.accumulator,e.numericValue)}function vd(e,t){let n={};for(let r of e)n[r]=No(r,t);return n}function kd(e,t,n,r){let i={...e.row,group_label:yd(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=Ko(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 Sd(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 lg(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=C(process.cwd(),t.path),r=await M(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...z(r.schema).definitions.filter(w=>w.type==="number").map(w=>w.metadata_key)],s=Lo(e.groupBy),a=Mo(e.status,i),d=Do(e,[...new Set(o)].sort((w,b)=>w.localeCompare(b))),c=e.completion===!0,l=e.includeUnparented===!0,u=await Q(void 0,{...Fo(e),status:e.status},t),f=new Map,h=0,_=0;for(let w of u.items){let b=w,v=vd(s,b);if(s.includes("parent")&&v.parent===null&&!l){h+=1;continue}let E=Po(s,v),H=f.get(E),T=d===null?null:Uo(b,d.field);if(H)bd({accumulator:H,item:b,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:T});else{let I=_d(v,T);c&&Mn(I,b.status,i),f.set(E,I)}_+=1}let g=[...f.values()].map(w=>kd(w,s,c,d)).sort((w,b)=>jo(w,b,s)),y=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:_,items_skipped_unparented:h},filters:Sd({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:O(),...y?{warnings:y}:{}}}var fg={buildGroupKey:Po,compareAggregateRows:jo,compareNullableGroupValue:$o,completionPct:Ko,normalizeTagGroupValue:Oo,parseGroupBy:Lo,parseNumericAggregation:Do,parseStatus:Mo,readNumericAggregateValue:Uo,resolveGroupValue:No,updateCompletionCounts:Mn};import{encode as Ed}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]="47de55f1-589f-5743-bcb8-3b7a6302dfbb")}catch{}})();var Dn=["agenda","day","week","month"],Ln=["markdown","toon","json"],Cd=["sun","mon","tue","wed","thu","fri","sat"],xd=365,Id=365,Ho=28,Td=1e3;function On(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 Fd(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 Wo(e,t){let n;for(let r of t){let i=Cr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Ad(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Dn.includes(t)){let n=Wo(t,Dn);throw new p(`Calendar view must be one of ${Dn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Rd(e){if(!e)return;let t=e.trim().toLowerCase();if(!Ln.includes(t)){let n=Wo(t,Ln);throw new p(`Calendar format must be one of ${Ln.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function wg(e,t){let n=Rd(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 Md(e,t){if(e===void 0)return;let n=j(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 Dd(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 Lt(e){return new Date(e).toISOString().slice(0,10)}function zo(e,t){if(!t||t==="UTC")return Lt(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 Lt(e)}function jn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function J(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function qo(e){let t=new Date(jn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return J(t.toISOString(),r)}function Ld(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Od(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Nd(e,t){return S(e,t)>=0?e:t}function Bo(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Go(e,t){e.set(t,(e.get(t)??0)+1)}function $d(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)=>me(r)-me(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 Vo(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 Yo(e){return Cd[new Date(e).getUTCDay()]}function Pd(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function jd(e){let t=new Set;for(let n of e??[]){let r=Pd(n);r&&t.add(r)}return t}function Ud(e,t,n,r,i){let o=e??J(n,-(r??Id)),s=t??J(e??n,i??xd);return{start:o,end:S(s,o)>0?s:J(o,1)}}function Kd(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Yo(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??Td,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:jd(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)=>me(s)-me(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Ot(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 Nt(e,t){let n=Yo(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function Bd(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Nt(e,t)&&Ot(e,t)==="stop");n+=1)t=J(t,e.interval);return e.occurrences}function Gd(e,t,n){let r=me(n),i=J(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 Hd(e){let t=qo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=J(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=Gd(e,r,i);if(Nt(e,o)&&Ot(e,o)==="stop")return e.occurrences}}return e.occurrences}function Wd(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=Vo(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!Nt(e,s))&&Ot(e,s)==="stop")return e.occurrences}}return e.occurrences}function zd(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=Vo(i,n,o,e.startDate);if(!(!s||!Nt(e,s))&&Ot(e,s)==="stop")return e.occurrences}}return e.occurrences}function qd(e,t,n,r){let i=Kd(e,t,n,r);return t.freq==="daily"?Bd(i):t.freq==="weekly"?Hd(i):t.freq==="monthly"?Wd(i):zd(i)}function Xo(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 Un(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 Vd(e){return e.deadline?{at:e.deadline,date:Lt(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,...Un(e),item_deadline:e.deadline}:null}function Yd(e){return(e.reminders??[]).map(t=>({at:t.at,date:Lt(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,...Un(e)}))}function Xd(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Qd(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Jd(e,t,n,r){let i=$d(t.recurrence),o=Xd(t.start_at,t.end_at);return(t.recurrence?qd(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):zo(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Qd(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,...Un(e)}))}function Zd(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?Vd(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Yd(o));for(let a of n.has("events")?o.events??[]:[])i.push(...Jd(o,a,t,r))}return Xo(i)}function eu(e,t,n,r,i){let o=$i(t.type,n),s=t.tag?.trim().toLowerCase(),a=kt(t.priority),d=Md(t.status,r),c=t.assignee?.trim(),l=Dd(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=>tu(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function tu(e,t){return nu(e,t)&&ru(e,t)&&ke(e,t.runtimeFieldFilters)}function nu(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 ru(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 iu(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function Nn(e,t,n){return e.trim().toLowerCase()==="today"?jn(t):B(e,new Date(t),n)}function ou(e,t,n){let r=t.date?Nn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Nn(t.from,n,"--from"):void 0,a=t.to?Nn(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 su(r,t,n,i,o,s,a);if(e==="day"){let c=jn(r);return $n(r,n,i,o,c,J(c,1))}if(e==="week"){let c=qo(r);return $n(r,n,i,o,c,J(c,7))}let d=Ld(r);return $n(r,n,i,o,d,Od(r))}function su(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 $n(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Nd(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function au(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:Xo(r)}))}function cu(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),Go(n,d.item_type),Go(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:Bo(n),by_status:Bo(r),recurring_events:a}}function du(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Qo(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 Pn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function uu(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===zo(e.event_end,e.event_timezone)?Qo(e.event_end,e.event_timezone):e.event_end:null}function lu(e){let t=`${Qo(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=uu(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 bg(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${du(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: ${Pn(e.summary.by_kind)}`),t.push(`- by-type: ${Pn(e.summary.by_type)}`),t.push(`- by-status: ${Pn(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(`- ${lu(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 fu(t.join(`
|
|
3
|
-
`))}function vg(e){return Ed(e)}function fu(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
-
`;)t-=1;return e.slice(0,t)}function mu(e){let t=O(),n=Ad(e.view),r=ou(n,e,t),i=K(e.limit),o=Fd(e.include),s=On(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=On(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=On(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?Ho:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function pu(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Ho}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function hu(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 gu(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 Jo(e,t){let n=C(process.cwd(),t.path);await U(n);let r=mu(e),i=await M(n),o=P(i.schema),s=z(i.schema),a=ve(e,s,"calendar"),d=R(i,x()),c=[];pu(c,r.eventsOnlyCapApplied);let l=await ee(n,i.item_format,d.type_to_folder,c,i.schema),u=eu(l,e,d,o,a),f=Ud(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),_=Zd(u,f,r.includeSources,r.occurrenceLimit).filter(b=>iu(b,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?_:_.slice(0,r.limit),y=au(g),w=[...new Set(c)].sort((b,v)=>b.localeCompare(v));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:gu(e,r.rangeBounds),filters:hu(e,a),summary:cu(g),events:g,days:y,...w.length>0?{warnings:w}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="377499d7-13b3-55f0-9d44-425bfcaf7964")}catch{}})();var Zo="1970-01-01T00:00:00.000Z";function Be(e){if(typeof e!="string")return null;let t=e.trim();if(!Hr(t)&&!/^\d{4}-\d{2}-\d{2}$/u.test(t))return null;try{return B(t,new Date(Number.NaN),"context signal recency coordinate")}catch{return 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]="80a03884-711e-5170-a3c1-f05ccb065702")}catch{}})();var Kn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],yu=Symbol("no-context-author"),_u=Symbol("no-item-assignee");function es(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function wu(e){if(typeof e!="string")return;let t=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?o.toISOString():void 0}function bu(e){let t=wu(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:Be(e.created_at)??Zo}}function vu(e){if(!["substantive_history","release_cohort","created_at"].includes(e.source)||(e.source==="substantive_history"?e.history_op!==void 0&&typeof e.history_op!="string"||e.event_class!==void 0&&e.event_class!=="substantive":e.history_op!==void 0||e.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");let t=Be(e.coordinate);if(t===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...e,coordinate:t}}function ku(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 Su(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 Eu(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 $t(e,t,n){return e?.[t]??n}function Pt(e,t){let n=new Map(e.map(c=>{let l=t.recencyEvidence?.[c.id];return[c.id,l===void 0?bu(c):vu(l)]})),r=[...e].sort((c,l)=>{let u=n.get(c.id).coordinate,f=n.get(l.id).coordinate;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=es(t.author,yu),a=j("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=es(c.assignee,_u)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signal_provenance:{recency:n.get(c.id)},signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:$t(t.graphProximity,c.id,c.parent?.3:0),claim_focus:$t(t.claimFocus,c.id,D(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:ku(c.priority,4),risk_pressure:Eu(c.risk),deadline_pressure:Su(c.deadline,d),knowledge_density:$t(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:$t(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Cu="context_relevance",xu={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},Iu=new TextEncoder;function Tu(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"||!Kn.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 Fu(e){let t={...xu};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Kn.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 ns(e,t={}){Tu(e);let n=Fu(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=Kn.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 _=c[h];if(_===void 0)continue;let g=_*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 Au(e,t={}){let n=ns(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 jt(e,t,n={}){let r=ns(t,n),i=await Gr(Cu,{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 Au(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 Ru=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function ts(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Mu(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:ts(e.required_ids??[],a),continuity_coverage:ts(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Du(e){return Math.ceil(Iu.encode(JSON.stringify(e)).byteLength/4)}function Lu(e){return Math.round(e*1e4)/1e4}function Ou(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 Nu(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:i}=Ou(n,e.surface),o={...n,ranking:void 0},s=Du(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Mu({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 $u(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Ru;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,Lu(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 Fg(e,t,n){let r=[];for(let i of e)r.push(await Nu(i,t));return $u(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 Pu={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},ju=["identity","summary","full"];function Uu(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=ju.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 Ku(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=Pu[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 Bu(e){let t=new Set;for(let n of e){if(Uu(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 Gu(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 Hu(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=Gu(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 Wu(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 rs(e,t){let n=Ku(t),r=Bu(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=Hu({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=Wu(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 Ge from"node:fs/promises";import He from"node:path";import{createHash as is,randomUUID as zu}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]="9b112b71-e0b8-5502-89f6-b4da6eb85f6b")}catch{}})();var Bn=3,Gn=2,os=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],qu=new Set(["substantive_history","release_cohort","created_at"]),Vu={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 xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ss(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Yu(e){let t={};for(let n of os){let r=e[n];if(r!==void 0){if(!ss(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Xu(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 Qu(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 as(e,t){return{...t,activityDensity:t.activityDensity??Xu(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Qu(e)}}function zn(e){let t=is("sha256");for(let{id:n,signal_provenance:{recency:r}}of[...e].sort((i,o)=>i.id.localeCompare(o.id)))t.update(JSON.stringify([n,r.source,r.coordinate,r.history_op??null,r.event_class??null]));return`sha256:${t.digest("hex")}`}function Ju(e){if(!xe(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",xe(e.signals),xe(t)].every(Boolean))return null;let n=t.recency;if(!xe(n))return null;let r=Be(n.coordinate);if(r===null)return null;let i=new Set(os),o=Object.entries(e.signals);return!o.every(([s,a])=>i.has(s)&&ss(a))||![typeof n.source=="string"&&qu.has(n.source),["undefined","string"].includes(typeof n.history_op),[void 0,"substantive","maintenance"].includes(n.event_class),n.source==="substantive_history"?n.event_class===void 0||n.event_class==="substantive":n.history_op===void 0&&n.event_class===void 0].every(Boolean)?null:{id:e.id,signals:Object.fromEntries(o),signal_provenance:{recency:{source:n.source,coordinate:r,history_op:n.history_op,event_class:n.event_class}}}}function Zu(e,t){let n=Array.from(e,Ju);if(n.some(i=>i===null))return null;let r=n;return new Set(r.map(i=>i.id)).size!==r.length||r.some(i=>i.id.trim().length===0)||t!==zn(r)?null:r.sort((i,o)=>i.id.localeCompare(o.id))}function el(e){if(!xe(e)||e.format_version!==Bn||e.signal_set_version!==Gn||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.recency_evidence_fingerprint!="string"||!/^sha256:[a-f0-9]{64}$/u.test(e.recency_evidence_fingerprint)||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=Zu(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:Bn,signal_set_version:Gn,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function cs(e){if(typeof e.sourceCursor!="string"||e.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(e.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(e.source!=="derived_index"&&e.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback")}function ds(e,t,n=zn(e)){let r=e.map(({id:o})=>o);if(new Set(r).size!==r.length||r.some(o=>o.trim().length===0))throw new TypeError("Context signal snapshot item IDs must be unique and non-empty");let i=e.map(({id:o,signals:s,signal_provenance:a})=>({id:o,signals:Yu(s),signal_provenance:a})).sort((o,s)=>o.id.localeCompare(s.id));return Object.freeze({format_version:Bn,signal_set_version:Gn,source_cursor:t.sourceCursor,recency_evidence_fingerprint:n,generated_at:t.now,source:t.source,items:Object.freeze(i.map(o=>Object.freeze(o)))})}function Ug(e,t){return cs(t),ds(Pt(e,as(e,t)),t)}var Hn=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=He.resolve(t)}async read(){try{return JSON.parse(await Ge.readFile(this.filePath,"utf8"))}catch(t){if(xe(t)&&it(t))return null;throw t}}async write(t){let n=He.dirname(this.filePath);await Ge.mkdir(n,{recursive:!0});let r=He.join(n,`.${He.basename(this.filePath)}.${zu()}.tmp`);try{await Ge.writeFile(r,`${JSON.stringify(t)}
|
|
5
|
-
`,{encoding:"utf8",flag:"wx"}),await Ge.rename(r,this.filePath)}finally{try{await Ge.rm(r,{force:!0})}catch{}}}},Wn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){cs(n);let r=[],i=null;try{let f=await this.adapter.read();i=el(f),f!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(f=>f.id).sort((f,h)=>f.localeCompare(h)),s=i?.items.map(f=>f.id)??[],a=Pt(t,as(t,n)),d=zn(a),c=i!==null&&i.source_cursor===n.sourceCursor&&i.recency_evidence_fingerprint===d&&i.source===n.source&&s.length===o.length&&s.every((f,h)=>f===o[h]),l;if(c&&i!==null)l=i;else{i!==null&&r.push("context_signal_store_stale"),l=ds(a,n,d);try{await this.adapter.write(l)}catch{r.push("context_signal_store_write_failed")}}let u=new Map(l.items.map(f=>[f.id,f]));return{snapshot:l,candidates:a.map(f=>({...f,signals:{...f.signals,...u.get(f.id)?.signals},signal_provenance:u.get(f.id).signal_provenance})),cache_status:c?"fresh":"rebuilt",warnings:r,warning_details:r.map(f=>Vu[f])}}};function tl(e){let t=is("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 Ut(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 ye(t.pmRoot),o=t.sourceCursor??i?.source_cursor??tl(e),s=t.source??(i===null?"scan_fallback":"derived_index"),a=new Wn(new Hn(He.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),d=t.recencyEvidence??Object.fromEntries(Object.entries(await Zr(t.pmRoot,e.map(c=>c.id))).map(([c,l])=>[c,{source:"substantive_history",coordinate:l.entry.ts,history_op:l.entry.op,event_class:"substantive"}]));return a.readOrRebuild(e,{...t,recencyEvidence:d,sourceCursor:o,source:s})}import nl from"node:path";import{createHash as rl}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 us(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 il from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var ls=1,ol=1e4,fs=12;function sl(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function al(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 cl(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 dl(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(D(o.status,t.statusRegistry))).map(o=>{let s=us(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=sl(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=al(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:ls,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(cl).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function ul(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 ll(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(ul)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function fl(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==ls||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(ll)?t:null}function ml(e){return`scan:${rl("sha256").update(Or(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function pl(e,t,n){return n!==void 0?n:(await ye(t))?.source_cursor??ml(e)}async function hl(e){try{let t=fl(JSON.parse(await il.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&it(t))}}}async function Kt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??ol));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await pl(e,t.pmRoot,t.sourceCursor),i=nl.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await hl(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=dl(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await Rr(i,`${JSON.stringify(d)}
|
|
6
|
-
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function gl(e,t,n=fs){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 ms(e,t,n=fs){if(e.snapshot===null)return;let r=gl(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 yl(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 ps(e,t,n=5){let r=yl(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 hs=16;async function gs(e,t,n){let r=R(t,x()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<hs;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await _e(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await we(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function ny(e){await Vr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await gs(e.pmRoot,e.settings,e.itemId)})}async function ry(e){await Yr(e)}async function iy(e){await Xr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await gs(e.pmRoot,e.settings,e.itemId)}:{}})}var oy={lineage_depth:hs,active_items:64,evidence_rows:32};function ys(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]="4f8e82a2-f4ea-5ecb-8ef5-3ca795cdeda5")}catch{}})();var _l=["markdown","toon","json","ndjson"],Bt=new Set(["Epic","Feature"]),ks=10,Ss=1e4,Es=["hierarchy","activity","progress","recently_created","unparented","workload"],wl=[...Es,"blockers","files","staleness","tests"],bl=/^(\d{4})-(\d{2})-(\d{2})/,vl=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,kl=/^(\d{4})(\d{2})(\d{2})$/,Sl=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function El(e){if(!e)return;let t=e.trim().toLowerCase();if(!_l.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var _s=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 Cl(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!_s.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[..._s].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 We(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function Cy(e,t){let n=El(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 xl(e,t){return K(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:ks)}function Yn(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 Il(e,t){return t>=Ss&&e===Number.MAX_SAFE_INTEGER?ks:e}function Tl(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!nn.includes(n))throw new p(`Context --depth must be one of ${nn.join("|")}`,m.USAGE);return n}function Fl(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!rt.includes(s))throw new p(`Context --section must be one of ${rt.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...rt]:(t==="deep"?wl:Es).filter(i=>n.sections[i])}function Al(e,t){return e?K(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Rl(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 ws(e,t){let n=D(e,t),r=j("blocked",t),i=j("draft",t);return n===t.in_progress_status?0:t.active_statuses.has(n)?1:r&&n===r?2:i&&n===i?3:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function ze(e,t){let n=j("closed",t);return D(e,t)===n}function Xn(e,t){return D(e,t)===t.in_progress_status}function Cs(e,t){let n=D(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function Ml(e,t){return t.blocked_statuses.has(D(e,t))}var Dl=["compact","brief","fields","includeBody","include_body","parent"];function Ll(e){let t={...e};for(let n of Dl)delete t[n];return t}function Qn(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=Ie(e),o=qe(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 Nl(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function $l(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 Pl(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function jl(e){let t=bl.exec(e)??vl.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<=Pl(n,r-1)}function Ul(e){let t=kl.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Sl.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 xs(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!jl(t))return Number.NaN;let n=Date.parse(Ul(t));return Number.isFinite(n)?n:Number.NaN}function Vn(e){let t=xs(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Kl(e){let t=xs(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Jn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function oe(e,t,n){let r=ws(e.status,n)-ws(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=Nl(e.order,t.order);if(o!==0)return o;let s=$l(e.deadline,t.deadline);if(s!==0)return s;let a=S(Vn(t.updated_at),Vn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function qn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Zn(e,t,n=new Set,r="context"){return rs(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:qn({id:i.id,title:i.item.title}),summary:qn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:qn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function er(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function tr(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(i=>n.has(i.id));return{model:e.model,available_signals:e.available_signals,items:r.map(i=>({id:i.id,rank:i.rank,baseline_rank:i.baseline_rank,score:i.score,contributions:i.contributions,...i.signal_provenance===void 0?{}:{recency:i.signal_provenance.recency}})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Is(e,t){return t>0?Math.round(e/t*100):0}function Ie(e){let t=new Map;for(let n of e){let r=Jn(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Ve(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:Jn(e.parent)};if(t&&n){let i=qe(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>ze(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Is(s,o)}}return r}function Bl(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 Gt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Gl(e,t){return e.filter(n=>!t.terminal_statuses.has(D(n.item_status,t)))}function Hl(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=Ie(e),s=new Set(t.filter(d=>Bt.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=qe(d,o),u=o.get(d)??[],f=0,h=0,_=0,g=0;for(let w of l)ze(w.status,n)?f++:Xn(w.status,n)?_++:Ml(w.status,n)?g++:Cs(w.status,n)&&h++;let y=u.sort((w,b)=>oe(w,b,n)).slice(0,r).map(w=>{let b=qe(w.id,o),v=b.filter(E=>ze(E.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:b.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:_,children_blocked:g,children:y})}return a.sort((d,c)=>{let l=i.get(d.id),u=i.get(c.id);return oe(l,u,n)}).slice(0,r)}function qe(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 Wl(e,t){return(await Bi({compact:!0,limit:String(e)},t)).compact_activity??[]}function zl(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=>Bt.has(d.type)),a=[];for(let d of s){let c=qe(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,_=0;for(let g of c)ze(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?_++:Xn(g.status,r)?h++:Cs(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:_,completion_pct:Is(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function ql(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=_n(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 Vl(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 Yl(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=>Xn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Xl(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 Ql(e,t,n,r){return e.map(i=>({item:i,sortKey:Vn(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})=>({...Ve(i,t,n),created_at:i.created_at}))}function Jl(e,t,n,r){return e.filter(i=>!Jn(i.parent)&&!Bt.has(i.type)).sort((i,o)=>oe(i,o,t)).slice(0,r).map(i=>Ve(i,t,n))}function Zl(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 bs(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ts(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 ef(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function tf(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`${bs(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${bs(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function vs(e,t,n,r,i){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let o of n)e.push(`- ${i(o)}`);e.push("")}function nf(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 rf(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(`- ${tf(n)}`);e.push("")}function of(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 sf(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 af(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)}`:`- ${Kl(i.created_at)} ${Ts(i)}`);e.push("")}}function cf(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 df(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 uf(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 lf(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 ff(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 mf(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 pf(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 hf(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 xy(e){let t=[],n=e.focus_fields,r=o=>n?ef(o,n):Ts(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(""),vs(t,"High-level focus",e.high_level,"No high-level active items.",r),vs(t,"Low-level focus",e.low_level,"No low-level active items.",r),nf(t,e,r),rf(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 of(t,e),sf(t,e),af(t,e,n,r),cf(t,e,r),df(t,e),uf(t,e),lf(t,e),ff(t,e),mf(t,e),pf(t,e),hf(t,e),t.join(`
|
|
7
|
-
`)}async function gf(e,t){let n=C(process.cwd(),t.path),r=await M(n),i=r.context??Ir.context,o=P(r.schema),s=Tl(e.depth,i),a=xl(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:Fl(e.section,s,i),activityLimit:Al(e.activityLimit,i),staleThresholdDays:Rl(e.staleThreshold,i),parentScope:Ol(e.parent),focusFields:Cl(e.fields),baseListOptions:Ll(e)}}function yf(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function _f(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function wf(e,t){let n=await Q(void 0,_f(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,i=r.filter(a=>!G(a.status,t.statusRegistry)),o=r,s=bf(t.parentScope,r);return s&&(i=i.filter(a=>s.has(a.id.trim().toLowerCase())),o=o.filter(a=>s.has(a.id.trim().toLowerCase()))),{listed:n,listedItemMetadata:i,allItems:o,fullCorpus:r,subtreeIds:s}}function bf(e,t){if(e===void 0)return;let n=Qn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}function vf(e,t,n,r){let i=new Set(vt(e,t,n,r).containers.map(o=>o.item.id));return new Set(e.filter(o=>Bt.has(o.type)||i.has(o.id)||Oe(o.type,r)!=="agent").map(o=>o.id))}async function kf(e,t,n,r,i,o,s,a,d,c,l,u,f,h,_,g){let y=[...e].sort((k,fe)=>oe(k,fe,i)),w=await mt({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await Ut(y,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:w.affinity,claimFocus:_}),v=await jt("context",b.candidates),E=v.ranked.map(k=>k.item),H=i.active_statuses,T=E.filter(k=>H.has(D(k.status,i))),I=u?at(T,c,l,k=>k.id):0,A=u?T.slice(I,I+s):T,tt=u&&A.length>0&&I+A.length<T.length,nt=tt&&A.length>0?Re(l,A[A.length-1].id,I+A.length-1):void 0,Zt=E.filter(k=>r.has(k.id.trim().toLowerCase())),ae=new Set([...A.map(k=>k.id),...Zt.slice(0,s).map(k=>k.id)]),ce=Zn({...v,ranked:v.ranked.filter(k=>ae.has(k.id))},h,new Set(Object.entries(_??{}).filter(([,k])=>k>=1).map(([k])=>k))),de=ce.included.map(k=>k.item),W=de.filter(k=>H.has(D(k.status,i))),ue=de.filter(k=>r.has(k.id.trim().toLowerCase())),Fe=Ie(t),le=yf(o)?Fe:void 0,en=new Map(n.map(k=>[k.id.trim().toLowerCase(),k])),N=k=>{let fe=Ve(k,i,le);return r.has(k.id.trim().toLowerCase())&&(fe.blocked=!0,fe.blocker_ids=_n(k,en,i).filter(tn=>!tn.resolved).map(tn=>tn.id)),fe},$=vf(W,n,i,g),Ua=W.filter(k=>$.has(k.id)).slice(0,u?A.length:s).map(N),Ka=W.filter(k=>!$.has(k.id)).slice(0,u?A.length:s).map(N),Er=T.length===0;return{activeItems:W,blockedItems:ue,highLevel:Ua,lowLevel:Ka,blockedFallback:Er?ue.slice(0,s).map(N):[],blockedFallbackUsed:Er,ranking:v,packing:ce,featureStore:b,pageExtras:{...u?{applied_limit:s}:{},...tt?{has_more:!0,truncated:!0}:{},...nt?{next_cursor:nt}:{}}}}function Sf(e){return he("context",pe(e,Pr))}function Ef(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Ss}async function Cf(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Jo(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Gl(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:Bl(a)}}function Fs(e,t,n){let r=String(t);return e.filter(i=>D(i.status,n)===r).length}async function xf(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=Ie(n),c=n.filter(u=>!G(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Hl(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Wl(t.activityLimit,a):void 0,progress:l("progress")?zl(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?ql(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Ql(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?Jl(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?Vl(o.activeItems,t.limit):void 0,workload:l("workload")?Yl(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Xl(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Zl(o.activeItems):void 0}}function If(e,t,n){let r=j("canceled",t),i=e.filter(s=>t.active_statuses.has(D(s.status,t))),o=Fs(i,t.in_progress_status,t);return{scope:"matching_items",active_items:i.length,open:i.length-o,in_progress:o,blocked:e.filter(s=>n.has(s.id.trim().toLowerCase())).length,total_items:e.length,closed:e.filter(s=>ze(s.status,t)).length,canceled:e.filter(s=>D(s.status,t)===r).length}}function Tf(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 Ff(e,t){t&&(e.focus_fields=t,e.high_level=We(e.high_level,t),e.low_level=We(e.low_level,t),e.blocked_fallback=We(e.blocked_fallback,t),e.recently_created&&(e.recently_created=We(e.recently_created,t)),e.unparented&&(e.unparented=We(e.unparented,t)))}function Af(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 Rf(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 Mf(e,t,n,r){try{let i=new Set(t.packing.included.map(d=>d.id)),o=t.ranking.ranked.map(d=>({id:d.id,rank:d.rank,included:i.has(d.id)})),s=new Set(o.map(d=>d.id));for(let d of lt(e,"context"))s.has(d)||(o.push({id:d,rank:o.length+1,included:!1}),s.add(d));let a=await ft({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});ut(e,a)}catch{e.warnings=Gt(e.warnings,["context_usage_feedback_write_failed"])}}async function Df(e,t,n){if(e)return{};let i=(await Nr({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 Lf(e,t){let n=Qr(),r=await zr(e),i=n.instance||qr(t);return ys(r.semantic_attribution?.[i])}async function Iy(e,t){let n=C(process.cwd(),t.path),r=await gf(e,t),i=await wf(t,r),o=Il(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Yn(e.tokenBudget,Math.max(256,o*160))},a=ne(void 0,s.settings.author_default),d=await Lf(n,a),c=Df(e.noExtensionHealth===!0,n,s.settings),l=bt(i.fullCorpus,s.statusRegistry),u=await kf(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,O(),a,e.after,Sf(e),Ef(e,i.fullCorpus.length),n,s.tokenBudget,d,R(s.settings,x())),f=await Cf(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),h=await Kt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),_=Gt(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=Fs(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),y=u.activeItems.length-g,w=await xf({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),b=If(i.allItems,s.statusRegistry,l),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:{returned_focus:{active_items:u.activeItems.length,in_progress:g,open:y,blocked:u.blockedItems.length},blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...b},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=ms(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(v,await c),Tf(v,w,u.featureStore.warning_details),Af(v,e.noTags===!0),e.explainRanking===!0&&(v.ranking=tr(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),v.packing=er(u.packing)),Ff(v,s.focusFields),_.length>0&&(v.warnings=_),Rf(v,u.activeItems,u.blockedItems),await Mf(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]="6035e85b-81ed-512e-b291-b0d86af1848b")}catch{}})();var Of=["markdown","toon","json"],Nf=5,$f=1440*60*1e3;function Pf(e){if(!e)return;let t=e.trim().toLowerCase();if(!Of.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function jy(e,t){let n=Pf(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 As(e,t,n){let r=K(e,t);return r===void 0||r<=0?n:r}function Ye(e,t,n,r){return{...Ve(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,...i.external?{external:!0}:{},...i.blocked_since?{blocked_since:i.blocked_since}:{},...i.external?{resolver:i.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function jf(e,t,n,r){let i=e.item,o=[],s=j("in_progress",t);return o.push(D(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(Uf(i.deadline,n)),o.push(Mi(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)`),o}function Rs(e,t,n){let r=ne(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 Uy={partitionCallerOwnedReady:Rs,resolveNextCallerAuthor:(e,t)=>Ms(e,t)};function Ky(e,t,n){let r=e.filter(i=>Oe(i.item.type,n)==="human");return{agent:t?e:e.filter(i=>Oe(i.item.type,n)!=="human"),decisions:t?[]:r}}function Uf(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))/$f);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function Kf(e,t){let n=j("in_progress",t);return e.filter(r=>D(r.status,t)===n).length}function nr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Bf(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 Ht(e,t,n){return[...e].sort((r,i)=>{let o=nr(r.item,t),s=nr(i.item,t);return o!==s?Number(o)-Number(s):oe(r.item,i.item,n)})}function Gf(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:jf(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Hf(e,t,n){if(e!==null)return;let r=n>0?["No executable recommendation: outcome gates require verification. Inspect gate_needed, or use pm next --include-gates to opt in."]:[];if(t.length>0){let i=t.find(o=>o.blockers.length>0);return[...r,i?`${t.length} item(s) are blocked; unblock the top one by closing ${i.blockers.map(o=>o.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[...r,'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 Wf(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 zf(e){try{let t=new Set(e.packing.included.map(o=>o.id)),n=e.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:t.has(o.id)})),r=new Set(n.map(o=>o.id));for(let o of lt(e.result,"next"))r.has(o)||(n.push({id:o,rank:n.length+1,included:!1}),r.add(o));let i=await ft({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});ut(e.result,i)}catch{e.result.warnings=Gt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function qf(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=tr(e.readyRanking,e.featureStore),e.result.packing=er(e.packing)),e.result.suggestions=Hf(e.recommended,e.blockedRows,e.gateCount),await zf({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Vf(e,t,n){if(!n)return e;let r=Qn(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 Yf(e,t,n,r,i,o,s,a){let d=e.filter(y=>!nr(y.item,t)),c=a||d.length===0?e:d,l=await mt({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await Ut(c.map(y=>y.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:l.affinity}),f=await jt("next",u.candidates),h=Zn(f,s,new Set,"next"),_=new Map(c.map(y=>[y.item.id,y]));return{projectedReady:f.ranked.map(y=>_.get(y.id)).filter(y=>y!==void 0),ranking:f,completedContainer:d.length===0&&!a,packing:h,featureStore:u}}function Ms(e,t){let n=e.assignee?.trim();return ne(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function By(e,t){let n=C(process.cwd(),t.path),r=await M(n),i=Ms(e,r.author_default),o=P(r.schema),s=R(r,x()),a=O(),d=As(e.limit,"--limit",Nf),c=Yn(e.tokenBudget,Math.max(192,d*128)),l=As(e.blockedLimit,"--blocked-limit",d),u=e.readyOnly===!0,f=typeof e.parent=="string"?e.parent.trim():"",h=await Q(void 0,Bf(e,{excludeTerminal:!0}),t),_=await Q(void 0,{excludeTerminal:!1,noTruncate:!0},t),g=Vf(h.items,_.items,f),y=_.items,w=vt(g,y,o,s),b=Ie(y),v=Di(w,o,e,s),E=Rs(v.ready,r.author_default,i),H=Ht(E.available,b,o),T=[...w.blocked].sort((N,$)=>oe(N.item,$.item,o)),{projectedReady:I,ranking:A,completedContainer:tt,packing:nt,featureStore:Zt}=await Yf(H,b,o,a,i,n,c,e.includeContainers===!0),ae=I.map((N,$)=>Ye(N,o,b,$+1)),ce=T.map((N,$)=>Ye(N,o,b,$+1)),de=Ht(v.decisions,b,o).map((N,$)=>Ye(N,o,b,$+1)),W=Ht(v.gates,b,o).map((N,$)=>Ye(N,o,b,$+1)),ue=Ht(w.containers,b,o).map((N,$)=>Ye(N,o,b,$+1)),Fe=Gf({projectedReady:I,readyRows:ae,statusRegistry:o,now:a,completedContainer:tt}),le=Wf(de.length,E.held.length,d)??{};W.length>d&&(le.gate_needed_total=W.length),ue.length>d&&(le.containers_total=ue.length);let en={output_default:"toon",now:a,recommended:Fe,ready:ae.slice(1,d+1),decision_needed:de.slice(0,d),gate_needed:W.slice(0,d),containers:ue.slice(0,d),blocked:u?[]:ce.slice(0,l),held_by_others:E.held.slice(0,d),summary:{recommended:Fe!==null,ready:ae.length,blocked:ce.length,in_progress:Kf(ae,o),candidates:w.active_count,containers:w.container_count,decision_needed:de.length,gate_needed:W.length,held_by_others:E.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:f.length>0?f:null,limit:d,blocked_limit:l,ready_only:u,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:c},truncation:Object.keys(le).length>0?le:void 0};return qf({result:en,recommended:Fe,blockedRows:ce,gateCount:W.length,candidatesWarnings:h.warnings,corpusWarnings:_.warnings,readyRanking:A,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:nt,featureStore:Zt})}function Gy(e){let t=["# pm next","",...Xf(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(...Xe(n,r.map(i=>`- ${Qe(i)}`),""));if(t.push(...Xe("Recommended",Qf(e.recommended),"No ready work.")),t.push(...Xe("Decision needed",(e.decision_needed??[]).map(n=>`- ${Qe(n)}`),"No human-gated decisions.")),t.push(...Xe("Ready",e.ready.map(n=>`- ${Qe(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Xe("Blocked",e.blocked.map(n=>`- ${Jf(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(`
|
|
8
|
-
`).trimEnd()}function Xf(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 Qf(e){return e?[`- ${Qe(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Xe(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Jf(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Qe(e)} blocked_by:${t}`}function Qe(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]="13e944b0-f049-55e5-8ff8-6335ce888b65")}catch{}})();function Zf(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function em(e,t){return e.map(({entry:n,version:r})=>{let i=new Set,o=ii(n.patch);for(let s of o)i.add(mn(s.path)),s.from&&i.add(mn(s.from));return{index:r,...t?{version:t.offset===null?null:t.offset+r}:{},ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}function tm(e){if(e[0]?.op!=="history_compact_baseline")return;let t=Le(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function nm(e,t){let n=C(process.cwd(),t.path);await U(n);let r=await M(n),i=R(r,x()),o=e.trim()===pt,s=o?pt:ui(e,r.id_prefix),a=await _e(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?si(n):st(n,d);if(!a&&!await Fr(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await ci({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function Zy(e,t,n){let r=re(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await nm(e,n),d=await Y(i,s),c=tm(d),l=a.agent_identity.identity_vocabulary,u=St(a.agent_identity.harness_signals),f=Ct({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},l,u),h=rm(d).filter(({entry:I})=>f(I)),_=Zf(h,r),g=_.map(({entry:I})=>I),y=t.compact===!0,w=y?em(_,c):void 0,b=t.provenance===!0?_.map(({entry:I,durableVersion:A})=>Et(I,l,{itemId:s,version:A})):void 0,v=t.provenance===!0?"provenance":y?"compact":"full",E={compact:{compact_history:w},provenance:{provenance_history:b},full:{history:g}}[v],T={id:s,...E,compact:y,projection:{mode:v,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[v]},omission_receipt:ct("history",v),count:g.length,limit:r??null,version_addressing:c,...t.provenanceSummary===!0?{provenance_summary:xt(h.map(({entry:I})=>I),l,u)}:{}};if((t.diff||t.field!==void 0)&&(T.diff=ki(d,{windowStartIndex:Math.max(0,d.length-g.length),field:t.field})),t.verify){let I=o?(await we(o,{schema:a.schema})).document:void 0;if(T.verification=Oi(d,I),s===pt&&T.verification.ok){let A=await ai(C(process.cwd(),n.path));T.verification={...T.verification,ok:A.ok,errors:A.ok?T.verification.errors:[...T.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:A.ok,workspace_state_mismatches:A.mismatched_documents,workspace_state_missing:A.missing_documents,workspace_state_unreadable:A.unreadable_documents}}}return T}function rm(e){let t=Le(e,!0);return e.map((n,r)=>({entry:n,version:r+1,durableVersion:t===null?void 0:t+r+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]="4b4d4bb6-8a17-5544-a18c-ad3fc49a759e")}catch{}})();var Ds=1e6,Ls=20;function Os(e,t,n,r=Ls){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;for(let y of t){if(a+=1,a>Ds)throw new p(`Child projection exceeded the ${Ds.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."]});s.push(y)}let d=new Map(s.map(y=>[y.id.trim().toLowerCase(),y])),c=wt(_t(s,yt())),l=new Set(c.children_by_parent.get(i)??[]);for(let y of s)y.parent?.trim().toLowerCase()===i&&l.add(y.id.trim().toLowerCase());let u=[...l].map(y=>d.get(y)),f=0;for(let y of u){let w=y.status.trim().toLowerCase();o[w]=(o[w]??0)+1,G(w,n)||(f+=1)}u.sort((y,w)=>y.id.localeCompare(w.id));let h=u.slice(0,r).map(y=>({id:y.id,title:y.title,type:y.type,status:y.status,priority:y.priority})),_=u.length>h.length,g=r===0?Ls:r;return{count:u.length,active:f,by_status:Object.fromEntries(Object.entries(o).sort(([y],[w])=>y.localeCompare(w))),sample:h,sample_limit:r,truncated:_,next_offset:_?h.length:null,continuation:_?`pm list --status all --parent ${e} --offset ${h.length} --limit ${g}`:null,scanned:a}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var im=new Set(["event","meeting","reminder"]);function om(e){return im.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function rr(e){if(!om(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]="16112e3d-b640-5114-a2c2-5effc655fe50")}catch{}})();var sm=new Set(["epic","feature","milestone","plan"]),am=new Set(Object.keys(xr).map(e=>e.toLowerCase()));function or(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function cm(e,t){let n=or(e);return[...t.length>0?["body"]:[],...Object.entries(n).flatMap(([r,i])=>i>0?[r]:[]),...n.files+n.tests+n.docs>0?["linked"]:[],"children",...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...rr(e)?["schedule"]:[]]}function $s(e){let t=e.trim().toLowerCase();return t.length>0&&(sm.has(t)||!am.has(t))}function Ns(e){return{ts:e.ts,author:e.author,message:e.message??null}}function dm(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?Ns(i):null,last_release:o?Ns(o):null}}function um(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(dn.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function lm(e,t){let n=or(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 fm(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 zt(e){return e.startsWith("item.")?e.slice(5):e}function mm(e,t,n){if(e===null)return;let r=un(t),i=new Set(r),o=e.filter(s=>{let a=zt(s);return!i.has(s)&&!i.has(a)});if(o.length>0){let s=["get",n,"--fields","id,title,status"];throw new p(`Unknown get --fields value(s): ${o.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"],recovery:{allowed_values:r,suggested_retry:ge(s),suggested_retry_args:s}})}}var pm=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function hm(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:pm.has(n)?[]:void 0}function gm(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:or(e)},i={id:e.id};for(let o of t){let s=zt(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]=hm(n,r,s))}return i}function Je(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function Wt(e,t){return e.some(n=>{let r=zt(n);return r===t||r.startsWith(`${t}.`)})}function ym(e,t){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,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:ge(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});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":um(e.depth),treeDepth:e.tree===!0?K(e.treeDepth,"--tree-depth"):void 0,fields:fm(e.fields),fieldProjection:e.fields!==void 0}}async function _m(e,t,n){let r=C(process.cwd(),t.path);await U(r);let i=await M(r),o=R(i,x());if(n!==void 0){let d=await Ni(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 _e(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await hi(r,e,i.id_prefix,o.type_to_folder);let a=await we(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 wm(e,t,n,r){let i=z(t.schema).definitions.map(o=>o.metadata_key);if(mm(e,i,r),n&&Wt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function ir(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Je(r,i):Wt(r,i):n!=="brief"}async function bm(e,t){if(!t)return;let n=st(e.pmRoot,e.locatedId),r=await Y(n,e.locatedId);return dm(e.metadata.assignee,e.historical?r.slice(0,e.historical.target.historyIndex+1):r)}function vm(e,t,n,r){let i=r||Je(n,"linked.files"),o=r||Je(n,"linked.tests"),s=r||Je(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 km(e,t,n,r){if(!t)return;let i=P(e.settings.schema),o=await ee(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=Os(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function Sm(e,t,n,r){if(!r)return;let i=rr(t.metadata);if(i){if(n===null||Je(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>zt(s)===`schedule.${o}`)))}}async function Em(e,t,n,r){if(t.tree!==!0)return;let i=await Q(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 v_(e,t,n={}){let r=ym(n,e),i=await _m(e,t,n.at);wm(r.fields,i.settings,i.historical!==void 0,i.locatedId);let o=ir({...r,field:"body"}),s=ir({...r,field:"linked"}),a=ir({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?Wt(r.fields,"children"):r.depth!=="brief"&&$s(i.metadata.type)),c=r.fieldProjection?Wt(r.fields,"schedule"):r.depth!=="brief",l=await bm(i,a),u={item:r.fieldProjection?gm(i.metadata,r.fields):lm(i.metadata,r.depth)};o&&(u.item.body=i.body),vm(u,i,r.fields,s),l&&(u.claim_state=l),Sm(u,i,r.fields,c);let f=await km(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await Em(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 Wr({pmRoot:i.pmRoot,author:ne(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return Kr(u,cm(i.metadata,i.body)),u}var k_={shouldAutoIncludeGetChildren:$s};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function Ps(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 Cm=[{optionKey:"status",summaryKey:"status",normalize:e=>Ps(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 Ze(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return Tn(l,r,Cm),Object.assign(l,Ke(r)),Object.assign(l,Ue(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 et(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||Ps(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),...Ke(r),...Ue(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 xm(e){return he("search",{query:e.query.trim(),mode:e.mode,options:pe(e.searchOptions,jr)})}function js(e){let t=Ur(e.sorted,{cursor:e.searchOptions.after,fingerprint:xm(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]="d20ab01b-a8ae-5fe8-988a-d05fe87951f6")}catch{}})();function Us(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 qt(e){return e===!0}function Ks(e){return Lr(e,0,1)??void 0}function Bs(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 Gs(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 Te(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return B(n,new Date,t)}function Z(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function sr(e,t){if(e!==void 0)return B(e,new Date,t)}function Im(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 ar(e,t="<query>"){let n=e.compact===!0,r=e.full===!0,i=Im(e.fields);if(Number(n)+Number(r)+ +(i!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:ge(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return n?{mode:"compact",fields:[...ln]}:r?{mode:"full",fields:[]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function cr(e,t,n="<query>"){if(e.mode!=="fields")return;let r=fn(t.definitions.flatMap(s=>[s.key,s.metadata_key])),i=new Set(r),o=e.fields.filter(s=>{let a=s.trim();return!i.has(a)});if(o.length>0){let s=["search",n,"--fields","id,title,status,score"];throw new p(`Unknown search --fields value(s): ${o.join(", ")}`,m.USAGE,{code:"unknown_field_projection",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."],recovery:{allowed_values:r,suggested_retry:ge(s),suggested_retry_args:s}})}}function dr(e){let t=Z(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function ur(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function lr(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function fr(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function mr(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 Yt from"node:fs/promises";import wr 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 pr=4,Tm=20,Fm=200,Am=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function hr(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 Rm(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 Mm(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 Hs(e,t=pr){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=Se(n);if(r.length===0)return[n];let i=r.filter(a=>!Am.has(a.toLowerCase())),o=r.map(a=>Rm(a)),s=i.map(a=>Mm(a));return hr([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function Ws(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?hr(t.filter(n=>typeof n=="string"),pr):[]}function zs(e,t,n){return hr([...e,...t],Math.max(1,n))}function qs(e,t){let r=e.search?.query_expansion,i=Ae(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:pr}}function Vs(e,t){let r=e.search?.rerank,i=Ae(r?.model),s=Dr(r?.top_k)??Tm;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Fm,s)}}function Ys(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=Ae(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 Dm(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Xs(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Lm(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=Dm(e,t),i=Xs(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 Qs(e,t,n,r,i){if(r.length===0)return new Map;let o=Ae(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await gt(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=Xs(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],_=d[f+1];if(!_)continue;let g=Lm(c,_,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 Om=1.2,Nm=.75;function gr(e){return Se(e)}function $m(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Zs(e){let t=[],n=new Map,r=0;for(let o of e){let s=gr(o.text),a=$m(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 Pm(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function ea(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,Pm(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 Js(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function ta(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 na(e){let t=e?.search?.bm25;return{k1:Js(t?.k1,Om,0,1e3),b:Js(t?.b,Nm,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]="a4117e19-af3e-50f5-b3cc-86c39aa4b439")}catch{}})();var jm=2,Um=120,Km=6,Bm=40,Gm=1e3,Hm=900,Wm="\xAB",zm="\xBB",ra=60,sa=["tag","status","type","priority"];function aa(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 ca(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=aa(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 da(e,t){let n=ca(t);return`search_${e}_fallback:${n}:using_keyword_mode`}function qm(e){return e?.commands?.some(n=>n.command.trim()==="reindex")===!0?{command:"pm reindex --mode hybrid",args:["reindex","--mode","hybrid"]}:{command:"pm install search-advanced --project",args:["install","search-advanced","--project"],follow_up_command:"pm reindex --mode hybrid",follow_up_args:["reindex","--mode","hybrid"]}}async function ua(e,t,n){try{let r=await Fi(e);r.warnings.length>0&&n.push(...r.warnings);let i=Ri(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),r.entries);if(i.length===0)return;let o=qm(x());n.push(...Vm(i.length,o)),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 run '${o.command}'${o.follow_up_command?`, then '${o.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
9
|
-
`)}catch{}}function Vm(e,t){return[`vector_index_stale:${e}`,`vector_index_recovery:${t.args.join(" ")}`,...t.follow_up_args?[`vector_index_recovery_follow_up:${t.follow_up_args.join(" ")}`]:[]]}var Rw={applyFilters:ga,applyExactQueryFilters:ha,applyInlineQueryFilters:fa,buildHitHighlights:Sa,buildVerboseSearchFilters:et,buildExplicitSemanticFallbackWarning:da,buildCompactSearchFilterSummary:Ze,buildHybridLexicalScore:xa,buildRerankCorpus:Oa,buildSemanticHits:Ra,classifyImplicitSemanticFallbackReason:ca,collectErrorCauseCodes:aa,collectExactPhraseFields:ma,collectLinkedPaths:ya,combineHybridHits:Sr,computeBuiltInBm25Hits:Da,computeSemanticOrHybridHits:Na,resolveBuiltInBm25Mode:Ma,countOccurrences:vr,dependencyEntries:br,documentContainsExactPhrase:pa,emptySearchResult:Ia,highlightFieldSnippet:ka,loadDocuments:$a,markTokenRuns:va,parseInlineQueryFilters:la,maybeEmitVectorIndexStaleWarning:ua,loadLinkedCorpus:wa,mergeVectorHitsById:La,normalizeExtensionProviderHits:Aa,normalizeScoreMap:yr,parseProjectionConfig:ar,parseTimestampWindow:Te,parseTokens:dr,projectSearchHits:ja,readSearchFieldValue:Pa,requireSemanticDependencies:kr,resolveExtensionSearchProvider:Ta,resolveExtensionSearchProviderByName:Jt,resolveExtensionVectorAdapter:Fa,resolveLinkedCorpusRoots:_a,scoreDocument:Ea,sortHits:Ca,stringArray:Qt,textEntries:se,validateSearchProjectionFields:cr};function la(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=sa.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 fa(e,t,n){let r={...e};for(let i of sa){let o=t[i];if(o!==void 0){if(L(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Qt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function se(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function br(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function ma(e){let t=e.metadata;return[t.title,t.description,t.status,Qt(t.tags).join(" "),e.body,se(t.comments).map(n=>n.text).join(" "),se(t.notes).map(n=>n.text).join(" "),se(t.learnings).map(n=>n.text).join(" "),pn(t).join(" "),hn(t).join(" "),br(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),gn(t)]}function pa(e,t){return ma(e).some(n=>Z(n).includes(t))}function ha(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&Z(r.metadata.title)!==t||n.phraseExact&&!pa(r,t)))}function Ym(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 Xm(e,t,n){let r=q(e.assignee,{label:"--assignee"});Ym(r);let i=Dt(e),o=je(e);return{typeFilter:It(e.type,t),tagFilter:q(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:Tt(e.priority),deadlineBefore:sr(e.deadlineBefore,"deadline-before"),deadlineAfter:sr(e.deadlineAfter,"deadline-after"),updatedAfter:Te(e.updatedAfter,"updated-after"),updatedBefore:Te(e.updatedBefore,"updated-before"),createdAfter:Te(e.createdAfter,"created-after"),createdBefore:Te(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:q(e.sprint,{label:"--sprint"}),releaseFilter:q(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:$e(i),contentFieldFilters:o,contentFiltersActive:Rt(o)}}function Qm(e,t){return Jm(e,t)&&Zm(e,t)&&ep(e,t)}function Jm(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&&!Qt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Zm(e,t){return dt(e,t)}function ep(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 tp(e,t,n,r){let i=e.metadata;return!(!Qm(i,t)||!ke(i,n)||t.missingMetadataActive&&!At(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!Mt(i,t.contentFieldFilters))}function ga(e,t,n,r,i,o){let s=Xm(t,n,i);return e.filter(a=>tp(a,s,r,o))}function vr(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 np(e){return Se(e)}function ya(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 ia(e){let t=wr.resolve(e);try{let n=await Yt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function _a(e,t){let[n,r]=await Promise.all([ia(e),ia(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function wa(e,t){let n=ya(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=wr.resolve(o.resolved,i.path);if(!rn(o.resolved,s))continue;let a;try{a=await Yt.realpath(s)}catch{continue}if(rn(o.realpath,a))try{await Me({path:s,scope:i.scope}),r.push(await Yt.readFile(s,"utf8"))}catch{}}return r.join(`
|
|
10
|
-
`)}var ba=[{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=>Qt(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=>se(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>se(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>se(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>pn(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>hn(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>br(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>gn(e.metadata)}],rp=new Map(ba.map(e=>[e.name,e]));function ip(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function va(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(ip);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Wm}${i}${zm}`)}function ka(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-ra),s=Math.min(e.length,r+i+ra),a=va(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function Sa(e,t,n){let r=[];for(let i of t){let o=rp.get(i);if(o===void 0)continue;let s=ka(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function op(e,t,n){return[...ba.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function sp(e,t,n){let r=Z(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=Z(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?Gm:Hm,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function ap(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=vr(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function cp(e,t,n,r){Z(e.title)===t&&(r.score+=Um,r.matched.add("title"));for(let o of n){let s=vr(Z(o.value),t);s>0&&(r.score+=s*o.weight*Km,r.matched.add(o.name))}}function Ea(e,t,n,r,i,o,s=!1){let a=e.metadata,d=sp(a,n,o);if(d)return d;let c=new Map;for(let g of np(a.title))c.set(g,(c.get(g)??0)+1);let l=op(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};ap(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+=Bm),t.length>=jm&&n.includes(" ")&&cp(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,y)=>g.localeCompare(y)),matched_all_terms:h}}function Ca(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=G(n.item.status,t),s=G(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 xa(e,t,n,r,i,o,s,a=!1){return Ea(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function yr(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 y=Ze({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:y,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:et({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:O(),...l.length>0?{warnings:l}:{}}}function kr(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 V=L;function Jt(e){let t=x(),n=bi(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=V(r.name)??V(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 Ta(e){let t=V(e.search?.provider),n=Jt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Fa(e){let t=x(),n=V(e.vector_store?.adapter),r=vi(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:V(i.name)??V(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=V(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 Ra(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 Xt(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 Sr(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=yr(t),d=yr(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,_=d.get(u)??0,g=h*r+_*l;if(g<=0)return null;let y=new Set;t.has(u)&&y.add(i);for(let w of s.get(u)??[])y.add(w);return{item:f.metadata,score:g,matched_fields:[...y].sort((w,b)=>w.localeCompare(b))}}).filter(u=>u!==null)}function Ma(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Da(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:ta(Ii(s,{fields:e.corpusFields}))})),n=Zs(t),r=ea(n,gr(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 Xt(s,e.keywordHits)}let o=Sr(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Xt(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 Oa(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(`
|
|
11
|
-
`)}async function dp(e,t){let n=e.queryExpansion.enabled?Hs(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 zs(r,Ws(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 up(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 yn(e.vectorStore,t,n,r)}if(e.vectorStore)return await yn(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 lp(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:Oa(o)}:null}).filter(i=>i!==null)}async function fp(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=Ys(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 mp(e,t,n){let r=await fp(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Qs(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function pp(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 hp(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=lp(n,r,e.rerank.top_k),o=await mp(e,t,i);return o&&o.size>0?pp(n,o):n}async function Na(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 dp(e,i),s=await gt(e.provider,o,n),a=await Promise.all(s.map(async _=>await up(e,_,t,r))),d=La(a),c=new Map(e.filteredDocuments.map(_=>[_.metadata.id,_])),{semanticHits:l,semanticScores:u}=Ra(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Xt(l,e.keywordHits),vectorMatchCount:f};let h=await hp(e,i,Sr(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Xt(h,e.keywordHits),vectorMatchCount:f}}async function $a(e,t,n,r){let i=Tr(x()),o=async(c,l,u)=>{let f=async(h,_)=>{await Me({path:h,scope:"project"});let g=await Yt.readFile(h,"utf8");return Jr(g,{format:_,schema:r,extensionFieldNames:i,onWarning:w=>s.push(w)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",_=on(e,c.type,c.id,h,n);try{return await f(_,h)}catch{return s.push(`item_list_item_read_failed:${wr.relative(e,_)}`),""}}},s=[],a=await mi(e,t,n,s,r),d=[];if(a.length===0){let c=await ht(e,t,n,s,r);for(let l of c){let u=on(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 Pa(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 ja(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]=Pa(n,i);return r})}function gp(e){let t=Jt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function yp(e){let t=Jt(V(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function _p(e,t){let n=[],r=la(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=fa(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:qt(s.includeLinked),titleExact:qt(s.titleExact),phraseExact:qt(s.phraseExact),matchMode:Bs(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Gs(s.minScore),countOnly:s.count===!0,tokens:dr(o),normalizedQuery:Z(o),limit:re(s.limit),projection:ar(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function wp(e,t){let n=C(process.cwd(),t.path);await U(n);let r=await M(n),i=Ei(r).settings,o=P(i.schema),s=z(i.schema);cr(e.projection,s,e.query);let a=ve(e.options,s,"search"),d=R(i,x()),c=Ci(i),l=Ti(i,n),u=Ta(i),f=Fa(i),h=Ks(e.options.semanticWeight),_=qs(i,c.active?.name??null),g=Vs(i,c.active?.model??V(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:ur(i),scoreThreshold:e.minScoreOverride??lr(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??fr(i),tuning:mr(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:Ma({configuredProvider:V(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:_,queryExpansionExtension:gp(_),rerank:g,rerankExtension:yp(i),effectiveMode:Us(e.options.mode)}}async function bp(e,t){let n=await $a(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=be(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=Ft(t.statusRegistry),o=ga(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:ha(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function vp(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await _a(i,Mr(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await wa(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function kp(e,t,n){let r=await vp(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>xa(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 oa(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 Sp(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=Da({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:xi(t.settings),bm25Params:na(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 Ep(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 Cp(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 xp(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await ua(e.pmRoot,n,r),e.extensionSearchProvider||kr(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function Ip(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await Sp(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await xp(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 Ep(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=kr(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await Na({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=Cp(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(da(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function Tp(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return _r({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Ze({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 _r({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:et({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:O()},e.warnings)}function _r(e,t){return t.length===0?e:{...e,warnings:t}}function Vt(e,t){return t?{...e,workspace_memory:t}:e}function Fp(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:Sa(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 Ap(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return _r({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Ze({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:et({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:O(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Rp(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function Mw(e,t,n){Rp(t);let r=_p(e,t),i=await wp(r,n),o=await bp(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Kt(o.allDocuments.map(E=>E.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:O()});s.push(...a.warnings);let d=ps(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 Vt(oa({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await kp(r,i,o.filteredDocuments),u=await Ip({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 Vt(oa({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(E=>E.exact_id_match===!0||E.score>=i.scoreThreshold),h=Ca(f,i.statusRegistry),_=h.length,g=js({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),y={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return Vt(Tp(y,_),d);let{hits:w,projection:b}=Fp(r,o.filteredDocuments,g.limited),v=ja(w,b);return Vt(Ap(y,v,_,g.limited.length,b,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 $w(e,t={}){let n=await Li({pmRoot:C(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{Ba as a,wn as b,Mp as c,Ya as d,Xa as e,Dp as f,Ni as g,K as h,kt as i,$i as j,St as k,Qa as l,Et as m,xt as n,yh as o,Bi as p,sg as q,Sn as r,q as s,It as t,Tt as u,Ft as v,Ch as w,xh as x,Th as y,Dt as z,je as A,Zi as B,eo as C,Tn as D,Ue as E,Ke as F,Q as G,rg as H,lg as I,fg as J,wg as K,bg as L,vg as M,Jo as N,Kn as O,Pt as P,Cu as Q,ns as R,Au as S,jt as T,Ru as U,Mu as V,Nu as W,$u as X,Fg as Y,Pu as Z,rs as _,Bn as $,Gn as aa,Vu as ba,el as ca,Ug as da,Hn as ea,Wn as fa,Ut as ga,ol as ha,dl as ia,Kt as ja,gl as ka,ms as la,yl as ma,ps as na,gs as oa,ny as pa,ry as qa,iy as ra,oy as sa,ys as ta,_l as ua,Cl as va,We as wa,Cy as xa,Yn as ya,Tl as za,Fl as Aa,Qn as Ba,oe as Ca,Zn as Da,er as Ea,tr as Fa,Ie as Ga,Ve as Ha,Gt as Ia,xy as Ja,Af as Ka,Iy as La,Of as Ma,jy as Na,Uy as Oa,Ky as Pa,By as Qa,Gy as Ra,Zy as Sa,Ds as Ta,Ls as Ua,Os as Va,v_ as Wa,k_ as Xa,Ze as Ya,et as Za,xm as _a,js as $a,ur as ab,lr as bb,fr as cb,mr as db,aa as eb,ca as fb,qm as gb,Vm as hb,Rw as ib,Mw as jb,$w as kb};
|
|
12
|
-
//# sourceMappingURL=chunk-MV752SUC.js.map
|