@unbrained/pm-cli 2026.9.2 → 2026.9.3

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.
Files changed (123) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +17 -0
  3. package/dist/cli/after-command-context-usage.js +16 -3
  4. package/dist/cli-bundle/bundle-manifest.json +154 -154
  5. package/dist/cli-bundle/chunks/{chunk-T6H5BZCP.js → chunk-34HASX3S.js} +2 -2
  6. package/dist/cli-bundle/chunks/chunk-AY324UJ5.js +9 -0
  7. package/dist/cli-bundle/chunks/{chunk-TAG4VC22.js → chunk-DKGP3QLE.js} +27 -27
  8. package/dist/cli-bundle/chunks/chunk-E5RBBCXO.js +230 -0
  9. package/dist/cli-bundle/chunks/{chunk-DTGWEL23.js → chunk-EDPIS7EB.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-X4RCGLTX.js → chunk-IEHHE6GA.js} +5 -5
  11. package/dist/cli-bundle/chunks/{chunk-UDW64J2W.js → chunk-L7B7343B.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-FZ4Z2J4F.js → chunk-LENC656S.js} +41 -41
  13. package/dist/cli-bundle/chunks/{chunk-ZLJIFSOE.js → chunk-LISESA7W.js} +33 -33
  14. package/dist/cli-bundle/chunks/{chunk-3WICXLVT.js → chunk-UPPM2FOZ.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-Y7VOMSZT.js → chunk-Y4PJ6HPK.js} +2 -2
  16. package/dist/cli-bundle/chunks/{register-list-query-XYNX4ASQ.js → register-list-query-W2ZTOMKP.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-mutation-WFQ7MJTX.js → register-mutation-RVND5NCG.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-operations-JVTI7JPP.js → register-operations-TTROIVC4.js} +2 -2
  19. package/dist/cli-bundle/chunks/{register-setup-KVNC5KPL.js → register-setup-D3ZFHY3L.js} +2 -2
  20. package/dist/cli-bundle/focused-chunks/chunk-3ZBI35HU.js +176 -0
  21. package/dist/cli-bundle/focused-chunks/{chunk-SVXJYD6G.js → chunk-4HJFY4MB.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-4RRHC3S4.js +6 -0
  23. package/dist/cli-bundle/focused-chunks/chunk-4WR46RMG.js +9 -0
  24. package/dist/cli-bundle/focused-chunks/chunk-5RFXUPN5.js +3 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-BWKHEIVF.js +2 -0
  26. package/dist/cli-bundle/focused-chunks/{chunk-4O4CJAR6.js → chunk-D7KXFBXV.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/{chunk-MKHG3T76.js → chunk-GHCZ3YFR.js} +3 -3
  28. package/dist/cli-bundle/focused-chunks/{chunk-KB5OFSFD.js → chunk-GT7MXDLW.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-KBLZRU62.js +2 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-KZ2NB3ET.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-M5M6SVHS.js +3 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-BEVHCEWG.js → chunk-OL5EH6I3.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-MEASX544.js → chunk-Q45NHPF2.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-O67VDLOT.js → chunk-QKHCSUGJ.js} +42 -42
  35. package/dist/cli-bundle/focused-chunks/chunk-S27XMBIN.js +8 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-TXE4TSHM.js +12 -0
  37. package/dist/cli-bundle/focused-chunks/chunk-UCLO3XDU.js +2 -0
  38. package/dist/cli-bundle/main.js +15 -15
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +1 -1
  41. package/dist/cli-bundle/sdk-core.js +28 -28
  42. package/dist/cli-bundle/sdk-governance.js +1 -1
  43. package/dist/cli-bundle/sdk-graph.js +1 -1
  44. package/dist/cli-bundle/sdk-merge.js +35 -33
  45. package/dist/cli-bundle/sdk-query.js +1 -1
  46. package/dist/cli-bundle/sdk-runtime.js +1 -1
  47. package/dist/cli-bundle/sdk-testing.js +1 -1
  48. package/dist/cli-bundle/sdk.js +9 -9
  49. package/dist/core/history/event-classification.d.ts +21 -0
  50. package/dist/core/history/event-classification.js +109 -0
  51. package/dist/core/history/event-index.d.ts +14 -3
  52. package/dist/core/history/event-index.js +543 -88
  53. package/dist/core/history/history.js +47 -18
  54. package/dist/core/history/workspace-history.js +7 -6
  55. package/dist/core/lock/lock.d.ts +22 -2
  56. package/dist/core/lock/lock.js +121 -19
  57. package/dist/core/output/output.js +31 -7
  58. package/dist/core/shared/time.d.ts +2 -0
  59. package/dist/core/shared/time.js +8 -2
  60. package/dist/core/store/item-metadata-query-index.js +5 -5
  61. package/dist/sdk/context/recency.d.ts +9 -0
  62. package/dist/sdk/context/recency.js +34 -0
  63. package/dist/sdk/context/usage-egress.d.ts +9 -0
  64. package/dist/sdk/context/usage-egress.js +30 -0
  65. package/dist/sdk/context-intent-contracts.js +7 -3
  66. package/dist/sdk/context-relevance.d.ts +23 -0
  67. package/dist/sdk/context-relevance.js +94 -23
  68. package/dist/sdk/context-signal-store.d.ts +7 -3
  69. package/dist/sdk/context-signal-store.js +155 -42
  70. package/dist/sdk/context-usage.d.ts +54 -0
  71. package/dist/sdk/context-usage.js +245 -16
  72. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +14 -14
  73. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +14 -2
  74. package/dist/sdk/index.d.ts +2 -0
  75. package/dist/sdk/index.js +4 -2
  76. package/dist/sdk/init.d.ts +2 -0
  77. package/dist/sdk/init.js +18 -9
  78. package/dist/sdk/query/context.d.ts +3 -1
  79. package/dist/sdk/query/context.js +21 -9
  80. package/dist/sdk/query/next.js +18 -9
  81. package/dist/sdk/runtime-input.d.ts +2 -0
  82. package/dist/sdk/runtime-input.js +25 -2
  83. package/dist/sdk/runtime.d.ts +1 -0
  84. package/dist/sdk/runtime.js +17 -26
  85. package/dist/types.d.ts +2 -0
  86. package/dist/types.js +2 -2
  87. package/docs/CONTEXT_RELEVANCE.md +44 -1
  88. package/docs/PERFORMANCE.md +6 -3
  89. package/docs/READ_OUTPUT_CONTRACTS.md +9 -1
  90. package/docs/SDK.md +11 -8
  91. package/docs/SDK_CONTEXT.md +7 -0
  92. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
  93. package/marketplace.json +2 -2
  94. package/package.json +4 -4
  95. package/packages/pm-beads/package.json +1 -1
  96. package/packages/pm-calendar/package.json +1 -1
  97. package/packages/pm-command-kit/package.json +1 -1
  98. package/packages/pm-digital-twin/package.json +1 -1
  99. package/packages/pm-governance-audit/package.json +1 -1
  100. package/packages/pm-guide-shell/package.json +1 -1
  101. package/packages/pm-kanban/package.json +1 -1
  102. package/packages/pm-lifecycle-hooks/package.json +1 -1
  103. package/packages/pm-linked-test-adapters/package.json +1 -1
  104. package/packages/pm-search-advanced/package.json +1 -1
  105. package/packages/pm-templates/package.json +1 -1
  106. package/packages/pm-todos/package.json +1 -1
  107. package/packages/pm-vcs/package.json +1 -1
  108. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  109. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  110. package/sdk/public-surface.json +241 -24
  111. package/dist/cli-bundle/chunks/chunk-GOACULJW.js +0 -13
  112. package/dist/cli-bundle/chunks/chunk-NOPL37X4.js +0 -205
  113. package/dist/cli-bundle/focused-chunks/chunk-242AXYB2.js +0 -2
  114. package/dist/cli-bundle/focused-chunks/chunk-2FEZ5SKM.js +0 -3
  115. package/dist/cli-bundle/focused-chunks/chunk-6GCRSLPG.js +0 -2
  116. package/dist/cli-bundle/focused-chunks/chunk-7VATS5QY.js +0 -16
  117. package/dist/cli-bundle/focused-chunks/chunk-JEFKLWMM.js +0 -2
  118. package/dist/cli-bundle/focused-chunks/chunk-PF3E6Q36.js +0 -8
  119. package/dist/cli-bundle/focused-chunks/chunk-QDFJIRKN.js +0 -4
  120. package/dist/cli-bundle/focused-chunks/chunk-RMRCQPWU.js +0 -2
  121. package/dist/cli-bundle/focused-chunks/chunk-S4U5CN5Q.js +0 -2
  122. package/dist/cli-bundle/focused-chunks/chunk-T2LXXSOD.js +0 -158
  123. package/dist/cli-bundle/focused-chunks/chunk-Z2USIBR2.js +0 -5
@@ -1,16 +0,0 @@
1
- import{a as Qt,b as Jt,d as Zt,e as en,f as tn,g as nn,h as rn}from"./chunk-MEASX544.js";import{$ as hi,Fa as ve,L as on,M as mi,Oa as vi,V as pi,W as _e,Wa as ki,Y as re,Z as we,_ as be,_a as Ci,a as ai,c as ci,ca as gi,d as di,da as ot,ea as yi,fa as sn,g as ui,ga as an,ha as cn,ia as _i,ma as wi,n as li,na as dn,o as fi,wa as bi}from"./chunk-MKHG3T76.js";import{Ma as Mr,Ua as Rr,t as Ar}from"./chunk-JEFKLWMM.js";import{b as Si,e as un,f as dt,g as Ei}from"./chunk-RMRCQPWU.js";import{$a as Jr,A as $r,Ab as ge,B as jr,Bb as ye,C as Pr,Cb as it,D as Ur,Db as Z,E as Kr,Eb as oi,Ga as qr,Gb as si,Ha as Wr,I as Fe,Ia as zr,Pb as st,Qa as Vr,Qb as at,R as Br,Sa as Yr,Tb as ct,Ua as Xr,Y as ne,Z as L,Za as rt,_a as Qr,aa as S,ba as nt,ca as U,da as Gr,hb as M,jb as Zr,kb as ei,l as A,nb as ti,oa as $,pa as R,pb as ni,q as Te,qa as K,r as Or,ta as Hr,tb as ri,u as Nr,vb as he,wa as V,xb as ii,zb as j}from"./chunk-T2LXXSOD.js";import{Ga as Fr,H as O,I as Je,N as x,P as Cr,R as Xt,T as Ze,Ta as N,Va as B,W as xe,X as D,a as _r,aa as xr,ba as Ir,h as vr,r as kr,s as Qe,t as Sr,v as Er,y as Yt}from"./chunk-QDFJIRKN.js";import{b as pe,c as Lr,e as tt}from"./chunk-6GCRSLPG.js";import{E as le,J as Vt,K as Xe,S as wr,W as br,Y as m,Z as p,aa as Tr,ab as fe,bb as me,cb as Ie,gb as et,hb as Dr}from"./chunk-Z2USIBR2.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 $a=["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"],ln=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 Dp(e={}){return{excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0}}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function F(e,t,n,r){t&&e.push({code:n,message:r})}function ja(e,t){let n=Y(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=Y(e.filters)?e.filters:{},s=Y(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 Pa(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=Y(e.projection)?e.projection:{};F(n,r.mode!=="full"||r.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let i=Y(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 Ua(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 Ka(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 Ba(e,t){let n=Y(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&&Ua(n),"read_output_invalid","The universal read-output receipt does not prove an intact list result."),F(t,n!==void 0&&!Ka(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=Y(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 Ga(e,t){let n=e.map(r=>Y(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 Ha(e){if(!Y(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:$a[0],message:"The result must be an object with an items array."}]};let t=e,n=[],r=ja(t,n);return Pa(t,r,n),Ba(t,n),Ga(t.items,n),{ok:n.length===0,findings:n}}function qa(e){let t=Ha(e);if(!t.ok)throw new ln(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 Lp(e){qa(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]="f1ea4209-59d4-53f0-a8ea-2e060e385d14")}catch{}})();function xi(e,t){let n=Xr(e),r=e.length>0?e[e.length-1].after_hash:zr(),i=t===void 0||n.item_hash_version===void 0?void 0:Wr(t,n.item_hash_version),o=t===void 0?void 0:i===void 0?qr(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 Ii(e,t,n={}){let r=x(n.cwd??process.cwd(),n.pmRoot);await j(r);let i=await M(r),o=O(i,A()),s=await ui(r,e,i,o.type_to_folder),a=await V(s.historyPath,s.id);if(a.length===0)throw new p(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let d=ai(t,a),c=di(ci(a,d.historyIndex),d),l=Vr(c,{schema:i.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex];return{document:l,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:u.ts,target:d,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function P(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 ut(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 Ti(e,t,n="--type"){if(e===void 0)return;let r=Je(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import za from"node:fs/promises";import Ri 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 fn={version:1,aliases:{}};function lt(e=[]){let t=new Set(Fe),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 Fi(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 mn(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function Wa(e,t=Fe){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 ft(e,t=fn,n={}){let r=mn(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 mt(e,t=fn,n=Fe){let r=Fi(e.harness),i=Fi(e.agentInstance),o=Wa(e,n);return s=>{let d=mn(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 pt(e,t=fn,n=Fe){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);mn(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 Va=20,Ya=5,Xa=15,Qa="-24h";function hh(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 Ja={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function pn(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 Ai(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new p("Activity time bounds must not be empty",m.USAGE);let i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return U(i,new Date(t),n)}function Za(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function Mi(e,t){return t===void 0?e:e.slice(0,t)}function Ae(e,t=""){return typeof e=="string"?e:t}function ec(e,t){return{...t,id:e,ts:Ae(t.ts),author:Ae(t.author,"unknown"),op:Ae(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ae(t.before_hash),after_hash:Ae(t.after_hash)}}function tc(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 nc(e){try{return(await za.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Sr(t))return[];throw t}}function rc(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 ic(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Xa:n==="compact"?Va:Ya}function oc(e,t){let n=L(),r=t==="digest",i=Ai(e.to??(r?n:void 0),n,"--to"),o=Ai(e.from??(r?Qa: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:pn(e.id,"Activity --id"),op:pn(e.op,"Activity --op"),author:pn(e.author,"Activity --author"),from:o,to:i,limit:ic(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function sc(e){let t=x(process.cwd(),e.path);return await j(t),{pmRoot:t,settings:await M(t)}}async function ac(e){let t=O(e.settings,A()),n=await Z(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await ei({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=Ri.join(e.pmRoot,"history");return await Te({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function cc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Za(t,n.from,n.to)}async function dc(e,t){let n=[];for(let r of await nc(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await V(Ri.join(e,r),i);for(let s of o){let a=ec(i,s);cc(s,a,t)&&n.push(a)}}return n}function uc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function lc(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 fc(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:lc(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function mc(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 pc(e,t,n,r,i){if(e==="digest"){let s=fc(t,r),a=Mi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Mi(t,n);return e==="compact"?{rows:{compact_activity:uc(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 Di(e,t){let n=await sc(t),r=rc(e),i=oc(e,r),o=await ac(n),s=lt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=mt({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=tc(await dc(o.historyDir,i)).filter(d),l=pc(r,c,i.limit,o.itemsById,f=>ft(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:Ja[r]},omission_receipt:tt("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:mc(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:pt(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 hn(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let d=e[s+1];if(d===","||d==="\\"){r+=d,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new p(`${t.label} requires at least one non-empty value`,m.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function G(e,t){let n=hn(e,t);return n===void 0?void 0:new Set(n)}function ht(e,t,n="--type"){let r=hn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=Je(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 gt(e,t="--priority"){let n=hn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>ut(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 Li(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function yt(e){return{isTerminal(t){return e.terminal_statuses.has(Li(t,e))},classify(t){let n=Li(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 gn(e){return D(e.acceptance_criteria)===void 0}function yn(e){return!Number.isFinite(e.estimated_minutes)}function ji(e,t){return t.isTerminal(e.status)?D(e.resolution)===void 0:!1}function hc(e){return D(e.reviewer)===void 0}function gc(e){return D(e.risk)===void 0}function yc(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):D(e.confidence)===void 0}function _c(e){return D(e.sprint)===void 0}function wc(e){return D(e.release)===void 0}function Me(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function bc(e,t,n){return[[t.acMissing,gn(e)],[t.estimatesMissing,yn(e)],[t.resolutionMissing,ji(e,n)],[t.reviewerMissing,hc(e)],[t.riskMissing,gc(e)],[t.confidenceMissing,yc(e)],[t.sprintMissing,_c(e)],[t.releaseMissing,wc(e)]].every(([i,o])=>i!==!0||o)}function vc(e,t){return gn(e)||yn(e)||ji(e,t)}function _t(e,t,n){return Me(t)?!(!bc(e,t,n)||t.metadataMissing&&!vc(e,n)):!0}var _n=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function kc(e,t){switch(t){case"acceptance_criteria":return!gn(e);case"estimated_minutes":return!yn(e);case"resolution":return D(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return D(e.parent)!==void 0}}function Sc(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Ec(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Oi(){let e={};for(let t of _n)e[t]={present:0,applicable:0,percent:100};return e}function Ni(e,t,n){for(let r of _n){if(!Sc(t,r,n))continue;let i=e[r];i.applicable+=1,kc(t,r)&&(i.present+=1)}}function $i(e){for(let t of _n){let n=e[t];n.percent=Ec(n.present,n.applicable)}}function Sh(e,t){let n=Oi(),r={};for(let i of e){Ni(n,i,t);let o=r[i.type]??(r[i.type]=Oi());Ni(o,i,t)}$i(n);for(let i of Object.values(r))$i(i);return{overall:n,by_type:r}}var Cc={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function xc(e){return Cc[e]}function Ic(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Tc(e,t,n){switch(t){case"assignee":return[D(e.assignee)??null];case"parent":return[D(e.parent)??null];case"type":return[D(e.type)??null];case"status":return[D(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 Eh(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 Tc(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??xc(t),key:c,buckets:Ic(),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 ke=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function ie(e){return Array.isArray(e)&&e.length>0}function Fc(e){return typeof e=="string"&&e.trim().length>0}function Ac(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 Ui(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 Fc(e.body);case"linked_command":return Ac(e.tests)}}function wt(e){return ke.some(t=>e[t]!==void 0)}function bt(e,t){for(let n of ke){let r=t[n];if(r===void 0)continue;let i=Ui(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Ki(e){return ke.some(t=>t!=="body"&&e[t]!==void 0)}function Bi(e){return e.body!==void 0}function Pi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Mc(){let e={};for(let t of ke)e[t]={present:0,total:0,percent:100};return e}function xh(e){let t=Mc(),n=e.length;for(let s of e)for(let a of ke)Ui(s,a)&&(t[a].present+=1);for(let s of ke)t[s].total=n,t[s].percent=Pi(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:Pi(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 vt=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}),Gi=[{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"}],De=e=>{let t=Gi.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(Gi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Hi=["priority","deadline","updated_at","created_at","title","parent"],qi=["asc","desc"],Yi=new Set(ri);function Rc(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 Dc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var Lc=[{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"}],Oc=[{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 Xi(e,t){for(let n of Lc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Qi(e,t){for(let n of Oc)t[n.key]===!0&&(e[n.summaryKey]=!0)}function bn(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 Le(e){let t={};return Xi(t,e),t}function Oe(e){let t={};return Qi(t,e),t}var Nc=[{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"}],$c=[{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"}],jc=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Pc="-7d";function Ji(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"),bn(d,n,Nc),eo(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),Qi(d,n),Xi(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),Dc(a)&&(d.runtime_filters=a),d}function vn(e,t,n){let r=K(e.status,n),i=K(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=S(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Uc(e,t){return[...e].sort((n,r)=>vn(n,r,t))}function Wi(e,t){if(e!==void 0)return U(e,new Date,t)}function Re(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return U(n,new Date,t)}function Zi(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?Re(Pc,"recent"):Re(e.updatedAfter,"updated-after")}function eo(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function to(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 kn(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 no(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 ro(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=no(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:[...Jt]}:n?{mode:"compact",fields:[...Qt]}:o?{mode:"fields",fields:[...new Set(o.map(a=>ee(a)))]}:{mode:"full",fields:[]}}function ee(e){return e.startsWith("item.")?e.slice(5):e}function Kc(e,t,n){if(e.mode!=="fields")return;let r=Zt(t),i=new Set(r.map(s=>ee(s))),o=e.fields.filter(s=>!i.has(ee(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 Bc=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function io(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Bc.get(t);if(n)return n;if(!Hi.includes(t))throw new p(`Sort field must be one of ${Hi.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function oo(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!qi.includes(t))throw new p(`Sort order must be one of ${qi.join("|")}`,m.USAGE);return t}function Gc(e){return P(e,"--tree-depth")}function so(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 zi(e,t){return _e(e,t,{strict:!0})}function ao(e){return G(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Hc(e,t,n){let r=ao(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 qc(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 Wc(e,t,n,r){let i=G(t.assignee,{label:"--assignee"}),o=so(t.assigneeFilter);qc(i,o);let s=vt(t),a=De(t);return{idsFilter:to(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:ht(t.type,n),tagFilters:ao(t.tag),priorityFilter:gt(t.priority),deadlineBefore:Wi(t.deadlineBefore,"deadline-before"),deadlineAfter:Wi(t.deadlineAfter,"deadline-after"),updatedAfter:Zi(t),updatedBefore:Re(t.updatedBefore,"updated-before"),createdAfter:Re(t.createdAfter,"created-after"),createdBefore:Re(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:G(t.sprint,{label:"--sprint"}),releaseFilter:G(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Me(s),lifecycleClassifier:yt(r),contentFieldFilters:a,contentFiltersActive:wt(a)}}function zc(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&K(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(i=>i.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Vc(e,t){return nt(e,t)}function Yc(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 Xc(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 Qc(e,t,n,r,i){return!(!zc(e,t,n)||!Vc(e,t)||!Yc(e,t)||!Xc(e,t,i)||t.missingMetadataActive&&!_t(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!bt(e,t.contentFieldFilters)||!be(e,r))}function co(e,t,n,r,i,o,s){let a=Wc(t,n,r,i);return e.filter(d=>Qc(d,a,i,o,s))}function Se(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function wn(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??Se(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 Jc(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)??[]:[Se(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 Zc(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[Se(o.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function uo(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=Jc(e,r),a=Zc(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:y}=u.pop(),g=f.id.trim().toLowerCase();if(c.has(g))continue;c.add(g);let w=s.get(g)??[];if(d.push(wn(f,h,w.length,y)),!(n!==void 0&&h>=n))for(let _ of[...w].reverse())u.push({node:_,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(wn(f,0,s.get(h)?.length??0)))}return d}function lo(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function fo(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function mo(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return fo(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 lo(e.parent??null,t.parent??null);default:return 0}}function po(e,t,n,r){return t?[...e].sort((i,o)=>{let s=mo(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=vn(i,o,r);return n==="desc"?-a:a}):Uc(e,r)}function ho(e,t,n=!1){let r=ee(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 Sn(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=ho(r,o,n);return i})}function go(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function yo(e,t){if(e.noTruncate!==!0)return P(e.limit)??(t>=1e4?20:void 0)}function ed(e,t,n){return t.after===void 0?kn(t.offset)??0:et(e,t.after,n,r=>r.id)}function _o(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function td(e,t){let n=x(process.cwd(),t.path);await j(n);let r=await M(n),i=N(r.schema),o=B(r.schema),s=e.projectionCommand??"list",a=ro(e,s);return Kc(a,go(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:we(e,o,"list"),typeRegistry:O(r,A()),projection:a}}async function nd(e,t,n){let r=t.projection.fields.some(d=>ee(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>Yi.has(ee(d))),o=De(e),s=Ki(o),a=Bi(o);return e.includeBody||r||a?await oi(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await it(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await Z(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function rd(e){let t=io(e.sort),n=oo(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?Gc(e.treeDepth):void 0,parentRoot:r?Se(e.parent):void 0}}function id(e,t,n){let r=zi(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??zi(e,n),s=pi(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 od(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=yo(t,e.length),s=ed(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=Sn(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Ie(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:_o(o,l,u)}}function wo(e,t,n){return me("list",{status:e,options:fe(t,Ar),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function sd(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(y=>{let g=ee(y);return g==="body"||Yi.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,Or(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!o.has(y))].includes(!0))return null;let d=await he(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=P(t.limit),l=kn(t.offset)??0,u=await ni({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?Ie(wo(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:Sn(u.items,n.projection,!1),totalMatched:u.total,pageExtras:_o(c,f,h)}}function ad(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 $c){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of jc)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,Oe(n),Le(n)),eo(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 X(e,t,n){let r=await td(t,n),i=[],o=rd(t),s=id(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await sd({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await nd(t,r,i),_=o.treeEnabled||Se(t.parent)!==void 0?ct(at(g,st())):void 0;Hc(g,t.tag,i);let b=co(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,_?.parents_by_child),k=t.dependencyBlocked===!0?(()=>{let C=dt(g,r.statusRegistry);return b.filter(E=>C.has(E.id.trim().toLowerCase()))})():b,I=po(k,o.sortField,o.sortOrder,r.statusRegistry),T=o.treeEnabled?uo(I,o.parentRoot,o.treeDepth,_,g):I;c=od(T,t,r.projection,o.treeEnabled,wo(s.filtersStatus,t,o))}let l=L(),u=[...new Set(i)].sort((g,w)=>g.localeCompare(w)),f=Rc(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=Ji({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:ad({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 tg={applyFilters:co,buildCompactListFilterSummary:Ji,buildContentFilterEcho:Le,buildGovernanceMissingFilterEcho:Oe,resolveContentFieldFilters:De,resolveMissingMetadataFilters:vt,compareBySortField:mo,compareDefaultSort:vn,compareNullableString:lo,compareNullableTimestamp:fo,normalizeProjectionField:ee,parseAssigneeFilter:so,parseFieldSelectors:no,parseIdsFilter:to,parseOffset:kn,parseProjectionConfig:ro,resolveListUpdatedAfter:Zi,resolveListPageLimit:yo,parseSortField:io,parseSortOrder:oo,orderItemsAsTree:uo,projectListItems:Sn,readListFieldValue:ho,runtimeMetadataKeysForProjection:go,sortItems:po,trimNonEmpty:Se,withTreeMetadata:wn};(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 cd=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],dd=["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 ud(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function ig(e,t,n={}){let r=n.includePagination!==!1;return[t,...cd.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(ud)||dd.some(o=>e?.[o]===!0)}function bo(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 vo=["parent","type","priority","status","assignee","tags","sprint","release"];function So(e,t){let n=_e(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Eo(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 Co(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=vi(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(!vo.includes(r))throw new p(`Aggregate group fields must be one of ${vo.join("|")}; received "${r}"`,m.USAGE);return n}function xo(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 Io(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 xo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function To(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 Fo(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var ld={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function ko(e,t){return t==null||t===""?ld[e]:String(t)}function fd(e,t){return e.length===1?ko(e[0],t[e[0]]):e.map(n=>`${n}=${ko(n,t[n])}`).join(" | ")}function Ao(e,t,n){for(let r of n){let i=To(e.group[r],t.group[r]);if(i!==0)return i}return 0}function Mo(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 Ro(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function En(e,t,n){let r=$(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 md(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 pd(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function hd(e){e.accumulator.row.count+=1,e.includeCompletion&&En(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&pd(e.accumulator,e.numericValue)}function gd(e,t){let n={};for(let r of e)n[r]=Io(r,t);return n}function yd(e,t,n,r){let i={...e.row,group_label:fd(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=Ro(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 _d(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 dg(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=x(process.cwd(),t.path),r=await M(n),i=N(r.schema),o=["estimate","estimated_minutes","priority",...B(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=Co(e.groupBy),a=So(e.status,i),d=Eo(e,[...new Set(o)].sort((_,b)=>_.localeCompare(b))),c=e.completion===!0,l=e.includeUnparented===!0,u=await X(void 0,{...bo(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of u.items){let b=_,k=gd(s,b);if(s.includes("parent")&&k.parent===null&&!l){h+=1;continue}let I=Fo(s,k),T=f.get(I),C=d===null?null:Mo(b,d.field);if(T)hd({accumulator:T,item:b,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:C});else{let E=md(k,C);c&&En(E,b.status,i),f.set(I,E)}y+=1}let g=[...f.values()].map(_=>yd(_,s,c,d)).sort((_,b)=>Ao(_,b,s)),w=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:y,items_skipped_unparented:h},filters:_d({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:L(),...w?{warnings:w}:{}}}var ug={buildGroupKey:Fo,compareAggregateRows:Ao,compareNullableGroupValue:To,completionPct:Ro,normalizeTagGroupValue:xo,parseGroupBy:Co,parseNumericAggregation:Eo,parseStatus:So,readNumericAggregateValue:Mo,resolveGroupValue:Io,updateCompletionCounts:En};import{encode as wd}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 Cn=["agenda","day","week","month"],xn=["markdown","toon","json"],bd=["sun","mon","tue","wed","thu","fri","sat"],vd=365,kd=365,Oo=28,Sd=1e3;function In(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 Ed(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 No(e,t){let n;for(let r of t){let i=_r(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Cd(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Cn.includes(t)){let n=No(t,Cn);throw new p(`Calendar view must be one of ${Cn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function xd(e){if(!e)return;let t=e.trim().toLowerCase();if(!xn.includes(t)){let n=No(t,xn);throw new p(`Calendar format must be one of ${xn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function yg(e,t){let n=xd(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 Id(e,t){if(e===void 0)return;let n=$(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 Td(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 kt(e){return new Date(e).toISOString().slice(0,10)}function $o(e,t){if(!t||t==="UTC")return kt(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 kt(e)}function Mn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function Q(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function jo(e){let t=new Date(Mn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return Q(t.toISOString(),r)}function Fd(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Ad(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Md(e,t){return S(e,t)>=0?e:t}function Do(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Lo(e,t){e.set(t,(e.get(t)??0)+1)}function Rd(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)=>le(r)-le(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 Po(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 Uo(e){return bd[new Date(e).getUTCDay()]}function Dd(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Ld(e){let t=new Set;for(let n of e??[]){let r=Dd(n);r&&t.add(r)}return t}function Od(e,t,n,r,i){let o=e??Q(n,-(r??kd)),s=t??Q(e??n,i??vd);return{start:o,end:S(s,o)>0?s:Q(o,1)}}function Nd(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Uo(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??Sd,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Ld(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)=>le(s)-le(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function St(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 Et(e,t){let n=Uo(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function $d(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Et(e,t)&&St(e,t)==="stop");n+=1)t=Q(t,e.interval);return e.occurrences}function jd(e,t,n){let r=le(n),i=Q(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 Pd(e){let t=jo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=Q(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=jd(e,r,i);if(Et(e,o)&&St(e,o)==="stop")return e.occurrences}}return e.occurrences}function Ud(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=Po(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!Et(e,s))&&St(e,s)==="stop")return e.occurrences}}return e.occurrences}function Kd(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=Po(i,n,o,e.startDate);if(!(!s||!Et(e,s))&&St(e,s)==="stop")return e.occurrences}}return e.occurrences}function Bd(e,t,n,r){let i=Nd(e,t,n,r);return t.freq==="daily"?$d(i):t.freq==="weekly"?Pd(i):t.freq==="monthly"?Ud(i):Kd(i)}function Ko(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 Rn(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function Gd(e){return e.deadline?{at:e.deadline,date:kt(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...Rn(e),item_deadline:e.deadline}:null}function Hd(e){return(e.reminders??[]).map(t=>({at:t.at,date:kt(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...Rn(e)}))}function qd(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Wd(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function zd(e,t,n,r){let i=Rd(t.recurrence),o=qd(t.start_at,t.end_at);return(t.recurrence?Bd(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):$o(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Wd(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,...Rn(e)}))}function Vd(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?Gd(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Hd(o));for(let a of n.has("events")?o.events??[]:[])i.push(...zd(o,a,t,r))}return Ko(i)}function Yd(e,t,n,r,i){let o=Ti(t.type,n),s=t.tag?.trim().toLowerCase(),a=ut(t.priority),d=Id(t.status,r),c=t.assignee?.trim(),l=Td(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=>Xd(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function Xd(e,t){return Qd(e,t)&&Jd(e,t)&&be(e,t.runtimeFieldFilters)}function Qd(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 Jd(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 Zd(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function Tn(e,t,n){return e.trim().toLowerCase()==="today"?Mn(t):U(e,new Date(t),n)}function eu(e,t,n){let r=t.date?Tn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Tn(t.from,n,"--from"):void 0,a=t.to?Tn(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 tu(r,t,n,i,o,s,a);if(e==="day"){let c=Mn(r);return Fn(r,n,i,o,c,Q(c,1))}if(e==="week"){let c=jo(r);return Fn(r,n,i,o,c,Q(c,7))}let d=Fd(r);return Fn(r,n,i,o,d,Ad(r))}function tu(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 Fn(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Md(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function nu(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:Ko(r)}))}function ru(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),Lo(n,d.item_type),Lo(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:Do(n),by_status:Do(r),recurring_events:a}}function iu(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Bo(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 An(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function ou(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===$o(e.event_end,e.event_timezone)?Bo(e.event_end,e.event_timezone):e.event_end:null}function su(e){let t=`${Bo(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=ou(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 _g(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${iu(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: ${An(e.summary.by_kind)}`),t.push(`- by-type: ${An(e.summary.by_type)}`),t.push(`- by-status: ${An(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(`- ${su(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 au(t.join(`
3
- `))}function wg(e){return wd(e)}function au(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function cu(e){let t=L(),n=Cd(e.view),r=eu(n,e,t),i=P(e.limit),o=Ed(e.include),s=In(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=In(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=In(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?Oo:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function du(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Oo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function uu(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 lu(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 Go(e,t){let n=x(process.cwd(),t.path);await j(n);let r=cu(e),i=await M(n),o=N(i.schema),s=B(i.schema),a=we(e,s,"calendar"),d=O(i,A()),c=[];du(c,r.eventsOnlyCapApplied);let l=await Z(n,i.item_format,d.type_to_folder,c,i.schema),u=Yd(l,e,d,o,a),f=Od(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=Vd(u,f,r.includeSources,r.occurrenceLimit).filter(b=>Zd(b,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),w=nu(g),_=[...new Set(c)].sort((b,k)=>b.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:lu(e,r.rangeBounds),filters:uu(e,a),summary:ru(g),events:g,days:w,..._.length>0?{warnings:_}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var Dn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],fu=Symbol("no-context-author"),mu=Symbol("no-item-assignee");function Ho(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function pu(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 hu(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 gu(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 Ct(e,t,n){return e?.[t]??n}function xt(e,t){let n=c=>{if(typeof c!="string")return"";try{return U(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,l)=>{let u=n(c.updated_at),f=n(l.updated_at);return S(f,u)||c.id.localeCompare(l.id)}),i=new Map(r.map((c,l)=>[c.id,l])),o=Math.max(e.length-1,1),s=Ho(t.author,fu),a=$("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=Ho(c.assignee,mu)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:Ct(t.graphProximity,c.id,c.parent?.3:0),claim_focus:Ct(t.claimFocus,c.id,R(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:pu(c.priority,4),risk_pressure:gu(c.risk),deadline_pressure:hu(c.deadline,d),knowledge_density:Ct(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:Ct(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var yu="context_relevance",_u={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},wu=new TextEncoder;function bu(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"||!Dn.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 vu(e){let t={..._u};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Dn.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 Wo(e,t={}){bu(e);let n=vu(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=Dn.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},l={},u=0,f=0;for(let h of o){let y=c[h];if(y===void 0)continue;let g=y*n[h];l[h]=g,u+=g,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function ku(e,t={}){let n=Wo(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 It(e,t,n={}){let r=Wo(t,n),i=await Nr(yu,{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 ku(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 Su=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function qo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Eu(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:qo(e.required_ids??[],a),continuity_coverage:qo(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Cu(e){return Math.ceil(wu.encode(JSON.stringify(e)).byteLength/4)}function xu(e){return Math.round(e*1e4)/1e4}function Iu(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 Tu(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}=Iu(n,e.surface),o={...n,ranking:void 0},s=Cu(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Eu({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 Fu(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Su;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,xu(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 Eg(e,t,n){let r=[];for(let i of e)r.push(await Tu(i,t));return Fu(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 Au={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Mu=["identity","summary","full"];function Ru(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=Mu.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 Du(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=Au[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 Lu(e){let t=new Set;for(let n of e){if(Ru(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 Ou(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 Nu(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=Ou(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 $u(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 zo(e,t){let n=Du(t),r=Lu(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=Nu({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=$u(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let c=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!c.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as ju}from"node:crypto";import{appendFile as Pu,mkdir as Uu,readFile as Ku,rename as Bu,stat as Gu,writeFile as Hu}from"node:fs/promises";import Vo from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var Yo=2048,Xo=30,Qo=864e5,qu=262144,Wu="context-usage-ledger",H=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Jo(e){return Vo.join(e,"runtime","context-usage.jsonl")}function Ne(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new H("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Zo(e){try{let n=(await Ku(Jo(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??Yo,i=e.retentionDays??Xo,o=Ne(e).ms-i*Qo;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function es(e,t){let n=e.maxEvents??Yo,r=e.retentionDays??Xo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new H("Context usage retention requires positive maxEvents and retentionDays");let i=Jo(e.pmRoot),o=Vo.dirname(i),s=await Gr(e.pmRoot,Wu,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Uu(o,{recursive:!0}),await Pu(i,t.map(l=>`${JSON.stringify(l)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Gu(i)).size<=qu)return;let d=await Zo(e),c=`${i}.${process.pid}.${ju()}.tmp`;await Hu(c,`${d.map(l=>JSON.stringify(l)).join(`
7
- `)}
8
- `,"utf8"),await Bu(c,i)}finally{await s()}}async function ts(e,t){await es(e,[t])}async function Tt(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new H("Context usage serving requires an author and valid ranked rows");await ts(e,{kind:"serve",at:Ne(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Mg(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new H("Context usage touch requires author, itemId, and intent");await ts(e,{kind:"touch",at:Ne(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function ns(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new H("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new H("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new H("Context usage touch requires non-empty itemId");r.add(a)}let i=Ne(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await es(e,o)}function zu(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function Ft(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Zo(e),n=Ne(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new H("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(u=>u.kind==="touch"&&u.author===i).map(u=>({entry:u,time:Date.parse(u.at)})),s=new Map,a=0,d=0;for(let u of t){if(u.kind!=="serve"||u.author!==i)continue;a+=1;let f=Date.parse(u.at);for(let h of u.rows){if(!h.included)continue;let y=zu(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/Qo);s.set(h.id,(s.get(h.id)??0)+Math.exp(-g/14))}}let c=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([u,f])=>[u,.05+.95*(c>0?f/c:0)])),positive_judgments:d,serving_events:a}}import $e from"node:fs/promises";import je from"node:path";import{createHash as Vu,randomUUID as Yu}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3d0a558b-6a01-5bca-a2f7-21766be6d67c")}catch{}})();var Ln=1,On=1,rs=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Xu={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 At(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function is(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Qu(e){let t={};for(let n of rs){let r=e[n];if(r!==void 0){if(!is(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Ju(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 Zu(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 el(e,t){return{...t,activityDensity:t.activityDensity??Ju(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Zu(e)}}function tl(e){if(!At(e)||typeof e.id!="string"||!At(e.signals))return null;let t={},n=new Set(rs);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!is(i))return null;t[r]=i}return{id:e.id,signals:t}}function nl(e){if(!At(e)||e.format_version!==Ln||e.signal_set_version!==On||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=e.items.map(tl);if(t.some(r=>r===null))return null;let n=t;return new Set(n.map(r=>r.id)).size!==n.length||n.some(r=>r.id.trim().length===0)?null:{format_version:Ln,signal_set_version:On,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function rl(e,t){if(typeof t.sourceCursor!="string"||t.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(t.source!=="derived_index"&&t.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback");let n=xt(e,el(e,t)).map(({id:r,signals:i})=>({id:r,signals:Qu(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:Ln,signal_set_version:On,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var Nn=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=je.resolve(t)}async read(){try{return JSON.parse(await $e.readFile(this.filePath,"utf8"))}catch(t){if(At(t)&&Qe(t))return null;throw t}}async write(t){let n=je.dirname(this.filePath);await $e.mkdir(n,{recursive:!0});let r=je.join(n,`.${je.basename(this.filePath)}.${Yu()}.tmp`);try{await $e.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await $e.rename(r,this.filePath)}finally{try{await $e.rm(r,{force:!0})}catch{}}}},$n=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let u=await this.adapter.read();i=nl(u),u!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(u=>u.id).sort((u,f)=>u.localeCompare(f)),s=i?.items.map(u=>u.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((u,f)=>u===o[f]),d;if(a&&i!==null)d=i;else{i!==null&&r.push("context_signal_store_stale"),d=rl(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(u=>[u.id,u.signals])),l=xt(t,n);return{snapshot:d,candidates:l.map(u=>({...u,signals:{...u.signals,...c.get(u.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(u=>Xu[u])}}};function il(e){let t=Vu("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 Mt(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 he(t.pmRoot),o=t.sourceCursor??i?.source_cursor??il(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new $n(new Nn(je.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import ol from"node:path";import{createHash as sl}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 os(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 al 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 ss=1,cl=1e4,as=12;function dl(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function ul(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 ll(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 fl(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(R(o.status,t.statusRegistry))).map(o=>{let s=os(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=dl(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=ul(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:ss,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(ll).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function ml(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 pl(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(ml)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function hl(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==ss||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(pl)?t:null}function gl(e){return`scan:${sl("sha256").update(Tr(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function yl(e,t,n){return n!==void 0?n:(await he(t))?.source_cursor??gl(e)}async function _l(e){try{let t=hl(JSON.parse(await al.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&Qe(t))}}}async function Rt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??cl));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await yl(e,t.pmRoot,t.sourceCursor),i=ol.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await _l(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=fl(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await Er(i,`${JSON.stringify(d)}
10
- `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function wl(e,t,n=as){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 cs(e,t,n=as){if(e.snapshot===null)return;let r=wl(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 bl(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 ds(e,t,n=5){let r=bl(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 us=16;async function ls(e,t,n){let r=O(t,A()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<us;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await ge(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await ye(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function ey(e){await Pr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await ls(e.pmRoot,e.settings,e.itemId)})}async function ty(e){await Ur(e)}async function ny(e){await Kr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await ls(e.pmRoot,e.settings,e.itemId)}:{}})}var ry={lineage_depth:us,active_items:64,evidence_rows:32};function fs(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]="a870e3ac-f731-5cbf-a66e-38d1d5b1d0aa")}catch{}})();var vl=["markdown","toon","json","ndjson"],Ue=new Set(["Epic","Feature"]),ys=10,_s=1e4,ws=["hierarchy","activity","progress","recently_created","unparented","workload"],kl=[...ws,"blockers","files","staleness","tests"],Sl=/^(\d{4})-(\d{2})-(\d{2})/,El=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Cl=/^(\d{4})(\d{2})(\d{2})$/,xl=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Il(e){if(!e)return;let t=e.trim().toLowerCase();if(!vl.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var ms=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 Tl(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!ms.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...ms].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 Pe(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function ky(e,t){let n=Il(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 Fl(e,t){return P(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:ys)}function Un(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 Al(e,t){return t>=_s&&e===Number.MAX_SAFE_INTEGER?ys:e}function Ml(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Vt.includes(n))throw new p(`Context --depth must be one of ${Vt.join("|")}`,m.USAGE);return n}function Rl(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!Xe.includes(s))throw new p(`Context --section must be one of ${Xe.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...Xe]:(t==="deep"?kl:ws).filter(i=>n.sections[i])}function Dl(e,t){return e?P(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Ll(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 ps(e,t){let n=R(e,t),r=$("blocked",t),i=$("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 Ke(e,t){let n=$("closed",t);return R(e,t)===n}function Kn(e,t){return R(e,t)===t.in_progress_status}function bs(e,t){let n=R(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function Ol(e,t){return t.blocked_statuses.has(R(e,t))}var Nl=["compact","brief","fields","includeBody","include_body","parent"];function $l(e){let t={...e};for(let n of Nl)delete t[n];return t}function Bn(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=Ee(e),o=Be(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function jl(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 Pl(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Ul(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 Kl(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Bl(e){let t=Sl.exec(e)??El.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<=Kl(n,r-1)}function Gl(e){let t=Cl.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=xl.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 vs(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Bl(t))return Number.NaN;let n=Date.parse(Gl(t));return Number.isFinite(n)?n:Number.NaN}function Pn(e){let t=vs(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Hl(e){let t=vs(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Gn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function oe(e,t,n){let r=ps(e.status,n)-ps(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=Pl(e.order,t.order);if(o!==0)return o;let s=Ul(e.deadline,t.deadline);if(s!==0)return s;let a=S(Pn(t.updated_at),Pn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function jn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Hn(e,t,n=new Set,r="context"){return zo(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:jn({id:i.id,title:i.item.title}),summary:jn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:jn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function qn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Wn(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})),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 ks(e,t){return t>0?Math.round(e/t*100):0}function Ee(e){let t=new Map;for(let n of e){let r=Gn(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Ge(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:Gn(e.parent)};if(t&&n){let i=Be(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Ke(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=ks(s,o)}}return r}function ql(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 Dt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Wl(e,t){return e.filter(n=>!t.terminal_statuses.has(R(n.item_status,t)))}function zl(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=Ee(e),s=new Set(t.filter(d=>Ue.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=Be(d,o),u=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of l)Ke(_.status,n)?f++:Kn(_.status,n)?y++:Ol(_.status,n)?g++:bs(_.status,n)&&h++;let w=u.sort((_,b)=>oe(_,b,n)).slice(0,r).map(_=>{let b=Be(_.id,o),k=b.filter(I=>Ke(I.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:b.length,children_closed:k}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:l.length,children_closed:f,children_open:h,children_in_progress:y,children_blocked:g,children:w})}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 Be(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 Vl(e,t){return(await Di({compact:!0,limit:String(e)},t)).compact_activity??[]}function Yl(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=>Ue.has(d.type)),a=[];for(let d of s){let c=Be(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,y=0;for(let g of c)Ke(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?y++:Kn(g.status,r)?h++:bs(g.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:l,closed:u,open:f,in_progress:h,blocked:y,completion_pct:ks(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function Xl(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=un(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 Ql(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 Jl(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=>Kn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Zl(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 ef(e,t,n,r){return e.map(i=>({item:i,sortKey:Pn(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})=>({...Ge(i,t,n),created_at:i.created_at}))}function tf(e,t,n,r){return e.filter(i=>!Gn(i.parent)&&!Ue.has(i.type)).sort((i,o)=>oe(i,o,t)).slice(0,r).map(i=>Ge(i,t,n))}function nf(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 hs(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ss(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 rf(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function of(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`${hs(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${hs(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 gs(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 sf(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 af(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(`- ${of(n)}`);e.push("")}function cf(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 df(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 uf(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)}`:`- ${Hl(i.created_at)} ${Ss(i)}`);e.push("")}}function lf(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 ff(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 mf(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 pf(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 hf(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 gf(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 yf(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 _f(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 Sy(e){let t=[],n=e.focus_fields,r=o=>n?rf(o,n):Ss(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(""),gs(t,"High-level focus",e.high_level,"No high-level active items.",r),gs(t,"Low-level focus",e.low_level,"No low-level active items.",r),sf(t,e,r),af(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 cf(t,e),df(t,e),uf(t,e,n,r),lf(t,e,r),ff(t,e),mf(t,e),pf(t,e),hf(t,e),gf(t,e),yf(t,e),_f(t,e),t.join(`
11
- `)}async function wf(e,t){let n=x(process.cwd(),t.path),r=await M(n),i=r.context??br.context,o=N(r.schema),s=Ml(e.depth,i),a=Fl(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:Rl(e.section,s,i),activityLimit:Dl(e.activityLimit,i),staleThresholdDays:Ll(e.staleThreshold,i),parentScope:jl(e.parent),focusFields:Tl(e.fields),baseListOptions:$l(e)}}function zn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function bf(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function vf(e,t){let n=zn(t.sectionsIncluded),r=await X(void 0,bf(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!K(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=kf(t.parentScope,i);return a&&(o=o.filter(d=>a.has(d.id.trim().toLowerCase())),s=s.filter(d=>a.has(d.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:o,allItems:s,fullCorpus:i,subtreeIds:a}}function kf(e,t){if(e===void 0)return;let n=Bn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function Sf(e,t,n,r,i,o,s,a,d,c,l,u,f,h,y){let g=[...e].sort((v,ue)=>oe(v,ue,i)),w=await Ft({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await Mt(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:w.affinity,claimFocus:y}),b=await It("context",_.candidates),k=b.ranked.map(v=>v.item),I=i.active_statuses,T=k.filter(v=>I.has(R(v.status,i))),C=u?et(T,c,l,v=>v.id):0,E=u?T.slice(C,C+s):T,ze=u&&E.length>0&&C+E.length<T.length,Ve=ze&&E.length>0?Ie(l,E[E.length-1].id,C+E.length-1):void 0,Ht=k.filter(v=>r.has(v.id.trim().toLowerCase())),ae=new Set([...E.map(v=>v.id),...Ht.slice(0,s).map(v=>v.id)]),ce=Hn({...b,ranked:b.ranked.filter(v=>ae.has(v.id))},h,new Set(Object.entries(y??{}).filter(([,v])=>v>=1).map(([v])=>v))),de=ce.included.map(v=>v.item),te=de.filter(v=>I.has(R(v.status,i))),Ye=de.filter(v=>r.has(v.id.trim().toLowerCase())),qt=Ee(t),W=zn(o)?qt:void 0,z=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),Wt=v=>{let ue=Ge(v,i,W);return r.has(v.id.trim().toLowerCase())&&(ue.blocked=!0,ue.blocker_ids=un(v,z,i).filter(zt=>!zt.resolved).map(zt=>zt.id)),ue},Oa=te.filter(v=>Ue.has(v.type)).slice(0,u?E.length:s).map(Wt),Na=te.filter(v=>!Ue.has(v.type)).slice(0,u?E.length:s).map(Wt),yr=T.length===0;return{activeItems:te,blockedItems:Ye,highLevel:Oa,lowLevel:Na,blockedFallback:yr?Ye.slice(0,s).map(Wt):[],blockedFallbackUsed:yr,ranking:b,packing:ce,featureStore:_,pageExtras:{...u?{applied_limit:s}:{},...ze?{has_more:!0,truncated:!0}:{},...Ve?{next_cursor:Ve}:{}}}}function Ef(e){return me("context",fe(e,Mr))}function Cf(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=_s}async function xf(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Go(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Wl(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:ql(a)}}function If(e,t,n){let r=String(t);return e.filter(i=>R(i.status,n)===r).length}async function Tf(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=Ee(n),c=n.filter(u=>!K(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?zl(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Vl(t.activityLimit,a):void 0,progress:l("progress")?Yl(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Xl(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?ef(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?tf(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?Ql(o.activeItems,t.limit):void 0,workload:l("workload")?Jl(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Zl(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?nf(o.activeItems):void 0}}function Ff(e,t,n){if(!e)return{};let r=$("canceled",n);return{total_items:t.length,closed:t.filter(i=>Ke(i.status,n)).length,canceled:t.filter(i=>R(i.status,n)===r).length}}function Af(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 Mf(e,t){t&&(e.focus_fields=t,e.high_level=Pe(e.high_level,t),e.low_level=Pe(e.low_level,t),e.blocked_fallback=Pe(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Pe(e.recently_created,t)),e.unparented&&(e.unparented=Pe(e.unparented,t)))}function Rf(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 Df(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 Lf(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await Tt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:i.has(o.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=Dt(e.warnings,["context_usage_feedback_write_failed"])}}async function Of(e,t,n){if(e)return{};let i=(await Fr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),o=i.filter(s=>s.status==="degraded").length;return i.length===0?{}:{extension_health:{total:i.length,ok:i.length-o,degraded:o,packages:i.slice(0,20),...i.length>20?{truncated:!0}:{}}}}async function Nf(e,t){let n=Br(),r=await $r(e),i=n.instance||jr(t);return fs(r.semantic_attribution?.[i])}async function Ey(e,t){let n=x(process.cwd(),t.path),r=await wf(e,t),i=await vf(t,r),o=Al(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:Un(e.tokenBudget,Math.max(256,o*160))},a=ne(void 0,s.settings.author_default),d=await Nf(n,a),c=Of(e.noExtensionHealth===!0,n,s.settings),l=dt(i.fullCorpus,s.statusRegistry),u=await Sf(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,L(),a,e.after,Ef(e),Cf(e,i.fullCorpus.length),n,s.tokenBudget,d),f=await xf(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(I=>I.id))),h=await Rt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=Dt(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=If(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),w=u.activeItems.length-g,_=await Tf({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),b=Ff(zn(s.sectionsIncluded),i.allItems,s.statusRegistry),k={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:g,open:w,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 k.workspace_memory=cs(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(k,await c),Af(k,_,u.featureStore.warning_details),Rf(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=Wn(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(I=>I.id))),k.packing=qn(u.packing)),Mf(k,s.focusFields),y.length>0&&(k.warnings=y),Df(k,u.activeItems,u.blockedItems),await Lf(k,u,n,a),k}(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]="9b788e0a-f4ac-5c6e-bf52-0ef0519d6925")}catch{}})();var $f=["markdown","toon","json"],jf=5,Pf=1440*60*1e3;function Uf(e){if(!e)return;let t=e.trim().toLowerCase();if(!$f.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function Oy(e,t){let n=Uf(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 Es(e,t,n){let r=P(e,t);return r===void 0||r<=0?n:r}function Vn(e,t,n,r){return{...Ge(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 Kf(e,t,n,r){let i=e.item,o=[],s=$("in_progress",t);return o.push(R(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(Gf(i.deadline,n)),o.push(Si(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),o}function xs(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 Ny={partitionCallerOwnedReady:xs,resolveNextCallerAuthor:(e,t)=>Is(e,t)};function Bf(e,t){let n=e.filter(r=>r.item.type.trim().toLowerCase()==="decision");return{agent:t?e:e.filter(r=>r.item.type.trim().toLowerCase()!=="decision"),decisions:t?[]:n}}function Gf(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))/Pf);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function Hf(e,t){let n=$("in_progress",t);return e.filter(r=>R(r.status,t)===n).length}function Yn(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function qf(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 Cs(e,t,n){return[...e].sort((r,i)=>{let o=Yn(r.item,t),s=Yn(i.item,t);return o!==s?Number(o)-Number(s):oe(r.item,i.item,n)})}function Wf(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Kf(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function zf(e,t){if(e===null){if(t.length>0){let n=t.find(r=>r.blockers.length>0);return[n?`${t.length} item(s) are blocked; unblock the top one by closing ${n.blockers.map(r=>r.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return['pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}}function Vf(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 Yf(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Tt({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:e.ranking.ranked.map(n=>({id:n.id,rank:n.rank,included:t.has(n.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.result.warnings=Dt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Xf(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=Wn(e.readyRanking,e.featureStore),e.result.packing=qn(e.packing)),e.result.suggestions=zf(e.recommended,e.blockedRows),await Yf({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Qf(e,t,n){if(!n)return e;let r=Bn(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 Jf(e,t,n,r,i,o,s){let a=e.filter(g=>!Yn(g.item,t)),d=a.length>0?a:e,c=await Ft({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await Mt(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),u=await It("next",l.candidates),f=Hn(u,s,new Set,"next"),h=new Map(d.map(g=>[g.item.id,g]));return{projectedReady:u.ranked.map(g=>h.get(g.id)).filter(g=>g!==void 0),ranking:u,completedContainer:a.length===0,packing:f,featureStore:l}}function Is(e,t){let n=e.assignee?.trim();return ne(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function $y(e,t){let n=x(process.cwd(),t.path),r=await M(n),i=Is(e,r.author_default),o=N(r.schema),s=L(),a=Es(e.limit,"--limit",jf),d=Un(e.tokenBudget,Math.max(192,a*128)),c=Es(e.blockedLimit,"--blocked-limit",a),l=e.readyOnly===!0,u=typeof e.parent=="string"?e.parent.trim():"",f=await X(void 0,qf(e,{excludeTerminal:!0}),t),h=await X(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=Qf(f.items,h.items,u),g=h.items,w=Ei(y,g,o),_=Ee(g),b=Bf(w.ready,e.includeDecisions===!0),k=xs(b.agent,r.author_default,i),I=Cs(k.available,_,o),T=[...w.blocked].sort((W,z)=>oe(W.item,z.item,o)),{projectedReady:C,ranking:E,completedContainer:ze,packing:Ve,featureStore:Ht}=await Jf(I,_,o,s,i,n,d),ae=C.map((W,z)=>Vn(W,o,_,z+1)),ce=T.map((W,z)=>Vn(W,o,_,z+1)),de=Cs(b.decisions,_,o).map((W,z)=>Vn(W,o,_,z+1)),te=Wf({projectedReady:C,readyRows:ae,statusRegistry:o,now:s,completedContainer:ze}),Ye=Vf(de.length,k.held.length,a),qt={output_default:"toon",now:s,recommended:te,ready:ae.slice(1,a+1),decision_needed:de.slice(0,a),blocked:l?[]:ce.slice(0,c),held_by_others:k.held.slice(0,a),summary:{recommended:te!==null,ready:ae.length,blocked:ce.length,in_progress:Hf(ae,o),candidates:w.active_count,containers:w.container_count,decision_needed:de.length,held_by_others:k.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:u.length>0?u:null,limit:a,blocked_limit:c,ready_only:l,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:Ye};return Xf({result:qt,recommended:te,blockedRows:ce,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:E,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:Ve,featureStore:Ht})}function jy(e){let t=["# pm next","",...Zf(e)];if(t.push(...Lt("Recommended",em(e.recommended),"No ready work.")),t.push(...Lt("Decision needed",(e.decision_needed??[]).map(n=>`- ${Ot(n)}`),"No human-gated decisions.")),t.push(...Lt("Ready",e.ready.map(n=>`- ${Ot(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Lt("Blocked",e.blocked.map(n=>`- ${tm(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
12
- `).trimEnd()}function Zf(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 em(e){return e?[`- ${Ot(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Lt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function tm(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Ot(e)} blocked_by:${t}`}function Ot(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]="314adea1-6837-5eeb-abc3-57337a495221")}catch{}})();function nm(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function rm(e,t){return e.map((n,r)=>{let i=new Set,o=Yr(n.patch);for(let s of o)i.add(on(s.path)),s.from&&i.add(on(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function im(e,t){let n=x(process.cwd(),t.path);await j(n);let r=await M(n),i=O(r,A()),o=e.trim()===rt,s=o?rt:ti(e,r.id_prefix),a=await ge(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?Qr(n):Ze(n,d);if(!a&&!await kr(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Zr({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 im(e,n),d=await V(i,s),c=a.agent_identity.identity_vocabulary,l=lt(a.agent_identity.harness_signals),u=mt({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,l),f=d.map((C,E)=>({entry:C,version:E+1})).filter(({entry:C})=>u(C)),h=nm(f,r),y=h.map(({entry:C})=>C),g=t.compact===!0,w=g?rm(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:C,version:E})=>ft(C,c,{itemId:s,version:E})):void 0,b=t.provenance===!0?"provenance":g?"compact":"full",k={compact:{compact_history:w},provenance:{provenance_history:_},full:{history:y}}[b],T={id:s,...k,compact:g,projection:{mode:b,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[b]},omission_receipt:tt("history",b),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:pt(f.map(({entry:C})=>C),c,l)}:{}};if((t.diff||t.field!==void 0)&&(T.diff=mi(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let C=o?(await ye(o,{schema:a.schema})).document:void 0;if(T.verification=xi(d,C),s===rt&&T.verification.ok){let E=await Jr(x(process.cwd(),n.path));T.verification={...T.verification,ok:E.ok,errors:E.ok?T.verification.errors:[...T.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:E.ok,workspace_state_mismatches:E.mismatched_documents,workspace_state_missing:E.missing_documents,workspace_state_unreadable:E.unreadable_documents}}}return 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]="4b4d4bb6-8a17-5544-a18c-ad3fc49a759e")}catch{}})();var Ts=1e6,Fs=20;function As(e,t,n,r=Fs){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 w of t){if(a+=1,a>Ts)throw new p(`Child projection exceeded the ${Ts.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(w)}let d=new Map(s.map(w=>[w.id.trim().toLowerCase(),w])),c=ct(at(s,st())),l=new Set(c.children_by_parent.get(i)??[]);for(let w of s)w.parent?.trim().toLowerCase()===i&&l.add(w.id.trim().toLowerCase());let u=[...l].map(w=>d.get(w)),f=0;for(let w of u){let _=w.status.trim().toLowerCase();o[_]=(o[_]??0)+1,K(_,n)||(f+=1)}u.sort((w,_)=>w.id.localeCompare(_.id));let h=u.slice(0,r).map(w=>({id:w.id,title:w.title,type:w.type,status:w.status,priority:w.priority})),y=u.length>h.length,g=r===0?Fs:r;return{count:u.length,active:f,by_status:Object.fromEntries(Object.entries(o).sort(([w],[_])=>w.localeCompare(_))),sample:h,sample_limit:r,truncated:y,next_offset:y?h.length:null,continuation:y?`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 om=new Set(["event","meeting","reminder"]);function sm(e){return om.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Xn(e){if(!sm(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]="ff82974e-a48d-5d18-893f-fb618e378795")}catch{}})();var am=new Set(["epic","feature","milestone","plan"]),cm=new Set(Object.keys(wr).map(e=>e.toLowerCase()));function Jn(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function dm(e,t){let n=Jn(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"]:[],...Xn(e)?["schedule"]:[]]}function Rs(e){let t=e.trim().toLowerCase();return t.length>0&&(am.has(t)||!cm.has(t))}function Ms(e){return{ts:e.ts,author:e.author,message:e.message??null}}function um(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?Ms(i):null,last_release:o?Ms(o):null}}function lm(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(en.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function fm(e,t){let n=Jn(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 mm(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 $t(e){return e.startsWith("item.")?e.slice(5):e}function pm(e,t,n){if(e===null)return;let r=tn(t),i=new Set(r),o=e.filter(s=>{let a=$t(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:pe(s),suggested_retry_args:s}})}}var hm=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function gm(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:hm.has(n)?[]:void 0}function ym(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Jn(e)},i={id:e.id};for(let o of t){let s=$t(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]=gm(n,r,s))}return i}function He(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function Nt(e,t){return e.some(n=>{let r=$t(n);return r===t||r.startsWith(`${t}.`)})}function _m(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:pe(["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":lm(e.depth),treeDepth:e.tree===!0?P(e.treeDepth,"--tree-depth"):void 0,fields:mm(e.fields),fieldProjection:e.fields!==void 0}}async function wm(e,t,n){let r=x(process.cwd(),t.path);await j(r);let i=await M(r),o=O(i,A());if(n!==void 0){let d=await Ii(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 ge(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await si(r,e,i.id_prefix,o.type_to_folder);let a=await ye(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 bm(e,t,n,r){let i=B(t.schema).definitions.map(o=>o.metadata_key);if(pm(e,i,r),n&&Nt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Qn(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?He(r,i):Nt(r,i):n!=="brief"}async function vm(e,t){if(!t)return;let n=Ze(e.pmRoot,e.locatedId),r=await V(n,e.locatedId);return um(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function km(e,t,n,r){let i=r||He(n,"linked.files"),o=r||He(n,"linked.tests"),s=r||He(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 Sm(e,t,n,r){if(!t)return;let i=N(e.settings.schema),o=await Z(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=As(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function Em(e,t,n,r){if(!r)return;let i=Xn(t.metadata);if(i){if(n===null||He(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>$t(s)===`schedule.${o}`)))}}async function Cm(e,t,n,r){if(t.tree!==!0)return;let i=await X(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 h_(e,t,n={}){let r=_m(n,e),i=await wm(e,t,n.at);bm(r.fields,i.settings,i.historical!==void 0,i.locatedId);let o=Qn({...r,field:"body"}),s=Qn({...r,field:"linked"}),a=Qn({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?Nt(r.fields,"children"):r.depth!=="brief"&&Rs(i.metadata.type)),c=r.fieldProjection?Nt(r.fields,"schedule"):r.depth!=="brief",l=await vm(i,a),u={item:r.fieldProjection?ym(i.metadata,r.fields):fm(i.metadata,r.depth)};o&&(u.item.body=i.body),km(u,i,r.fields,s),l&&(u.claim_state=l),Em(u,i,r.fields,c);let f=await Sm(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await Cm(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 ns({pmRoot:i.pmRoot,author:ne(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return Lr(u,dm(i.metadata,i.body)),u}var g_={shouldAutoIncludeGetChildren:Rs};(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 Ds(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 xm=[{optionKey:"status",summaryKey:"status",normalize:e=>Ds(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 qe(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return bn(l,r,xm),Object.assign(l,Oe(r)),Object.assign(l,Le(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 We(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||Ds(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),...Oe(r),...Le(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 Im(e){return me("search",{query:e.query.trim(),mode:e.mode,options:fe(e.searchOptions,Rr)})}function Ls(e){let t=Dr(e.sorted,{cursor:e.searchOptions.after,fingerprint:Im(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 Os(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 jt(e){return e===!0}function Ns(e){return Ir(e,0,1)??void 0}function $s(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 js(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 Ce(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return U(n,new Date,t)}function J(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Zn(e,t){if(e!==void 0)return U(e,new Date,t)}function Tm(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 er(e,t="<query>"){let n=e.compact===!0,r=e.full===!0,i=Tm(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:pe(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return n?{mode:"compact",fields:[...nn]}:r?{mode:"full",fields:[]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function tr(e,t,n="<query>"){if(e.mode!=="fields")return;let r=rn(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:pe(s),suggested_retry_args:s}})}}function nr(e){let t=J(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function rr(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function ir(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function or(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function sr(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 Ut from"node:fs/promises";import fr 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 ar=4,Fm=20,Am=200,Mm=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function cr(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 Dm(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 Ps(e,t=ar){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=ve(n);if(r.length===0)return[n];let i=r.filter(a=>!Mm.has(a.toLowerCase())),o=r.map(a=>Rm(a)),s=i.map(a=>Dm(a));return cr([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function Us(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?cr(t.filter(n=>typeof n=="string"),ar):[]}function Ks(e,t,n){return cr([...e,...t],Math.max(1,n))}function Bs(e,t){let r=e.search?.query_expansion,i=xe(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:ar}}function Gs(e,t){let r=e.search?.rerank,i=xe(r?.model),s=xr(r?.top_k)??Fm;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Am,s)}}function Hs(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=xe(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 Lm(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function qs(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Om(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=Lm(e,t),i=qs(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 Ws(e,t,n,r,i){if(r.length===0)return new Map;let o=xe(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await ot(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=qs(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],y=d[f+1];if(!y)continue;let g=Om(c,y,l);u.set(h.id,Math.max(0,Math.min(1,(g+1)/2)))}return u}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var Nm=1.2,$m=.75;function dr(e){return ve(e)}function jm(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Vs(e){let t=[],n=new Map,r=0;for(let o of e){let s=dr(o.text),a=jm(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 Ys(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 zs(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Xs(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 Qs(e){let t=e?.search?.bm25;return{k1:zs(t?.k1,Nm,0,1e3),b:zs(t?.b,$m,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 Um=2,Km=120,Bm=6,Gm=40,Hm=1e3,qm=900,Wm="\xAB",zm="\xBB",Js=60,ta=["tag","status","type","priority"];function na(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 ra(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=na(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 ia(e,t){let n=ra(t);return`search_${e}_fallback:${n}:using_keyword_mode`}function Vm(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 oa(e,t,n){try{let r=await bi(e);r.warnings.length>0&&n.push(...r.warnings);let i=ki(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),r.entries);if(i.length===0)return;let o=Vm(A());n.push(...Ym(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.)
13
- `)}catch{}}function Ym(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 Cw={applyFilters:la,applyExactQueryFilters:ua,applyInlineQueryFilters:aa,buildHitHighlights:_a,buildVerboseSearchFilters:We,buildExplicitSemanticFallbackWarning:ia,buildCompactSearchFilterSummary:qe,buildHybridLexicalScore:va,buildRerankCorpus:Aa,buildSemanticHits:xa,classifyImplicitSemanticFallbackReason:ra,collectErrorCauseCodes:na,collectExactPhraseFields:ca,collectLinkedPaths:fa,combineHybridHits:gr,computeBuiltInBm25Hits:Ta,computeSemanticOrHybridHits:Ma,resolveBuiltInBm25Mode:Ia,countOccurrences:pr,dependencyEntries:mr,documentContainsExactPhrase:da,emptySearchResult:ka,highlightFieldSnippet:ya,loadDocuments:Ra,markTokenRuns:ga,parseInlineQueryFilters:sa,maybeEmitVectorIndexStaleWarning:oa,loadLinkedCorpus:pa,mergeVectorHitsById:Fa,normalizeExtensionProviderHits:Ca,normalizeScoreMap:ur,parseProjectionConfig:er,parseTimestampWindow:Ce,parseTokens:nr,projectSearchHits:La,readSearchFieldValue:Da,requireSemanticDependencies:hr,resolveExtensionSearchProvider:Sa,resolveExtensionSearchProviderByName:Gt,resolveExtensionVectorAdapter:Ea,resolveLinkedCorpusRoots:ma,scoreDocument:wa,sortHits:ba,stringArray:Bt,textEntries:se,validateSearchProjectionFields:tr};function sa(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=ta.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 aa(e,t,n){let r={...e};for(let i of ta){let o=t[i];if(o!==void 0){if(D(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Bt(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 mr(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function ca(e){let t=e.metadata;return[t.title,t.description,t.status,Bt(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(" "),sn(t).join(" "),an(t).join(" "),mr(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),cn(t)]}function da(e,t){return ca(e).some(n=>J(n).includes(t))}function ua(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&J(r.metadata.title)!==t||n.phraseExact&&!da(r,t)))}function Xm(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 Qm(e,t,n){let r=G(e.assignee,{label:"--assignee"});Xm(r);let i=vt(e),o=De(e);return{typeFilter:ht(e.type,t),tagFilter:G(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:gt(e.priority),deadlineBefore:Zn(e.deadlineBefore,"deadline-before"),deadlineAfter:Zn(e.deadlineAfter,"deadline-after"),updatedAfter:Ce(e.updatedAfter,"updated-after"),updatedBefore:Ce(e.updatedBefore,"updated-before"),createdAfter:Ce(e.createdAfter,"created-after"),createdBefore:Ce(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:G(e.sprint,{label:"--sprint"}),releaseFilter:G(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Me(i),contentFieldFilters:o,contentFiltersActive:wt(o)}}function Jm(e,t){return Zm(e,t)&&ep(e,t)&&tp(e,t)}function Zm(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&&!Bt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function ep(e,t){return nt(e,t)}function tp(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 np(e,t,n,r){let i=e.metadata;return!(!Jm(i,t)||!be(i,n)||t.missingMetadataActive&&!_t(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!bt(i,t.contentFieldFilters))}function la(e,t,n,r,i,o){let s=Qm(t,n,i);return e.filter(a=>np(a,s,r,o))}function pr(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 rp(e){return ve(e)}function fa(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 Zs(e){let t=fr.resolve(e);try{let n=await Ut.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function ma(e,t){let[n,r]=await Promise.all([Zs(e),Zs(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function pa(e,t){let n=fa(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=fr.resolve(o.resolved,i.path);if(!Yt(o.resolved,s))continue;let a;try{a=await Ut.realpath(s)}catch{continue}if(Yt(o.realpath,a))try{await Te({path:s,scope:i.scope}),r.push(await Ut.readFile(s,"utf8"))}catch{}}return r.join(`
14
- `)}var ha=[{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=>Bt(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=>sn(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>an(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>mr(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>cn(e.metadata)}],ip=new Map(ha.map(e=>[e.name,e]));function op(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ga(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(op);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Wm}${i}${zm}`)}function ya(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-Js),s=Math.min(e.length,r+i+Js),a=ga(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function _a(e,t,n){let r=[];for(let i of t){let o=ip.get(i);if(o===void 0)continue;let s=ya(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function sp(e,t,n){return[...ha.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function ap(e,t,n){let r=J(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=J(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?Hm:qm,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function cp(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=pr(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function dp(e,t,n,r){J(e.title)===t&&(r.score+=Km,r.matched.add("title"));for(let o of n){let s=pr(J(o.value),t);s>0&&(r.score+=s*o.weight*Bm,r.matched.add(o.name))}}function wa(e,t,n,r,i,o,s=!1){let a=e.metadata,d=ap(a,n,o);if(d)return d;let c=new Map;for(let g of rp(a.title))c.set(g,(c.get(g)??0)+1);let l=sp(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};cp(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+=Gm),t.length>=Um&&n.includes(" ")&&dp(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,w)=>g.localeCompare(w)),matched_all_terms:h}}function ba(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=K(n.item.status,t),s=K(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let d=S(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function va(e,t,n,r,i,o,s,a=!1){return wa(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function ur(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 ka(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 w=qe({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:w,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:We({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:L(),...l.length>0?{warnings:l}:{}}}function hr(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 q=D;function Gt(e){let t=A(),n=li(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=q(r.name)??q(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 Sa(e){let t=q(e.search?.provider),n=Gt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Ea(e){let t=A(),n=q(e.vector_store?.adapter),r=fi(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:q(i.name)??q(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function Ca(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=q(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 xa(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 Kt(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 gr(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=ur(t),d=ur(o),c=new Set([...t.keys(),...o.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,y=d.get(u)??0,g=h*r+y*l;if(g<=0)return null;let w=new Set;t.has(u)&&w.add(i);for(let _ of s.get(u)??[])w.add(_);return{item:f.metadata,score:g,matched_fields:[...w].sort((_,b)=>_.localeCompare(b))}}).filter(u=>u!==null)}function Ia(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Ta(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Xs(_i(s,{fields:e.corpusFields}))})),n=Vs(t),r=Ys(n,dr(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 Kt(s,e.keywordHits)}let o=gr(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Kt(o,e.keywordHits)}function Fa(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 Aa(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
15
- `)}async function up(e,t){let n=e.queryExpansion.enabled?Ps(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 Ks(r,Us(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 lp(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 dn(e.vectorStore,t,n,r)}if(e.vectorStore)return await dn(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 fp(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:Aa(o)}:null}).filter(i=>i!==null)}async function mp(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=Hs(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 pp(e,t,n){let r=await mp(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Ws(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function hp(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 gp(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=fp(n,r,e.rerank.top_k),o=await pp(e,t,i);return o&&o.size>0?hp(n,o):n}async function Ma(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},i=e.query.trim(),o=await up(e,i),s=await ot(e.provider,o,n),a=await Promise.all(s.map(async y=>await lp(e,y,t,r))),d=Fa(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=xa(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Kt(l,e.keywordHits),vectorMatchCount:f};let h=await gp(e,i,gr(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Kt(h,e.keywordHits),vectorMatchCount:f}}async function Ra(e,t,n,r){let i=vr(A()),o=async(c,l,u)=>{let f=async(h,y)=>{await Te({path:h,scope:"project"});let g=await Ut.readFile(h,"utf8");return Hr(g,{format:y,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",y=Xt(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${fr.relative(e,y)}`),""}}},s=[],a=await ii(e,t,n,s,r),d=[];if(a.length===0){let c=await it(e,t,n,s,r);for(let l of c){let u=Xt(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 Da(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 La(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]=Da(n,i);return r})}function yp(e){let t=Gt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function _p(e){let t=Gt(q(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function wp(e,t){let n=[],r=sa(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=aa(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:jt(s.includeLinked),titleExact:jt(s.titleExact),phraseExact:jt(s.phraseExact),matchMode:$s(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:js(s.minScore),countOnly:s.count===!0,tokens:nr(o),normalizedQuery:J(o),limit:re(s.limit),projection:er(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function bp(e,t){let n=x(process.cwd(),t.path);await j(n);let r=await M(n),i=hi(r).settings,o=N(i.schema),s=B(i.schema);tr(e.projection,s,e.query);let a=we(e.options,s,"search"),d=O(i,A()),c=gi(i),l=wi(i,n),u=Sa(i),f=Ea(i),h=Ns(e.options.semanticWeight),y=Bs(i,c.active?.name??null),g=Gs(i,c.active?.model??q(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:rr(i),scoreThreshold:e.minScoreOverride??ir(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??or(i),tuning:sr(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:Ia({configuredProvider:q(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:yp(y),rerank:g,rerankExtension:_p(i),effectiveMode:Os(e.options.mode)}}async function vp(e,t){let n=await Ra(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=_e(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=yt(t.statusRegistry),o=la(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:ua(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function kp(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await ma(i,Cr(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await pa(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function Sp(e,t,n){let r=await kp(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>va(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 ea(e,t){return ka(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 Ep(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=Ta({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:yi(t.settings),bm25Params:Qs(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 Cp(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 Ca(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 xp(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 Ip(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await oa(e.pmRoot,n,r),e.extensionSearchProvider||hr(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function Tp(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await Ep(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await Ip(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 Cp(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=hr(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await Ma({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=xp(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(ia(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function Fp(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return lr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:qe({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 lr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:We({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:L()},e.warnings)}function lr(e,t){return t.length===0?e:{...e,warnings:t}}function Pt(e,t){return t?{...e,workspace_memory:t}:e}function Ap(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:_a(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 Mp(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return lr({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:qe({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:We({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:L(),...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 xw(e,t,n){Rp(t);let r=wp(e,t),i=await bp(r,n),o=await vp(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Rt(o.allDocuments.map(I=>I.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:L()});s.push(...a.warnings);let d=ds(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 Pt(ea({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await Sp(r,i,o.filteredDocuments),u=await Tp({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 Pt(ea({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(I=>I.exact_id_match===!0||I.score>=i.scoreThreshold),h=ba(f,i.statusRegistry),y=h.length,g=Ls({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),w={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return Pt(Fp(w,y),d);let{hits:_,projection:b}=Ap(r,o.filteredDocuments,g.limited),k=La(_,b);return Pt(Mp(w,k,y,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 Mw(e,t={}){let n=await Ci({pmRoot:x(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{$a as a,ln as b,Dp as c,Ha as d,qa as e,Lp as f,Ii as g,P as h,ut as i,Ti as j,lt as k,Wa as l,ft as m,pt as n,hh as o,Di as p,ig as q,hn as r,G as s,ht as t,gt as u,yt as v,Sh as w,Eh as x,xh as y,vt as z,De as A,Hi as B,qi as C,bn as D,Le as E,Oe as F,X as G,tg as H,dg as I,ug as J,yg as K,_g as L,wg as M,Go as N,Dn as O,xt as P,yu as Q,Wo as R,ku as S,It as T,Su as U,Eu as V,Tu as W,Fu as X,Eg as Y,Au as Z,zo as _,H as $,Tt as aa,Mg as ba,ns as ca,Ft as da,Ln as ea,On as fa,Xu as ga,nl as ha,rl as ia,Nn as ja,$n as ka,Mt as la,cl as ma,fl as na,Rt as oa,wl as pa,cs as qa,bl as ra,ds as sa,ls as ta,ey as ua,ty as va,ny as wa,ry as xa,fs as ya,vl as za,Tl as Aa,Pe as Ba,ky as Ca,Un as Da,Ml as Ea,Rl as Fa,Bn as Ga,oe as Ha,Hn as Ia,qn as Ja,Wn as Ka,Ee as La,Ge as Ma,Dt as Na,Sy as Oa,Rf as Pa,Ey as Qa,$f as Ra,Oy as Sa,Ny as Ta,Bf as Ua,$y as Va,jy as Wa,zy as Xa,Ts as Ya,Fs as Za,As as _a,h_ as $a,g_ as ab,qe as bb,We as cb,Im as db,Ls as eb,rr as fb,ir as gb,or as hb,sr as ib,na as jb,ra as kb,Vm as lb,Ym as mb,Cw as nb,xw as ob,Mw as pb};
16
- //# sourceMappingURL=chunk-7VATS5QY.js.map