@unbrained/pm-cli 2026.9.5 → 2026.9.6

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 (185) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +32 -2
  3. package/dist/cli/main.js +10 -8
  4. package/dist/cli/register-operations.js +13 -8
  5. package/dist/cli-bundle/bundle-manifest.json +150 -158
  6. package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +9 -0
  7. package/dist/cli-bundle/chunks/{chunk-WWAEGW4V.js → chunk-BAX2BYUW.js} +66 -66
  8. package/dist/cli-bundle/chunks/{chunk-IBYREGSP.js → chunk-CKOL5U7J.js} +51 -51
  9. package/dist/cli-bundle/chunks/{chunk-ZRAQS3UA.js → chunk-JT6XF6GE.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-HUAQITVW.js → chunk-JX4DH4WC.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-QPZHQY2O.js → chunk-NPN5I67J.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-66VPKFP2.js → chunk-OF76PSDQ.js} +2 -2
  13. package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +232 -0
  14. package/dist/cli-bundle/chunks/{chunk-3HBDTJRK.js → chunk-RWWBOWJ5.js} +2 -2
  15. package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +40 -0
  16. package/dist/cli-bundle/chunks/{chunk-SF6SM6U5.js → chunk-WI2AYPA7.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-list-query-AYKGODWT.js → register-list-query-5JL52D33.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-YZYG53SQ.js → register-mutation-ZPG7KMVP.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +2 -0
  20. package/dist/cli-bundle/chunks/{register-setup-UJCRVGBG.js → register-setup-H4SVAVX7.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-QL66QNWG.js → chunk-3BZEOXLT.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +2 -0
  23. package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +6 -0
  24. package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +20 -0
  25. package/dist/cli-bundle/focused-chunks/{chunk-WOCIPMW7.js → chunk-EZR3GHFE.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +56 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-3ASU6WGI.js → chunk-LIJIA4TY.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-H5FOGAVD.js → chunk-M6PBRFSH.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-B2TTQGFG.js → chunk-NTPY5GSO.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +177 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-YEF5PQQ2.js → chunk-PEFABF7E.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-KWWCBWFO.js → chunk-QTVCLMSZ.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-4OSHLNUE.js → chunk-QTZRBUYA.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +12 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +10 -0
  37. package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +2 -0
  38. package/dist/cli-bundle/main.js +20 -20
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +2 -2
  41. package/dist/cli-bundle/sdk-core.js +37 -37
  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 +42 -42
  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/extensions/module-graph-snapshot.js +5 -4
  50. package/dist/core/fs/host-environment-errors.d.ts +27 -0
  51. package/dist/core/fs/host-environment-errors.js +142 -0
  52. package/dist/core/output/mutation-projection.js +12 -5
  53. package/dist/core/store/item-metadata-query-index.js +13 -10
  54. package/dist/core/store/item-metadata-read-work.d.ts +19 -0
  55. package/dist/core/store/item-metadata-read-work.js +44 -0
  56. package/dist/core/store/item-store.js +6 -2
  57. package/dist/core/validate/fix-planning.d.ts +1 -1
  58. package/dist/core/validate/fix-planning.js +2 -2
  59. package/dist/core/validate/missing-link-owners.d.ts +1 -1
  60. package/dist/core/validate/missing-link-owners.js +5 -3
  61. package/dist/core/validate/stale-file-classification.d.ts +6 -4
  62. package/dist/core/validate/stale-file-classification.js +20 -5
  63. package/dist/mcp/server.js +12 -5
  64. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  65. package/dist/sdk/cli-contracts/flag-contracts.js +7 -5
  66. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +4 -3
  67. package/dist/sdk/cli-contracts/grammar-contracts.js +11 -2
  68. package/dist/sdk/cli-contracts/runtime-contracts.js +5 -2
  69. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +254 -5
  70. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +52 -2
  71. package/dist/sdk/cli-contracts/tool-parameter-tables.js +18 -6
  72. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  73. package/dist/sdk/cli-contracts/tool-schema.js +17 -5
  74. package/dist/sdk/context/usage-ledger.d.ts +41 -0
  75. package/dist/sdk/context/usage-ledger.js +186 -0
  76. package/dist/sdk/context-usage.d.ts +18 -9
  77. package/dist/sdk/context-usage.js +37 -112
  78. package/dist/sdk/dependency-provenance.d.ts +7 -0
  79. package/dist/sdk/dependency-provenance.js +14 -4
  80. package/dist/sdk/duplicates.d.ts +2 -0
  81. package/dist/sdk/duplicates.js +3 -2
  82. package/dist/sdk/environment/host-environment-errors.d.ts +5 -27
  83. package/dist/sdk/environment/host-environment-errors.js +4 -137
  84. package/dist/sdk/extension/install-runtime.js +9 -6
  85. package/dist/sdk/extension/install-snapshot.js +7 -6
  86. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +8 -8
  87. package/dist/sdk/governance/assurance-action.d.ts +3 -2
  88. package/dist/sdk/governance/assurance-action.js +23 -11
  89. package/dist/sdk/governance/assurance-runtime.d.ts +2 -0
  90. package/dist/sdk/governance/assurance-runtime.js +6 -3
  91. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +93 -0
  92. package/dist/sdk/governance/defect-recurrence-coverage.js +189 -0
  93. package/dist/sdk/governance/defect-recurrence-graph.d.ts +33 -0
  94. package/dist/sdk/governance/defect-recurrence-graph.js +121 -0
  95. package/dist/sdk/governance/defect-recurrence.d.ts +8 -0
  96. package/dist/sdk/governance/defect-recurrence.js +118 -17
  97. package/dist/sdk/governance/health.d.ts +17 -2
  98. package/dist/sdk/governance/health.js +31 -10
  99. package/dist/sdk/governance/linked-file-report.d.ts +41 -0
  100. package/dist/sdk/governance/linked-file-report.js +72 -0
  101. package/dist/sdk/governance/validate.d.ts +5 -2
  102. package/dist/sdk/governance/validate.js +21 -37
  103. package/dist/sdk/governance.d.ts +2 -0
  104. package/dist/sdk/governance.js +4 -2
  105. package/dist/sdk/history-repair.d.ts +7 -0
  106. package/dist/sdk/history-repair.js +48 -13
  107. package/dist/sdk/lifecycle/close.d.ts +8 -0
  108. package/dist/sdk/lifecycle/close.js +16 -8
  109. package/dist/sdk/lifecycle/create.js +9 -12
  110. package/dist/sdk/lifecycle/update.js +12 -12
  111. package/dist/sdk/lifecycle-policy.d.ts +3 -0
  112. package/dist/sdk/lifecycle-policy.js +2 -2
  113. package/dist/sdk/merge/abandoned-receipts.d.ts +15 -0
  114. package/dist/sdk/merge/abandoned-receipts.js +47 -0
  115. package/dist/sdk/merge/driver.js +4 -2
  116. package/dist/sdk/merge/index.d.ts +1 -0
  117. package/dist/sdk/merge/index.js +2 -2
  118. package/dist/sdk/merge/receipt-operation.d.ts +15 -0
  119. package/dist/sdk/merge/receipt-operation.js +97 -0
  120. package/dist/sdk/merge/receipt-schema.d.ts +20 -0
  121. package/dist/sdk/merge/receipt-schema.js +398 -0
  122. package/dist/sdk/merge/receipts.d.ts +16 -7
  123. package/dist/sdk/merge/receipts.js +54 -340
  124. package/dist/sdk/merge/reconcile.d.ts +2 -0
  125. package/dist/sdk/merge/reconcile.js +11 -4
  126. package/dist/sdk/public-surface.json +1 -1
  127. package/dist/sdk/query/duplicate-candidates.d.ts +7 -0
  128. package/dist/sdk/query/duplicate-candidates.js +71 -0
  129. package/dist/sdk/query/get.js +7 -7
  130. package/dist/sdk/query.d.ts +2 -0
  131. package/dist/sdk/query.js +4 -2
  132. package/dist/sdk/read-output-session.js +5 -3
  133. package/dist/sdk/runtime.js +4 -2
  134. package/dist/sdk/similarity.d.ts +24 -3
  135. package/dist/sdk/similarity.js +50 -55
  136. package/docs/AGENT_GUIDE.md +23 -2
  137. package/docs/BOUNDED_CONTEXT_READS.md +185 -0
  138. package/docs/CLOSE_EVIDENCE_RECOVERY.md +35 -0
  139. package/docs/COMMANDS.md +30 -8
  140. package/docs/CONTEXT_RELEVANCE.md +16 -4
  141. package/docs/DEFECT_RECURRENCE.md +80 -6
  142. package/docs/EXTENSIONS.md +18 -19
  143. package/docs/MERGE_SAFETY.md +50 -0
  144. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +66 -0
  145. package/docs/PR_REVIEW_LOOP.md +18 -3
  146. package/docs/README.md +18 -1
  147. package/docs/RELEASING.md +6 -2
  148. package/docs/SDK_LIFECYCLE.md +27 -0
  149. package/docs/SDK_RUNTIME_BOUNDARIES.md +11 -0
  150. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  151. package/marketplace.json +2 -2
  152. package/package.json +6 -3
  153. package/packages/pm-beads/package.json +1 -1
  154. package/packages/pm-calendar/package.json +1 -1
  155. package/packages/pm-command-kit/package.json +1 -1
  156. package/packages/pm-digital-twin/package.json +1 -1
  157. package/packages/pm-governance-audit/README.md +10 -1
  158. package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +50 -65
  159. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
  160. package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +1 -0
  161. package/packages/pm-governance-audit/package.json +1 -1
  162. package/packages/pm-guide-shell/package.json +1 -1
  163. package/packages/pm-kanban/package.json +1 -1
  164. package/packages/pm-lifecycle-hooks/package.json +1 -1
  165. package/packages/pm-linked-test-adapters/package.json +1 -1
  166. package/packages/pm-search-advanced/package.json +1 -1
  167. package/packages/pm-templates/package.json +1 -1
  168. package/packages/pm-todos/package.json +1 -1
  169. package/packages/pm-vcs/package.json +1 -1
  170. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  171. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  172. package/dist/cli-bundle/chunks/chunk-LUI4E32I.js +0 -231
  173. package/dist/cli-bundle/chunks/chunk-SVK5Y64D.js +0 -40
  174. package/dist/cli-bundle/chunks/chunk-V5GBD5KV.js +0 -9
  175. package/dist/cli-bundle/chunks/register-operations-KFSCC7QV.js +0 -2
  176. package/dist/cli-bundle/focused-chunks/chunk-24IG6ONG.js +0 -2
  177. package/dist/cli-bundle/focused-chunks/chunk-3ITLIBKS.js +0 -56
  178. package/dist/cli-bundle/focused-chunks/chunk-3NQD5YDG.js +0 -2
  179. package/dist/cli-bundle/focused-chunks/chunk-65N6JHAN.js +0 -2
  180. package/dist/cli-bundle/focused-chunks/chunk-GUBM3RGY.js +0 -20
  181. package/dist/cli-bundle/focused-chunks/chunk-JX3RCVCX.js +0 -2
  182. package/dist/cli-bundle/focused-chunks/chunk-MV752SUC.js +0 -12
  183. package/dist/cli-bundle/focused-chunks/chunk-PKIPMCFS.js +0 -6
  184. package/dist/cli-bundle/focused-chunks/chunk-RJMR2JIF.js +0 -9
  185. package/dist/cli-bundle/focused-chunks/chunk-WIUPWIZR.js +0 -177
@@ -0,0 +1,12 @@
1
+ import{$ as et,Ga as me,N as Nt,O as jr,Pa as zr,X as Je,Xa as G,Ya as Kr,Z as fe,Za as Vr,_ as Ze,_a as Jr,a as ve,aa as Ur,ab as Se,b as Mr,bb as ni,cb as ri,d as $r,da as Hr,db as ii,e as Or,ea as tt,eb as oi,fa as Wr,fb as si,ga as Pt,ha as jt,i as Lr,ia as Ut,ib as ai,ja as Br,jb as ci,lb as di,mb as ui,na as Gr,oa as Ht,p as Nr,pb as li,q as Pr,qb as Bt,rb as Gt,sb as q,xa as qr,yb as fi}from"./chunk-CK6QFAPZ.js";import{e as Mt,f as $t,g as Ot,h as Lt}from"./chunk-M6PBRFSH.js";import{Ma as tr,Ua as nr}from"./chunk-ZPEKQHOC.js";import{$ as yr,D as J,Ea as Xe,Fa as Cr,Ga as xr,Ib as ke,Kb as Zr,Nb as Wt,O as N,Oa as M,Ob as ei,P as F,Pb as ti,Q,Qb as nt,Ra as Ir,Sa as Tr,T as _r,Va as Ar,W as B,bb as Qe,db as Rr,f as lr,fb as j,g as fr,gb as de,h as mr,hb as ue,i as pr,j as hr,jb as Fr,ka as wr,kb as le,la as br,ma as vr,n as be,nb as Dr,va as kr,vb as Yr,w as gr,wb as Xr,xa as Sr,za as Er,zb as Qr}from"./chunk-PDMW2E36.js";import{b as zn,m as P,o as X}from"./chunk-NTPY5GSO.js";import{A as ar,D as O,G as cr,H as S,I as dr,J as W,P as ze,R as Ke,T as Ve,W as ur,X as Ye,b as ce,c as sr,e as qe,r as x,w as we}from"./chunk-UKHASMMP.js";import{$ as m,Aa as D,Eb as er,Ga as C,H as ae,Hc as Be,Ia as Xn,Ic as Ge,Jc as rr,Ka as Ft,M as At,Ma as We,N as Ue,Nc as ir,Oc as or,Pa as ye,Qa as Dt,V as Gn,Va as Qn,Wa as Jn,Z as qn,aa as p,i as Bn,ja as Kn,ka as He,la as Vn,na as Yn,pb as Zn,qa as Rt}from"./chunk-CHC2IDXA.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 $s=["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"],qt=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 Df(e={}){return{excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0}}function z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function I(e,t,n,r){t&&e.push({code:n,message:r})}function Os(e,t){let n=z(e.completeness)?e.completeness:{};I(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),I(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;I(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."),I(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=z(e.filters)?e.filters:{},s=z(o.runtime_filters)?o.runtime_filters:{},a=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return I(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."),I(t,o.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),I(t,o.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),o}function Ls(e,t,n){I(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."),I(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let r=z(e.projection)?e.projection:{};I(n,r.mode!=="full"||r.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let i=z(e.omission_receipt)?e.omission_receipt:void 0;I(n,i===void 0,"omission_receipt_missing","The result carries no field-omission receipt."),I(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."),I(n,i?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function Ns(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 Ps(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 js(e,t){let n=z(e.read_output)?e.read_output:void 0;I(t,n===void 0,"read_output_missing","The result carries no universal read-output receipt."),I(t,n!==void 0&&Ns(n),"read_output_invalid","The universal read-output receipt does not prove an intact list result."),I(t,n!==void 0&&!Ps(n),"read_output_dimensions_incomplete","The universal read-output receipt does not prove full, unbounded include, amount, and cost dimensions."),I(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=z(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;I(t,n?.result_omitted===!0||r?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),I(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function Us(e,t){let n=e.map(r=>z(r)&&typeof r.id=="string"?r.id.trim():"");I(t,n.some(r=>r.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),I(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function Hs(e){if(!z(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:$s[0],message:"The result must be an object with an items array."}]};let t=e,n=[],r=Os(t,n);return Ls(t,r,n),js(t,n),Us(t.items,n),{ok:n.length===0,findings:n}}function Ws(e){let t=Hs(e);if(!t.ok)throw new qt(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 Mf(e){Ws(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6fe766e2-93e8-5653-beb5-16bd92efae51")}catch{}})();function mi(e,t){let n=Er(e),r=e.length>0?e[e.length-1].after_hash:vr(),i=t===void 0||n.item_hash_version===void 0?void 0:br(t,n.item_hash_version),o=t===void 0?void 0:i===void 0?wr(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 pi(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);await j(r);let i=await M(r),o=D(i,x()),s=await Lr(r,e,i,o.type_to_folder),a=await B(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=Mr(t,a),c=Or($r(a,d.historyIndex),d),u=kr(c,{schema:i.schema});if(u.metadata.id!==s.id)throw new p(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let l=a[d.historyIndex],f=ve(a,!0);return{document:u,reconstructed:!0,as_of_version:f===null?null:f+d.historyIndex+1,as_of_timestamp:l.ts,target:d,history_length:a.length}}import Gs from"node:fs/promises";import yi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var zt={version:1,aliases:{}};function rt(e=[]){let t=new Set(be),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 hi(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 Kt(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 Bs(e,t=be){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 it(e,t=zt,n={}){let r=Kt(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 ot(e,t=zt,n=be){let r=hi(e.harness),i=hi(e.agentInstance),o=Bs(e,n);return s=>{let d=Kt(s,t).agent_harness;if(r&&(!d||!r.has(d))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,u]of o){let l=s.agent_provenance?.[c];if(!l||!u.has(l.value))return!1}return!0}}function st(e,t=zt,n=be){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);Kt(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 u=c.agent_provenance?.[s];u===null?d+=1:u!==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 qs=20,zs=5,Ks=15,Vs="-24h";function fm(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 Ys={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Vt(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 gi(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 W(i,new Date(t),n)}function Xs(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function _i(e,t){return t===void 0?e:e.slice(0,t)}function Ee(e,t=""){return typeof e=="string"?e:t}function Qs(e,t){return{...t,id:e,ts:Ee(t.ts),author:Ee(t.author,"unknown"),op:Ee(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ee(t.before_hash),after_hash:Ee(t.after_hash)}}function Js(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 Zs(e){try{return(await Gs.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Vn(t))return[];throw t}}function ea(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 ta(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Ks:n==="compact"?qs:zs}function na(e,t){let n=O(),r=t==="digest",i=gi(e.to??(r?n:void 0),n,"--to"),o=gi(e.from??(r?Vs: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=fe(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:Vt(e.id,"Activity --id"),op:Vt(e.op,"Activity --op"),author:Vt(e.author,"Activity --author"),from:o,to:i,limit:ta(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function ra(e){let t=C(process.cwd(),e.path);return await j(t),{pmRoot:t,settings:await M(t)}}async function ia(e){let t=D(e.settings,x()),n=await le(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Tr({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=yi.join(e.pmRoot,"history");return await we({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function oa(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Xs(t,n.from,n.to)}async function sa(e,t){let n=[];for(let r of await Zs(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await B(yi.join(e,r),i);for(let s of o){let a=Qs(i,s);oa(s,a,t)&&n.push(a)}}return n}function aa(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function ca(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 da(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:ca(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function ua(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 la(e,t,n,r,i){if(e==="digest"){let s=da(t,r),a=_i(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=_i(t,n);return e==="compact"?{rows:{compact_activity:aa(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 wi(e,t){let n=await ra(t),r=ea(e),i=na(e,r),o=await ia(n),s=rt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=ot({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=Js(await sa(o.historyDir,i)).filter(d),u=la(r,c,i.limit,o.itemsById,f=>it(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:Ys[r]},omission_receipt:qe("activity",r),count:u.returnedRows,total_count:u.totalRows,limit:i.limit??null,omitted_count:l,has_more:l>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:c.length,item_count:u.totalRows,author_count:new Set(c.map(f=>f.author)).size,operation_counts:ua(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:st(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]="ab1153b1-2d91-58a5-9b4a-1d9c5f35a54a")}catch{}})();var fa=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],ma=["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 pa(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function pm(e,t,n={}){let r=n.includePagination!==!1;return[t,...fa.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(pa)||ma.some(o=>e?.[o]===!0)}function bi(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 vi=["parent","type","priority","status","assignee","tags","sprint","release"];function Si(e,t){let n=Je(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Ei(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 Ci(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=zr(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(!vi.includes(r))throw new p(`Aggregate group fields must be one of ${vi.join("|")}; received "${r}"`,m.USAGE);return n}function xi(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 Ii(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 xi(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function Ti(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 Ai(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var ha={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function ki(e,t){return t==null||t===""?ha[e]:String(t)}function ga(e,t){return e.length===1?ki(e[0],t[e[0]]):e.map(n=>`${n}=${ki(n,t[n])}`).join(" | ")}function Ri(e,t,n){for(let r of n){let i=Ti(e.group[r],t.group[r]);if(i!==0)return i}return 0}function Fi(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 Di(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Yt(e,t,n){let r=N(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 _a(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 ya(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function wa(e){e.accumulator.row.count+=1,e.includeCompletion&&Yt(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&ya(e.accumulator,e.numericValue)}function ba(e,t){let n={};for(let r of e)n[r]=Ii(r,t);return n}function va(e,t,n,r){let i={...e.row,group_label:ga(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=Di(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 ka(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 wm(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=C(process.cwd(),t.path),r=await M(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...X(r.schema).definitions.filter(y=>y.type==="number").map(y=>y.metadata_key)],s=Ci(e.groupBy),a=Si(e.status,i),d=Ei(e,[...new Set(o)].sort((y,b)=>y.localeCompare(b))),c=e.completion===!0,u=e.includeUnparented===!0,l=await q(void 0,{...bi(e),status:e.status},t),f=new Map,h=0,_=0;for(let y of l.items){let b=y,k=ba(s,b);if(s.includes("parent")&&k.parent===null&&!u){h+=1;continue}let E=Ai(s,k),Y=f.get(E),R=d===null?null:Fi(b,d.field);if(Y)wa({accumulator:Y,item:b,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:R});else{let T=_a(k,R);c&&Yt(T,b.status,i),f.set(E,T)}_+=1}let w=[...f.values()].map(y=>va(y,s,c,d)).sort((y,b)=>Ri(y,b,s)),g=l.warnings&&l.warnings.length>0?l.warnings:void 0;return{groups:w,count:w.length,totals:{items_considered:l.items.length,items_grouped:_,items_skipped_unparented:h},filters:ka({groupBy:s,includeCompletion:c,includeUnparented:u,status:a,options:e,numericAggregation:d}),now:O(),...g?{warnings:g}:{}}}var bm={buildGroupKey:Ai,compareAggregateRows:Ri,compareNullableGroupValue:Ti,completionPct:Di,normalizeTagGroupValue:xi,parseGroupBy:Ci,parseNumericAggregation:Ei,parseStatus:Si,readNumericAggregateValue:Fi,resolveGroupValue:Ii,updateCompletionCounts:Yt};import{encode as Sa}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 Xt=["agenda","day","week","month"],Qt=["markdown","toon","json"],Ea=["sun","mon","tue","wed","thu","fri","sat"],Ca=365,xa=365,Oi=28,Ia=1e3;function Jt(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 Ta(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 Li(e,t){let n;for(let r of t){let i=Bn(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Aa(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Xt.includes(t)){let n=Li(t,Xt);throw new p(`Calendar view must be one of ${Xt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Ra(e){if(!e)return;let t=e.trim().toLowerCase();if(!Qt.includes(t)){let n=Li(t,Qt);throw new p(`Calendar format must be one of ${Qt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Im(e,t){let n=Ra(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 Fa(e,t){if(e===void 0)return;let n=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 Da(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 at(e){return new Date(e).toISOString().slice(0,10)}function Ni(e,t){if(!t||t==="UTC")return at(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 at(e)}function nn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function K(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Pi(e){let t=new Date(nn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return K(t.toISOString(),r)}function Ma(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function $a(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Oa(e,t){return S(e,t)>=0?e:t}function Mi(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function $i(e,t){e.set(t,(e.get(t)??0)+1)}function La(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)=>ae(r)-ae(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 ji(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 Ui(e){return Ea[new Date(e).getUTCDay()]}function Na(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Pa(e){let t=new Set;for(let n of e??[]){let r=Na(n);r&&t.add(r)}return t}function ja(e,t,n,r,i){let o=e??K(n,-(r??xa)),s=t??K(e??n,i??Ca);return{start:o,end:S(s,o)>0?s:K(o,1)}}function Ua(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Ui(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??Ia,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Pa(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)=>ae(s)-ae(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function ct(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 dt(e,t){let n=Ui(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function Ha(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(dt(e,t)&&ct(e,t)==="stop");n+=1)t=K(t,e.interval);return e.occurrences}function Wa(e,t,n){let r=ae(n),i=K(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 Ba(e){let t=Pi(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=K(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=Wa(e,r,i);if(dt(e,o)&&ct(e,o)==="stop")return e.occurrences}}return e.occurrences}function Ga(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=ji(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!dt(e,s))&&ct(e,s)==="stop")return e.occurrences}}return e.occurrences}function qa(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=ji(i,n,o,e.startDate);if(!(!s||!dt(e,s))&&ct(e,s)==="stop")return e.occurrences}}return e.occurrences}function za(e,t,n,r){let i=Ua(e,t,n,r);return t.freq==="daily"?Ha(i):t.freq==="weekly"?Ba(i):t.freq==="monthly"?Ga(i):qa(i)}function Hi(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 Ka(e){return e.deadline?{at:e.deadline,date:at(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 Va(e){return(e.reminders??[]).map(t=>({at:t.at,date:at(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 Ya(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Xa(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Qa(e,t,n,r){let i=La(t.recurrence),o=Ya(t.start_at,t.end_at);return(t.recurrence?za(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Ni(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Xa(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 Ja(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?Ka(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Va(o));for(let a of n.has("events")?o.events??[]:[])i.push(...Qa(o,a,t,r))}return Hi(i)}function Za(e,t,n,r,i){let o=Vr(t.type,n),s=t.tag?.trim().toLowerCase(),a=Kr(t.priority),d=Fa(t.status,r),c=t.assignee?.trim(),u=Da(t.assigneeFilter),l=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&&u==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>ec(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:i}))}function ec(e,t){return tc(e,t)&&nc(e,t)&&et(e,t.runtimeFieldFilters)}function tc(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 nc(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 rc(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function Zt(e,t,n){return e.trim().toLowerCase()==="today"?nn(t):W(e,new Date(t),n)}function ic(e,t,n){let r=t.date?Zt(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Zt(t.from,n,"--from"):void 0,a=t.to?Zt(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 oc(r,t,n,i,o,s,a);if(e==="day"){let c=nn(r);return en(r,n,i,o,c,K(c,1))}if(e==="week"){let c=Pi(r);return en(r,n,i,o,c,K(c,7))}let d=Ma(r);return en(r,n,i,o,d,$a(r))}function oc(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 en(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Oa(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function sc(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:Hi(r)}))}function ac(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),$i(n,d.item_type),$i(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:Mi(n),by_status:Mi(r),recurring_events:a}}function cc(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Wi(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 tn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function dc(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Ni(e.event_end,e.event_timezone)?Wi(e.event_end,e.event_timezone):e.event_end:null}function uc(e){let t=`${Wi(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=dc(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 Tm(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${cc(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- by-kind: ${tn(e.summary.by_kind)}`),t.push(`- by-type: ${tn(e.summary.by_type)}`),t.push(`- by-status: ${tn(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
2
+ `);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${uc(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 lc(t.join(`
3
+ `))}function Am(e){return Sa(e)}function lc(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function fc(e){let t=O(),n=Aa(e.view),r=ic(n,e,t),i=G(e.limit),o=Ta(e.include),s=Jt(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Jt(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=Jt(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"),u=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,l=c&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:d,recurrenceLookaheadDays:l?Oi:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function mc(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Oi}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function pc(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 hc(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 Bi(e,t){let n=C(process.cwd(),t.path);await j(n);let r=fc(e),i=await M(n),o=P(i.schema),s=X(i.schema),a=Ze(e,s,"calendar"),d=D(i,x()),c=[];mc(c,r.eventsOnlyCapApplied);let u=await le(n,i.item_format,d.type_to_folder,c,i.schema),l=Za(u,e,d,o,a),f=ja(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),_=Ja(l,f,r.includeSources,r.occurrenceLimit).filter(b=>rc(b,r.rangeBounds.start,r.rangeBounds.end)),w=r.limit===void 0?_:_.slice(0,r.limit),g=sc(w),y=[...new Set(c)].sort((b,k)=>b.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:hc(e,r.rangeBounds),filters:pc(e,a),summary:ac(w),events:w,days:g,...y.length>0?{warnings:y}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="377499d7-13b3-55f0-9d44-425bfcaf7964")}catch{}})();var Gi="1970-01-01T00:00:00.000Z";function Ce(e){if(typeof e!="string")return null;let t=e.trim();if(!cr(t)&&!/^\d{4}-\d{2}-\d{2}$/u.test(t))return null;try{return W(t,new Date(Number.NaN),"context signal recency coordinate")}catch{return null}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80a03884-711e-5170-a3c1-f05ccb065702")}catch{}})();var on=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],gc=Symbol("no-context-author"),_c=Symbol("no-item-assignee");function qi(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function yc(e){if(typeof e!="string")return;let t=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?o.toISOString():void 0}function wc(e){let t=yc(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:Ce(e.created_at)??Gi}}function bc(e){if(!["substantive_history","release_cohort","created_at"].includes(e.source)||(e.source==="substantive_history"?e.history_op!==void 0&&typeof e.history_op!="string"||e.event_class!==void 0&&e.event_class!=="substantive":e.history_op!==void 0||e.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");let t=Ce(e.coordinate);if(t===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...e,coordinate:t}}function vc(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 kc(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 Sc(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 ut(e,t,n){return e?.[t]??n}function lt(e,t){let n=new Map(e.map(c=>{let u=t.recencyEvidence?.[c.id];return[c.id,u===void 0?wc(c):bc(u)]})),r=[...e].sort((c,u)=>{let l=n.get(c.id).coordinate,f=n.get(u.id).coordinate;return S(f,l)||c.id.localeCompare(u.id)}),i=new Map(r.map((c,u)=>[c.id,u])),o=Math.max(e.length-1,1),s=qi(t.author,gc),a=N("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let u=qi(c.assignee,_c)===s,l=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signal_provenance:{recency:n.get(c.id)},signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:ut(t.graphProximity,c.id,c.parent?.3:0),claim_focus:ut(t.claimFocus,c.id,F(c.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:vc(c.priority,4),risk_pressure:Sc(c.risk),deadline_pressure:kc(c.deadline,d),knowledge_density:ut(t.knowledgeDensity,c.id,Math.min(l/5,1)),author_affinity:ut(t.authorAffinity,c.id,u?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Ec="context_relevance",Cc={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},xc=new TextEncoder;function Ic(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"||!on.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 Tc(e){let t={...Cc};for(let[n,r]of Object.entries(e??{}))r!==void 0&&on.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function Ki(e,t={}){Ic(e);let n=Tc(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=on.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},u={},l=0,f=0;for(let h of o){let _=c[h];if(_===void 0)continue;let w=_*n[h];u[h]=w,l+=w,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:l/f,contributions:u}});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 Ac(e,t={}){let n=Ki(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 ft(e,t,n={}){let r=Ki(t,n),i=await ar(Ec,{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 Ac(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 Rc=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function zi(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Fc(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,u)=>u-c).slice(0,n.length||1),i=c=>c.reduce((u,l,f)=>u+(2**l-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:zi(e.required_ids??[],a),continuity_coverage:zi(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Dc(e){return Math.ceil(xc.encode(JSON.stringify(e)).byteLength/4)}function Mc(e){return Math.round(e*1e4)/1e4}function $c(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 Oc(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}=$c(n,e.surface),o={...n,ranking:void 0},s=Dc(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Fc({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 Lc(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Rc;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,Mc(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 Nm(e,t,n){let r=[];for(let i of e)r.push(await Oc(i,t));return Lc(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 Nc={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Pc=["identity","summary","full"];function jc(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=Pc.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 Uc(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=Nc[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 Hc(e){let t=new Set;for(let n of e){if(jc(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 Wc(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],u=n(d)/d.token_costs.identity,l=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(u>l||u===l&&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 Bc(e){let t=new Set,n=[],r=e.tokenBudget,i=c=>{let u=c.lineage??c.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*l)},o=c=>{let u=c.token_costs.identity;n.push({...c,projection:"identity",tokens:u,marginal_value:i(c)}),r-=u;let l=c.lineage??c.cluster;l&&t.add(l)};for(let c of e.ordered.filter(u=>u.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=Wc(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 Gc(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 Vi(e,t){let n=Uc(t),r=Hc(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=Bc({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=Gc(a,s.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let c=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!c.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import xe from"node:fs/promises";import Ie from"node:path";import{createHash as Yi,randomUUID as qc}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b112b71-e0b8-5502-89f6-b4da6eb85f6b")}catch{}})();var sn=3,an=2,Xi=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],zc=new Set(["substantive_history","release_cohort","created_at"]),Kc={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 pe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qi(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Vc(e){let t={};for(let n of Xi){let r=e[n];if(r!==void 0){if(!Qi(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Yc(e,t){let n=e.map(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 Xc(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 Ji(e,t){return{...t,activityDensity:t.activityDensity??Yc(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Xc(e)}}function un(e){let t=Yi("sha256");for(let{id:n,signal_provenance:{recency:r}}of[...e].sort((i,o)=>i.id.localeCompare(o.id)))t.update(JSON.stringify([n,r.source,r.coordinate,r.history_op??null,r.event_class??null]));return`sha256:${t.digest("hex")}`}function Qc(e){if(!pe(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",pe(e.signals),pe(t)].every(Boolean))return null;let n=t.recency;if(!pe(n))return null;let r=Ce(n.coordinate);if(r===null)return null;let i=new Set(Xi),o=Object.entries(e.signals);return!o.every(([s,a])=>i.has(s)&&Qi(a))||![typeof n.source=="string"&&zc.has(n.source),["undefined","string"].includes(typeof n.history_op),[void 0,"substantive","maintenance"].includes(n.event_class),n.source==="substantive_history"?n.event_class===void 0||n.event_class==="substantive":n.history_op===void 0&&n.event_class===void 0].every(Boolean)?null:{id:e.id,signals:Object.fromEntries(o),signal_provenance:{recency:{source:n.source,coordinate:r,history_op:n.history_op,event_class:n.event_class}}}}function Jc(e,t){let n=Array.from(e,Qc);if(n.some(i=>i===null))return null;let r=n;return new Set(r.map(i=>i.id)).size!==r.length||r.some(i=>i.id.trim().length===0)||t!==un(r)?null:r.sort((i,o)=>i.id.localeCompare(o.id))}function Zc(e){if(!pe(e)||e.format_version!==sn||e.signal_set_version!==an||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.recency_evidence_fingerprint!="string"||!/^sha256:[a-f0-9]{64}$/u.test(e.recency_evidence_fingerprint)||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=Jc(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:sn,signal_set_version:an,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function Zi(e){if(typeof e.sourceCursor!="string"||e.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(e.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(e.source!=="derived_index"&&e.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback")}function eo(e,t,n=un(e)){let r=e.map(({id:o})=>o);if(new Set(r).size!==r.length||r.some(o=>o.trim().length===0))throw new TypeError("Context signal snapshot item IDs must be unique and non-empty");let i=e.map(({id:o,signals:s,signal_provenance:a})=>({id:o,signals:Vc(s),signal_provenance:a})).sort((o,s)=>o.id.localeCompare(s.id));return Object.freeze({format_version:sn,signal_set_version:an,source_cursor:t.sourceCursor,recency_evidence_fingerprint:n,generated_at:t.now,source:t.source,items:Object.freeze(i.map(o=>Object.freeze(o)))})}function Vm(e,t){return Zi(t),eo(lt(e,Ji(e,t)),t)}var cn=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=Ie.resolve(t)}async read(){try{return JSON.parse(await xe.readFile(this.filePath,"utf8"))}catch(t){if(pe(t)&&He(t))return null;throw t}}async write(t){let n=Ie.dirname(this.filePath);await xe.mkdir(n,{recursive:!0});let r=Ie.join(n,`.${Ie.basename(this.filePath)}.${qc()}.tmp`);try{await xe.writeFile(r,`${JSON.stringify(t)}
5
+ `,{encoding:"utf8",flag:"wx"}),await xe.rename(r,this.filePath)}finally{try{await xe.rm(r,{force:!0})}catch{}}}},dn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){Zi(n);let r=[],i=null;try{let f=await this.adapter.read();i=Zc(f),f!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(f=>f.id).sort((f,h)=>f.localeCompare(h)),s=i?.items.map(f=>f.id)??[],a=lt(t,Ji(t,n)),d=un(a),c=i!==null&&i.source_cursor===n.sourceCursor&&i.recency_evidence_fingerprint===d&&i.source===n.source&&s.length===o.length&&s.every((f,h)=>f===o[h]),u;if(c&&i!==null)u=i;else{i!==null&&r.push("context_signal_store_stale"),u=eo(a,n,d);try{await this.adapter.write(u)}catch{r.push("context_signal_store_write_failed")}}let l=new Map(u.items.map(f=>[f.id,f]));return{snapshot:u,candidates:a.map(f=>({...f,signals:{...f.signals,...l.get(f.id)?.signals},signal_provenance:l.get(f.id).signal_provenance})),cache_status:c?"fresh":"rebuilt",warnings:r,warning_details:r.map(f=>Kc[f])}}};function ed(e){let t=Yi("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 Qe(t.pmRoot),o=t.sourceCursor??i?.source_cursor??ed(e),s=t.source??(i===null?"scan_fallback":"derived_index"),a=new dn(new cn(Ie.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),d=t.recencyEvidence??Object.fromEntries(Object.entries(await yr(t.pmRoot,e.map(c=>c.id))).map(([c,u])=>[c,{source:"substantive_history",coordinate:u.entry.ts,history_op:u.entry.op,event_class:"substantive"}]));return a.readOrRebuild(e,{...t,recencyEvidence:d,sourceCursor:o,source:s})}import td from"node:path";import{createHash as nd}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 to(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 rd 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 no=1,id=1e4,ro=12;function od(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function sd(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 ad(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 cd(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(F(o.status,t.statusRegistry))).map(o=>{let s=to(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=od(a.timestamp),c=`epoch:${d}`,u=i.get(c)??{kind:"epoch",key:d,label:d,items:[]};u.items.push(o),i.set(c,u);let l=sd(s,r);if(l){let f=`epic:${l.id}`,h=i.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};h.items.push(o),i.set(f,h)}}return{format_version:no,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(ad).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function dd(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 ud(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(dd)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function ld(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==no||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(ud)?t:null}function fd(e){return`scan:${nd("sha256").update(Zn(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function md(e,t,n){return n!==void 0?n:(await Qe(t))?.source_cursor??fd(e)}async function pd(e){try{let t=ld(JSON.parse(await rd.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&He(t))}}}async function pt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??id));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await md(e,t.pmRoot,t.sourceCursor),i=td.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await pd(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=cd(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await Yn(i,`${JSON.stringify(d)}
6
+ `)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function hd(e,t,n=ro){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 io(e,t,n=ro){if(e.snapshot===null)return;let r=hd(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 gd(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 oo(e,t,n=5){let r=gd(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 so=16;async function ao(e,t,n){let r=D(t,x()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<so;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await de(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await ue(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function up(e){await mr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await ao(e.pmRoot,e.settings,e.itemId)})}async function lp(e){await pr(e)}async function fp(e){await hr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await ao(e.pmRoot,e.settings,e.itemId)}:{}})}var mp={lineage_depth:so,active_items:64,evidence_rows:32};function co(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4f8e82a2-f4ea-5ecb-8ef5-3ca795cdeda5")}catch{}})();var _d=["markdown","toon","json","ndjson"],ht=new Set(["Epic","Feature"]),po=10,ho=1e4,go=["hierarchy","activity","progress","recently_created","unparented","workload"],yd=[...go,"blockers","files","staleness","tests"],wd=/^(\d{4})-(\d{2})-(\d{2})/,bd=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,vd=/^(\d{4})(\d{2})(\d{2})$/,kd=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Sd(e){if(!e)return;let t=e.trim().toLowerCase();if(!_d.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var uo=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 Ed(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!uo.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...uo].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 Te(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function Mp(e,t){let n=Sd(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 Cd(e,t){return G(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:po)}function mn(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 xd(e,t){return t>=ho&&e===Number.MAX_SAFE_INTEGER?po:e}function Id(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!At.includes(n))throw new p(`Context --depth must be one of ${At.join("|")}`,m.USAGE);return n}function Td(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!Ue.includes(s))throw new p(`Context --section must be one of ${Ue.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...Ue]:(t==="deep"?yd:go).filter(i=>n.sections[i])}function Ad(e,t){return e?G(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Rd(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new p("--stale-threshold must be a number of days (e.g. 7 or 7d)",m.USAGE);let i=parseInt(r[1],10);if(i<=0)throw new p("--stale-threshold must be positive",m.USAGE);return i}function lo(e,t){let n=F(e,t),r=N("blocked",t),i=N("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 Ae(e,t){let n=N("closed",t);return F(e,t)===n}function pn(e,t){return F(e,t)===t.in_progress_status}function _o(e,t){let n=F(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function Fd(e,t){return t.blocked_statuses.has(F(e,t))}var Dd=["compact","brief","fields","includeBody","include_body","parent"];function Md(e){let t={...e};for(let n of Dd)delete t[n];return t}function hn(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=he(e),o=Re(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function $d(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new p("Context --parent requires an item id",m.USAGE);return t}function Od(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Ld(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 Nd(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Pd(e){let t=wd.exec(e)??bd.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<=Nd(n,r-1)}function jd(e){let t=vd.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=kd.exec(e);if(n){let[,r,i,o,s,a,d,c]=n,u=d?`:${d}`:"",l=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${i}-${o}T${s}:${a}${u}${l}`}return e}function yo(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Pd(t))return Number.NaN;let n=Date.parse(jd(t));return Number.isFinite(n)?n:Number.NaN}function fn(e){let t=yo(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Ud(e){let t=yo(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 Z(e,t,n){let r=lo(e.status,n)-lo(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=Od(e.order,t.order);if(o!==0)return o;let s=Ld(e.deadline,t.deadline);if(s!==0)return s;let a=S(fn(t.updated_at),fn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function ln(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function _n(e,t,n=new Set,r="context"){return Vi(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:ln({id:i.id,title:i.item.title}),summary:ln({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:ln(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function yn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function 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,...i.signal_provenance===void 0?{}:{recency:i.signal_provenance.recency}})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function wo(e,t){return t>0?Math.round(e/t*100):0}function he(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 Fe(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=Re(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Ae(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=wo(s,o)}}return r}function Hd(e){let t=0,n=0,r=0,i=new Set;for(let o of e){if(i.add(o.item_id),o.kind==="deadline"){t+=1;continue}if(o.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:i.size,deadlines:t,reminders:n,scheduled:r}}function gt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Wd(e,t){return e.filter(n=>!t.terminal_statuses.has(F(n.item_status,t)))}function Bd(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=he(e),s=new Set(t.filter(d=>ht.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let u=Re(d,o),l=o.get(d)??[],f=0,h=0,_=0,w=0;for(let y of u)Ae(y.status,n)?f++:pn(y.status,n)?_++:Fd(y.status,n)?w++:_o(y.status,n)&&h++;let g=l.sort((y,b)=>Z(y,b,n)).slice(0,r).map(y=>{let b=Re(y.id,o),k=b.filter(E=>Ae(E.status,n)).length;return{id:y.id,title:y.title,type:y.type,status:y.status,children_total:b.length,children_closed:k}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:u.length,children_closed:f,children_open:h,children_in_progress:_,children_blocked:w,children:g})}return a.sort((d,c)=>{let u=i.get(d.id),l=i.get(c.id);return Z(u,l,n)}).slice(0,r)}function Re(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 Gd(e,t){return(await wi({compact:!0,limit:String(e)},t)).compact_activity??[]}function qd(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=>ht.has(d.type)),a=[];for(let d of s){let c=Re(d.id,o),u=c.length;if(u===0)continue;let l=0,f=0,h=0,_=0;for(let w of c)Ae(w.status,r)?l++:n.has(w.id.trim().toLowerCase())?_++:pn(w.status,r)?h++:_o(w.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:u,closed:l,open:f,in_progress:h,blocked:_,completion_pct:wo(l,u)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function zd(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=Wt(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 Kd(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 Vd(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=>pn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Yd(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 Xd(e,t,n,r){return e.map(i=>({item:i,sortKey:fn(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})=>({...Fe(i,t,n),created_at:i.created_at}))}function Qd(e,t,n,r){return e.filter(i=>!gn(i.parent)&&!ht.has(i.type)).sort((i,o)=>Z(i,o,t)).slice(0,r).map(i=>Fe(i,t,n))}function Jd(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 u of d)r+=u.passed??0,i+=u.failed??0,o+=u.skipped??0,(u.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 fo(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function bo(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 Zd(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function eu(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`${fo(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${fo(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 mo(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 tu(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 nu(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(`- ${eu(n)}`);e.push("")}function ru(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 iu(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 ou(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)}`:`- ${Ud(i.created_at)} ${bo(i)}`);e.push("")}}function su(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 au(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 cu(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 du(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 uu(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 lu(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 fu(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 mu(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 $p(e){let t=[],n=e.focus_fields,r=o=>n?Zd(o,n):bo(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(""),mo(t,"High-level focus",e.high_level,"No high-level active items.",r),mo(t,"Low-level focus",e.low_level,"No low-level active items.",r),tu(t,e,r),nu(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 ru(t,e),iu(t,e),ou(t,e,n,r),su(t,e,r),au(t,e),cu(t,e),du(t,e),uu(t,e),lu(t,e),fu(t,e),mu(t,e),t.join(`
7
+ `)}async function pu(e,t){let n=C(process.cwd(),t.path),r=await M(n),i=r.context??qn.context,o=P(r.schema),s=Id(e.depth,i),a=Cd(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:Td(e.section,s,i),activityLimit:Ad(e.activityLimit,i),staleThresholdDays:Rd(e.staleThreshold,i),parentScope:$d(e.parent),focusFields:Ed(e.fields),baseListOptions:Md(e)}}function hu(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function gu(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function _u(e,t){let n=await q(void 0,gu(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,i=r.filter(a=>!Q(a.status,t.statusRegistry)),o=r,s=yu(t.parentScope,r);return s&&(i=i.filter(a=>s.has(a.id.trim().toLowerCase())),o=o.filter(a=>s.has(a.id.trim().toLowerCase()))),{listed:n,listedItemMetadata:i,allItems:o,fullCorpus:r,subtreeIds:s}}function yu(e,t){if(e===void 0)return;let n=hn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}function wu(e,t,n,r){let i=new Set(nt(e,t,n,r).containers.map(o=>o.item.id));return new Set(e.filter(o=>ht.has(o.type)||i.has(o.id)||ke(o.type,r)!=="agent").map(o=>o.id))}async function bu(e,t,n,r,i,o,s,a,d,c,u,l,f,h,_,w){let g=[...e].sort((v,se)=>Z(v,se,i)),y=await Ye({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await mt(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:y.affinity,claimFocus:_}),k=await ft("context",b.candidates),E=k.ranked.map(v=>v.item),Y=i.active_statuses,R=E.filter(v=>Y.has(F(v.status,i))),T=l?ir(R,c,u,v=>v.id):0,A=l?R.slice(T,T+s):R,Pe=l&&A.length>0&&T+A.length<R.length,je=Pe&&A.length>0?rr(u,A[A.length-1].id,T+A.length-1):void 0,xt=E.filter(v=>r.has(v.id.trim().toLowerCase())),te=new Set([...A.map(v=>v.id),...xt.slice(0,s).map(v=>v.id)]),ne=_n({...k,ranked:k.ranked.filter(v=>te.has(v.id))},h,new Set(Object.entries(_??{}).filter(([,v])=>v>=1).map(([v])=>v))),re=ne.included.map(v=>v.item),U=re.filter(v=>Y.has(F(v.status,i))),ie=re.filter(v=>r.has(v.id.trim().toLowerCase())),_e=he(t),oe=hu(o)?_e:void 0,It=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),$=v=>{let se=Fe(v,i,oe);return r.has(v.id.trim().toLowerCase())&&(se.blocked=!0,se.blocker_ids=Wt(v,It,i).filter(Tt=>!Tt.resolved).map(Tt=>Tt.id)),se},L=wu(U,n,i,w),Ds=U.filter(v=>L.has(v.id)).slice(0,l?A.length:s).map($),Ms=U.filter(v=>!L.has(v.id)).slice(0,l?A.length:s).map($),Wn=R.length===0;return{activeItems:U,blockedItems:ie,highLevel:Ds,lowLevel:Ms,blockedFallback:Wn?ie.slice(0,s).map($):[],blockedFallbackUsed:Wn,ranking:k,packing:ne,featureStore:b,pageExtras:{...l?{applied_limit:s}:{},...Pe?{has_more:!0,truncated:!0}:{},...je?{next_cursor:je}:{}}}}function vu(e){return Ge("context",Be(e,tr))}function ku(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=ho}async function Su(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Bi(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Wd(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:Hd(a)}}function vo(e,t,n){let r=String(t);return e.filter(i=>F(i.status,n)===r).length}async function Eu(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=he(n),c=n.filter(l=>!Q(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Bd(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Gd(t.activityLimit,a):void 0,progress:u("progress")?qd(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?zd(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Xd(c,t.statusRegistry,d,t.limit):void 0,unparented:u("unparented")?Qd(c,t.statusRegistry,d,t.limit):void 0,filesSection:u("files")?Kd(o.activeItems,t.limit):void 0,workload:u("workload")?Vd(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Yd(c,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Jd(o.activeItems):void 0}}function Cu(e,t,n){let r=N("canceled",t),i=e.filter(s=>t.active_statuses.has(F(s.status,t))),o=vo(i,t.in_progress_status,t);return{scope:"matching_items",active_items:i.length,open:i.length-o,in_progress:o,blocked:e.filter(s=>n.has(s.id.trim().toLowerCase())).length,total_items:e.length,closed:e.filter(s=>Ae(s.status,t)).length,canceled:e.filter(s=>F(s.status,t)===r).length}}function xu(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 Iu(e,t){t&&(e.focus_fields=t,e.high_level=Te(e.high_level,t),e.low_level=Te(e.low_level,t),e.blocked_fallback=Te(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Te(e.recently_created,t)),e.unparented&&(e.unparented=Te(e.unparented,t)))}function Tu(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let 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 Au(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function Ru(e,t,n,r){try{let i=new Set(t.packing.included.map(d=>d.id)),o=t.ranking.ranked.map(d=>({id:d.id,rank:d.rank,included:i.has(d.id)})),s=new Set(o.map(d=>d.id));for(let d of Ke(e,"context"))s.has(d)||(o.push({id:d,rank:o.length+1,included:!1}),s.add(d));let a=await Ve({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});ze(e,a)}catch{e.warnings=gt(e.warnings,["context_usage_feedback_write_failed"])}}async function Fu(e,t,n){if(e)return{};let i=(await er({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 Du(e,t){let n=gr(),r=await lr(e),i=n.instance||fr(t);return co(r.semantic_attribution?.[i])}async function Op(e,t){let n=C(process.cwd(),t.path),r=await pu(e,t),i=await _u(t,r),o=xd(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:mn(e.tokenBudget,Math.max(256,o*160))},a=J(void 0,s.settings.author_default),d=await Du(n,a),c=Fu(e.noExtensionHealth===!0,n,s.settings),u=ei(i.fullCorpus,s.statusRegistry),l=await bu(i.listedItemMetadata,i.allItems,i.fullCorpus,u,s.statusRegistry,s.sectionsIncluded,s.limit,O(),a,e.after,vu(e),ku(e,i.fullCorpus.length),n,s.tokenBudget,d,D(s.settings,x())),f=await Su(t,s,i.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),h=await pt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),_=gt(i.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],h.warnings),w=vo(l.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),g=l.activeItems.length-w,y=await Eu({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),b=Cu(i.allItems,s.statusRegistry,u),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:{returned_focus:{active_items:l.activeItems.length,in_progress:w,open:g,blocked:l.blockedItems.length},blocked_fallback_used:l.blockedFallbackUsed,high_level:l.highLevel.length,low_level:l.lowLevel.length,agenda_events:f.agendaSummary.events,...b},high_level:l.highLevel,low_level:l.lowLevel,blocked_fallback:l.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...l.pageExtras};return k.workspace_memory=io(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(k,await c),xu(k,y,l.featureStore.warning_details),Tu(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=wn(l.ranking,l.featureStore,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),k.packing=yn(l.packing)),Iu(k,s.focusFields),_.length>0&&(k.warnings=_),Au(k,l.activeItems,l.blockedItems),await Ru(k,l,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]="6035e85b-81ed-512e-b291-b0d86af1848b")}catch{}})();var Mu=["markdown","toon","json"],$u=5,Ou=1440*60*1e3;function Lu(e){if(!e)return;let t=e.trim().toLowerCase();if(!Mu.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function Kp(e,t){let n=Lu(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"toon"}function ko(e,t,n){let r=G(e,t);return r===void 0||r<=0?n:r}function De(e,t,n,r){return{...Fe(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 Nu(e,t,n,r){let i=e.item,o=[],s=N("in_progress",t);return o.push(F(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(Pu(i.deadline,n)),o.push(Zr(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s)`),o}function So(e,t,n){let r=J(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 Vp={partitionCallerOwnedReady:So,resolveNextCallerAuthor:(e,t)=>Eo(e,t)};function Yp(e,t,n){let r=e.filter(i=>ke(i.item.type,n)==="human");return{agent:t?e:e.filter(i=>ke(i.item.type,n)!=="human"),decisions:t?[]:r}}function Pu(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),i=new Date(Date.parse(t)).toISOString().slice(0,10),o=Math.round((Date.parse(r)-Date.parse(i))/Ou);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function ju(e,t){let n=N("in_progress",t);return e.filter(r=>F(r.status,t)===n).length}function bn(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Uu(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 _t(e,t,n){return[...e].sort((r,i)=>{let o=bn(r.item,t),s=bn(i.item,t);return o!==s?Number(o)-Number(s):Z(r.item,i.item,n)})}function Hu(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Nu(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Wu(e,t,n){if(e!==null)return;let r=n>0?["No executable recommendation: outcome gates require verification. Inspect gate_needed, or use pm next --include-gates to opt in."]:[];if(t.length>0){let i=t.find(o=>o.blockers.length>0);return[...r,i?`${t.length} item(s) are blocked; unblock the top one by closing ${i.blockers.map(o=>o.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return[...r,'pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}function Bu(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 Gu(e){try{let t=new Set(e.packing.included.map(o=>o.id)),n=e.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:t.has(o.id)})),r=new Set(n.map(o=>o.id));for(let o of Ke(e.result,"next"))r.has(o)||(n.push({id:o,rank:n.length+1,included:!1}),r.add(o));let i=await Ve({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});ze(e.result,i)}catch{e.result.warnings=gt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function qu(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=wn(e.readyRanking,e.featureStore),e.result.packing=yn(e.packing)),e.result.suggestions=Wu(e.recommended,e.blockedRows,e.gateCount),await Gu({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function zu(e,t,n){if(!n)return e;let r=hn(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 Ku(e,t,n,r,i,o,s,a){let d=e.filter(g=>!bn(g.item,t)),c=a||d.length===0?e:d,u=await Ye({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await mt(c.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:u.affinity}),f=await ft("next",l.candidates),h=_n(f,s,new Set,"next"),_=new Map(c.map(g=>[g.item.id,g]));return{projectedReady:f.ranked.map(g=>_.get(g.id)).filter(g=>g!==void 0),ranking:f,completedContainer:d.length===0&&!a,packing:h,featureStore:l}}function Eo(e,t){let n=e.assignee?.trim();return J(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Xp(e,t){let n=C(process.cwd(),t.path),r=await M(n),i=Eo(e,r.author_default),o=P(r.schema),s=D(r,x()),a=O(),d=ko(e.limit,"--limit",$u),c=mn(e.tokenBudget,Math.max(192,d*128)),u=ko(e.blockedLimit,"--blocked-limit",d),l=e.readyOnly===!0,f=typeof e.parent=="string"?e.parent.trim():"",h=await q(void 0,Uu(e,{excludeTerminal:!0}),t),_=await q(void 0,{excludeTerminal:!1,noTruncate:!0},t),w=zu(h.items,_.items,f),g=_.items,y=nt(w,g,o,s),b=he(g),k=ti(y,o,e,s),E=So(k.ready,r.author_default,i),Y=_t(E.available,b,o),R=[...y.blocked].sort(($,L)=>Z($.item,L.item,o)),{projectedReady:T,ranking:A,completedContainer:Pe,packing:je,featureStore:xt}=await Ku(Y,b,o,a,i,n,c,e.includeContainers===!0),te=T.map(($,L)=>De($,o,b,L+1)),ne=R.map(($,L)=>De($,o,b,L+1)),re=_t(k.decisions,b,o).map(($,L)=>De($,o,b,L+1)),U=_t(k.gates,b,o).map(($,L)=>De($,o,b,L+1)),ie=_t(y.containers,b,o).map(($,L)=>De($,o,b,L+1)),_e=Hu({projectedReady:T,readyRows:te,statusRegistry:o,now:a,completedContainer:Pe}),oe=Bu(re.length,E.held.length,d)??{};U.length>d&&(oe.gate_needed_total=U.length),ie.length>d&&(oe.containers_total=ie.length);let It={output_default:"toon",now:a,recommended:_e,ready:te.slice(1,d+1),decision_needed:re.slice(0,d),gate_needed:U.slice(0,d),containers:ie.slice(0,d),blocked:l?[]:ne.slice(0,u),held_by_others:E.held.slice(0,d),summary:{recommended:_e!==null,ready:te.length,blocked:ne.length,in_progress:ju(te,o),candidates:y.active_count,containers:y.container_count,decision_needed:re.length,gate_needed:U.length,held_by_others:E.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:f.length>0?f:null,limit:d,blocked_limit:u,ready_only:l,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:c},truncation:Object.keys(oe).length>0?oe:void 0};return qu({result:It,recommended:_e,blockedRows:ne,gateCount:U.length,candidatesWarnings:h.warnings,corpusWarnings:_.warnings,readyRanking:A,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:je,featureStore:xt})}function Qp(e){let t=["# pm next","",...Vu(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(...Me(n,r.map(i=>`- ${$e(i)}`),""));if(t.push(...Me("Recommended",Yu(e.recommended),"No ready work.")),t.push(...Me("Decision needed",(e.decision_needed??[]).map(n=>`- ${$e(n)}`),"No human-gated decisions.")),t.push(...Me("Ready",e.ready.map(n=>`- ${$e(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Me("Blocked",e.blocked.map(n=>`- ${Xu(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
8
+ `).trimEnd()}function Vu(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function Yu(e){return e?[`- ${$e(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Me(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Xu(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${$e(e)} blocked_by:${t}`}function $e(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="13e944b0-f049-55e5-8ff8-6335ce888b65")}catch{}})();function Qu(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function Ju(e,t){return e.map(({entry:n,version:r})=>{let i=new Set,o=Sr(n.patch);for(let s of o)i.add(Nt(s.path)),s.from&&i.add(Nt(s.from));return{index:r,...t?{version:t.offset===null?null:t.offset+r}:{},ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}function Zu(e){if(e[0]?.op!=="history_compact_baseline")return;let t=ve(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function el(e,t){let n=C(process.cwd(),t.path);await j(n);let r=await M(n),i=D(r,x()),o=e.trim()===Xe,s=o?Xe:Ar(e,r.id_prefix),a=await de(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?Cr(n):We(n,d);if(!a&&!await Kn(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Ir({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function ah(e,t,n){let r=fe(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await el(e,n),d=await B(i,s),c=Zu(d),u=a.agent_identity.identity_vocabulary,l=rt(a.agent_identity.harness_signals),f=ot({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},u,l),h=tl(d).filter(({entry:T})=>f(T)),_=Qu(h,r),w=_.map(({entry:T})=>T),g=t.compact===!0,y=g?Ju(_,c):void 0,b=t.provenance===!0?_.map(({entry:T,durableVersion:A})=>it(T,u,{itemId:s,version:A})):void 0,k=t.provenance===!0?"provenance":g?"compact":"full",E={compact:{compact_history:y},provenance:{provenance_history:b},full:{history:w}}[k],R={id:s,...E,compact:g,projection:{mode:k,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[k]},omission_receipt:qe("history",k),count:w.length,limit:r??null,version_addressing:c,...t.provenanceSummary===!0?{provenance_summary:st(h.map(({entry:T})=>T),u,l)}:{}};if((t.diff||t.field!==void 0)&&(R.diff=jr(d,{windowStartIndex:Math.max(0,d.length-w.length),field:t.field})),t.verify){let T=o?(await ue(o,{schema:a.schema})).document:void 0;if(R.verification=mi(d,T),s===Xe&&R.verification.ok){let A=await xr(C(process.cwd(),n.path));R.verification={...R.verification,ok:A.ok,errors:A.ok?R.verification.errors:[...R.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:A.ok,workspace_state_mismatches:A.mismatched_documents,workspace_state_missing:A.missing_documents,workspace_state_unreadable:A.unreadable_documents}}}return R}function tl(e){let t=ve(e,!0);return e.map((n,r)=>({entry:n,version:r+1,durableVersion:t===null?void 0:t+r+1}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4b4d4bb6-8a17-5544-a18c-ad3fc49a759e")}catch{}})();var Co=1e6,xo=20;function Io(e,t,n,r=xo){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 g of t){if(a+=1,a>Co)throw new p(`Child projection exceeded the ${Co.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(g)}let d=new Map(s.map(g=>[g.id.trim().toLowerCase(),g])),c=Qr(Xr(s,Yr())),u=new Set(c.children_by_parent.get(i)??[]);for(let g of s)g.parent?.trim().toLowerCase()===i&&u.add(g.id.trim().toLowerCase());let l=[...u].map(g=>d.get(g)),f=0;for(let g of l){let y=g.status.trim().toLowerCase();o[y]=(o[y]??0)+1,Q(y,n)||(f+=1)}l.sort((g,y)=>g.id.localeCompare(y.id));let h=l.slice(0,r).map(g=>({id:g.id,title:g.title,type:g.type,status:g.status,priority:g.priority})),_=l.length>h.length,w=r===0?xo:r;return{count:l.length,active:f,by_status:Object.fromEntries(Object.entries(o).sort(([g],[y])=>g.localeCompare(y))),sample:h,sample_limit:r,truncated:_,next_offset:_?h.length:null,continuation:_?`pm list --status all --parent ${e} --offset ${h.length} --limit ${w}`: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 nl=new Set(["event","meeting","reminder"]);function rl(e){return nl.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function vn(e){if(!rl(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]="88732a1d-ae5a-5dfb-93d6-9659cb6f05c3")}catch{}})();var ol=new Set(["epic","feature","milestone","plan"]),sl=new Set(Object.keys(Gn).map(e=>e.toLowerCase()));function Sn(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function al(e,t){let n=Sn(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"]:[],...vn(e)?["schedule"]:[]]}function Ao(e){let t=e.trim().toLowerCase();return t.length>0&&(ol.has(t)||!sl.has(t))}function To(e){return{ts:e.ts,author:e.author,message:e.message??null}}function cl(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?To(i):null,last_release:o?To(o):null}}function dl(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Mt.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function ul(e,t){let n=Sn(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:u,...l}=e;return{...l,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function ll(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 wt(e){return e.startsWith("item.")?e.slice(5):e}function fl(e,t,n){if(e===null)return;let r=$t(t),i=new Set(r),o=e.filter(s=>{let a=wt(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:ce(s),suggested_retry_args:s}})}}var ml=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function pl(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:ml.has(n)?[]:void 0}function hl(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Sn(e)},i={id:e.id};for(let o of t){let s=wt(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]=pl(n,r,s))}return i}function Oe(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function yt(e,t){return e.some(n=>{let r=wt(n);return r===t||r.startsWith(`${t}.`)})}function gl(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:ce(["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":dl(e.depth),treeDepth:e.tree===!0?G(e.treeDepth,"--tree-depth"):void 0,fields:ll(e.fields),fieldProjection:e.fields!==void 0}}async function _l(e,t,n){let r=C(process.cwd(),t.path);await j(r);let i=await M(r),o=D(i,x());if(n!==void 0){let d=await pi(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 de(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await Dr(r,e,i.id_prefix,o.type_to_folder);let a=await ue(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 yl(e,t,n,r){let i=X(t.schema).definitions.map(o=>o.metadata_key);if(fl(e,i,r),n&&yt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function kn(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?Oe(r,i):yt(r,i):n!=="brief"}async function wl(e,t){if(!t)return;let n=We(e.pmRoot,e.locatedId),r=await B(n,e.locatedId);return cl(e.metadata.assignee,e.historical?r.slice(0,e.historical.target.historyIndex+1):r)}function bl(e,t,n,r){let i=r||Oe(n,"linked.files"),o=r||Oe(n,"linked.tests"),s=r||Oe(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 vl(e,t){if(!t)return;let n=P(e.settings.schema),r=await le(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema);return Io(e.locatedId,r,n)}function kl(e,t,n,r){if(!r)return;let i=vn(t.metadata);if(i){if(n===null||Oe(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>wt(s)===`schedule.${o}`)))}}async function Sl(e,t,n,r){if(t.tree!==!0)return;let i=await q(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function Ah(e,t,n={}){let r=gl(n,e),i=await _l(e,t,n.at);yl(r.fields,i.settings,i.historical!==void 0,i.locatedId);let o=kn({...r,field:"body"}),s=kn({...r,field:"linked"}),a=kn({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?yt(r.fields,"children"):r.depth==="deep"&&Ao(i.metadata.type)),c=r.fieldProjection?yt(r.fields,"schedule"):r.depth!=="brief",u=await wl(i,a),l={item:r.fieldProjection?hl(i.metadata,r.fields):ul(i.metadata,r.depth)};o&&(l.item.body=i.body),bl(l,i,r.fields,s),u&&(l.claim_state=u),kl(l,i,r.fields,c);let f=await vl(i,d);f!==void 0&&(l.children=f);let h=await Sl(i,n,r.treeDepth,t);if(h!==void 0&&(l.tree=h),i.historical&&(l.reconstructed=!0,l.as_of_version=i.historical.as_of_version,l.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await ur({pmRoot:i.pmRoot,author:J(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return sr(l,al(i.metadata,i.body)),l}var Rh={shouldAutoIncludeGetChildren:Ao};(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 Ro(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 El=[{optionKey:"status",summaryKey:"status",normalize:e=>Ro(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 Le(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,u={};return li(u,r,El),Object.assign(u,Gt(r)),Object.assign(u,Bt(r)),n!==void 0&&n!=="or"&&(u.match_mode=n),i&&(u.include_linked=!0),o&&(u.title_exact=!0),s&&(u.phrase_exact=!0),a>0&&(u.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(u.hybrid_semantic_weight=d),r.limit!==void 0&&(u.limit=r.limit),c&&Object.keys(c).length>0&&(u.runtime_filters=c),u}function Ne(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:u,runtimeFieldFilters:l}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||Ro(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),...Gt(r),...Bt(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:u.enabled,rerank_model:u.model,rerank_top_k:u.top_k,limit:f(r.limit),runtime_filters:l}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function Cl(e){return Ge("search",{query:e.query.trim(),mode:e.mode,options:Be(e.searchOptions,nr)})}function Fo(e){let t=or(e.sorted,{cursor:e.searchOptions.after,fingerprint:Cl(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 Do(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 bt(e){return e===!0}function Mo(e){return Jn(e,0,1)??void 0}function $o(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 Oo(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 ge(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return W(n,new Date,t)}function V(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function En(e,t){if(e!==void 0)return W(e,new Date,t)}function xl(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 Cn(e,t="<query>"){let n=e.compact===!0,r=e.full===!0,i=xl(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:ce(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return n?{mode:"compact",fields:[...Ot]}:r?{mode:"full",fields:[]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function xn(e,t,n="<query>"){if(e.mode!=="fields")return;let r=Lt(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:ce(s),suggested_retry_args:s}})}}function In(e){let t=V(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function Tn(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function An(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Rn(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Fn(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 kt from"node:fs/promises";import Nn 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 Dn=4,Il=20,Tl=200,Al=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Mn(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 Rl(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 Fl(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 Lo(e,t=Dn){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=me(n);if(r.length===0)return[n];let i=r.filter(a=>!Al.has(a.toLowerCase())),o=r.map(a=>Rl(a)),s=i.map(a=>Fl(a));return Mn([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function No(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Mn(t.filter(n=>typeof n=="string"),Dn):[]}function Po(e,t,n){return Mn([...e,...t],Math.max(1,n))}function jo(e,t){let r=e.search?.query_expansion,i=ye(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:Dn}}function Uo(e,t){let r=e.search?.rerank,i=ye(r?.model),s=Qn(r?.top_k)??Il;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Tl,s)}}function Ho(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=ye(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 Dl(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Wo(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Ml(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=Dl(e,t),i=Wo(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 Bo(e,t,n,r,i){if(r.length===0)return new Map;let o=ye(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await tt(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let u=Wo(c),l=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],_=d[f+1];if(!_)continue;let w=Ml(c,_,u);l.set(h.id,Math.max(0,Math.min(1,(w+1)/2)))}return l}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var $l=1.2,Ol=.75;function $n(e){return me(e)}function Ll(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function qo(e){let t=[],n=new Map,r=0;for(let o of e){let s=$n(o.text),a=Ll(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 Nl(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function zo(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,Nl(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 u=s.termFrequencies.get(d);if(u===void 0)continue;let l=1-n.b+n.b*s.length/e.averageDocumentLength,f=u+n.k1*l;a+=c*(u*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function Go(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Ko(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 Vo(e){let t=e?.search?.bm25;return{k1:Go(t?.k1,$l,0,1e3),b:Go(t?.b,Ol,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 Pl=2,jl=120,Ul=6,Hl=40,Wl=1e3,Bl=900,Gl="\xAB",ql="\xBB",Yo=60,Jo=["tag","status","type","priority"];function Zo(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 es(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Zo(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 ts(e,t){let n=es(t);return`search_${e}_fallback:${n}:using_keyword_mode`}function zl(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 ns(e,t,n){try{let r=await qr(e);r.warnings.length>0&&n.push(...r.warnings);let i=Jr(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),r.entries);if(i.length===0)return;let o=zl(x());n.push(...Kl(i.length,o)),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 run '${o.command}'${o.follow_up_command?`, then '${o.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
9
+ `)}catch{}}function Kl(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 jg={applyFilters:cs,applyExactQueryFilters:as,applyInlineQueryFilters:is,buildHitHighlights:hs,buildVerboseSearchFilters:Ne,buildExplicitSemanticFallbackWarning:ts,buildCompactSearchFilterSummary:Le,buildHybridLexicalScore:ys,buildRerankCorpus:Is,buildSemanticHits:Ss,classifyImplicitSemanticFallbackReason:es,collectErrorCauseCodes:Zo,collectExactPhraseFields:os,collectLinkedPaths:ds,combineHybridHits:Hn,computeBuiltInBm25Hits:Cs,computeSemanticOrHybridHits:Ts,resolveBuiltInBm25Mode:Es,countOccurrences:jn,dependencyEntries:Pn,documentContainsExactPhrase:ss,emptySearchResult:ws,highlightFieldSnippet:ps,loadDocuments:As,markTokenRuns:ms,parseInlineQueryFilters:rs,maybeEmitVectorIndexStaleWarning:ns,loadLinkedCorpus:ls,mergeVectorHitsById:xs,normalizeExtensionProviderHits:ks,normalizeScoreMap:On,parseProjectionConfig:Cn,parseTimestampWindow:ge,parseTokens:In,projectSearchHits:Fs,readSearchFieldValue:Rs,requireSemanticDependencies:Un,resolveExtensionSearchProvider:bs,resolveExtensionSearchProviderByName:Ct,resolveExtensionVectorAdapter:vs,resolveLinkedCorpusRoots:us,scoreDocument:gs,sortHits:_s,stringArray:Et,textEntries:ee,validateSearchProjectionFields:xn};function rs(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=Jo.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 is(e,t,n){let r={...e};for(let i of Jo){let o=t[i];if(o!==void 0){if(Dt(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Et(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function ee(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function Pn(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function os(e){let t=e.metadata;return[t.title,t.description,t.status,Et(t.tags).join(" "),e.body,ee(t.comments).map(n=>n.text).join(" "),ee(t.notes).map(n=>n.text).join(" "),ee(t.learnings).map(n=>n.text).join(" "),Pt(t).join(" "),jt(t).join(" "),Pn(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),Ut(t)]}function ss(e,t){return os(e).some(n=>V(n).includes(t))}function as(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&V(r.metadata.title)!==t||n.phraseExact&&!ss(r,t)))}function Vl(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 Yl(e,t,n){let r=Se(e.assignee,{label:"--assignee"});Vl(r);let i=di(e),o=ui(e);return{typeFilter:ni(e.type,t),tagFilter:Se(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:ri(e.priority),deadlineBefore:En(e.deadlineBefore,"deadline-before"),deadlineAfter:En(e.deadlineAfter,"deadline-after"),updatedAfter:ge(e.updatedAfter,"updated-after"),updatedBefore:ge(e.updatedBefore,"updated-before"),createdAfter:ge(e.createdAfter,"created-after"),createdBefore:ge(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:Se(e.sprint,{label:"--sprint"}),releaseFilter:Se(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:oi(i),contentFieldFilters:o,contentFiltersActive:ai(o)}}function Xl(e,t){return Ql(e,t)&&Jl(e,t)&&Zl(e,t)}function Ql(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&&!Et(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Jl(e,t){return dr(e,t)}function Zl(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 ef(e,t,n,r){let i=e.metadata;return!(!Xl(i,t)||!et(i,n)||t.missingMetadataActive&&!si(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!ci(i,t.contentFieldFilters))}function cs(e,t,n,r,i,o){let s=Yl(t,n,i);return e.filter(a=>ef(a,s,r,o))}function jn(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 tf(e){return me(e)}function ds(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 Xo(e){let t=Nn.resolve(e);try{let n=await kt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function us(e,t){let[n,r]=await Promise.all([Xo(e),Xo(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function ls(e,t){let n=ds(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=Nn.resolve(o.resolved,i.path);if(!Rt(o.resolved,s))continue;let a;try{a=await kt.realpath(s)}catch{continue}if(Rt(o.realpath,a))try{await we({path:s,scope:i.scope}),r.push(await kt.readFile(s,"utf8"))}catch{}}return r.join(`
10
+ `)}var fs=[{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=>Et(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=>ee(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>ee(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>ee(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Pt(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>jt(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>Pn(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Ut(e.metadata)}],nf=new Map(fs.map(e=>[e.name,e]));function rf(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ms(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(rf);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Gl}${i}${ql}`)}function ps(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let u of t){if(u.length===0)continue;let l=n.indexOf(u);l>=0&&(r<0||l<r)&&(r=l,i=u.length)}if(r<0)return null;let o=Math.max(0,r-Yo),s=Math.min(e.length,r+i+Yo),a=ms(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function hs(e,t,n){let r=[];for(let i of t){let o=nf.get(i);if(o===void 0)continue;let s=ps(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function of(e,t,n){return[...fs.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function sf(e,t,n){let r=V(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=V(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?Wl:Bl,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function af(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=jn(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function cf(e,t,n,r){V(e.title)===t&&(r.score+=jl,r.matched.add("title"));for(let o of n){let s=jn(V(o.value),t);s>0&&(r.score+=s*o.weight*Ul,r.matched.add(o.name))}}function gs(e,t,n,r,i,o,s=!1){let a=e.metadata,d=sf(a,n,o);if(d)return d;let c=new Map;for(let w of tf(a.title))c.set(w,(c.get(w)??0)+1);let u=of(e,r,i),l={score:0,matched:new Set,matchedTokens:new Set};af(t,c,u,i,l);let f=new Set(t),h=f.size>0&&l.matchedTokens.size===f.size;return s&&f.size>1&&h&&(l.score+=Hl),t.length>=Pl&&n.includes(" ")&&cf(a,n,u,l),l.score<=0?null:{item:a,score:l.score,matched_fields:[...l.matched].sort((w,g)=>w.localeCompare(g)),matched_all_terms:h}}function _s(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=Q(n.item.status,t),s=Q(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 ys(e,t,n,r,i,o,s,a=!1){return gs(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function On(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 ws(e,t,n,r,i,o,s,a,d,c,u,l,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let g=Le({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:l});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:g,...u.length>0?{warnings:u}:{}}}let w=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:Ne({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:l??{}}),projection:{mode:c.mode,fields:w},now:O(),...u.length>0?{warnings:u}:{}}}function Un(e,t,n,r){if(!t.active)throw new p(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!n.active&&!r)throw new p(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,m.USAGE);return{provider:t.active,vectorStore:n.active??null}}var H=Dt;function Ct(e){let t=x(),n=Nr(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,i=r.query,o=r.queryExpansion??r.query_expansion,s=r.rerank,a=H(r.name)??H(n.definition.name)??e;if(!a)return null;let d={providerName:a,...typeof i=="function"?{query:i}:{},...typeof o=="function"?{queryExpansion:o}:{},...typeof s=="function"?{rerank:s}:{}};return!d.query&&!d.queryExpansion&&!d.rerank?null:d}function bs(e){let t=H(e.search?.provider),n=Ct(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function vs(e){let t=x(),n=H(e.vector_store?.adapter),r=Pr(t,n);if(!r)return null;let i=r.runtime_definition??r.definition,o=i.query;if(typeof o!="function")return null;let s=i.upsert;return{adapterName:H(i.name)??H(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function ks(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=H(s.id),d=s.score;if(!a||typeof d!="number"||!Number.isFinite(d)||i.has(a))continue;let c=n.get(a);if(!c)continue;let u=s.matched_fields,l=Array.isArray(u)&&u.every(f=>typeof f=="string")?[...new Set(u.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:l})}return o}function Ss(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 St(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,u)=>Math.max(c,u.score),0),s=n.sort((c,u)=>u.score-c.score),a=o+s.length+1;return[...s.map((c,u)=>({...c,score:a-u,matched_fields:["id"]})),...i]}function Hn(e,t,n,r,i="semantic"){let o=new Map(n.map(l=>[l.item.id,l.score])),s=new Map(n.map(l=>[l.item.id,l.matched_fields])),a=On(t),d=On(o),c=new Set([...t.keys(),...o.keys()]),u=1-r;return[...c].map(l=>{let f=e.get(l),h=a.get(l)??0,_=d.get(l)??0,w=h*r+_*u;if(w<=0)return null;let g=new Set;t.has(l)&&g.add(i);for(let y of s.get(l)??[])g.add(y);return{item:f.metadata,score:w,matched_fields:[...g].sort((y,b)=>y.localeCompare(b))}}).filter(l=>l!==null)}function Es(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Cs(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Ko(Br(s,{fields:e.corpusFields}))})),n=qo(t),r=zo(n,$n(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 St(s,e.keywordHits)}let o=Hn(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return St(o,e.keywordHits)}function xs(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 Is(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
11
+ `)}async function df(e,t){let n=e.queryExpansion.enabled?Lo(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 Po(r,No(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 uf(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 Ht(e.vectorStore,t,n,r)}if(e.vectorStore)return await Ht(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 lf(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:Is(o)}:null}).filter(i=>i!==null)}async function ff(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=Ho(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 mf(e,t,n){let r=await ff(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Bo(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function pf(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 hf(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=lf(n,r,e.rerank.top_k),o=await mf(e,t,i);return o&&o.size>0?pf(n,o):n}async function Ts(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 df(e,i),s=await tt(e.provider,o,n),a=await Promise.all(s.map(async _=>await uf(e,_,t,r))),d=xs(a),c=new Map(e.filteredDocuments.map(_=>[_.metadata.id,_])),{semanticHits:u,semanticScores:l}=Ss(d,c),f=l.size;if(e.requestedMode==="semantic")return{hits:St(u,e.keywordHits),vectorMatchCount:f};let h=await hf(e,i,Hn(c,l,e.keywordHits,e.hybridSemanticWeight),c);return{hits:St(h,e.keywordHits),vectorMatchCount:f}}async function As(e,t,n,r){let i=zn(x()),o=async(c,u,l)=>{let f=async(h,_)=>{await we({path:h,scope:"project"});let w=await kt.readFile(h,"utf8");return _r(w,{format:_,schema:r,extensionFieldNames:i,onWarning:y=>s.push(y)}).body};try{return await f(u,l)}catch{let h=l==="toon"?"json_markdown":"toon",_=Ft(e,c.type,c.id,h,n);try{return await f(_,h)}catch{return s.push(`item_list_item_read_failed:${Nn.relative(e,_)}`),""}}},s=[],a=await Rr(e,t,n,s,r),d=[];if(a.length===0){let c=await Fr(e,t,n,s,r);for(let u of c){let l=Ft(e,u.type,u.id,t,n),f=await o(u,l,t);d.push({metadata:u,body:f})}return{documents:d,warnings:[...new Set(s)].sort((u,l)=>u.localeCompare(l))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let u=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:u})}return{documents:d,warnings:[...new Set(s)].sort((c,u)=>c.localeCompare(u))}}function Rs(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 Fs(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]=Rs(n,i);return r})}function gf(e){let t=Ct(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function _f(e){let t=Ct(H(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function yf(e,t){let n=[],r=rs(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=is(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:bt(s.includeLinked),titleExact:bt(s.titleExact),phraseExact:bt(s.phraseExact),matchMode:$o(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Oo(s.minScore),countOnly:s.count===!0,tokens:In(o),normalizedQuery:V(o),limit:fe(s.limit),projection:Cn(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function wf(e,t){let n=C(process.cwd(),t.path);await j(n);let r=await M(n),i=Ur(r).settings,o=P(i.schema),s=X(i.schema);xn(e.projection,s,e.query);let a=Ze(e.options,s,"search"),d=D(i,x()),c=Hr(i),u=Gr(i,n),l=bs(i),f=vs(i),h=Mo(e.options.semanticWeight),_=jo(i,c.active?.name??null),w=Uo(i,c.active?.model??H(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:Tn(i),scoreThreshold:e.minScoreOverride??An(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??Rn(i),tuning:Fn(i),providerResolution:c,vectorResolution:u,extensionSearchProvider:l,extensionVectorAdapter:f,bm25Mode:Es({configuredProvider:H(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:l!==null}),queryExpansion:_,queryExpansionExtension:gf(_),rerank:w,rerankExtension:_f(i),effectiveMode:Do(e.options.mode)}}async function bf(e,t){let n=await As(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=Je(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=ii(t.statusRegistry),o=cs(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:as(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function vf(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await us(i,Xn(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await ls(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function kf(e,t,n){let r=await vf(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>ys(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 Qo(e,t){return ws(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 Sf(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=Cs({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:Wr(t.settings),bm25Params:Vo(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 Ef(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 ks(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 Cf(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 xf(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await ns(e.pmRoot,n,r),e.extensionSearchProvider||Un(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function If(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await Sf(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await xf(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let u=new Map(r.map(l=>[l.metadata.id,l]));if(a=await Ef(t,n,r,u)??a,a===i){let{provider:l,vectorStore:f}=Un(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await Ts({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:l,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=Cf(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(u){return o.push(ts(n.effectiveMode,u)),{effectiveMode:"keyword",hits:i}}}function Tf(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return Ln({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Le({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 Ln({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Ne({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:n},now:O()},e.warnings)}function Ln(e,t){return t.length===0?e:{...e,warnings:t}}function vt(e,t){return t?{...e,workspace_memory:t}:e}function Af(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:hs(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 Rf(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return Ln({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Le({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:Ne({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:i.mode,fields:a},now:O(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Ff(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function Ug(e,t,n){Ff(t);let r=yf(e,t),i=await wf(r,n),o=await bf(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await pt(o.allDocuments.map(E=>E.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:O()});s.push(...a.warnings);let d=oo(a,r.query);i.effectiveMode==="hybrid"&&i.semanticWeightProvided&&i.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let c={query:r.query,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:i.scoreThreshold,hybridSemanticWeight:i.hybridSemanticWeight,queryExpansion:i.queryExpansion,rerank:i.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:i.runtimeFieldFilters};if(i.effectiveMode==="keyword"&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return vt(Qo({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let u=await kf(r,i,o.filteredDocuments),l=await If({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:u,warnings:s,modeWasExplicit:r.modeWasExplicit});if(l.effectiveMode!=="keyword"&&l.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return vt(Qo({...c,effectiveMode:l.effectiveMode},r.countOnly),d);let f=l.hits.filter(E=>E.exact_id_match===!0||E.score>=i.scoreThreshold),h=_s(f,i.statusRegistry),_=h.length,w=Fo({sorted:h,query:r.query,mode:l.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),g={...c,effectiveMode:l.effectiveMode};if(r.countOnly)return vt(Tf(g,_),d);let{hits:y,projection:b}=Af(r,o.filteredDocuments,w.limited),k=Fs(y,b);return vt(Rf(g,k,_,w.limited.length,b,w.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]="51a84d98-6b3c-55ad-81f8-81928aa6e537")}catch{}})();async function qg(e,t={}){let n=await fi({pmRoot:C(process.cwd(),e.path),exhaustive:t.exhaustive,...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{$s as a,qt as b,Df as c,Hs as d,Ws as e,Mf as f,pi as g,rt as h,Bs as i,it as j,st as k,fm as l,wi as m,pm as n,wm as o,bm as p,Im as q,Tm as r,Am as s,Bi as t,on as u,lt as v,Ec as w,Ki as x,Ac as y,ft as z,Rc as A,Fc as B,Oc as C,Lc as D,Nm as E,Nc as F,Vi as G,sn as H,an as I,Kc as J,Zc as K,Vm as L,cn as M,dn as N,mt as O,id as P,cd as Q,pt as R,hd as S,io as T,gd as U,oo as V,ao as W,up as X,lp as Y,fp as Z,mp as _,co as $,_d as aa,Ed as ba,Te as ca,Mp as da,mn as ea,Id as fa,Td as ga,hn as ha,Z as ia,_n as ja,yn as ka,wn as la,he as ma,Fe as na,gt as oa,$p as pa,Tu as qa,Op as ra,Mu as sa,Kp as ta,Vp as ua,Yp as va,Xp as wa,Qp as xa,ah as ya,Co as za,xo as Aa,Io as Ba,Ah as Ca,Rh as Da,Le as Ea,Ne as Fa,Cl as Ga,Fo as Ha,Tn as Ia,An as Ja,Rn as Ka,Fn as La,Zo as Ma,es as Na,zl as Oa,Kl as Pa,jg as Qa,Ug as Ra,qg as Sa};
12
+ //# sourceMappingURL=chunk-SGQST3PQ.js.map
@@ -0,0 +1,10 @@
1
+ import{$ as k,$c as xe,Jc as ke,Mb as be,Na as le,Ta as fe,aa as x,ad as ve,la as M,tb as me,ub as _e,vb as pe,wb as ge,xb as ye,yb as he,zb as we,zc as W}from"./chunk-CHC2IDXA.js";import bt from"node:crypto";import{AsyncLocalStorage as kt}from"node:async_hooks";(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]="aacc48ae-e9b2-5c8e-945f-89d05aff48e8")}catch{}})();var Ie=new kt,Ee=1024;function Ce(){let e=Ie.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function wr(e){let t=Ie.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>Ee)throw new Error(`Reproducible token length must be an integer between 0 and ${Ee}`);let n="";for(;n.length<e;){let r=bt.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}return 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]="fb1102d4-1beb-5de8-87e6-af2efebafe39")}catch{}})();var xt=/^([+-]?)(\d+)([hdwm])$/i,vt=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Et=/^(\d{4})(\d{2})(\d{2})$/,It=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ct=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,At=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,St=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Se(){return Ce()??new Date().toISOString()}function Ir(e){return Number.isFinite(Date.parse(e))}function Tt(e){let t=St.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,d]=t,[f,m,u,l,_,p]=[n,r,o,i,s,a].map(Number);return m>=1&&m<=12&&u>=1&&u<=te(f,m-1)&&l<=23&&_<=59&&p<=59&&(c===void 0||Number(c)<=23)&&(d===void 0||Number(d)<=59)}function Cr(e){let t=/\.(\d+)(?:Z|[+-]\d{2}:\d{2})$/iu.exec(e)?.[1];return Tt(e)&&(t===void 0||/^\d{0,3}0*$/u.test(t))}var Ot=1e4,z=new Map;function Ae(e){let t=z.get(e);if(t!==void 0)return t;let n=Date.parse(e);return z.size>=Ot&&be(z),z.set(e,n),n}function N(e,t){let n=Ae(e),r=Ae(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Ar(e,t){return!(t.deadlineBefore&&(!e.deadline||N(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||N(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&N(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&N(e.updated_at,t.updatedBefore)>0||t.createdAfter&&N(e.created_at,t.createdAfter)<0||t.createdBefore&&N(e.created_at,t.createdBefore)>0)}function Q(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function ee(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function Rt(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Dt(e){let t=[],n=d=>Rt(t,e,d),r=Et.exec(e);if(r){let[,d,f,m]=r;n(`${d}-${f}-${m}`)}let o=It.exec(e);if(o){let[,d,f,m,u,l,_,p,g]=o,b=_?`:${_}`:"";n(`${d}-${f}-${m}T${u}:${l}${b}${Q(p)}${ee(g)}`)}let i=Ct.exec(e);if(i){let[,d,f,m,u,l,_]=i,p=u?`:${u}`:"";n(`${d}T${f}:${m}${p}${Q(l)}${ee(_)}`)}let s=At.exec(e);if(s){let[,d,f,m,u,l,_]=s,p=u?`:${u}`:"";n(`${d}T${f}:${m}${p}${Q(l)}${ee(_)}`)}let a=10,c=e.slice(0,a);if(Nt(c)){let d=a;for(;d<e.length&&$t(e[d]);)d+=1;d<e.length&&n(`${c}T${e.slice(d)}`)}return t}function Mt(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Dt(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Nt(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let r=n.charCodeAt(0);if(r<48||r>57)return!1}return!0}function $t(e){return e?e===" "||e===" "||e===`
2
+ `||e==="\r"||e==="\f"||e==="\v":!1}function te(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Lt=["January","February","March","April","May","June","July","August","September","October","November","December"],Pt=/^(\d{4})-(\d{2})-(\d{2})/,Bt=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Ut(e,t,n){let r=Pt.exec(t)??Bt.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new x(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,k.USAGE);let c=te(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Lt[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,k.USAGE)}function Ft(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,te(i,s));return n.setUTCFullYear(i,s,a),n}function Sr(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=xt.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,c=o[3].toLowerCase();if(c==="m")return Ft(t,a).toISOString();let d=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*d).toISOString()}Ut(e,r,n);let i=Mt(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=vt.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new x(`Invalid ${s} value "${e}". ${a}`,k.USAGE)}return new Date(i).toISOString()}import{randomUUID as wn}from"node:crypto";import{constants as L}from"node:fs";import{lstat as Qe,mkdir as bn,open as tt,rename as kn,rm as xn}from"node:fs/promises";import X from"node:path";import{constants as Vt}from"node:fs";import E from"node:fs/promises";import j from"node:path";import{randomUUID as re}from"node:crypto";import{existsSync as Wt}from"node:fs";import{AsyncLocalStorage as zt}from"node:async_hooks";import C 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]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function Mr(){let e=Promise.resolve(),t=new Set;return{async read(n){let r=e,o,i=new Promise(s=>{o=s});t.add(i),await r;try{return await n()}finally{t.delete(i),o()}},write(n){let o=Promise.all([e,...t]).then(()=>n());return e=o.then(()=>{},()=>{}),o}}}function Gt(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(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]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var $=null,Oe=null,qt=null,Ht=null,ne=null,jt=null,Re=null,Xt=null;var Yt=[],De=new zt;function y(){return De.getStore()}function jr(e){return De.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Kt=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Te(e){let t=C.resolve(e);for(;;){if(Wt(C.join(t,".git")))return t;let n=C.dirname(t);if(n===t)return;t=n}}function Jt(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Te(t)??C.resolve(t),r=Te(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=C.relative(n,C.resolve(e)),i=o.length>0&&!o.startsWith(`..${C.sep}`)&&o!==".."&&!C.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(C.sep).join("/")}:{}}}function Xr(e){let t=y();if(t){t.hooks=e;return}$=e}function Yr(e){let t=y();if(t){t.commands=e;return}Oe=e}function Kr(e){let t=y();if(t){t.parsers=e;return}qt=e}function Jr(e){let t=y();if(t){t.preflight=e;return}Ht=e}function Vr(e){let t=y();if(t){t.services=e;return}ne=e}function Zr(e){let t=y();if(t){t.renderers=e;return}jt=e}function Qr(e){let t=y();if(t){t.registrations=e;return}Re=e}function eo(){let e=y();return e?e.registrations:Re}function to(e){if(!e)return;let t=y();t?t.affectedItems.push(e):Yt.push(e)}function no(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let r=e;for(let o of t){if(typeof o!="string")continue;let i=o.startsWith("unset:")?o.slice(6):o;i==="id"||i==="type"||i==="status"||Kt.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function Me(e){let t=y(),n=t?t.hooks:$;return n?_e(n,e):[]}async function ro(e){let t=y(),n=t?t.hooks:$;n&&await me(n,e)}async function Ne(e){let t=y(),n=t?t.hooks:$;return n?pe(n,e):[]}function oo(){let e=y();return((e?e.hooks:$)?.onRead?.length??0)>0}async function io(e){let t=y(),n=t?t.hooks:$;return n?ge(n,e):[]}async function so(e){let t=y(),n=t?t.commands:Oe;return n?ye(n,{...e,...Jt(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function $e(e,t){let n=y(),r=n?n.commandContext:Xt;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function q(e,t){let n=y(),r=n?n.services:ne;return r?we(r,$e(e,t)):{handled:!1,result:t,warnings:[]}}function ao(e,t){let n=y(),r=n?n.services:ne;return r?he(r,$e(e,t)):{handled:!1,result:t,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]="b21a63b8-9da9-5c7c-b288-3a2dae342bef")}catch{}})();function Zt(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.token,a=n.created_at,c=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||s!==void 0&&(typeof s!="string"||s.trim().length===0)||typeof a!="string"||typeof c!="number"||!Number.isFinite(c)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,...typeof s=="string"?{token:s}:{},created_at:a,ttl_seconds:c},warnings:[]}}async function H(e,t=!0){try{let n=await E.readFile(e,"utf8");return t&&await Ne({path:e,scope:"project"}),Zt(n)}catch(n){return M(n)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function A(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Qt(e,t,n=process.platform){if(A(e,"EEXIST"))return!0;if(!A(e,"EPERM")&&!A(e,"EACCES")&&!A(e,"EBUSY"))return!1;try{return await E.lstat(t),!0}catch(r){if(n!=="win32"||!M(r)&&!A(r,"EPERM")&&!A(r,"EACCES")&&!A(r,"EBUSY"))return!1}try{return await E.access(j.dirname(t),Vt.W_OK),!0}catch{return!1}}async function Ge(e,t){await Me({path:e,scope:"project",op:t})}function en(e,t,n,r=re()){return{id:e,pid:process.pid,owner:t,token:r,created_at:Se(),ttl_seconds:n}}async function tn(e,t,n,r,o){await E.mkdir(j.dirname(e),{recursive:!0});let i=await E.open(e,"wx");try{await i.writeFile(`${JSON.stringify(en(t,n,r,o),null,2)}
3
+ `,"utf8")}finally{await i.close()}await Ge(e,"lock:create")}async function We(e,t){try{return await E.unlink(e),await Ge(e,t),!0}catch{return!1}}async function nn(e,t,n,r){let o=Date.now(),i=qe;for(;;){let s=await Ve(e,t);if(s!==null){try{let d=await H(e,!1);Le(d.info,t,n,r)&&await We(e,"lock:release")}finally{await s()}return}let a=await H(e,!1);if(!Le(a.info,t,n,r))return;let c=Date.now()-o;if(c>=Pe)return;await Xe(Math.min(i,Pe-c)),i=Math.min(i*2,oe)}}function Le(e,t,n,r){return e?.id===t&&e.pid===process.pid&&e.owner===n&&e.token===r}function ze(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function rn(e){return e?.owner?` (owner ${e.owner})`:""}var qe=25,oe=200,on=250,sn=3,an=".stale-cleanup",He="owner.json",je=1e4,Pe=je+oe,cn=60*6e4;function Be(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function dn(e){let t=process.env.PM_LOCK_WAIT_MS,n=Be(t);if(n!==void 0)return n;let r=Be(e);return r!==void 0?r:0}function Xe(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function Ye(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new x(`Item ${e} is locked${rn(t)}${r}`,k.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:on}})}function un(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function ln(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new x(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,k.CONFLICT)}}function fn(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,r=n.pid,o=n.token,i=n.process_start_identity;return typeof r!="number"||!Number.isInteger(r)||r<=0||typeof o!="string"||o.length===0||i!==void 0&&(typeof i!="string"||!/^\d+$/u.test(i))?null:{pid:r,token:o,...typeof i=="string"?{process_start_identity:i}:{}}}async function Ke(e){try{return fn(await E.readFile(j.join(e,He),"utf8"))}catch{return null}}function mn(e){if(!Number.isSafeInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return!A(t,"ESRCH")}}function _n(e){let t=e.lastIndexOf(")");if(t<0)return null;let n=e.slice(t+2).trim().split(/\s+/u)[19];return n!==void 0&&/^\d+$/u.test(n)?n:null}async function Je(e){try{return _n(await E.readFile(`/proc/${e}/stat`,"utf8"))}catch{return null}}async function pn(e=process.pid){let t=await Je(e);return{pid:e,...t===null?{}:{process_start_identity:t}}}async function gn(e,t,n){if(!mn(e.pid))return!1;let r=await Je(e.pid);return e.process_start_identity!==void 0&&r!==null?r===e.process_start_identity:t<=n}async function ie(e){try{return await E.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Ue(e,t){let n=await Ke(e);n===null||n.token!==t||await ie(e)}async function Fe(e){try{await E.mkdir(e)}catch(n){return A(n,"EEXIST"),null}let t={...await pn(),token:re()};try{await E.writeFile(j.join(e,He),`${JSON.stringify(t)}
4
+ `,"utf8")}catch{return await ie(e),null}return t}async function yn(e){let t;try{let r=await E.stat(e);if(t=Date.now()-r.mtimeMs,t<=je)return!1}catch(r){return M(r)}let n=await Ke(e);return n!==null&&await gn(n,t,cn)?!1:ie(e)}async function Ve(e,t){let n=`${e}${an}`,r=await Fe(n);if(r!==null)return async()=>Ue(n,r.token);if(!await yn(n))return null;let o=await Fe(n);return o===null?null:async()=>Ue(n,o.token)}async function hn(e){let t=await Ve(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await H(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!ze(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(ln(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=sn)throw Ye(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await We(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function Ze(e,t,n,r,o=!1,i=!0,s){let a=await q("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let _=un(a.result);if(_)return async()=>{await Promise.resolve(_()),await q("lock_release",{pm_root:e,id:t,owner:r})}}let c=le(e,t),d=dn(s),f=Date.now(),m=0,u=qe,l=re();for(;;)try{return await tn(c,t,r,n,l),async()=>{await nn(c,t,r,l),await q("lock_release",{pm_root:e,id:t,owner:r})}}catch(_){if(!await Qt(_,c))throw new x(`Failed to acquire lock for ${t}: ${fe(_)}`,k.GENERIC_FAILURE);let p=await H(c);if(ze(p.info,n)){let b=await hn({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:m,waitBudgetMs:d,startedAtMs:f,fallbackLockInfo:p});if(p=b.lockInfo,b.staleRemovalCounted&&(m+=1),b.shouldRetryCreate)continue}let g=Date.now()-f;if(d===0||g>=d)throw Ye(t,p.info,d===0?0:g);await Xe(Math.min(u,d-g)),u=Math.min(u*2,oe)}}(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]="f3af7f8f-a462-5eb4-af08-c64c3c327e62")}catch{}})();var S={max_serving_rows:256,max_bytes:262144,max_event_bytes:32768,retained_byte_fraction:.5,max_events:2048,retention_days:30},h=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function R(e){let t=Date.parse(e.now??new Date().toISOString());if(!Number.isFinite(t))throw new h("Context usage now must be a valid timestamp");return{iso:new Date(t).toISOString(),ms:t}}function nt(e){let t=e.maxBytes??S.max_bytes,n=e.maxEvents??S.max_events,r=e.retentionDays??S.retention_days;if(!Number.isSafeInteger(t)||t<1024||t>S.max_bytes||!Number.isSafeInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new h("Context usage retention requires positive maxEvents and retentionDays, and maxBytes from 1024 through 262144");return{maxBytes:t,maxEvents:n,cutoff:R(e).ms-r*864e5}}async function rt(e,t){if(!(await Qe(X.dirname(e))).isDirectory())throw new h("Context usage runtime must be a real directory");try{if((await Qe(e)).isSymbolicLink())throw new h("Context usage ledger must not be a symbolic link")}catch(r){if(!M(r))throw r}let n=await tt(e,t|L.O_NOFOLLOW|L.O_NONBLOCK,384);try{let r=await n.stat();if(!r.isFile()||r.nlink!==1)throw new h("Context usage ledger must be an unshared regular file");return n}catch(r){throw await n.close(),r}}async function Y(e){let t=nt(e);try{let n=await rt(X.join(e.pmRoot,"runtime","context-usage.jsonl"),L.O_RDONLY);try{let r=(await n.stat()).size,o=Math.max(0,r-t.maxBytes),i=Buffer.alloc(Math.min(r,t.maxBytes)),{bytesRead:s}=await n.read(i,0,i.length,o),a=i.subarray(0,s).toString("utf8");return(o>0?a.includes(`
5
+ `)?a.slice(a.indexOf(`
6
+ `)+1):"":a).split(`
7
+ `).flatMap(d=>{try{let f=JSON.parse(d);return f&&Date.parse(f.at)>=t.cutoff?[f]:[]}catch{return[]}}).slice(-t.maxEvents)}finally{await n.close()}}catch{return[]}}function et(e,t,n){let r=[],o=0;for(let i=e.length-1;i>=0&&r.length<n;i-=1){let s=`${JSON.stringify(e[i])}
8
+ `;if(o+=Buffer.byteLength(s),o>t)break;r.push(s)}return r.reverse().join("")}async function F(e,t,n){let r=nt(e),o=X.join(e.pmRoot,"runtime","context-usage.jsonl"),i=Math.floor(r.maxBytes*S.retained_byte_fraction),s=Math.min(S.max_event_bytes,i);if(t.some(u=>Buffer.byteLength(`${JSON.stringify(u)}
9
+ `)>s))throw new h("Context usage event exceeds the declared byte ceiling");let a=t.filter(u=>Date.parse(u.at)>=r.cutoff),c=et(a,i,r.maxEvents),d=performance.now(),f=await Ze(e.pmRoot,"context-usage-ledger",30,`context-usage:${process.pid}`,!1,!1,3e3),m=performance.now()-d;try{await bn(X.dirname(o),{recursive:!0});let u=await rt(o,L.O_WRONLY|L.O_CREAT|L.O_APPEND);try{let l=(await u.stat()).size,_=n===void 0?void 0:await Y(e);if(_?.some(G=>G.kind==="delivery"&&G.serve_id===n))return{written_bytes:0,ledger_bytes:l,compacted:!1,lock_wait_ms:m};if(!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&l+Buffer.byteLength(c)<=r.maxBytes)return await u.writeFile(c,"utf8"),{written_bytes:Buffer.byteLength(c),ledger_bytes:l+Buffer.byteLength(c),compacted:!1,lock_wait_ms:m};let g=et([..._??await Y(e),...a],i,r.maxEvents),b=`${o}.${process.pid}.${wn()}.tmp`,U=await tt(b,"wx",384);try{try{await U.writeFile(g,"utf8")}finally{await U.close()}return await u.close(),u=void 0,await kn(b,o),{written_bytes:Buffer.byteLength(g),ledger_bytes:Buffer.byteLength(g),compacted:!0,lock_wait_ms:m}}finally{await xn(b,{force:!0})}}finally{await u?.close()}}finally{await f()}}import{randomUUID as vn}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]="b1b1aa19-b1de-5140-8aea-ee1994ee9ecd")}catch{}})();var En=864e5,K=Symbol.for("@unbrained/pm-cli/context-usage-serving-receipt");function w(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function $o(e,t){let n=w(e);n!==null&&t!==null&&(n[K]=t)}function se(e,t){let n=w(e),r=w(t),o=n?.[K];r!==null&&o!==void 0&&(r[K]=o)}function In(e){return w(e)?.[K]??null}function it(e){let t=w(e);for(let n of["read_output","context_intent"])if(w(t?.[n])?.result_omitted===!0)return!0;return!1}function T(e,t){typeof t=="string"&&t.trim().length>0&&e.add(t.trim())}function st(e,t){if(Array.isArray(t))for(let n of t)T(e,w(n)?.id)}function ot(e,t){if(Array.isArray(t))for(let n of t)T(e,n)}function Cn(e,t){let n=w(e.recommended)===null?[]:[e.recommended];for(let r of["ready","decision_needed","gate_needed","containers","blocked","held_by_others"])Array.isArray(e[r])&&n.push(...e[r]);for(let r of n){let o=w(r);T(t,o?.id);for(let i of Array.isArray(o?.blockers)?o.blockers:[])T(t,w(i)?.id);for(let i of Array.isArray(o?.unblocks)?o.unblocks:[])T(t,i)}}function An(e,t){for(let n of["high_level","low_level","blocked_fallback","recently_created","unparented","activity","progress","blockers","staleness"])st(t,e[n]);for(let n of Array.isArray(e.blockers)?e.blockers:[])T(t,w(n)?.blocked_by);Sn(e,t)}function Sn(e,t){for(let o of Array.isArray(e.hierarchy)?e.hierarchy:[]){let i=w(o);T(t,i?.id),st(t,i?.children)}for(let o of["files","workload"])for(let i of Array.isArray(e[o])?e[o]:[])ot(t,w(i)?.items);let n=w(e.agenda);for(let o of Array.isArray(n?.events)?n.events:[])T(t,w(o)?.item_id);let r=w(e.tests);ot(t,r?.items_failing)}function Tn(e,t){let n=w(e);if(n===null||it(e))return[];let r=new Set;return t==="next"?Cn(n,r):An(n,r),[...r]}async function Lo(e){let t=In(e.result);if(t===null)return!1;let n=it(e.result);return await On({pmRoot:e.pmRoot,receipt:t,deliveredItemIds:Tn(e.result,t.surface),resultOmitted:n}),!0}async function Po(e){if([process.env.PM_CONTEXT_USAGE_DISABLED==="1",e.enabled===!1].includes(!0))return null;if(!e.author.trim()||e.rows.some(o=>!o.id.trim()||!Number.isInteger(o.rank)||o.rank<1))throw new h("Context usage serving requires an author and valid ranked rows");let t=e.rows.map(o=>({id:o.id.trim(),rank:o.rank,included:o.included}));if(new Set(t.map(o=>o.id)).size!==t.length)throw new h("Context usage serving requires unique normalized row ids");let n=t.slice(0,S.max_serving_rows),r={serve_id:vn(),author:e.author.trim(),surface:e.surface,rows:t,recorded_item_ids:n.map(o=>o.id)};return r.storage=await F(e,[{kind:"serve",schema_version:2,serve_id:r.serve_id,at:R(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:n,candidate_count:t.length,omitted_row_count:t.length-n.length,result_omitted:!1,packed_item_ids:n.filter(o=>o.included).map(o=>o.id)}]),r}async function On(e){if(e.receipt===null||process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return;let t=new Set(e.receipt.rows.map(i=>i.id)),n=[...new Set(e.deliveredItemIds.map(i=>i.trim()))];if(n.some(i=>i.length===0||!t.has(i))||e.resultOmitted&&n.length>0)throw new h("Context usage delivery requires emitted ranked ids and zero ids for an omitted result");let r=new Set(e.receipt.recorded_item_ids??e.receipt.rows.map(i=>i.id)),o={kind:"delivery",schema_version:2,serve_id:e.receipt.serve_id,at:R(e).iso,author:e.receipt.author,surface:e.receipt.surface,result_omitted:e.resultOmitted,delivered_item_ids:n.filter(i=>r.has(i))};await F(e,[o],o.serve_id)}async function Bo(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 F(e,[{kind:"touch",at:R(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()}])}}async function Uo(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 o=R(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await F(e,i)}function Rn(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}function Dn(e,t){let n=new Map;for(let r of e)r.kind==="delivery"&&r.schema_version===2&&r.author===t&&!n.has(r.serve_id)&&n.set(r.serve_id,r);return n}async function Fo(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0,untrusted_serving_events:0};let t=await Y(e),n=R(e).ms,r=(e.horizonHours??24)*36e5;if(![Number.isFinite(r),r>0].every(Boolean))throw new h("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(l=>l.kind==="touch").filter(l=>l.author===o).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0,d=0,f=Dn(t,o);t.filter(l=>l.kind==="serve").filter(l=>l.author===o).forEach(l=>{if(![l.schema_version===2,!!l.serve_id].every(Boolean)){c+=1;return}a+=1;let _=Date.parse(l.at),p=f.get(l.serve_id),g=new Set(p?.delivered_item_ids??[]);for(let b of l.rows){if(!g.has(b.id))continue;let U=Rn(i,b.id,_,r);if(U===void 0)continue;d+=1;let G=Math.max(0,(n-U)/En);s.set(b.id,(s.get(b.id)??0)+Math.exp(-G/14))}});let m=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,_])=>[l,m===0?.05:.05+.95*_/m])),positive_judgments:d,serving_events:a,untrusted_serving_events:c}}import{AsyncLocalStorage as Vn}from"node:async_hooks";(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]="288a7da9-888b-527d-88fb-4711917cec5b")}catch{}})();var Mn=e=>{let t='"',n=0;for(let r of e){if(r==="\\"){n+=1;continue}t+="\\".repeat(r==='"'?n*2+1:n),t+=r,n=0}return`${t}${"\\".repeat(n*2)}"`},Nn=(e,t=process.platform)=>(t==="win32"?/^[A-Za-z0-9._:/\\@=-]+$/:/^[A-Za-z0-9._:/@=-]+$/).test(e)?e:t==="win32"?Mn(e):`"${e.replace(/(["\\$`])/g,"\\$1")}"`,ae=(e,t=process.platform)=>{let n=e.map(r=>Nn(r,t)).join(" ");return n.length>0?`pm ${n}`:"pm"};(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]="db6180ed-0b18-5bf8-bcc1-24171e2dfdc4")}catch{}})();var ut=new WeakMap;function jo(e,t){ut.set(e,new Set(t))}var at='.row_contract.row_keys[] as $key | getpath($key | split(".")) | if type == "array" then .[] else if type == "object" then to_entries[] else empty end end',$n={context:{row_keys:["high_level","low_level"],fields:"supported"},get:{row_keys:["children"],fields:"supported"},list:{row_keys:["items"],fields:"supported"},next:{row_keys:["recommended","ready","decision_needed","gate_needed","containers","blocked","held_by_others"],fields:"unsupported"},search:{row_keys:["items"],fields:"supported"},activity:{row_keys:["activity_digest","compact_activity","provenance_activity","activity"],fields:"unsupported"},history:{row_keys:["compact_history","provenance_history","history"],fields:"unsupported"},deps:{row_keys:["graph.nodes","graph.edges","context.nodes","context.edges"],fields:"unsupported"},health:{row_keys:["checks"],fields:"unsupported"},aggregate:{row_keys:["groups"],fields:"unsupported"},duplicates:{row_keys:["clusters"],fields:"unsupported"},stats:{row_keys:["by_type","by_status"],fields:"unsupported"},comments:{row_keys:["comments"],fields:"unsupported"},notes:{row_keys:["notes"],fields:"unsupported"},learnings:{row_keys:["learnings"],fields:"unsupported"},files:{row_keys:["files"],fields:"unsupported"},docs:{row_keys:["docs"],fields:"unsupported"},validate:{row_keys:["checks","warnings"],fields:"unsupported"},contracts:{row_keys:["command_summaries","commands"],fields:"unsupported"}},Ln=[{command:"activity",complete_mode:"full",omissions_by_mode:{digest:[{name:"event_rows",restore_with:"--raw"}],compact:[{name:"provenance",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}},{command:"history",complete_mode:"full",omissions_by_mode:{compact:[{name:"raw_history",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}}];function Xo(e,t,n){if(e&&t)throw new x(`${n} cannot be combined with --full`,k.USAGE)}function I(e,t=new Set){let n=e.filter(r=>!t.has(r.name)).map(r=>({...r}));return{has_omissions:n.length>0,omitted_field_group_count:n.length,omitted_field_groups:n}}function Yo(e,t){let n=Ln.find(o=>o.command===e);if(n===void 0)throw new TypeError(`Unknown mode-paired output command: ${e}`);if(t===n.complete_mode)return I([]);let r=n.omissions_by_mode[t];if(r===void 0)throw new TypeError(`Unknown ${e} output mode: ${t}`);return I(r)}var Pn=[{name:"hierarchy",restore_with:"--depth standard"},{name:"activity",restore_with:"--depth standard"},{name:"progress",restore_with:"--depth standard"},{name:"blockers",restore_with:"--depth standard"},{name:"recently_created",restore_with:"--depth standard"},{name:"unparented",restore_with:"--depth standard"},{name:"files",restore_with:"--depth deep"},{name:"workload",restore_with:"--depth standard"},{name:"staleness",restore_with:"--depth deep"},{name:"tests",restore_with:"--depth deep"},{name:"workspace_memory",restore_with:"--depth deep"}];function v(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Bn=new Set([void 0,"tabular_when_uniform"]),Un=new Set(["collection","none"]),Fn=new Set(["supported","unsupported"]);function ct(e,t){return Array.isArray(e)&&(t||e.length>0)&&e.every(n=>typeof n=="string"&&n.length>0)&&new Set(e).size===e.length}function Gn(e){return v(e)&&typeof e.command=="string"&&e.command.trim().length>0&&Un.has(e.row_kind)&&ct(e.row_keys,!0)&&(e.continuation_row_keys===void 0||ct(e.continuation_row_keys,!1))&&Fn.has(e.fields)&&Bn.has(e.toon_encoding)&&(e.row_kind==="collection"?e.row_keys.length>0&&typeof e.jq_selector=="string"&&e.jq_selector.trim().length>0:e.row_keys.length===0&&e.jq_selector===void 0)}var Wn={ancestors:["ids"],descendants:["ids"],predecessors:["ids"],successors:["ids"],paths:["paths"],impact:["affected"],audit:["findings"],communities:["communities"],redundancy:["redundant"],dominators:["bottlenecks"],slack:["rows"],centrality:["rows"],articulation:["articulation_points","bridges"],plan:["steps"]},zn={context:["sections_included","high_level","low_level"],get:["item"],list:["items","projection"],next:["recommended","ready","decision_needed","gate_needed","containers","blocked","held_by_others"],search:["items","projection"],activity:["activity_digest","compact_activity","provenance_activity","activity"],history:["compact_history","provenance_history","history"],deps:["tree","graph","projection"],health:["checks"],aggregate:["groups"],duplicates:["clusters"],stats:["totals","by_type","by_status"],comments:["comments"],notes:["notes"],learnings:["learnings"],files:["files"],docs:["docs"],validate:["checks","warnings"],contracts:["command_summaries","commands","selected"]};function qn(e,t){let n=e.trim().toLowerCase().split(/\s+/u,1)[0],r=n?.startsWith("list-")?"list":n;if(r==="graph"){let s=typeof t.subcommand=="string"?t.subcommand:"";if(s.length===0)return;let a=Wn[s];if(a===void 0)return;let c=a.filter(d=>Array.isArray(t[d])||v(t[d]));return{command:"graph",row_kind:c.length>0?"collection":"none",row_keys:c,fields:"unsupported",...c.length>0?{jq_selector:at}:{},toon_encoding:"tabular_when_uniform"}}let o=$n[r],i=zn[r];return o===void 0||i===void 0||!i.some(s=>Object.hasOwn(t,s))?void 0:(()=>{let s=o.row_keys.filter(a=>{let c=a.split(".").reduce((d,f)=>v(d)?d[f]:void 0,t);return Array.isArray(c)||v(c)});return{command:r,row_kind:s.length>0?"collection":"none",row_keys:s,fields:o.fields,...s.length>0?{jq_selector:at}:{},toon_encoding:"tabular_when_uniform"}})()}function Hn(e){if(!v(e.projection)||typeof e.projection.mode!="string"||e.projection.mode.trim().length===0)return;let t=e.projection.declared_field_groups,n=e.projection.included_field_groups;if(!Array.isArray(t)||!Array.isArray(n))return;let r=t.filter(s=>v(s)&&typeof s.name=="string"&&s.name.trim().length>0&&typeof s.restore_with=="string"&&s.restore_with.trim().length>0),o=n.filter(s=>typeof s=="string");if(r.length!==t.length||o.length!==n.length)return;let i=new Set(r.map(s=>s.name));if(!(i.size!==r.length||new Set(o).size!==o.length||o.some(s=>!i.has(s))))return I(r,new Set(o))}function jn(e){if(!Array.isArray(e.sections_included))return;let t=I(Pn,new Set(e.sections_included.filter(n=>typeof n=="string")));return v(e.summary)&&e.summary.scope==="matching_items"&&(t.summary_scope="matching_items"),t}function Xn(e){if(!v(e.item))return;let t=e.item,n=["comments","notes","learnings","files","tests","docs","reminders","events"],r=["body","children","claim_state","linked","schedule"],o=ut.get(e),i=a=>n.includes(a)||a==="body"?t:e,s=["body",...n,...r.slice(1)].filter(a=>o===void 0||o.has(a)||Object.hasOwn(i(a),a)).map(a=>({name:a,restore_with:`--fields ${a}`}));return I(s,new Set(s.flatMap(({name:a})=>Object.hasOwn(i(a),a)?[a]:[])))}function dt(e){if(v(e.projection))return I([{name:"full_item_fields",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_item_fields"]:[]))}function Yn(e){if(!v(e.projection))return I([]);if(typeof e.projection.mode=="string")return I([{name:"full_check_details",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_check_details"]:[]))}function Kn(e){if(!(!v(e.selected)||typeof e.selected.summary!="boolean"))return I([{name:"full_contract_catalog",restore_with:"--full"}],new Set(e.selected.summary?[]:["full_contract_catalog"]))}function Jn(e,t){let n=Hn(t);if(n!==void 0)return n;let[r]=e.split(/\s+/u,1);if(r==="context")return jn(t);if(r==="get")return Xn(t);if(r==="list"||r.startsWith("list-"))return dt(t);if(r==="search")return dt(t)??I([{name:"projection_metadata",restore_with:"--full"}]);if(r==="health")return Yn(t);if(r==="contracts")return Kn(t)}function lt(e,t){if(e===void 0||!v(t))return t;let n=Jn(e,t),r=t.row_contract,o=Gn(r)?r:qn(e,t),i=o!==void 0?{...t,row_contract:o}:Object.hasOwn(t,"row_contract")?Object.fromEntries(Object.entries(t).filter(([s])=>s!=="row_contract")):t;return v(i.omission_receipt)||n===void 0?i:{...i,omission_receipt: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]="d6fc4c70-c955-5fb5-ab4b-5dfa1200d58d")}catch{}})();var mt=Object.freeze([{command:"context",intent:"orient",description:"Bounded active hierarchy, ownership, blockers, and recent progress.",included_field_groups:["summary","focus","hierarchy","blockers","activity"],token_budget:3e3,source:"core"},{command:"context",intent:"handoff",description:"Active ownership, evidence, decisions, and immediate continuation context.",included_field_groups:["summary","focus","in_progress","decisions","activity"],token_budget:2200,source:"core"},{command:"get",intent:"inspect",description:"Standard-depth item metadata, relationships, evidence, and lifecycle state.",included_field_groups:["item","children","claim_state","linked"],token_budget:3200,source:"core"},{command:"list",intent:"triage",description:"A budget-derived page of compact governance, ownership, priority, and blocker rows for triage.",included_field_groups:["identity","governance","ownership","dependencies"],token_budget:3200,source:"core"},{command:"next",intent:"execute",description:"The highest-ranked actionable work with concise ranking evidence.",included_field_groups:["recommended"],token_budget:1200,source:"core"},{command:"search",intent:"discover",description:"A budget-derived page of ranked canonical lineage candidates with compact match evidence.",included_field_groups:["identity","status","lineage","match"],token_budget:1800,source:"core"}]),_t=new Vn;function Zn(){return _t.getStore()??mt}function oi(e,t){return _t.run(er(e.workspaceContracts,e.packageContracts),t)}function Qn(e,t){let n=e.command.trim().toLowerCase(),r=e.intent.trim().toLowerCase(),o=`${n}:${r}`;if(!/^[a-z0-9][a-z0-9-]*$/.test(n)||!/^[a-z0-9][a-z0-9-]*$/.test(r))throw new TypeError(`Invalid context intent command or name: ${o}`);if(e.description.trim().length===0)throw new TypeError(`Context intent ${o} requires a non-empty description`);if(!Number.isSafeInteger(e.token_budget)||e.token_budget<=0)throw new TypeError(`Context intent ${o} requires a positive integer token_budget`);let i=[...new Set(e.included_field_groups.map(s=>s.trim()).filter(Boolean))];if(i.length===0)throw new TypeError(`Context intent ${o} requires included_field_groups`);return{command:n,intent:r,description:e.description.trim(),included_field_groups:i,token_budget:e.token_budget,source:t}}function er(e=[],t=[]){let n=[{source:"core",contracts:mt,allowOverride:!1},{source:"package",contracts:t,allowOverride:!1},{source:"workspace",contracts:e,allowOverride:!0}],r=new Map,o=new Set;for(let i of n){o.clear();for(let s of i.contracts){let a=Qn(s,i.source),c=`${a.command}:${a.intent}`;if(o.has(c))throw new TypeError(`Duplicate context intent declaration: ${c}`);if(o.add(c),!i.allowOverride&&r.has(c))throw new TypeError(`Duplicate context intent declaration: ${c}`);r.set(c,a)}}return[...r.values()].sort((i,s)=>i.command.localeCompare(s.command)||i.intent.localeCompare(s.intent))}function pt(e,t,n=Zn(),r=[]){let o=e.trim().toLowerCase(),i=t.trim().toLowerCase(),s=n.find(u=>u.command===o&&u.intent===i);if(s)return{...s,source:s.source??"core"};let a=n.filter(u=>u.command===o).map(u=>u.intent);if(a.length===0)return;let c=a.map(u=>{let l=Array.from({length:i.length+1},(_,p)=>p);for(let _=1;_<=u.length;_+=1){let p=l[0];l[0]=_;for(let g=1;g<=i.length;g+=1){let b=l[g];l[g]=Math.min(l[g]+1,l[g-1]+1,p+(u[_-1]===i[g-1]?0:1)),p=b}}return{candidate:u,distance:l[i.length]}}).sort((u,l)=>u.distance-l.distance||u.candidate.localeCompare(l.candidate))[0].candidate,d=[o,...r,"--for",i],f=[o,...r,"--for",c],m=ae(f);throw new x(`Unknown context intent "${i}" for ${o}. Did you mean "${c}"?`,k.USAGE,{code:"unknown_context_intent",reason:"unknown_intent",field:"for",flag:"--for",value:i,required:`Use a declared ${o} intent.`,why:"Intent names are command-local contracts and cannot be inferred from output section names.",nextSteps:[m],recovery:{recovery_mode:"compact",attempted_command:ae(d),allowed_values:[...a].sort(),suggested_retry:m,suggested_retry_args:f}})}var gt={context:(e,t,n)=>{e.depth===void 0&&(e.depth=t.intent==="handoff"?"deep":"standard"),e.section===void 0&&(e.section=t.intent==="handoff"?["activity","progress","blockers"]:["hierarchy","blockers","activity"]);let r=V(e.tokenBudget,t.token_budget),o=Z("context",t.intent,r,n),i=D(e.limit),s=String(i===void 0?o:Math.min(i,o));(e.limit===void 0||i!==void 0)&&(e.limit=s),e.activityLimit===void 0&&(e.activityLimit=s)},get:e=>{e.depth===void 0&&e.fields===void 0&&(e.depth="standard")},list:(e,t,n)=>{e.brief===void 0&&e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.fields="id,title,status,type,priority,parent,assignee,risk,blocked_by");let r=V(e.tokenBudget,t.token_budget),o=Z("list",t.intent,r,n),i=D(e.limit);(e.limit===void 0||i!==void 0)&&(e.limit=String(i===void 0?o:Math.min(i,o)))},next:e=>{e.readyOnly===void 0&&(e.readyOnly=!0)},search:(e,t,n)=>{e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.compact=!0);let r=V(e.tokenBudget,t.token_budget),o=Z("search",t.intent,r,n),i=D(e.limit);(e.limit===void 0||i!==void 0)&&(e.limit=String(i===void 0?o:Math.min(i,o)))}};function ii(e,t,n=[]){let r=t.tokenBudget??t.token_budget;if(typeof t.for!="string"){if(r!==void 0&&(e==="get"||e==="list"||e==="search"))throw new x("--token-budget requires a declared context intent selected with --for",k.USAGE,{code:"missing_required_option",field:"for",required:"Select a context intent with --for when setting --token-budget.",why:"A token-budget override has no projection contract to constrain without a selected intent.",nextSteps:["Retry with --for <intent> --token-budget <n>, or omit --token-budget."]});if(t.tokenBudget!==void 0||t.token_budget===void 0)return t;let a={...t,tokenBudget:r};return delete a.token_budget,a}let o=pt(e,t.for,void 0,n),i=D(r)!==void 0,s={...t};return s.tokenBudget===void 0&&r!==void 0&&(s.tokenBudget=r),delete s.token_budget,s.tokenBudget===void 0&&(s.tokenBudget=String(o.token_budget)),gt[e](s,o,i),s}var tr={context:"bounded_sections",get:"standard_item",list:"bounded_fields_and_rows",next:"bounded_ranked_rows",search:"bounded_ranked_rows"},J=256;function ce(e){return Array.isArray(e)?e.map(ce):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,ce(n)])):typeof e=="string"&&e.length>240?`${e.slice(0,240)}\u2026`:e}function D(e){let t=typeof e=="number"?e:typeof e=="string"&&/^\d+$/u.test(e.trim())?Number(e):Number.NaN;return Number.isSafeInteger(t)&&t>0?t:void 0}function V(e,t){let n=D(e);if(n===void 0)return t;if(n<J)throw new x(`Context intent token budget must be at least ${J}`,k.USAGE,{code:"invalid_argument_value",reason:"below_minimum",field:"tokenBudget",required:`Use an integer token budget of at least ${J}.`,why:"Smaller ceilings cannot contain the minimum machine-readable intent receipt.",nextSteps:[`Retry with --token-budget ${J} or omit the override.`]});return n}function Z(e,t,n,r){if(e==="get"||e==="next")return;let o=e==="context"&&t==="orient",i=e==="context"?o?1200:800:e==="list"?520:480,s=e==="context"?o?600:500:16,a=Math.max(e==="context"?1:2,Math.floor((n-i)/s));return r?a:Math.min(e==="context"?20:100,a)}function O(e,t){let n=t.estimated_tokens;for(;;){t.estimated_tokens=n;let r=Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4);if(r===n)return;n=r}}var ft={context:["high_level","low_level","blocked_fallback","recently_created","unparented","hierarchy","activity","blockers"],get:["children"],list:["items"],next:["ready","decision_needed","gate_needed","containers","blocked","held_by_others"],search:["items"]};function yt(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString("utf8"));return typeof t.fingerprint!="string"||!Number.isSafeInteger(t.after_index)?void 0:{fingerprint:t.fingerprint,after_index:t.after_index,...typeof t.snapshot=="string"?{snapshot:t.snapshot}:{}}}catch{return}}function nr(e){if(e===null||typeof e!="object")return;if(typeof e.id=="string")return e.id;let t=e.item?.id;return typeof t=="string"?t:void 0}function rr(e,t,n){let r=!1;for(;;){if(O(e,t),t.estimated_tokens<=t.token_budget||n.length<=1)return r;let o=Buffer.byteLength(JSON.stringify(n),"utf8"),i=(t.estimated_tokens-t.token_budget)*4;n.splice(-Math.min(n.length-1,Math.max(1,Math.ceil(i/Math.max(1,Math.ceil(o/n.length)))))),r=!0}}function or(e,t,n){let r=e.items,o=typeof e.next_cursor=="string",i=o?e.next_cursor:n.after;if(!Array.isArray(r)||typeof i!="string")return!1;let s=yt(i);if(s===void 0)return!1;let a=r.length,c=[...r],d=!1;for(;;){if(d=rr(e,t,r)||d,!d)return!1;let f=nr(r.at(-1));if(f===void 0)return r.splice(0,r.length,...c),O(e,t),!1;if(e.next_cursor=ke(s.fingerprint,f,o?s.after_index-(a-r.length):s.after_index+r.length,s.snapshot),O(e,t),t.estimated_tokens<=t.token_budget||r.length<=1)break}return typeof e.count=="number"&&(e.count=r.length),typeof e.applied_limit=="number"&&(e.applied_limit=r.length),!0}function ir(e,t,n,r){if(e==="list"||e==="search")return or(t,n,r);if(e!=="next"||typeof t.next_cursor=="string")return!1;let o=!1;for(;;){if(O(t,n),n.estimated_tokens<=n.token_budget)return o;let i=ft[e].map(u=>({key:u,rows:Array.isArray(t[u])?t[u]:[]})).filter(({rows:u})=>u.length>0).sort((u,l)=>l.rows.length-u.rows.length||u.key.localeCompare(l.key))[0];if(i===void 0)return o;let s=ft[e].reduce((u,l)=>u+(Array.isArray(t[l])?t[l].length:0),0);if(s<=1)return o;let a=Math.min(i.rows.length,s-1),c=Buffer.byteLength(JSON.stringify(i.rows),"utf8"),d=Math.max(1,Math.ceil(c/i.rows.length)),f=(n.estimated_tokens-n.token_budget)*4,m=Math.min(a,Math.max(1,Math.ceil(f/d)));i.rows.splice(-m,m),o=!0}}function sr(e,t,n){if(typeof t.for!="string")return n;let r=e.startsWith("list-")?"list":e;if(!(r in gt))return n;let o=r,i=pt(o,t.for),s=V(t.tokenBudget??t.token_budget,i.token_budget),a={command:o,intent:i.intent,source:i.source,included_field_groups:[...i.included_field_groups],token_budget:s,declared_token_budget:i.token_budget,token_budget_override:s-i.token_budget,estimated_tokens:0,within_budget:!0,degradation:tr[o],declaration_feasible:!0,result_omitted:!1},c={...n},d=Z(o,i.intent,a.token_budget,D(t.tokenBudget??t.token_budget)!==void 0);if(d!==void 0){let m=D(t.limit),u=m!==void 0&&m<d;a.budget_derived_limit=d,a.binding_constraint=u?"explicit_limit":"token_budget",a.limit_reason=u?"The caller supplied a smaller row limit than the budget-derived ceiling.":"The selected intent token budget constrains the effective row ceiling.",c.budget_derived_limit=d}let f={...c,context_intent:a};return O(f,a),a.estimated_tokens>a.token_budget&&(a.degradation="recursive_budget_compaction",f={...ce(c),context_intent:a},O(f,a)),a.estimated_tokens>a.token_budget&&ir(o,f,a,t)&&(a.degradation="budget_row_compaction",O(f,a)),a.declaration_feasible=a.estimated_tokens<=a.declared_token_budget,a.estimated_tokens>a.token_budget&&(a.degradation="budget_receipt_only",a.result_omitted=!0,a.within_budget=!1,f={budget_exceeded:{omitted_result:!0,reason:a.token_budget_override===0?"declared_budget_infeasible":"effective_budget_infeasible",restore_with:cr(e,o,i.intent,a,c)},context_intent:a}),f}function ar(e,t){if(typeof e.after!="string"||e.after.length===0)return t;let n=yt(e.after)?.fingerprint??"opaque_cursor",r={...t};for(let o of["applied_limit","completeness","context_intent","count","filters","has_more","now","omission_receipt","projection","row_contract","sorting","total","truncated"])delete r[o];return r.continuation_contract={fingerprint:n,metadata:"reference",restore_with:"omit --after"},r}function de(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function cr(e,t,n,r,o){let i=t==="get"&&de(o.item)&&typeof o.item.id=="string"?o.item.id:t==="search"&&typeof o.query=="string"?o.query:void 0,s=i===void 0?"":` '${i.replaceAll("'",`'"'"'`)}'`,a=t==="get"?"":` --limit ${r.budget_derived_limit??1}`;return`pm ${e}${s} --for ${n} --token-budget ${Math.ceil(r.estimated_tokens/100)*100}${a}`}function P(e,t){if(de(e))return typeof e[t]=="number"?e[t]:void 0}function dr(e,t){let n=e;for(let r=0;r<8;r+=1){let o=P(n.context_intent,"estimated_tokens"),i=P(n.read_output,"estimated_tokens"),s=P(n.read_session,"spent_this_call_tokens");if(de(n.context_intent)&&O(n,n.context_intent),n=xe(n,t),P(n.context_intent,"estimated_tokens")===o&&P(n.read_output,"estimated_tokens")===i&&P(n.read_session,"spent_this_call_tokens")===s)break}return n}function si(e,t,n){let r=lt(e,n),o=typeof r=="object"&&r!==null&&!Array.isArray(r)?ve(e??"",t,ar(t,sr(e??"",t,r))):r;if(se(n,o),t.outputRowContract===!0||t.output_row_contract===!0||typeof o!="object"||o===null||Array.isArray(o)||!Object.hasOwn(o,"row_contract"))return o;let i=dr(Object.fromEntries(Object.entries(o).filter(([s])=>s!=="row_contract")),t);return se(o,i),i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="02baf966-46eb-5e19-b7eb-2f9fe05bb263")}catch{}})();var B=["result_rows","envelope","diagnostics","hints"],ur=/^(?:items|results|rows|ready|blocked|recommended|decision_needed|children|dependencies|events|matches|commands|tools)$/u,lr=/^(?:diagnostics|errors?|warnings?|findings|violations|failures?)$/u,fr=/^(?:hints?|suggestions?|next_steps?|recovery|remediation|examples?)$/u,mr=8;function ue(e){return Buffer.byteLength(e,"utf8")}function ht(e){return ue(JSON.stringify(e)??"null")}function _r(e,t){return lr.test(e)?"diagnostics":fr.test(e)?"hints":ur.test(e)||Array.isArray(t)?"result_rows":"envelope"}function pr(e){let t={result_rows:0,envelope:0,diagnostics:0,hints:0};if(typeof e!="object"||e===null||Array.isArray(e))return t[Array.isArray(e)?"result_rows":"envelope"]=ht(e),t;for(let[n,r]of Object.entries(e))t[_r(n,r)]+=ht({[n]:r});return Object.values(t).every(n=>n===0)&&(t.envelope=1),t}function gr(e,t){let n=B.reduce((s,a)=>s+t[a],0),r=B.map(s=>({section:s,value:e*t[s]/n})),o={result_rows:0,envelope:0,diagnostics:0,hints:0};for(let s of r)o[s.section]=Math.floor(s.value);let i=e-B.reduce((s,a)=>s+o[a],0);for(let s of[...r].sort((a,c)=>c.value-Math.floor(c.value)-(a.value-Math.floor(a.value))||B.indexOf(a.section)-B.indexOf(c.section))){if(i===0)break;o[s.section]+=1,i-=1}return o}function wt(e,t){return typeof e=="object"&&e!==null&&!Array.isArray(e)?{...e,token_accounting:t}:{result:e,token_accounting:t}}function di(e,t){let n=ue(t(e)),r=gr(n,pr(e)),o=Object.fromEntries(B.map(a=>[a,{bytes:r[a],estimated_tokens:W(r[a])}])),i={version:1,measurement_scope:"output_before_token_accounting",estimator:"ceil(utf8_bytes / 4)",total_bytes:n,total_estimated_tokens:W(n),sections:o,accounting_receipt_bytes:0,accounting_receipt_estimated_tokens:0,excluded_fields:["token_accounting"],section_allocation:"proportional_canonical_json"},s=wt(e,i);for(let a=0;a<mr;a+=1){let c=ue(t(s))-n;if(c===i.accounting_receipt_bytes)return s;i={...i,accounting_receipt_bytes:c,accounting_receipt_estimated_tokens:W(c)},s=wt(e,i)}return s}export{Nn as a,ae as b,jo as c,Xo as d,Yo as e,lt as f,Mr as g,Gt as h,jr as i,Jt as j,Xr as k,Yr as l,Kr as m,Jr as n,Vr as o,Zr as p,Qr as q,eo as r,to as s,no as t,Me as u,ro as v,Ne as w,oo as x,io as y,so as z,q as A,ao as B,wr as C,Se as D,Ir as E,Tt as F,Cr as G,N as H,Ar as I,Sr as J,pn as K,gn as L,Ze as M,S as N,h as O,$o as P,se as Q,Tn as R,Lo as S,Po as T,On as U,Bo as V,Uo as W,Fo as X,mt as Y,Zn as Z,oi as _,er as $,pt as aa,ii as ba,yt as ca,nr as da,sr as ea,si as fa,di as ga};
10
+ //# sourceMappingURL=chunk-UKHASMMP.js.map