@unbrained/pm-cli 2026.8.10 → 2026.8.12

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 (243) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +153 -100
  3. package/dist/cli/commander-usage.js +113 -15
  4. package/dist/cli/error-guidance.d.ts +12 -0
  5. package/dist/cli/error-guidance.js +147 -29
  6. package/dist/cli/main.js +38 -19
  7. package/dist/cli/register-annotations.js +56 -3
  8. package/dist/cli/register-assurance.d.ts +8 -0
  9. package/dist/cli/register-assurance.js +52 -0
  10. package/dist/cli/register-files-lookup.js +14 -3
  11. package/dist/cli/register-list-query.js +10 -7
  12. package/dist/cli/register-mutation.js +30 -9
  13. package/dist/cli/register-operations.js +30 -15
  14. package/dist/cli-bundle/bundle-manifest.json +155 -155
  15. package/dist/cli-bundle/chunks/{chunk-TRWXF476.js → chunk-3PS7X6GS.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-7KL6KMWF.js +13 -0
  17. package/dist/cli-bundle/chunks/{chunk-EBO7OUUE.js → chunk-BM5YJ2UW.js} +69 -55
  18. package/dist/cli-bundle/chunks/chunk-D55A5AEN.js +33 -0
  19. package/dist/cli-bundle/chunks/chunk-KIKDWECH.js +196 -0
  20. package/dist/cli-bundle/chunks/{chunk-ETML5C6H.js → chunk-KOQMGCTA.js} +47 -47
  21. package/dist/cli-bundle/chunks/chunk-R76342NV.js +2 -0
  22. package/dist/cli-bundle/chunks/chunk-RBTK5EZV.js +5 -0
  23. package/dist/cli-bundle/chunks/chunk-VLUQOIDT.js +2 -0
  24. package/dist/cli-bundle/chunks/chunk-WLAHPSOX.js +3 -0
  25. package/dist/cli-bundle/chunks/register-list-query-XPCJRUUD.js +10 -0
  26. package/dist/cli-bundle/chunks/register-mutation-4RJCBKRS.js +20 -0
  27. package/dist/cli-bundle/chunks/register-operations-2OGISOVR.js +2 -0
  28. package/dist/cli-bundle/chunks/{register-setup-S3KT2LTH.js → register-setup-LLHAKP2V.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-2DALMVF7.js +5 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-5OQIMELN.js +155 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-5TAGTDRE.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/chunk-ECADZMVC.js +18 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-EJGXRA6B.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-FFGSZCPK.js +16 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-IW43E4XL.js → chunk-GQW4BPUT.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/chunk-ISKOBJCM.js +2 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-75774JWP.js → chunk-JAFRIWVF.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-2COZ67XT.js → chunk-KHM2CS2C.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/{chunk-M6RPIXKC.js → chunk-KPSXVBDV.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-34SX654S.js → chunk-KTLOKKCQ.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/chunk-LGYK3NUF.js +8 -0
  42. package/dist/cli-bundle/focused-chunks/{chunk-2EXI2DKR.js → chunk-NBLUKITQ.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/chunk-NYLOUPOB.js +2 -0
  44. package/dist/cli-bundle/focused-chunks/chunk-Q4T463SD.js +31 -0
  45. package/dist/cli-bundle/focused-chunks/chunk-QVZVY53N.js +2 -0
  46. package/dist/cli-bundle/focused-chunks/{chunk-DZGAHZZV.js → chunk-RWPAWUOT.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/chunk-UTEWXDEQ.js +17 -0
  48. package/dist/cli-bundle/focused-chunks/{chunk-7UN6BHHO.js → chunk-YIAXMC3T.js} +2 -2
  49. package/dist/cli-bundle/focused-chunks/chunk-ZMGWAYH7.js +2 -0
  50. package/dist/cli-bundle/main.js +13 -13
  51. package/dist/cli-bundle/sdk-authoring.js +1 -1
  52. package/dist/cli-bundle/sdk-contracts.js +1 -1
  53. package/dist/cli-bundle/sdk-core.js +41 -39
  54. package/dist/cli-bundle/sdk-governance.js +1 -1
  55. package/dist/cli-bundle/sdk-graph.js +1 -1
  56. package/dist/cli-bundle/sdk-merge.js +1 -1
  57. package/dist/cli-bundle/sdk-query.js +1 -1
  58. package/dist/cli-bundle/sdk-runtime.js +1 -1
  59. package/dist/cli-bundle/sdk-testing.js +1 -1
  60. package/dist/cli-bundle/sdk.js +2 -2
  61. package/dist/core/extensions/reserved-host-flags.js +3 -2
  62. package/dist/core/history/drift-scan.js +13 -8
  63. package/dist/core/history/history.d.ts +8 -0
  64. package/dist/core/history/history.js +57 -7
  65. package/dist/core/history/replay.d.ts +9 -1
  66. package/dist/core/history/replay.js +48 -13
  67. package/dist/core/output/output.d.ts +2 -0
  68. package/dist/core/output/output.js +46 -14
  69. package/dist/core/session/session-state.d.ts +47 -0
  70. package/dist/core/session/session-state.js +207 -6
  71. package/dist/core/shared/author.d.ts +7 -1
  72. package/dist/core/shared/author.js +66 -46
  73. package/dist/core/shared/command-types.d.ts +2 -0
  74. package/dist/core/shared/command-types.js +2 -2
  75. package/dist/core/shared/errors.d.ts +13 -0
  76. package/dist/core/shared/errors.js +2 -2
  77. package/dist/core/store/item-metadata-cache.d.ts +1 -1
  78. package/dist/core/store/item-metadata-cache.js +14 -7
  79. package/dist/sdk/agent/refusal-reachability.d.ts +40 -0
  80. package/dist/sdk/agent/refusal-reachability.js +72 -0
  81. package/dist/sdk/agent/subcommand-recovery.d.ts +40 -0
  82. package/dist/sdk/agent/subcommand-recovery.js +84 -0
  83. package/dist/sdk/cli-bootstrap.d.ts +10 -0
  84. package/dist/sdk/cli-bootstrap.js +11 -7
  85. package/dist/sdk/cli-contracts/completeness.js +14 -3
  86. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  87. package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
  88. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  89. package/dist/sdk/cli-contracts/flag-contracts.js +20 -2
  90. package/dist/sdk/cli-contracts/registration-helpers.d.ts +20 -3
  91. package/dist/sdk/cli-contracts/registration-helpers.js +18 -12
  92. package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
  93. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +515 -0
  94. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +252 -0
  95. package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
  96. package/dist/sdk/cli-contracts/tool-parameter-tables.js +99 -2
  97. package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -3
  98. package/dist/sdk/cli-contracts/tool-schema.js +38 -5
  99. package/dist/sdk/cli-contracts.d.ts +1 -1
  100. package/dist/sdk/cli-contracts.js +3 -3
  101. package/dist/sdk/cli-program.js +3 -2
  102. package/dist/sdk/completion.js +23 -8
  103. package/dist/sdk/config.js +9 -3
  104. package/dist/sdk/context/semantic-session-attribution.d.ts +32 -0
  105. package/dist/sdk/context/semantic-session-attribution.js +83 -0
  106. package/dist/sdk/context-intent-contracts.js +45 -4
  107. package/dist/sdk/core-governance.d.ts +3 -1
  108. package/dist/sdk/core-governance.js +5 -3
  109. package/dist/sdk/core.d.ts +2 -1
  110. package/dist/sdk/core.js +3 -2
  111. package/dist/sdk/error-code-catalog.d.ts +13 -0
  112. package/dist/sdk/error-code-catalog.js +35 -2
  113. package/dist/sdk/extension.js +18 -17
  114. package/dist/sdk/files.d.ts +11 -0
  115. package/dist/sdk/files.js +82 -24
  116. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +8 -0
  117. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1585 -0
  118. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +8 -0
  119. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1608 -0
  120. package/dist/sdk/generated-error-code-catalog.js +6 -3121
  121. package/dist/sdk/governance/assurance-action-contracts.d.ts +7 -0
  122. package/dist/sdk/governance/assurance-action-contracts.js +5 -0
  123. package/dist/sdk/governance/assurance-action.d.ts +70 -0
  124. package/dist/sdk/governance/assurance-action.js +200 -0
  125. package/dist/sdk/governance/assurance-limits.d.ts +7 -0
  126. package/dist/sdk/governance/assurance-limits.js +11 -0
  127. package/dist/sdk/governance/assurance-mutation-error.d.ts +7 -0
  128. package/dist/sdk/governance/assurance-mutation-error.js +35 -0
  129. package/dist/sdk/governance/assurance-runtime.d.ts +20 -0
  130. package/dist/sdk/governance/assurance-runtime.js +134 -0
  131. package/dist/sdk/governance/assurance.d.ts +438 -0
  132. package/dist/sdk/governance/assurance.js +804 -0
  133. package/dist/sdk/governance/health.d.ts +3 -1
  134. package/dist/sdk/governance/health.js +21 -4
  135. package/dist/sdk/governance/validate-item-reader.js +3 -3
  136. package/dist/sdk/governance/validate.d.ts +2 -0
  137. package/dist/sdk/governance/validate.js +13 -3
  138. package/dist/sdk/graph/durable-cache.d.ts +1 -1
  139. package/dist/sdk/graph/durable-cache.js +98 -29
  140. package/dist/sdk/graph/governance.d.ts +14 -0
  141. package/dist/sdk/graph/governance.js +34 -9
  142. package/dist/sdk/graph/run.js +8 -3
  143. package/dist/sdk/index.d.ts +7 -2
  144. package/dist/sdk/index.js +9 -4
  145. package/dist/sdk/lifecycle/claim.js +26 -4
  146. package/dist/sdk/lifecycle/focus.js +13 -3
  147. package/dist/sdk/lifecycle/plan.js +8 -3
  148. package/dist/sdk/merge/driver.d.ts +2 -2
  149. package/dist/sdk/merge/driver.js +3 -3
  150. package/dist/sdk/merge/receipts.d.ts +6 -4
  151. package/dist/sdk/merge/receipts.js +7 -5
  152. package/dist/sdk/merge/three-way.d.ts +2 -2
  153. package/dist/sdk/merge/three-way.js +3 -3
  154. package/dist/sdk/output-projection.d.ts +9 -1
  155. package/dist/sdk/output-projection.js +45 -9
  156. package/dist/sdk/provenance.d.ts +38 -0
  157. package/dist/sdk/provenance.js +64 -2
  158. package/dist/sdk/query/activity.d.ts +49 -2
  159. package/dist/sdk/query/activity.js +183 -37
  160. package/dist/sdk/query/context.js +19 -8
  161. package/dist/sdk/query/get.js +19 -2
  162. package/dist/sdk/read-output-contracts.d.ts +5 -1
  163. package/dist/sdk/read-output-contracts.js +17 -2
  164. package/dist/sdk/read-output-session.d.ts +2 -0
  165. package/dist/sdk/read-output-session.js +12 -5
  166. package/dist/sdk/runtime-extended-actions.js +22 -5
  167. package/dist/sdk/runtime-primitives.d.ts +5 -3
  168. package/dist/sdk/runtime-primitives.js +7 -5
  169. package/dist/sdk/runtime-stats-options.js +3 -2
  170. package/dist/sdk/runtime.d.ts +4 -0
  171. package/dist/sdk/runtime.js +34 -34
  172. package/dist/sdk/stats.d.ts +36 -3
  173. package/dist/sdk/stats.js +55 -15
  174. package/dist/sdk/telemetry.js +7 -4
  175. package/dist/sdk/test/execution.d.ts +4 -0
  176. package/dist/sdk/test/execution.js +86 -21
  177. package/dist/sdk/traceability/runtime-files-lookup.d.ts +8 -0
  178. package/dist/sdk/traceability/runtime-files-lookup.js +33 -0
  179. package/dist/sdk/traceability/source-traceability.d.ts +102 -0
  180. package/dist/sdk/traceability/source-traceability.js +293 -0
  181. package/dist/types.d.ts +10 -2
  182. package/dist/types.js +2 -2
  183. package/docs/ASSURANCE.md +137 -0
  184. package/docs/COMMANDS.md +29 -8
  185. package/docs/CONFIGURATION.md +7 -0
  186. package/docs/DEPENDENCY_KIND_CONTRACT.md +10 -8
  187. package/docs/MERGE_SAFETY.md +3 -1
  188. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +26 -13
  189. package/docs/README.md +3 -0
  190. package/docs/READ_OUTPUT_CONTRACTS.md +17 -2
  191. package/docs/RELEASING.md +9 -5
  192. package/docs/SDK.md +12 -1
  193. package/docs/SDK_AGENT_SESSION_CONTEXT.md +52 -5
  194. package/docs/SDK_CONTEXT_EVIDENCE_CONTRACTS.md +53 -0
  195. package/docs/SDK_CONTEXT_INTEGRITY.md +28 -1
  196. package/docs/SDK_EVIDENCE_TRACEABILITY.md +39 -1
  197. package/docs/SDK_RUNTIME_BOUNDARIES.md +36 -1
  198. package/docs/TESTING.md +12 -9
  199. package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +106 -0
  200. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -0
  201. package/docs/performance/sdk-entrypoint-import-costs.md +6 -2
  202. package/marketplace.json +2 -2
  203. package/package.json +7 -7
  204. package/packages/pm-beads/package.json +1 -1
  205. package/packages/pm-calendar/package.json +1 -1
  206. package/packages/pm-command-kit/package.json +1 -1
  207. package/packages/pm-digital-twin/package.json +1 -1
  208. package/packages/pm-governance-audit/package.json +1 -1
  209. package/packages/pm-guide-shell/package.json +1 -1
  210. package/packages/pm-kanban/package.json +1 -1
  211. package/packages/pm-lifecycle-hooks/package.json +1 -1
  212. package/packages/pm-linked-test-adapters/package.json +1 -1
  213. package/packages/pm-search-advanced/package.json +1 -1
  214. package/packages/pm-templates/extensions/templates/index.ts +9 -3
  215. package/packages/pm-templates/package.json +1 -1
  216. package/packages/pm-todos/package.json +1 -1
  217. package/packages/pm-vcs/package.json +1 -1
  218. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  219. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  220. package/sdk/public-surface.json +1030 -67
  221. package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +0 -30
  222. package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +0 -194
  223. package/dist/cli-bundle/chunks/chunk-JZSNADRR.js +0 -5
  224. package/dist/cli-bundle/chunks/chunk-MENWVGJW.js +0 -2
  225. package/dist/cli-bundle/chunks/chunk-S4EITGLA.js +0 -3
  226. package/dist/cli-bundle/chunks/chunk-TIGKWVLA.js +0 -13
  227. package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +0 -2
  228. package/dist/cli-bundle/chunks/register-list-query-OJ6ZXKV4.js +0 -10
  229. package/dist/cli-bundle/chunks/register-mutation-DKI7QC7O.js +0 -20
  230. package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +0 -2
  231. package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +0 -2
  232. package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +0 -16
  233. package/dist/cli-bundle/focused-chunks/chunk-CHIBMEZR.js +0 -8
  234. package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +0 -153
  235. package/dist/cli-bundle/focused-chunks/chunk-GHTN2ILR.js +0 -2
  236. package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +0 -2
  237. package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +0 -2
  238. package/dist/cli-bundle/focused-chunks/chunk-JMVA4HKR.js +0 -5
  239. package/dist/cli-bundle/focused-chunks/chunk-KR5RVXLQ.js +0 -31
  240. package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +0 -16
  241. package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +0 -18
  242. package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +0 -2
  243. package/dist/cli-bundle/focused-chunks/chunk-RKWSCYYN.js +0 -2
@@ -0,0 +1,13 @@
1
+ import{$d as rt,A as Er,Ag as es,B as g,Ba as Zt,Bc as Ar,Bf as Hr,Ca as et,Cc as Nr,D as h,Dd as ve,Df as qr,Ef as Wr,Eg as cn,F as j,Fk as ds,Gb as ke,Gf as Me,Hc as Fr,Ia as O,Id as Br,If as ue,Ja as tt,Jf as an,Kf as Vr,Nf as Yr,P as G,Pd as pe,Pf as ot,Qa as S,Qd as xe,Qg as ct,R as x,Rd as Gr,Rf as Xr,Rg as dt,S as Ir,Sd as nn,T as ie,Ta as $,Ua as Tr,Vf as Jr,Wa as en,Wc as z,Wf as Ce,Wg as ts,Yc as nt,Zb as Rr,Zg as T,_ as Cr,aa as Sr,af as sn,be as Kr,c as A,dg as Qr,dh as ns,e as se,eg as at,f as K,fe as rn,g as vr,ge as st,hd as F,he as de,hh as rs,id as C,ie as oe,ih as ss,jd as L,jh as Se,ke as zr,kh as is,le as Ee,mb as q,mh as le,nh as fe,nj as cs,od as Lr,oh as os,pd as Mr,ph as Q,qc as N,qh as as,rb as Dr,rf as it,uf as on,vd as Or,w as xr,wa as be,wd as $r,xd as Pr,yd as jr,yf as Ie,zc as tn,zd as Ur,zg as Zr}from"./chunk-KIKDWECH.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function fa(e,t){let n=-1;return e.forEach((r,s)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${s+1}.`,g.GENERIC_FAILURE);i<=t&&(n=s)}),n}function ma(e){let t=e[0]?.ts??null,n=e.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:n}};return n!==null&&(r.examples=["1",String(e.length),n],r.valid_range.first_version=1,r.valid_range.last_version=e.length),{guidance:r,lastTimestamp:n}}function us(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let s=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let o=s[i];return typeof o=="string"?[[i,o]]:[]})))}if(n.patchIndex!==void 0){let s=e[n.patchIndex];s&&(n.op??=s.op,n.path??=s.path,n.from??=s.from)}return n}function ls(e,t,n={}){let r=e.trim(),s=n.errorSubject??"history",i=s==="restore"?"Restore":"History",{guidance:o,lastTimestamp:a}=ma(t);if(!r)throw new h(`Missing ${s} target. Use a timestamp or version number.`,g.USAGE,o);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new h(`${i} version must be between 1 and ${t.length} for this item.`,g.USAGE,o);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${s} target "${e}". Use a positive version number or ISO timestamp.`,g.USAGE,o);let d=fa(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(s==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,g.USAGE,o);return{kind:"timestamp",raw:r,historyIndex:d}}function Oe(e,t,n,r){let s=Yr(e,t);if(s.ok)return s.document;let i=us(t,s.error),o=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new h(`Failed to apply history patch at entry ${n} (${o.join(", ")}). ${i.reason??String(s.error)}`,g.GENERIC_FAILURE)}function fs(e,t){let n=structuredClone(Me);for(let r=0;r<=t;r+=1){let s=e[r];if(!s)throw new h(`History target entry ${r+1} does not exist.`,g.USAGE);if(ue(n)!==s.before_hash)throw new h(`History hash mismatch before replay at entry ${r+1}.`,g.GENERIC_FAILURE);if(n=Oe(n,s.patch,r+1,s.op),ue(n)!==s.after_hash)throw new h(`History hash mismatch after replay at entry ${r+1}.`,g.GENERIC_FAILURE)}return n}function ms(e,t){if(Object.keys(e.metadata).length>0)return e;throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,g.USAGE)}import dn from"node:fs/promises";import pa from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function ga(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=ts(e.settings);if(n.ownership_enforcement==="strict")throw new h(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,g.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function ha(e){let t=await se(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new h(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);let n=await le(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await fe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new h(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,g.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function Ug(e){let t=e.writeHistoryRaw??K;try{await t(e.historyPath,e.nextHistoryRaw),await Ie(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await pa.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Ie(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function ps(e){let t=[...ga({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Ce(e.pmRoot,e.subject.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let r=await ha({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:e.operation});return await e.applyRewrite(r),e.applyPostRewrite&&t.push(...await e.applyPostRewrite(r)),t}finally{await n()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cd2a27ec-0f12-591d-ab34-529ddda05063")}catch{}})();function un(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function gs(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function hs(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",g.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let s=t.lastIndexOf("/");s>0&&(n=t.slice(1,s),r=gs(t.slice(s+1)))}if(n.length===0)throw new h("history-redact --regex cannot use an empty pattern.",g.USAGE);try{new RegExp(n,r)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",g.USAGE)}return{kind:"regex",source:n,flags:r}}function ys(e,t){let n=[...new Set(un(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(un(t).map(i=>i.trim()))].filter(i=>i.length>0).map(hs),s=[...n,...r];if(s.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",g.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return s}function _s(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,s=0;for(;r<=e.length;){let i=e.indexOf(t,r);if(i===-1)break;s+=1,r=i+Math.max(1,t.length)}return s===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:s}}function ws(e,t,n){let r=new RegExp(t.source,t.flags),s=[...e.matchAll(r)];return s.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:s.length}}function ln(e,t,n){let r=e,s=0;for(let i of t){let o=i.kind==="literal"?_s(r,i.value,n):ws(r,i,n);r=o.value,s+=o.replacements}return{value:r,replacements:s}}function ut(e,t,n){if(typeof e=="string")return ln(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let o=ut(i,t,n);return r+=o.replacements,o.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,s={};for(let[i,o]of Object.entries(e)){let a=ut(o,t,n);r+=a.replacements,s[i]=a.value}return{value:s,replacements:r}}return{value:e,replacements:0}}function ya(e){let t=structuredClone(Me),n=0,r=0;for(let s=0;s<e.length;s+=1){let i=e[s];ue(t)!==i.before_hash&&(n+=1),t=Oe(t,i.patch,s+1,i.op),ue(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function _a(e,t,n){let r=0,s=!1,i=e.message;if(typeof e.message=="string"){let a=ln(e.message,t,n);i=a.value,r+=a.replacements,a.replacements>0&&(s=!0)}let o=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let c=ut(a.value,t,n);return r+=c.replacements,c.replacements>0?(s=!0,{...a,value:c.value}):a});return{entry:{...e,message:i,patch:o},replacements:r,changed:s}}function wa(e,t,n){let r=structuredClone(Me),s=0,i=0,o=[];for(let a=0;a<e.length;a+=1){let c=_a(e[a],t,n);i+=c.replacements,c.changed&&(s+=1);let d=ue(r);r=Oe(r,c.entry.patch,a+1,c.entry.op);let u=ue(r);o.push({...c.entry,before_hash:d,after_hash:u})}return{entries:o,finalDocument:r,entriesChanged:s,replacements:i}}function bs(e){return Object.keys(e.metadata).length>0}async function ba(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await fe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function ka(e){if(!bs(e.finalDocument))return{raw:null,path:null,document:null};let t=Mr(an(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",g.USAGE);return{document:t,path:Tr(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Lr(t,{format:"toon",schema:e.settings.schema})}}function va(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function xa(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??an(e.rewritten.finalDocument);return t.push(Wr({nowIso:G(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Ea(e){let t=[];return ps({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItem.raw,operation:"history-redact",author:e.author,force:e.force,itemDocument:e.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await ss(e.pmRoot,e.author),s=new Set;e.currentItem.path&&s.add(e.currentItem.path),e.nextItem.path&&s.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let o=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await K(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await dn.rm(e.currentItem.path,{force:!0}),await K(e.subject.historyPath,Xr(e.rewrittenEntries))}catch(c){try{await Ia(e.subject.historyPath,n,s,i)}finally{await Ie(e.subject.historyPath)}throw c}await Ie(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await is({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await r().catch(a=>{o=()=>{throw a}})}o()},applyPostRewrite:async()=>[...t,...await Ca(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Ia(e,t,n,r){t===null?await dn.rm(e,{force:!0}):await K(e,t);for(let s of n){let i=r.get(s);i===void 0?await dn.rm(s,{force:!0}):await K(s,i)}}async function Ca(e,t){let n=[],r=new Set(t.filter(s=>s!==null));for(let s of r)n.push(...await tn({path:s,scope:"project",op:"history_redact"}));return n.push(...await tn({path:e,scope:"project",op:"history_redact:history"})),n}async function fn(e,t,n,r){let s=await le(e,t,n.id_prefix,n.item_format,r);if(s)return{id:s.id,historyPath:en(e,s.id),located:s};let i=at(t,n.id_prefix),o=Qr(t),a=i===o?[i]:[i,o];for(let c of a){let d=en(e,c);if(await A(d))return{id:c,historyPath:d,located:null}}throw new h(`Item ${t} not found`,g.NOT_FOUND)}async function ch(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let s=await T(r),i=O(s,N()),o=t.replacement??"",a=o.length===0,c=a?"[redacted]":o,d=ys(t.literal,t.regex),u=await fn(r,e,s,i.type_to_folder);if(!await A(u.historyPath))throw new h(`No history stream exists for ${u.id}.`,g.NOT_FOUND);let l=await se(u.historyPath),f=await xe(u.historyPath,u.id);if(f.length===0)throw new h(`No history entries exist for ${u.id}; nothing to redact.`,g.USAGE);let m=ya(f),p=wa(f,d,c),y=m.hashMismatchesBefore+m.hashMismatchesAfter,w=!!t.dryRun,_=p.replacements>0,b=[];y>0&&b.push(`history_redact_preexisting_hash_mismatches:${y}`),_||b.push("history_redact_no_matches");let k=await ba(u,s),E=ka({pmRoot:r,subject:u,settings:s,typeToFolder:i.type_to_folder,finalDocument:p.finalDocument}),I=(k.path??null)!==(E.path??null)||(k.raw??null)!==(E.raw??null),P=pe(t.author,s.author_default),D=va(t,p),{rewrittenEntries:U,auditEntryAdded:ce}=xa({rewritten:p,dryRun:w,changed:_,nextItemDocument:E.document,author:P,message:D}),B=ot(U);if(!B.ok)throw new h(`history-redact produced an invalid rewritten chain (${B.errors.join(", ")}).`,g.GENERIC_FAILURE);return!w&&_&&b.push(...await Ea({pmRoot:r,subject:u,settings:s,typeRegistry:i,historyRawBeforeLock:l,currentItem:k,nextItem:E,author:P,force:t.force,rewrittenEntries:U})),{id:u.id,dry_run:w,changed:_,patterns:{literal_count:d.filter(M=>M.kind==="literal").length,regex_count:d.filter(M=>M.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:p.entriesChanged,replacements:p.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:y,audit_entry_added:ce,verify_ok:B.ok,verify_errors:B.errors},item:{existed_before:k.path!==null,exists_after:E.path!==null,path_before:k.path,path_after:E.path,changed:I},warnings:[...new Set(b)].sort((M,H)=>M.localeCompare(H)),generated_at:G()}}var dh={applyLiteralRule:_s,applyRegexRule:ws,buildRedactionRules:ys,hasItemMetadata:bs,normalizeRegexFlags:gs,normalizeStringArrayInput:un,parseRegexRule:hs,redactStringValue:ln,redactUnknownValue:ut};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bccbd81b-988f-569d-8dbf-c0998d813953")}catch{}})();function xh(e,t){let n=ot(e),r=e.length>0?e[e.length-1].after_hash:qr(),s=t===void 0?void 0:Hr(t),i=s===void 0?void 0:s===r,o=[...n.errors];return i===!1&&o.push("verify_failed:current_item_hash_mismatch"),{ok:o.length===0,entries:e.length,errors:o,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:s,current_matches_latest:i}}async function Eh(e,t,n={}){let r=S(n.cwd??process.cwd(),n.pmRoot);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let s=await T(r),i=O(s,N()),o=await fn(r,e,s,i.type_to_folder),a=await xe(o.historyPath,o.id);if(a.length===0)throw new h(`No history exists for ${o.id}; point-in-time reads are unavailable.`,g.NOT_FOUND);let c=ls(t,a),d=ms(fs(a,c.historyIndex),c),u=Vr(d,{schema:s.schema});if(u.metadata.id!==o.id)throw new h(`History target resolved to item ${u.metadata.id}, expected ${o.id}.`,g.GENERIC_FAILURE);let l=a[c.historyIndex];return{document:u,reconstructed:!0,as_of_version:c.historyIndex+1,as_of_timestamp:l.ts,target:c,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function Sa(e,t,n,r,s,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let o=n.depth+1;return e.queue.push({id:t,depth:o}),e.cursorFound?(e.affected.push({id:t,distance:o,path:Ma(r,t,e.parents)}),"continue"):(e.cursorFound=t===s,"skip")}function Ta(e,t,n,r){let s=de("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:s,after:t.after===void 0?void 0:zr(t.after,s)}}function $e(e,t,n){e.get(t).add(n)}function ft(e){return new Map(e.map(t=>[t,new Set]))}function vs(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function lt(e){if(Array.isArray(e))return e.map(n=>lt(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?lt(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,lt(r)]))}function ks(e){return JSON.stringify(lt(e))}function Da(e,t,n,r){let s=[{id:e,expanded:!1}];for(;s.length>0;){let i=s.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),s.push({id:i.id,expanded:!0});let o=[...t.get(i.id)].sort().reverse();for(let a of o)n.has(a)||s.push({id:a,expanded:!1})}}function Ra(e,t){let n=new Set,r=[];for(let s of e)n.has(s)||Da(s,t,n,r);return r}function Aa(e,t){let n=new Set,r=[];for(let s of[...e].reverse()){if(n.has(s))continue;let i=[],o=[s];for(n.add(s);o.length>0;){let a=o.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),o.push(c))}r.push(i)}return vs(r)}function xs(e,t){let n=ft(e);for(let[r,s]of t)for(let i of s)$e(n,i,r);return Aa(Ra(e,t),n)}function Na(e,t){let n=ft(e.nodes());for(let r of e.edges()){let s=t.require(r.kind);if(!s.ordering)continue;let i=(s.precedence??"source_before_target")==="source_before_target";$e(n,i?r.source:r.target,i?r.target:r.source)}return n}function Fa(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let o of i)n.set(o,n.get(o)+1);let r=e.filter(i=>n.get(i)===0).sort(),s=[];for(;r.length>0;){s.push(r);let i=[];for(let o of r)for(let a of t.get(o)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return s}function La(e,t){let n=new Map(e.map(o=>[o,0])),r=new Map;for(let o of e)for(let a of t.get(o)){if(!n.has(a))continue;let c=n.get(o)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||o.localeCompare(d)<0))&&(n.set(a,c),r.set(a,o))}let s=[...e].sort((o,a)=>n.get(a)-n.get(o)||o.localeCompare(a))[0],i=s===void 0?[]:[s];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function Ma(e,t,n){let r=[t],s=t;for(;s!==e;)s=n.get(s),r.push(s);return r.reverse()}function mt(e,t={}){let n=t.registry??q(),r=[...e.nodes()],s=Na(e,n),i=Fa(r,s),o=i.flat(),a=o.length===r.length,c=a?[]:xs(r,s).filter(u=>u.length>1||s.get(u[0]).has(u[0])),d=La(o,s);return{exact:!0,acyclic:a,order:o,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Es(e,t,n={}){let r=n.direction??"outgoing",s=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:o,after:a}=Ta(t,n,r,s),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},d=0,u=0,l=!1,f=!1;e:for(let m=0;m<c.queue.length;m+=1){n.signal?.throwIfAborted();let p=c.queue[m];d+=1;let y=e.adjacency(p.id,{direction:r,kinds:n.kinds,signal:n.signal});if(u+=y.meta.inspectedEdges,p.depth>=s){y.value.some(w=>!c.seen.has(w))&&(l=!0);continue}for(let w of y.value)if(Sa(c,w,p,t,a,i)==="truncate"){l=!0,f=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:c.affected,exact:!0,truncated:l,...f?{nextCursor:oe(o,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:d,inspectedEdges:u}}}function Is(e){let t=[...e.nodes()],n=ft(t),r=ft(t);for(let c of e.edges())$e(n,c.source,c.target),$e(n,c.target,c.source),$e(r,c.source,c.target);let s=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],u=[c];for(i.add(c);u.length>0;){let l=u.pop();d.push(l);for(let f of n.get(l))i.has(f)||(i.add(f),u.push(f))}s.push(d)}let o=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...o.map(({degree:c})=>c));return{components:vs(s),stronglyConnected:xs(t,r),orphans:o.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:o.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function Th(e,t){let n=new Map(e.edges.map(s=>[ks(s),s])),r=new Map(t.edges.map(s=>[ks(s),s]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([s])=>!n.has(s)).map(([,s])=>s),removed:[...n].filter(([s])=>!r.has(s)).map(([,s])=>s),unchangedCount:[...n.keys()].filter(s=>r.has(s)).length,exact:!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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function W(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new h(`${t} must be a non-negative integer`,g.USAGE);return r}function pt(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new h(`${t} filter must be 0..4`,g.USAGE);return r}function Cs(e,t,n="--type"){if(e===void 0)return;let r=tt(e,t);if(!r)throw new h(`${n} filter must be one of ${t.types.join("|")}`,g.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var gt={version:1,aliases:{}};function ht(e=[]){let t=new Set(ve),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let s of Object.keys(r.provenance_environment_keys??{}))n(s);for(let s of Object.keys(r.provenance_resolvers??{}))n(s);for(let s of r.provenance_unavailable_dimensions??[])n(s)}return[...t].sort()}function Ss(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function mn(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function pn(e,t=ve){let n=new Set(t),r=new Map,s=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of s.flatMap(o=>o.split(","))){let o=i.indexOf("=");if(o<0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,o).trim().toLowerCase(),c=i.slice(o+1).trim();if(!n.has(a))throw new h(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,g.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new h(`Provenance predicate must use dimension=value; received "${i.trim()}".`,g.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function yt(e,t=gt,n={}){let r=mn(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function Ph(e,t,n=gt,r=ve){return gn(t,n,r)(e)}function gn(e,t=gt,n=ve){let r=Ss(e.harness),s=Ss(e.agentInstance),i=pn(e,n);return o=>{let c=mn(o,t).agent_harness;if(r&&(!c||!r.has(c))||s&&!s.has(o.agent_instance??""))return!1;for(let[d,u]of i){let l=o.agent_provenance?.[d];if(!l||!u.has(l.value))return!1}return!0}}function _t(e,t=gt,n=ve){let r=new Set(n),s=new Map,i=0;for(let o of e){for(let c of Object.keys(o.agent_provenance??{}))r.add(c);mn(o,t).agent_harness?i+=1:s.set(o.author,(s.get(o.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...s].map(([o,a])=>({author:o,entries:a})).sort((o,a)=>a.entries-o.entries||o.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(o=>{let a=0,c=0;for(let d of e){let u=d.agent_provenance?.[o];u===null?c+=1:u!==void 0&&(a+=1)}return{dimension:o,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import Oa from"node:fs/promises";import Rs 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]="27a71d4d-f496-5d0a-9771-caa43b81e1f7")}catch{}})();var $a=20,Pa=5,ja=15,Ua="-24h";function Wh(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 Ba={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function hn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new h(`${t} must not be empty`,g.USAGE);return n}function Ts(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new h("Activity time bounds must not be empty",g.USAGE);let s=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return ie(s,new Date(t),n)}function Ga(e,t,n){return!(e.ts.length===0&&(t||n)||t&&x(e.ts,t)<0||n&&x(e.ts,n)>=0)}function Ds(e,t){return t===void 0?e:e.slice(0,t)}function Pe(e,t=""){return typeof e=="string"?e:t}function Ka(e,t){return{...t,id:e,ts:Pe(t.ts),author:Pe(t.author,"unknown"),op:Pe(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Pe(t.before_hash),after_hash:Pe(t.after_hash)}}function za(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let s=t.id.localeCompare(n.id);return s!==0?s:t.op.localeCompare(n.op)})}async function Ha(e){try{return(await Oa.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(t.code==="ENOENT")return[];throw t}}function qa(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 Wa(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?ja:n==="compact"?$a:Pa}function Va(e,t){let n=G(),r=t==="digest",s=Ts(e.to??(r?n:void 0),n,"--to"),i=Ts(e.from??(r?Ua:void 0),e.from===void 0&&r?s:n,"--from");if(i&&s&&x(i,s)>=0)throw new h("Activity --from must be before --to",g.USAGE);let o=cn(e.limit);if(e.unbounded===!0&&o!==void 0)throw new h("Activity --unbounded cannot be combined with --limit",g.USAGE);return{id:hn(e.id,"Activity --id"),op:hn(e.op,"Activity --op"),author:hn(e.author,"Activity --author"),from:i,to:s,limit:Wa(e,o,t),limitSource:e.unbounded===!0||o!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Ya(e){let t=S(process.cwd(),e.path);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function Xa(e){let t=O(e.settings,N()),n=await Q(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Jr({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(s=>s.id),commandLabel:"activity"});let r=Rs.join(e.pmRoot,"history");return await Ar({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(s=>[s.id,{title:s.title,type:s.type,status:s.status}]))}}function Ja(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Ga(t,n.from,n.to)}async function Qa(e,t){let n=[];for(let r of await Ha(e)){let s=r.slice(0,-6);if(t.id&&s!==t.id)continue;let i=await xe(Rs.join(e,r),s);for(let o of i){let a=Ka(s,o);Ja(o,a,t)&&n.push(a)}}return n}function Za(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function ec(e){let t=[...e.entries()].sort(([r,s],[i,o])=>o-s||r.localeCompare(i)),n=t.slice(0,4).map(([r,s])=>`${r}:${s}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function tc(e,t){let n=new Map;for(let r of e){let s=n.get(r.id);if(s===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}s.eventCount+=1,x(r.ts,s.firstTs)<0&&(s.firstTs=r.ts),x(r.ts,s.lastTs)>0&&(s.lastTs=r.ts),s.operations.set(r.op,(s.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,s])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:s.eventCount,first_ts:s.firstTs,last_ts:s.lastTs,operations:ec(s.operations)}}).sort((r,s)=>x(s.last_ts,r.last_ts)||r.id.localeCompare(s.id))}function nc(e){let t=new Map;for(let s of e)t.set(s.op,(t.get(s.op)??0)+1);let n=[...t.entries()].sort((s,i)=>i[1]-s[1]||s[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((s,[,i])=>s+i,0)]),Object.fromEntries(r)}function rc(e,t,n,r,s){if(e==="digest"){let o=tc(t,r),a=Ds(o,n);return{rows:{activity_digest:a},compact:!1,totalRows:o.length,returnedRows:a.length}}let i=Ds(t,n);return e==="compact"?{rows:{compact_activity:Za(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(s)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function As(e,t){let n=await Ya(t),r=qa(e),s=Va(e,r),i=await Xa(n),o=ht(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=gn({harness:s.harness,agentInstance:s.agentInstance,provenance:s.provenance},a,o),d=za(await Qa(i.historyDir,s)).filter(c),u=rc(r,d,s.limit,i.itemsById,f=>yt(f,a,{itemId:f.id})),l=u.totalRows-u.returnedRows;return{...u.rows,compact:u.compact,projection:{mode:r,row_key:Ba[r]},omission_receipt:Kr("activity",r),count:u.returnedRows,total_count:u.totalRows,limit:s.limit??null,omitted_count:l,has_more:l>0,...r==="digest"?{activity_summary:{window:{from:s.from,to:s.to},event_count:d.length,item_count:u.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:nc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:_t(d,a,o)}:{},applied_bound:{kind:s.limit===void 0?"unbounded":"limit",source:s.limitSource,value:s.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]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var Ns="global",sc="external";function Te(e){let t=e?.trim().toLowerCase();return t===Ns||t===sc}function Xh(e){let t=e?.trim();if(t)return Te(t)?Ns:t}function Jh(e,t,n){let r=e.trim();return Te(n)?r:at(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="62ec8e0e-658e-5a32-b458-439d5ffd1229")}catch{}})();function wt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function yn(e){let t=wt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function De(){let e=q();for(let t of N()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}function _n(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function ic(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,s=wt(r.id);if(!s)continue;let i=typeof r.kind=="string"?r.kind:"related",o=`${i}\0${s.toLowerCase()}`,a=t.get(o);a?a.count+=1:t.set(o,{target_id:s,kind:i,count:1})}return t}function oc(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let s of ic(r).values())s.count<2||n.push({holder_id:r.id.trim(),target_id:s.target_id,kind:s.kind,occurrences:s.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,s)=>{let i=_n(r.holder_id,s.holder_id);if(i!==0)return i;let o=_n(r.target_id,s.target_id);return o!==0?o:_n(r.kind,s.kind)})}function wn(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),s=new Map,i=(c,d,u,l)=>{let f=wt(d);if(!f||r.has(f.toLowerCase()))return;let m={holder_id:c.id.trim(),target_id:f,kind:u,source:l,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:f.toLowerCase()==="no-active-blocker"};s.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent"),i(c,c.blocked_by,"blocked_by","blocked_by");for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;Te(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency")}}let o=[...s.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=o.filter(c=>c.legacy_terminal);return{active:o.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:o.filter(c=>c.no_active_blocker_sentinel)}}function ac(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),s=r.toLowerCase();t.has(s)||t.set(s,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function cc(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!Te(r.source_kind))continue;let s=wt(r.id);s&&!t.has(s.toLowerCase())&&t.set(s.toLowerCase(),s)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function dc(e,t=De()){let n={};for(let r of e)for(let s of r.dependencies??[]){if(typeof s!="object"||s===null)continue;let i=s.kind;if(typeof i!="string")continue;let o=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&o!==a.kind&&(n[o]=(n[o]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[s])=>r.localeCompare(s)))}function Re(e,t,n){let r=n??De(),s=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(s.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),o=wn(s,t),a=ac(o);for(let f of a)i.set(f.toLowerCase(),f);let c=cc(s),d=new Set(i.keys()),u=new Map;for(let f of c){let m=f;for(;d.has(m.toLowerCase());)m=`external:${m}`;u.set(f.toLowerCase(),m),d.add(m.toLowerCase())}let l=s.map(f=>{let m=yn(f.parent),p=yn(f.blocked_by),y=(f.dependencies??[]).flatMap(w=>{if(typeof w!="object"||w===null)return[];let _=w,b=yn(_.id);return b?[{id:Te(_.source_kind)?u.get(b.toLowerCase()):i.get(b.toLowerCase()),kind:typeof _.kind=="string"?_.kind:"related"}]:[]});return{id:f.id.trim(),...m?{parent:i.get(m.toLowerCase())}:{},...p?{blocked_by:i.get(p.toLowerCase())}:{},dependencies:y}});return{graph:Dr.fromItems([...l,...a.map(f=>({id:f})),...c.map(f=>({id:u.get(f.toLowerCase())}))],r),details:[...s.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...a.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f.toLowerCase()),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(a.map(f=>f.toLowerCase())),dangling:o,duplicateRows:oc(s,t),legacyAliasCounts:dc(s,r)}}import{createHash as uc}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]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var lc=64,fc=8;function mc(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let s=r;return`${typeof s.kind=="string"?s.kind:"related"}:${typeof s.id=="string"?s.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function bt(e,t=r=>r==="closed"||r==="canceled",n=q()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>mc(i,t)).sort(),s=n.list().map(i=>ke(i)).sort();return uc("sha256").update(r.join("")).update("").update(s.join("")).digest("hex")}function Fs(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var bn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Fs("maxResultsPerWorkspace",t.maxResultsPerWorkspace,lc),this.#n=Fs("maxWorkspaces",t.maxWorkspaces,fc)}lookup(t,n,r){let s=this.#e.get(t),i=!0;(s===void 0||s.fingerprint!==n)&&(s={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,s);let o=s,a=this.#t;return{assembly:o.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let u=o.results.get(c);if(u!==void 0||o.results.has(c))return o.results.delete(c),o.results.set(c,u),{value:structuredClone(u),reused:!0};let l=d();return o.results.size>=a&&o.results.delete(o.results.keys().next().value),o.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},Ls=new bn;function kt(){return Ls}function oy(){Ls.clear()}(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]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var pc=["prerequisite","dependent","ancestor","descendant","provenance","related"],gc=new TextEncoder;function kn(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function vt(e){return Math.max(1,Math.ceil(gc.encode(JSON.stringify(e)).byteLength/4))}function vn(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=(r.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function hc(e,t,n,r){let s=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>vn(i,n,r));return[...new Set(s)].sort()}function yc(e){return pc.find(t=>e.includes(t))}function _c(e,t,n,r){let s=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let o=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let l=0;l<a.length;l+=1){r.signal?.throwIfAborted();let f=a[l];if(f.distance>=i&&u)continue;let m=e.neighborEdges(f.id,{direction:s,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=i){m.value.some(p=>!o.has(p.id))&&(u=!0);continue}for(let{id:p,edge:y}of m.value){if(o.has(p))continue;o.add(p);let w={id:p,distance:f.distance+1,via:f.id,role:vn(y,p,n)};c.push(w),a.push(w)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function wc(e,t,n,r){let s={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:o,edge:a}of i)s[vn(a,o,n)]+=1;return{directEdges:s,directTotal:i.length,rootEdges:i.map(({edge:o})=>o)}}function bc(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let s=r.distance===1?hc(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:s.length>0?yc(s):r.role,via:r.via,reasons:s.length>0?s:[`${r.role} via ${r.via} (depth ${r.distance})`]},o=vt(i);if(n+o>e.tokenBudget)break;t.push(i),n+=o}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function kc(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let o=e.registry.resolve(i.kind)?.inverse;return o!==void 0&&t.has(o)}),r=[],s=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let o=vt(i);if(s+o>e.tokenBudget)break;r.push(i),s+=o}return{edges:r,usedTokens:s,candidateCount:n.length}}function Ms(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let s=kn(r.nodeLimit,20,"nodeLimit"),i=kn(r.edgeLimit,40,"edgeLimit"),o=kn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??q(),c=new Map(n.map(J=>[J.id,J])),d=c.get(t)??{id:t},{evidence:u=[],...l}=d,f=[...u],m=_c(e,t,a,r),{rootEdges:p,...y}=wc(e,t,a,r),w=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),_=Ee(m.rows,r.cursor,w,({id:J})=>J),b=m.rows.slice(_),k=vt(l)+vt(f);if(k>o)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=bc({candidates:b,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:s,tokenBudget:o,initialTokens:k}),{nodes:I}=E,P=new Set([t,...I.map(({id:J})=>J)]),D=kc({graph:e,included:P,options:r,registry:a,edgeLimit:i,tokenBudget:o,initialTokens:E.usedTokens}),{edges:U,usedTokens:ce}=D,B=_+I.length,M=B<m.rows.length,H=I.at(-1),Y=D.candidateCount-U.length,X=m.depthTruncated||M||Y>0,_e={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...y,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:U.length,omittedNodes:m.rows.length-B,omittedEdges:Y,evidenceCount:f.length,hasMore:M};return{root:l,summary:_e,nodes:I,edges:U,evidence:f,meta:{exact:!0,truncated:X,completeness:X?"truncated":"complete",nodeLimit:s,edgeLimit:i,tokenBudget:o,usedTokens:ce,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-B,omittedEdges:Y,...M&&H?{nextCursor:oe(w,H.id,B-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]="ee0547d9-ae0f-5762-8bff-e25f0a3cd4d5")}catch{}})();var vc=["tree","graph","context"],xc=["none","repeated"],Ec=["outgoing","incoming","both"],Ic=32,Cc=200,Sc=400,Tc=16e3;function Dc(e){let t=e?.trim().toLowerCase()??"tree";if(vc.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,g.USAGE)}function Z(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,g.USAGE);return n}function xt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,g.USAGE);return t}function Rc(e){let t=e?.trim().toLowerCase()??"none";if(xc.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,g.USAGE)}function En(e){let t=e?.trim().toLowerCase()??"both";if(Ec.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,g.USAGE)}function In(e,t=q()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(s=>s.split(",")).map(s=>s.trim()).filter(s=>s.length>0);if(n.length===0)return;let r=new Set;for(let s of n){let i=t.resolve(s);if(!i){let o=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${s}". Registered kinds: ${o}.`,g.USAGE)}r.add(i.kind)}return[...r].sort()}function Ac(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:s})=>({id:r.trim(),kind:s.trim().toLowerCase()})).sort((r,s)=>{let i=r.kind.localeCompare(s.kind);return i!==0?i:r.id.localeCompare(s.id)}),n=new Map;for(let r of t){let s=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(s)||n.set(s,{id:r.id,kind:r.kind})}return[...n.values()]}function Nc(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Ac(e.dependencies)}}function Fc(e){return it(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Lc(e,t,n,r,s,i,o,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push($s(d.id,n,r,s,i,o,a,c+1,d.kind))}}function Mc(e,t,n,r,s,i,o,a){return o.estimatedTokens>=o.tokenBudget&&t?.dependencies.length?(e.truncated=!0,o.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,o.reasons.add("max_depth")),!0):s==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function $s(e,t,n,r,s,i,o,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),l={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(o.nodes+=1,o.estimatedTokens+=Fc(l),Mc(l,u,d,r,s,i,o,a))return l;s==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),Lc(l,u,t,f,r,s,i,o,a),l}function Os(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Oc(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Os(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,Os(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let s=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),o=s.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:s,edges:i,missing_ids:o}}function Ps(e,t,n){let r=new Set,s=new Set,i=new Set,o=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();r.add(u);let l=t.get(u);if(!l){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!o.has(u)){o.add(u);for(let f of l.dependencies)s.add(`${u}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:s.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function $c(e,t=q()){let n=xt(e.maxDepth),r=Z(e.nodeLimit,"node-limit"),s=Z(e.edgeLimit,"edge-limit"),i=Z(e.tokenBudget,"token-budget"),o=In(e.kind,t);return{direction:En(e.direction),...o===void 0?{}:{kinds:o},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...s===void 0?{}:{edgeLimit:s},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Pc(e,t,n,r){return Ms(e.graph,t,e.details.map(s=>s.id===t&&r.length>0?{...s,evidence:r}:s),n)}function xn(e,t,n,r){for(let s of n.slice(0,r)){let i=s?.trim();i&&e.push(`${t}:${i}`)}}async function jc(e,t,n,r){let s=await le(e,t,n.id_prefix,n.item_format,r);if(!s)return[];let{document:i}=await fe(s,{schema:n.schema}),o=i.metadata,a=o.files??[],c=o.tests??[],d=o.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(o.comments??[]).length],["notes",(o.notes??[]).length],["learnings",(o.learnings??[]).length]];if(u.every(([,f])=>f===0))return[];let l=[`linked:${u.map(([f,m])=>`${f}=${m}`).join(",")}`];return xn(l,"file",a.map(f=>f.path),3),xn(l,"test",c.map(f=>f.command??f.path),2),xn(l,"doc",d.map(f=>f.path),2),l}function Uc(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:s,referenceLimit:i,summaryOnly:o}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:s.length,...o?{}:{missing_references:s.slice(0,i),context:n}}}function Bc(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:s,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(s===void 0)return!0;let o=i.resolve(t.kind);return o!==void 0&&(s.has(o.kind)||o.inverse!==void 0&&s.has(o.inverse))}function js(e,t,n){let r;for(;;){let s=it(new TextEncoder().encode(on(rn("deps",e),t)).byteLength);if(s===r)return s;n(s),r=s}}function Gc(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Kc(e){try{return Pc(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Gc(t))return e.smallestResult;throw t}}function zc(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:s,summaryOnly:i,outputFormat:o,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let p=Kc({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:s,smallestResult:m});if("format"in p)return p;let y=p;f??=y.meta.tokenBudget,l??=f;let w=Uc({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(m=w,i||(y.meta.tokenBudget=f,y.meta.usedTokens=js(Ae(w,!1),o,k=>{y.meta.usedTokens=k}),y.meta.usedTokens<=f))return w;if(u>0){u-=1;continue}let _=l,b=_*f/y.meta.usedTokens;l=Math.min(_-1,Math.max(1,Math.floor(b*.9)))}}function Hc(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:s,summaryOnly:i,outputFormat:o}=e,a=$c(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(y=>l.require(y).kind)):void 0,m=new Set([n,...c.value]),p=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Bc({row:y,missingReachableSet:u,packetIds:m,filteredKinds:f,registry:l}));return zc({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:s,summaryOnly:i,outputFormat:o,missingCount:d.length,missingReferences:p})}function qc(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function Wc(e,t,n,r,s,i,o){let a=s??Ic,c=Z(n.nodeLimit,"node-limit")??Cc,d=Z(n.edgeLimit,"edge-limit")??Sc,u=Z(n.tokenBudget,"token-budget")??Tc,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=$s(e,r,new Set,a,t==="graph"?"repeated":i,new Set,l),m=Ps(e,r,void 0),p;for(;;){let y=Oc(f),w=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-y.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-y.edges.length)},_={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...w?{truncation:w}:{}};if(p=t==="tree"?{..._,tree:f}:{..._,graph:y},(p.truncation===void 0?it(new TextEncoder().encode(on(rn("deps",Ae(p,!1)),o)).byteLength):js(Ae(p,!1),o,k=>{p.truncation.estimated_tokens=k}))<=u)return p;if(!qc(f))return l.reasons.add("token_budget"),p;l.reasons.add("token_budget")}}function Ae(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function Ty(e,t,n){let r=S(process.cwd(),n.path);if(!await A($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,g.NOT_FOUND);let s=Dc(t.format),i=xt(t.maxDepth),o=Rc(t.collapse);rt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await T(r),d=O(c,N()),u=await Q(r,c.item_format,d.type_to_folder,void 0,c.schema),l=z(c.schema),f=new Map(u.map(p=>[p.id.trim().toLowerCase(),Nc(p)])),m=wn(u,p=>L(p,l));for(let p of[...m.active,...m.legacy_terminal]){let y=f.get(p.holder_id.trim().toLowerCase()),w=p.kind.trim().toLowerCase();y&&!y.dependencies.some(_=>_.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&_.kind===w)&&y.dependencies.push({id:p.target_id,kind:w})}if(!f.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,g.NOT_FOUND);if(s==="context"){let p=f.get(e.trim().toLowerCase()).id,y=a?[]:await jc(r,p,c,d.type_to_folder),w=k=>L(k,l),_=De(),b=kt().lookup(r,bt(u,w,_),()=>Re(u,w,_));return Ae(Hc({assembly:b.assembly,canonicalId:p,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,b.assembly.legacyAliasCounts)}return a?Ae({id:e,format:s,...Ps(e,f,i)},!0,Object.fromEntries(Object.entries(Re(u,p=>L(p,l)).legacyAliasCounts))):Ae(Wc(e,s,t,f,i,o,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Re(u,p=>L(p,l)).legacyAliasCounts)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var Vc=5,Yc=1e4,Xc=8;function Cn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Et(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function je(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function It(e,t){let n=je(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function Jc(e,t,n){if(t===void 0)return;let r=e.registry(),s=new Set;for(let i of t){let o=r.require(i);if(!o[n])throw new TypeError(`Relationship kind ${o.kind} is not a ${n} kind`);s.add(o.kind)}return s}function Qc(e,t,n,r,s){let i=e.registry(),o=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of o.value){let u=i.require(d.edge.kind);u[r]&&s(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:o.meta.inspectedEdges}}function Zc(e,t,n,r,s,i){if(t>=n)return e.neighbors.some(o=>!i.seen.has(o))&&(i.truncated=!0),!1;for(let o of e.neighbors)if(!i.seen.has(o)){if(i.seen.add(o),i.queue.push({id:o,depth:t+1}),!i.resumed){o===s&&(i.resumed=!0);continue}if(i.value.length>=r)return i.truncated=!0,!0;i.value.push(o)}return!1}function Ct(e,t,n,r,s){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=Jc(e,n.kinds,r),o=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];u+=1;let p=Qc(e,m.id,i,r,s);if(l+=p.inspectedEdges,Zc(p,m.depth,a,o,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Us(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Bs(e,t,n,r,s){let i=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return s.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(o=>!t.nodeSet.has(o.id))}function ed(e,t,n,r,s,i,o){for(let a of Bs(e,t,r,s,o)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),u=[...t.edges,a.edge];if(a.id===n){if(o.value.push({nodes:c,edges:u,length:u.length}),o.value.length>=i)return!0}else o.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function Gs(e,t,n={}){return Ct(e,t,n,"hierarchy",(r,s)=>Et(r.edge,s)===r.id)}function Ks(e,t,n={}){return Ct(e,t,n,"hierarchy",(r,s,i)=>Et(r.edge,s)===i)}function zs(e,t,n={}){return Ct(e,t,n,"ordering",(r,s)=>je(r.edge,s)===r.id)}function Hs(e,t,n={}){return Ct(e,t,n,"ordering",(r,s,i)=>je(r.edge,s)===i)}function td(e,t,n,r,s,i,o,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=s+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=l||d>=i){u=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=o){Bs(e,m,r,a,c).length>0&&(u=!0);continue}if(ed(e,m,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,s),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function qs(e,t,n,r={}){Us(e,t),Us(e,n);let s=r.maxPaths??Vc,i=r.maxVisitedPaths??Yc,o=r.maxDepth??Xc;Cn("maxPaths",s),Cn("maxVisitedPaths",i),Cn("maxDepth",o);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?s===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:td(e,t,n,r,s,i,o,a)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var nd=16,rd=2,sd=8;function St(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Tt(e,t,n){let r=e.registry(),s=t===void 0?void 0:new Set(t.map(i=>r.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let o=r.require(i.kind);s!==void 0&&!(s.has(o.kind)||o.inverse!==void 0&&s.has(o.inverse))||n(i,o)}}function id(e,t){let n=new Map;Tt(e,t,r=>{Ws(n,r.source,r.target),Ws(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function Ws(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function od(e,t){let n=new Map;for(let i of e){let o=t.get(i);n.set(o,(n.get(o)??0)+1)}let r,s=0;for(let[i,o]of n)(o>s||o===s&&i<r)&&(r=i,s=o);return r}function ad(e,t){let n=new Map;for(let[s,i]of e){let o=n.get(i);o===void 0?n.set(i,[s]):o.push(s)}let r=[];for(let s of n.values())s.length<t||(s.sort(),r.push({representative:s[0],size:s.length,members:s}));return r.sort((s,i)=>i.size-s.size||s.representative.localeCompare(i.representative))}function Vs(e,t={}){let n=t.maxIterations??nd,r=t.minSize??rd;St("maxIterations",n),St("minSize",r);let s=id(e,t.kinds),i=e.nodes(),o=new Map(i.map(l=>[l,l])),a=0,c=!1,d=0,u=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let l of i){d+=1;let f=s.get(l);if(f===void 0)continue;u+=f.length;let m=od(f,o);m!==o.get(l)&&(o.set(l,m),c=!1)}}return{value:{communities:ad(o,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function Dt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Rt(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Sn(e,t){return(t.hierarchy?Et(e,t):e.source===je(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function cd(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let s of t){let i=n.require(s);if(!Dt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Rt(i))}return r}function dd(e,t){let n=e.registry(),r=new Map;for(let s of e.edges()){let i=n.require(s.kind);if(!Dt(i))continue;let o=Rt(i);if(t!==void 0&&!t.has(o))continue;let a=Sn(s,i);if(a.from===a.to)continue;let c=r.get(o);c===void 0&&(c={adjacency:new Map,records:[]},r.set(o,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:s})}return r}function ud(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function ld(e,t,n,r){let s=[r];for(let i=n;i!==t;i=e.get(i))s.push(i);return s.push(t),s.reverse()}function fd(e,t,n,r,s,i){for(let o of e.get(n.id)??[])if(i.inspectedEdges+=1,!(n.depth===0&&o===t.to)&&!r.has(o)){if(r.set(o,n.id),o===t.to)return ld(r,t.from,n.id,o);s.push({id:o,depth:n.depth+1})}}function md(e,t,n,r){let s=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let o=0;o<i.length;o+=1){let a=i[o];if(r.visitedNodes+=1,a.depth>=n)continue;let c=fd(e,t,a,s,i,r);if(c!==void 0)return c}}function At(e,t={}){let n=t.maxDepth??sd;St("maxDepth",n),t.limit!==void 0&&St("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,s=cd(e,t.kinds),i=dd(e,s),o=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=ud(u);for(let f of u.records){t.signal?.throwIfAborted();let m=md(l,f,n,a);if(m!==void 0){if(o.length>=r){c=!0;break e}o.push({edge:f.edge,witness:m})}}}return{value:o,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function pd(e,t,n,r,s){let i=new Set,o=[];for(let a of n){if(a.id===e||i.has(a.id))continue;if(!s.seen.has(a.id)){if(t>=r){s.truncated=!0;continue}s.seen.add(a.id),s.queue.push({id:a.id,depth:t+1})}i.add(a.id),o.push(a.id);let c=s.predecessors.get(a.id);c===void 0&&(c=new Set,s.predecessors.set(a.id,c)),c.add(e)}return o}function gd(e,t,n){let r=n.direction??"outgoing",s=n.maxDepth??Number.POSITIVE_INFINITY,i=[],o=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){n.signal?.throwIfAborted();let{id:u,depth:l}=a.queue[d];i.push(u);let f=e.neighborEdges(u,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,o.set(u,pd(u,l,f.value,s,a))}return{order:i,successors:o,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function hd(e,t){let n=[],r=new Set([t]),s=[{id:t,index:0}];for(;s.length>0;){let i=s.at(-1),o=e.successors.get(i.id);if(i.index<o.length){let a=o[i.index];i.index+=1,r.has(a)||(r.add(a),s.push({id:a,index:0}))}else n.push(i.id),s.pop()}return n.reverse()}function yd(e,t,n,r){let s=e,i=t;for(;s!==i;){for(;r.get(s)>r.get(i);)s=n.get(s);for(;r.get(i)>r.get(s);)i=n.get(i)}return s}function _d(e,t,n){let r;for(let s of[...e].sort())t.has(s)&&(r=r===void 0?s:yd(r,s,t,n));return r}function wd(e,t,n,r,s){let i=new Map([[t,t]]),o=!0;for(;o;){o=!1;for(let a of n){if(s?.throwIfAborted(),a===t)continue;let c=_d(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),o=!0)}}return i}function Ys(e,t,n={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(n.maxDepth!==void 0&&(!Number.isInteger(n.maxDepth)||n.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(n.maxDepth)}`);let r=gd(e,t,n),s=hd(r,t),i=new Map(s.map((d,u)=>[d,u])),o=wd(r,t,s,i,n.signal),a=new Map(s.map(d=>[d,1]));for(let d=s.length-1;d>=0;d-=1){let u=s[d];if(u===t)continue;let l=o.get(u);a.set(l,a.get(l)+a.get(u))}let c=s.filter(d=>d!==t).map(d=>({id:d,idom:o.get(d),dominatedCount:a.get(d)-1})).sort((d,u)=>u.dominatedCount-d.dominatedCount||d.id.localeCompare(u.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Xs(e){return Math.round(e*1e6)/1e6}function Js(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Qs(e,t){let n=new Map(e.nodes().map(s=>[s,new Set]));Tt(e,t,s=>{n.get(s.source).add(s.target),n.get(s.target).add(s.source)});let r=new Map;for(let[s,i]of n)r.set(s,[...i].sort());return r}function bd(e,t){let n=new Map,r=new Map;return Tt(e,t,(s,i)=>{if(!i.ordering)return;let{predecessor:o,successor:a}=It(s,i);Js(r,o,a),Js(n,a,o)}),{incoming:n,outgoing:r}}function kd(e,t,n){let r=new Map([[e,0]]),s=new Map([[e,1]]),i=new Map,o=[],a=[e],c=0,d=0;for(let u=0;u<a.length;u+=1){let l=a[u];n.visitedNodes+=1,o.push(l);let f=r.get(l);l!==e&&(c+=1,d+=f);for(let m of t.get(l))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){s.set(m,(s.get(m)??0)+s.get(l));let p=i.get(m);p===void 0?i.set(m,[l]):p.push(l)}}return{stack:o,sigma:s,predecessors:i,reachableCount:c,distanceSum:d}}function vd(e,t,n){let r=new Map;for(let s=e.stack.length-1;s>=0;s-=1){let i=e.stack[s],o=(1+(r.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*o);i!==t&&n.set(i,(n.get(i)??0)+(r.get(i)??0))}}function xd(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Ed(e,t,n,r,s){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:Xs((r.get(e)??0)/2),closeness:Xs(s.get(e))}}function Zs(e,t={}){let n=Qs(e,t.kinds),r=bd(e,t.kinds),s=e.nodes(),i=new Map,o=new Map,a={visitedNodes:0,inspectedEdges:0};for(let u of s){t.signal?.throwIfAborted();let l=kd(u,n,a);o.set(u,xd(l,s.length)),vd(l,u,i)}let c=0;for(let u of n.values())c+=u.length;let d=s.map(u=>Ed(u,n,r,i,o)).sort((u,l)=>l.betweenness-u.betweenness||l.degree-u.degree||u.id.localeCompare(l.id));return{value:{nodeCount:s.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function Id(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Cd(e,t,n){let s=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,s!==e.parent){if(n.discovery.has(s)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(s)));return}return e.children+=1,n.discovery.set(s,n.timer),n.low.set(s,n.timer),n.timer+=1,{node:s,parent:e.node,neighborIndex:0,children:0}}}function Sd(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,s=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),s)),r!==t&&s>=n.discovery.get(r)&&n.articulation.add(r),s>n.discovery.get(r)&&n.bridges.push(Id(r,e.node))}function Td(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let s=[{node:e,parent:null,neighborIndex:0,children:0}];for(;s.length>0;){r?.throwIfAborted();let i=s.at(-1);if(i.neighborIndex<t.get(i.node).length){let o=Cd(i,t,n);o!==void 0&&s.push(o)}else Sd(i,e,n),s.pop()}}function ei(e,t={}){let n=Qs(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let s of e.nodes())r.discovery.has(s)||Td(s,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((s,i)=>s.source.localeCompare(i.source)||s.target.localeCompare(i.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!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]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Dd(e){let t=e.registry(),n=new Map,r=new Set;for(let s of e.edges()){let i=t.require(s.kind);if(!i.ordering)continue;let{predecessor:o,successor:a}=It(s,i);if(r.add(o),r.add(a),o===a)continue;let c=n.get(o);c===void 0?n.set(o,new Set([a])):c.add(a)}return{forward:n,participants:r}}function Rd(e,t,n,r){if(e===void 0)return r;let s=r;for(let i of e)t.has(i)&&(s=Math.min(s,n.get(i)));return s}function Ad(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function Nd(e,t,n,r,s){let i=new Map;for(let o=e.length-1;o>=0;o-=1){let a=e[o],c=Rd(t.forward.get(a),r,i,s);i.set(a,c-1)}return e.map(o=>Ad(o,n[o],i.get(o))).sort((o,a)=>o.slack-a.slack||o.earliestStart-a.earliestStart||o.id.localeCompare(a.id))}function ti(e,t={}){t.signal?.throwIfAborted();let n=mt(e,{registry:e.registry()}),r=Dd(e),s=new Set(n.order),i=n.order.filter(d=>r.participants.has(d)),o=i.reduce((d,u)=>Math.max(d,n.depth[u]+1),0),a=Nd(i,r,n.depth,s,o),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:o,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(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]="996cfe8f-1b9b-534e-9e22-ede6f76d7cac")}catch{}})();var Fd=25,Ld=new Set(["discovered_from","incident_from","supersedes","verifies"]);function Nn(e){return Ld.has(e)}var ni={error:0,warning:1,info:2};function Rn(e,t,n,r,s,i,o){let a=[...s].sort((c,d)=>c.localeCompare(d));return{code:e,severity:t,policy:n,message:r(a.length),count:a.length,sample:a.slice(0,i),sample_truncated:a.length>i,remediation:o}}function Md(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let s=t.require(r.kind);if(!s.ordering)continue;let[i,o]=(s.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(i);a?a.push(o):n.set(i,[o])}for(let r of n.values())r.sort((s,i)=>s.localeCompare(i));return n}function si(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function Od(e,t,n,r){let s=n.get(e.node)??[];if(e.neighborIndex>=s.length)return!1;let i=s[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(i)?r.onStack.has(i)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(i))):(si(i,r),t.push({node:i,neighborIndex:0})),!0}function $d(e,t,n,r){t.pop();let s=t.at(-1);if(s&&r.lowLinks.set(s.node,Math.min(r.lowLinks.get(s.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let i=[];for(;;){let o=r.stack.pop();if(r.onStack.delete(o),i.push(o),o===e.node)break}(i.length>1||i.length===1&&n.get(i[0])?.includes(i[0]))&&r.components.push(i.sort((o,a)=>o.localeCompare(a)))}function Pd(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,s)=>r.localeCompare(s));for(let r of n){if(t.indexes.has(r))continue;let s=[{node:r,neighborIndex:0}];for(si(r,t);s.length>0;){let i=s.at(-1);Od(i,s,e,t)||$d(i,s,e,t)}}return t.components.sort((r,s)=>r[0].localeCompare(s[0]))}function Tn(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function ee(e,t,n,r,s,i,o,a){t.length!==0&&e.push(Rn(r,s,i,o,t,n,a))}function jd(e,t,n){let r=[],s=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return ee(r,s.filter(i=>!t(i.holder_status)).map(Tn),n,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",i=>`${i} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),ee(r,s.filter(i=>t(i.holder_status)).map(Tn),n,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",i=>`${i} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),ee(r,e.dangling.no_active_blocker_sentinels.map(Tn),n,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",i=>`${i} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),r}function An(e,t){let n=t.get(e);return n?!n.terminal:!0}function Ud(e,t,n,r){let s=[],i=Md(e);for(let c of Pd(i)){let d=c.some(u=>An(u,t));s.push(d?Rn("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",u=>`execution-order cycle across ${u} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear."):Rn("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",u=>`terminal-only execution-order cycle across ${u} item(s)`,c,r,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc."))}let o=new Map;for(let[c,d]of i)for(let u of d){let l=o.get(u);l?l.push(c):o.set(u,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(o.get(c.id)??[]).some(d=>{let u=t.get(d);return u===void 0||!u.terminal})).map(c=>c.id);return ee(s,a,r,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),s}function Nt(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Fn(e){let t=e.graph.registry(),n=new Map;for(let s of e.graph.edges()){let i=t.require(s.kind);if(!Dt(i))continue;let o=Sn(s,i);if(o.from===o.to)continue;let a=`${Rt(i)}::${o.from}::${o.to}`,c=n.get(a);c?c.edges.push(s):n.set(a,{...o,edges:[s]})}let r=[...n.values()].filter(s=>s.edges.length>=2);for(let s of r)s.edges.sort((i,o)=>i.kind.localeCompare(o.kind));return r.sort((s,i)=>s.from.localeCompare(i.from)||s.to.localeCompare(i.to))}function Bd(e,t,n){let r=[],s=[];for(let o of Fn(e))(An(o.from,t)||An(o.to,t)?r:s).push(Nt(o));let i=[];return ee(i,r,n,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",o=>`${o} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),ee(i,s,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",o=>`${o} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function Gd(e,t){let n=[],r=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?r:n).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let s=[];return ee(s,n,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",i=>`${i} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),ee(s,r,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",i=>`${i} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),s}function Kd(e,t,n,r,s){e.active+=1;let i=t.type??"(untyped)",o=e.byType.get(i);o||(o={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,o)),o.active+=1,!(n>1)&&(e.degreeLeqOne+=1,o.degree_leq_one+=1,n===0&&(e.isolated+=1,o.isolated+=1),!(r.has(t.id.toLowerCase())||s.has(i.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function zd(e,t,n,r,s,i){let o={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let m of e.graph.nodes()){let p=t.get(m);if(p){if(p.missing){o.missing+=1;continue}p.terminal||Kd(o,p,e.graph.incidentEdges(m).length,n,r)}}let{isolates:a,sparse:c}=o,d=[];ee(d,a,s,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",m=>`${m} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),ee(d,c,s,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",m=>`${m} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let u=e.graph.edges().length,l=Object.fromEntries(Object.entries(i).sort(([m],[p])=>m.localeCompare(p))),f=Object.entries(l).reduce((m,[p,y])=>m+(Nn(p)?y:0),0);return{findings:d,profile:{nodes:e.graph.nodes().length,edges:u,edge_basis:"deduplicated_directed",edges_by_kind:l,edge_share_by_kind:Object.fromEntries(Object.entries(l).map(([m,p])=>[m,p/u])),semantic_edges:f,semantic_edge_share:u===0?0:f/u,active_nodes:o.active,missing_nodes:o.missing,isolated_active_nodes:o.isolated,degree_leq_one_active_nodes:o.degreeLeqOne,coverage_by_type:Object.fromEntries([...o.byType.entries()].sort(([m],[p])=>m<p?-1:1))}}}function Ft(e,t={}){let n=t.isTerminal??(l=>l==="closed"||l==="canceled"),r=t.isBlocked??(l=>l==="blocked"),s=t.maxSampleSize??Fd;if(!Number.isInteger(s)||s<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=new Set((t.exemptIsolates??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),o=new Set((t.isolateExemptTypes??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),a=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:n(l.status),...l.type===void 0?{}:{type:l.type}}]));t.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let d=jd(e,n,s);t.signal?.throwIfAborted(),d.push(...Ud(e,a,r,s)),t.signal?.throwIfAborted(),d.push(...Bd(e,a,s),...Gd(e,s)),t.signal?.throwIfAborted();let u=zd(e,a,i,o,s,c);return d.push(...u.findings),d.sort((l,f)=>ni[l.severity]-ni[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:d,profile:u.profile}}function Dn(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let s of n){let i=(t[s]??0)-(e[s]??0);i!==0&&(r[s]=i)}return r}function ri(e){return e.profile.coverage_by_type??{}}function ii(e,t){let n={},r=ri(e),s=ri(t),i=[...new Set([...Object.keys(r),...Object.keys(s)])].sort();for(let f of i){let m=Object.assign({active:0,isolated:0,degree_leq_one:0},r[f]),p=Object.assign({active:0,isolated:0,degree_leq_one:0},s[f]),y={active:p.active-m.active,isolated:p.isolated-m.isolated,degree_leq_one:p.degree_leq_one-m.degree_leq_one};Object.values(y).some(w=>w!==0)&&(n[f]=y)}let{edge_share_by_kind:o={},semantic_edges:a=0,semantic_edge_share:c=0}=e.profile,{edge_share_by_kind:d={},semantic_edges:u=0,semantic_edge_share:l=0}=t.profile;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Dn(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,edges:t.profile.edges-e.profile.edges,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:Dn(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Dn(o,d),semantic_edges:u-a,semantic_edge_share:l-c,coverage_by_type:n}}}import ai 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]="4cb399d6-7311-5e2d-a8d2-e0140530ec72")}catch{}})();var ci=1,Ln=500,Hd=64,qd="graph-durable-cache";function di(e){return Ce(e,qd,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Ue(e){return ai.join(e,"runtime","graph-cache.json")}function ui(e){return ai.join(e,"runtime","graph-audit-baseline.json")}function Mn(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==ci||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function On(e,t){let n=await se(Ue(e)),r=Mn(n),s=r?.fingerprint===t;return{exists:n!==null,fresh:s,results:s?r.results:{}}}async function $n(e,t,n,r,s){let i=await di(e);try{let o=Mn(await se(Ue(e))),a=o?.fingerprint===t?o.results:{};delete a[r],a[r]=s;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-Hd)))delete a[d];await K(Ue(e),JSON.stringify({version:ci,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function Pn(e){let t=await di(e);try{await vr(Ue(e))}finally{await t()}}async function li(e,t){let n=Ue(e),r=await se(n),s=Mn(r);return s===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:s.fingerprint===t,entry_count:Object.keys(s.results).length,fingerprint:s.fingerprint.slice(0,12),saved_at:s.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function jn(e,t){return t||e>=Ln}function oi(e){return Ne(e)&&Object.values(e).every(Lt)}function Ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Lt(e){return Number.isInteger(e)&&Number(e)>=0}function fi(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Wd(e,t){return e===void 0||t(e)}function Vd(e){return Ne(e)&&Object.values(e).every(fi)}function Yd(e){return Ne(e)?Object.values(e).every(t=>Ne(t)&&[t.active,t.isolated,t.degree_leq_one].every(Lt)):!1}function Xd(e,t,n,r,s){let i=[n,r,s],o=i.filter(d=>d!==void 0).length;if(o===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(o!==i.length||!Vd(n)||!Lt(r)||!fi(s))return;let a=Object.entries(t);if(a.reduce((d,[,u])=>d+u,0)!==e||Object.keys(n).length!==a.length||a.some(([d,u])=>n[d]!==(e===0?0:u/e)))return;let c=a.reduce((d,[u,l])=>d+(Nn(u)?l:0),0);if(!(r!==c||s!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:s}}function Jd(e){if(e!==null)try{let t=JSON.parse(e);if(!Ne(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string"||!oi(n.affected_subjects_by_code)||!Ne(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(Lt)||!oi(r.edges_by_kind)||!Wd(r.coverage_by_type,Yd))return;let s=Xd(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(s===void 0)return;let{coverage_by_type:i={}}=r;return{...n,profile:{...r,...s,coverage_by_type:i}}}catch{return}}async function mi(e){return Jd(await se(ui(e)))}async function pi(e,t){await K(ui(e),JSON.stringify(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]="9b8e22ad-6268-515d-994e-6b98a062ba93")}catch{}})();var Qd={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function gi(e){return`${e.source} -${e.kind}-> ${e.target}`}function Zd(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:gi(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${gi(t)}`,`group: ${Nt(e)}`],confidence:"high"}))}function eu(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>Zd(t.get(r)));let n=Qd[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function hi(e,t={}){let{redundancyLimit:n,...r}=t,s=Ft(e,r),i=new Map(Fn(e).map(d=>[Nt(d),d])),o=s.findings.flatMap(d=>eu(d,i)),a=s.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=At(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)o.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:o,report:s,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(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]="6c8bfb7a-687a-5fbb-b408-ffdbab1187a9")}catch{}})();var bi=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function yi(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function _i(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function tu(e,t,n){let r=e.trim().toLowerCase();if(!sn.includes(r))throw Sr({command_path:"graph",token:r||"<empty>",allowed:sn});let s=r;if(bi.has(s)&&!t?.trim())throw new h(`graph ${s} requires an item id.`,g.USAGE);if(s==="paths"&&!n?.trim())throw new h("graph paths requires a source and a target item id.",g.USAGE);return s}function Un(e){throw e instanceof TypeError?new h(e.message,g.USAGE):e}function Bn(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function wi(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new h(`Item ${t} not found`,g.NOT_FOUND)}function nu(e,t,n){let r={ancestors:Gs,descendants:Ks,predecessors:zs,successors:Hs}[e],s;try{s=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(o){Un(o)}let i=Bn(s.meta);return{subcommand:e,root:t,count:s.value.length,...i,...s.meta.nextCursor===void 0?{}:{next_cursor:s.meta.nextCursor},...n.summary?{}:{ids:s.value}}}function ru(e,t,n){let r=qs(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...Bn(r.meta),...n.summary?{}:{paths:r.value.map(s=>({nodes:s.nodes,kinds:s.edges.map(i=>i.kind),length:s.length}))}}}function su(e,t){let n;try{n=Es(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??me},...t.after===void 0?{}:{after:t.after}})}catch(r){Un(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function iu(e){let t=e.assembly.graph,n=e.limit??me,r=mt(t,{registry:t.registry()}),s=Is(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:{acyclic:r.acyclic,ordered_node_count:r.order.length,layer_count:r.layers.length,frontier_count:r.frontier.length,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,...e.summary?{}:{frontier:r.frontier.slice(0,n),critical_path:r.criticalPath.slice(0,n),cycles:r.cycles.slice(0,n)}},knowledge:{component_count:s.components.length,largest_component_size:s.components[0]?.length??0,orphan_count:s.orphans.length,...e.summary?{}:{orphans:s.orphans.slice(0,n),hubs:s.hubs.slice(0,n)}}}}function ou(e,t){let n=Ft(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},s={},i={},o={};for(let a of n.findings)r[a.severity]=(r[a.severity]??0)+1,s[a.code]=(s[a.code]??0)+1,i[a.severity]=(i[a.severity]??0)+a.count,o[a.code]=(o[a.code]??0)+a.count;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:s,affected_subjects_by_severity:i,affected_subjects_by_code:o,profile:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function au(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Vs(e.assembly.graph,n),s=r.value;return{subcommand:"communities",community_count:s.communities.length,largest_community_size:s.communities[0]?.size??0,iterations:s.iterations,converged:s.converged,truncated:!s.converged||s.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:s.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function cu(e){let t;try{t=At(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){Un(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...Bn(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function du(e,t){let n=t.limit??me,r=Ys(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),s=r.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:s.length,truncated:r.meta.truncated||s.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:s.slice(0,n).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function uu(e){let t=e.limit??me,n=ti(e.assembly.graph),r=n.rows.filter(s=>s.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(s=>({id:s.id,earliest_start:s.earliestStart,latest_start:s.latestStart,slack:s.slack,critical:s.critical}))}}}function lu(e){let t=e.limit??me,n=Zs(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(s=>({id:s.id,degree:s.degree,in_degree:s.inDegree,out_degree:s.outDegree,betweenness:s.betweenness,closeness:s.closeness}))}}}function fu(e){let t=e.limit??me,n=ei(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:s}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:s.length,truncated:r.length>t||s.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:s.slice(0,t)}}}function mu(e,t){let n=e.limit??me,r=hi(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),s={},i={};for(let o of r.steps)s[o.op]=(s[o.op]??0)+1,i[o.code]=(i[o.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:s,steps_by_code:i,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function ki(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(s=>s.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(s=>s.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function vi(e,t,n,r,s){return e==="analyze"?iu(r):e==="audit"?ou(r,s):e==="plan"?mu(r,s):e==="communities"?au(r):e==="redundancy"?cu(r):e==="dominators"?du(t,r):e==="slack"?uu(r):e==="centrality"?lu(r):e==="articulation"?fu(r):e==="paths"?ru(t,n,r):e==="impact"?su(t,r):nu(e,t,r)}function pu(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new h("--rebuild and --clear apply only to graph index.",g.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new h("--save-baseline applies only to graph audit.",g.USAGE);if(e==="slack"&&t.kind!==void 0)throw new h("graph slack analyzes every ordering kind; --kind is not supported.",g.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new h("graph index accepts either --rebuild or --clear, not both.",g.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new h("graph impact accepts either --full or --limit, not both.",g.USAGE)}async function gu(e,t,n,r,s,i){let o="status";if(i.clear===!0&&(await Pn(e),o="cleared"),i.rebuild===!0){await Pn(e);let c=await On(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await $n(e,t,c,ki(u,void 0,void 0,d),vi(u,void 0,void 0,d,s));o="rebuilt"}let a=await li(e,t);return{subcommand:"index",action:o,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:Ln,persist_enabled:jn(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function hu(e,t,n,r){let s={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:n.profile},i=await mi(e);return r&&await pi(e,s),i===void 0?n:{...n,baseline:ii(i,s)}}async function yu(e,t,n,r,s){try{await $n(e,t,n,r,s)}catch{}}async function w_(e,t,n,r,s){let i=tu(e,t,n);rt(r.summary===!0,r.full===!0,"--summary");let o=S(process.cwd(),s.path);if(!await A($(o)))throw new h(`Tracker is not initialized at ${o}. Run pm init first.`,g.NOT_FOUND);let a=await T(o),c=O(a,N()),d=await Q(o,a.item_format,c.type_to_folder,void 0,a.schema),u=z(a.schema),l=U=>L(U,u);pu(i,r);let f=De(),m=In(r.kind,f),p=kt().lookup(o,bt(d,l,f),()=>Re(d,l,f)),y={assembly:p.assembly,...m===void 0?{}:{kinds:m},maxDepth:xt(r.maxDepth),limit:Z(r.limit,"limit"),after:r.after?.trim()||void 0,direction:En(r.direction),maxPaths:Z(r.maxPaths,"max-paths"),sample:Z(r.sample,"sample"),exemptIsolates:_i(r.exemptIsolate),exemptIsolateTypes:_i(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return yi(await gu(o,p.fingerprint,y,d.length,l,r),!1);let w=bi.has(i)?wi(y.assembly,t):void 0,_=i==="paths"?wi(y.assembly,n):void 0,b=ki(i,w,_,y),k=await On(o,p.fingerprint),E=k.results[b],I=p.memoize(b,()=>E!==void 0?structuredClone(E):vi(i,w,_,y,l)),P=jn(d.length,k.exists);!I.reused&&E===void 0&&P&&await yu(o,p.fingerprint,k,b,I.value);let D=I.value.subcommand==="audit"?await hu(o,p.fingerprint,I.value,y.saveBaseline):I.value;return D.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:E!==void 0?"hit":P?"miss":"off"},yi(D,y.summary,"result_rows")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de8a82e1-0b02-5d5a-9086-686529a1ccab")}catch{}})();var xi="blocked_by",Ei="blocks",_u=Object.freeze([xi,Ei]),Gn="no-active-blocker";function R(e){return e.trim().toLowerCase()}function ge(e){let t=new Set,n=typeof e.blocked_by=="string"?R(e.blocked_by):"";n.length>0&&n!==Gn&&t.add(n);for(let r of e.dependencies??[]){let s=typeof r.id=="string"?R(r.id):"";r.kind===xi&&s.length>0&&s!==Gn&&t.add(s)}return[...t].sort((r,s)=>r.localeCompare(s))}function Mt(e){let t=new Map;for(let n of e){let r=R(n.id);r.length!==0&&t.set(r,new Set(ge(n)))}for(let n of e){let r=R(n.id);if(r.length!==0)for(let s of n.dependencies??[]){let i=s.kind===Ei&&typeof s.id=="string"?R(s.id):"";if(i.length===0||i===Gn)continue;let o=t.get(i)??new Set;o.add(r),t.set(i,o)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((s,i)=>s.localeCompare(i))]))}function Ii(e,t){let n=R(e.id);return n.length>0?Mt(t).get(n)??ge(e):ge(e)}function Kn(e,t,n,r){let s=e;return(typeof s.id=="string"?r?.get(R(s.id))??Ii(s,[...t.values()]):ge(e)).map(o=>{let a=t.get(R(o));return a?{id:o,title:a.title,status:a.status,resolved:L(a.status,n)}:{id:o,title:null,status:null,resolved:!1}})}function Ot(e,t,n){return Kn(e,t,n)}function Be(e,t){let n=new Map(e.map(o=>[R(o.id),o])),r=Mt(e),s=new Set([...Ci(t),...t.blocked_statuses]),i=new Set;for(let o of e){let a=C(o.status,t);if(!s.has(a))continue;(t.blocked_statuses.has(a)||Kn(o,n,t,r).some(d=>!d.resolved))&&i.add(R(o.id))}return i}function Ci(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function wu(e,t,n){let r=[R(e)],s=new Set;for(;r.length>0;){let i=r.pop();if(!s.has(i)){s.add(i);for(let o of t.get(i)??[]){if(!L(o.status,n))return!0;r.push(R(o.id))}}}return!1}function bu(e){let t=new Map,n=new Map,r=new Map,s=Mt(e);for(let i of e){t.set(R(i.id),i);let o=typeof i.parent=="string"?i.parent.trim():"";if(o.length>0){let a=R(o),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of s.get(R(i.id))){let c=R(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:s}}function zn(e,t,n){let{itemsById:r,childrenByParent:s,blockedByReverse:i,blockerIdsByItem:o}=bu(t),a=new Set([...Ci(n),...n.blocked_statuses]),c=new Set(t.filter(m=>!L(m.status,n)).map(m=>R(m.id))),d=[],u=[],l=0,f=0;for(let m of e){if(!a.has(C(m.status,n)))continue;if(l+=1,wu(m.id,s,n)){f+=1;continue}let p=Kn(m,r,n,o).filter(b=>!b.resolved),y=(i.get(R(m.id))??[]).filter(b=>c.has(R(b))).sort((b,k)=>b.localeCompare(k)),w={item:m,open_blockers:p,unblocks:y},_=n.blocked_statuses.has(C(m.status,n));p.length===0&&!_?d.push(w):u.push(w)}return{ready:d,blocked:u,active_count:l,container_count:f}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc271a73-9767-54bb-a142-d4d4569e3c6a")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function Hn(e,t){if(e===void 0)return;let n=[],r="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a==="\\"){let c=e[o+1];if(c===","||c==="\\"){r+=c,o+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let s=n.map(o=>o.trim());if(s.some(o=>o.length===0))throw new h(`${t.label} requires at least one non-empty value`,g.USAGE);let i=s.map(o=>t.normalize?.(o)??o);return[...new Set(i)]}function Ge(e,t){let n=Hn(e,t);return n===void 0?void 0:new Set(n)}function Si(e,t,n="--type"){let r=Hn(e,{label:n});if(r===void 0)return;let s=r.map(i=>{let o=tt(i,t);if(!o)throw new h(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,g.USAGE);return o});return new Set(s)}function Ti(e,t="--priority"){let n=Hn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>pt(r,t)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function Di(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Fi(e){return{isTerminal(t){return e.terminal_statuses.has(Di(t,e))},classify(t){let n=Di(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function qn(e){return j(e.acceptance_criteria)===void 0}function Wn(e){return!Number.isFinite(e.estimated_minutes)}function Li(e,t){return t.isTerminal(e.status)?j(e.resolution)===void 0:!1}function ku(e){return j(e.reviewer)===void 0}function vu(e){return j(e.risk)===void 0}function xu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):j(e.confidence)===void 0}function Eu(e){return j(e.sprint)===void 0}function Iu(e){return j(e.release)===void 0}function Vn(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Cu(e,t,n){return[[t.acMissing,qn(e)],[t.estimatesMissing,Wn(e)],[t.resolutionMissing,Li(e,n)],[t.reviewerMissing,ku(e)],[t.riskMissing,vu(e)],[t.confidenceMissing,xu(e)],[t.sprintMissing,Eu(e)],[t.releaseMissing,Iu(e)]].every(([s,i])=>s!==!0||i)}function Su(e,t){return qn(e)||Wn(e)||Li(e,t)}function Mi(e,t,n){return Vn(t)?!(!Cu(e,t,n)||t.metadataMissing&&!Su(e,n)):!0}var Yn=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Tu(e,t){switch(t){case"acceptance_criteria":return!qn(e);case"estimated_minutes":return!Wn(e);case"resolution":return j(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return j(e.parent)!==void 0}}function Du(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function Ru(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ri(){let e={};for(let t of Yn)e[t]={present:0,applicable:0,percent:100};return e}function Ai(e,t,n){for(let r of Yn){if(!Du(t,r,n))continue;let s=e[r];s.applicable+=1,Tu(t,r)&&(s.present+=1)}}function Ni(e){for(let t of Yn){let n=e[t];n.percent=Ru(n.present,n.applicable)}}function A_(e,t){let n=Ri(),r={};for(let s of e){Ai(n,s,t);let i=r[s.type]??(r[s.type]=Ri());Ai(i,s,t)}Ni(n);for(let s of Object.values(r))Ni(s);return{overall:n,by_type:r}}var Au={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Nu(e){return Au[e]}function Fu(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Lu(e,t,n){switch(t){case"assignee":return[j(e.assignee)??null];case"parent":return[j(e.parent)??null];case"type":return[j(e.type)??null];case"status":return[j(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(o=>typeof o=="string"&&o.length>0&&(!r||o.startsWith(r)));return i.length>0?i:[null]}}}function N_(e,t,n,r={}){let s=new Map,i=0;for(let a of e){i+=1;let c=n.classify(a.status);for(let d of Lu(a,t,r)){let u=d??"\0empty",l=s.get(u);l||(l={label:d??Nu(t),key:d,buckets:Fu(),total:0},s.set(u,l)),l.buckets[c]+=1,l.total+=1}}let o=[...s.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:o,total_items:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Fe=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function he(e){return Array.isArray(e)&&e.length>0}function Mu(e){return typeof e=="string"&&e.trim().length>0}function Ou(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let n=t.command;return typeof n=="string"&&n.trim().length>0}):!1}function $i(e,t){switch(t){case"notes":return he(e.notes);case"learnings":return he(e.learnings);case"files":return he(e.files);case"docs":return he(e.docs);case"tests":return he(e.tests);case"comments":return he(e.comments);case"deps":return he(e.dependencies);case"body":return Mu(e.body);case"linked_command":return Ou(e.tests)}}function Pi(e){return Fe.some(t=>e[t]!==void 0)}function ji(e,t){for(let n of Fe){let r=t[n];if(r===void 0)continue;let s=$i(e,n);if(r==="present"&&!s||r==="absent"&&s)return!1}return!0}function Ui(e){return Fe.some(t=>t!=="body"&&e[t]!==void 0)}function Bi(e){return e.body!==void 0}function Oi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function $u(){let e={};for(let t of Fe)e[t]={present:0,total:0,percent:100};return e}function L_(e){let t=$u(),n=e.length;for(let o of e)for(let a of Fe)$i(o,a)&&(t[a].present+=1);for(let o of Fe)t[o].total=n,t[o].percent=Oi(t[o].present,n);let r=t.body,s=n-r.present,i={present:s,total:n,percent:Oi(s,n)};return{total_items:n,fields:t,body_populated:r,empty_body:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var Pu=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),Gi=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],Wi=e=>{let t=Gi.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new h(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,g.USAGE);return Object.fromEntries(Gi.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Ki=["priority","deadline","updated_at","created_at","title","parent"],zi=["asc","desc"],ju=["id","title","status","type","priority","parent","updated_at"],Uu=["id","status","type","title"],ow={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Bu=["tree_depth","tree_parent","tree_children","tree_title"],Vi=new Set(rs);function Gu(e,t,n){let r=e.filter(o=>o.startsWith("item_list_item_read_failed:")).length,s=e.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":r+s>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:s};if(n&&i.status==="partial")throw new h(`List source is incomplete: ${r} item document(s) and ${s} item directory/directories could not be read.`,g.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function Ku(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var zu=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],Hu=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function Yi(e,t){for(let n of zu)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Xi(e,t){for(let n of Hu)t[n.key]===!0&&(e[n.summaryKey]=!0)}function qu(e,t,n){for(let r of n){let s=t[r.optionKey];s!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(s):s)}}function Wu(e){let t={};return Yi(t,e),t}function Vu(e){let t={};return Xi(t,e),t}var Yu=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],Xu=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],Ju=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Qu="-7d";function Zu(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:s,sortField:i,sortOrder:o,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),qu(c,n,Yu),Qi(c,n),n.filterAcMissing===!0&&(c.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),Xi(c,n),Yi(c,n),n.limit!==void 0&&(c.limit=n.limit),n.offset!==void 0&&(c.offset=n.offset),n.includeBody===!0&&(c.include_body=!0),n.fields!==void 0&&(c.fields=n.fields),r&&(c.tree=!0,s!==void 0&&(c.tree_depth=s)),i!==void 0&&(c.sort=i,c.order=o),Ku(a)&&(c.runtime_filters=a),c}function Ji(e,t,n){let r=L(e.status,n),s=L(t.status,n);if(r!==s)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let o=x(t.updated_at,e.updated_at);return o!==0?o:(e.id??"").localeCompare(t.id??"")}function el(e,t){return[...e].sort((n,r)=>Ji(n,r,t))}function Hi(e,t){if(e!==void 0)return ie(e,new Date,t)}function Ke(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ie(n,new Date,t)}function tl(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new h("Choose only one updated_at window: --today, --recent, or --updated-after.",g.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Ke(Qu,"recent"):Ke(e.updatedAfter,"updated-after")}function Qi(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function nl(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new h("--ids requires at least one non-empty item ID",g.USAGE);return new Set(n)}function Zi(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new h("Offset filter must be a non-negative integer",g.USAGE);return n}function rl(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 h("List --fields requires a comma-separated list of field names",g.USAGE);return[...new Set(t)]}function sl(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,s=rl(e.fields);if(Number(t)+Number(n)+Number(r)+ +(s!==void 0)>1)throw new h("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",g.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...Uu]}:t?{mode:"compact",fields:[...ju]}:s?{mode:"fields",fields:s}:{mode:"full",fields:[]}}function ze(e){return e.startsWith("item.")?e.slice(5):e}function il(e,t){if(e.mode!=="fields")return;let n=new Set([...xr,"body",...Bu,...t]),r=e.fields.filter(s=>!n.has(ze(s)));if(r.length>0)throw new h(`Unknown list --fields value(s): ${r.join(", ")}`,g.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var ol=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function al(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=ol.get(t);if(n)return n;if(!Ki.includes(t))throw new h(`Sort field must be one of ${Ki.join("|")} (aliases: updated->updated_at, created->created_at)`,g.USAGE);return t}function cl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!zi.includes(t))throw new h(`Sort order must be one of ${zi.join("|")}`,g.USAGE);return t}function dl(e){return W(e,"--tree-depth")}function ul(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function qi(e,t){return es(e,t,{strict:!0})}function eo(e){return Ge(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function ll(e,t,n){let r=eo(t);if(r===void 0)return;let s=new Set(e.flatMap(o=>o.tags.map(a=>a.trim().toLowerCase()))),i=[...r].filter(o=>!s.has(o));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function fl(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(e!==void 0&&t==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE)}function ml(e,t,n,r){let s=Ge(t.assignee,{label:"--assignee"}),i=ul(t.assigneeFilter);fl(s,i);let o=Pu(t),a=Wi(t);return{idsFilter:nl(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Si(t.type,n),tagFilters:eo(t.tag),priorityFilter:Ti(t.priority),deadlineBefore:Hi(t.deadlineBefore,"deadline-before"),deadlineAfter:Hi(t.deadlineAfter,"deadline-after"),updatedAfter:tl(t),updatedBefore:Ke(t.updatedBefore,"updated-before"),createdAfter:Ke(t.createdAfter,"created-after"),createdBefore:Ke(t.createdBefore,"created-before"),assigneeFilter:s,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:Ge(t.sprint,{label:"--sprint"}),releaseFilter:Ge(t.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:Vn(o),lifecycleClassifier:Fi(r),contentFieldFilters:a,contentFiltersActive:Pi(a)}}function pl(e,t,n){return gl(e,t,n)&&hl(e,t)&&yl(e,t)&&_l(e,t)}function gl(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&L(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(s=>s.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function hl(e,t){return Ir(e,t)}function yl(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function _l(e,t){return t.parentFilter!==void 0&&!t.treeEnabled&&e.parent!==t.parentFilter||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function wl(e,t,n,r){return!(!pl(e,t,n)||t.missingMetadataActive&&!Mi(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ji(e,t.contentFieldFilters)||!dt(e,r))}function bl(e,t,n,r,s,i){let o=ml(t,n,r,s);return e.filter(a=>wl(a,o,s,i))}function $t(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function kl(e,t,n){let r=e,s=typeof r.title=="string"?r.title:"",i=$t(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(t)}${s}`}}function vl(e,t,n){let r=new Map,s=new Map;for(let d of e){r.set(d.id,d);let u=$t(d.parent);if(!u)continue;let l=s.get(u);l?l.push(d):s.set(u,[d])}let i=t?[...s.get(t)??[]]:e.filter(d=>{let u=$t(d.parent);return!u||!r.has(u)}),o=[],a=new Set,c=(d,u)=>{if(a.has(d.id))return;a.add(d.id);let l=s.get(d.id)??[];if(o.push(kl(d,u,l.length)),!(n!==void 0&&u>=n))for(let f of l)c(f,u+1)};for(let d of i)c(d,0);return o}function xl(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function El(e,t){return e===t?0:e===null?1:t===null?-1:x(e,t)}function Il(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return El(e.deadline??null,t.deadline??null);case"updated_at":return x(e.updated_at,t.updated_at);case"created_at":return x(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return xl(e.parent??null,t.parent??null);default:return 0}}function Cl(e,t,n,r){return t?[...e].sort((s,i)=>{let o=Il(s,i,t);if(o!==0)return n==="desc"?-o:o;let a=Ji(s,i,r);return n==="desc"?-a:a}):el(e,r)}function Sl(e,t,n=!1){let r=ze(t.trim());if(r.length===0)return null;let s=e;return n&&r==="title"&&typeof s.tree_title=="string"?s.tree_title:Object.prototype.hasOwnProperty.call(s,r)?s[r]??null:null}function to(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let s={};for(let i of t.fields)s[i]=Sl(r,i,n);return s})}function Tl(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Dl(e,t){if(e.noTruncate!==!0)return W(e.limit)??(t>=1e4?20:void 0)}function Rl(e,t,n){return t.after===void 0?Zi(t.offset)??0:Ee(e,t.after,n,r=>r.id)}function no(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Al(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=await T(n),s=z(r.schema),i=nt(r.schema),o=sl(e);return il(o,Tl(i.definitions)),{pmRoot:n,settings:r,statusRegistry:s,runtimeFieldFilters:ct(e,i,"list"),typeRegistry:O(r,N()),projection:o}}async function Nl(e,t,n){let r=t.projection.fields.some(c=>ze(c)==="body"),s=t.projection.mode==="full"||t.projection.fields.some(c=>Vi.has(ze(c))),i=Wi(e),o=Ui(i),a=Bi(i);return e.includeBody||r||a?await as(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):s||o?await os(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await Q(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Fl(e){let t=al(e.sort),n=cl(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new h("List --tree-depth requires --tree",g.USAGE);if(!t&&e.order!==void 0)throw new h("List --order requires --sort",g.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?dl(e.treeDepth):void 0,parentRoot:r?$t(e.parent):void 0}}function Ll(e,t,n){let r=qi(t.status,n),s=r??qi(e,n),i=Zr(t.status),o=r||i?{...t,excludeTerminal:!1}:t,a=i?"all":s===void 0?o.excludeTerminal===!0?null:"all":s.length===1?s[0]:s;return{resolvedStatus:s,explicitAllStatuses:i,effectiveOptions:o,filtersStatus:a}}function Ml(e,t,n,r,s){if(t.after!==void 0&&t.offset!==void 0)throw new h("List --after cannot be combined with --offset.",g.USAGE);let i=Dl(t,e.length),o=Rl(e,t,s),a=i===void 0?e.slice(o):e.slice(o,o+i),c=to(a,n,r),d=e.length,u=a.length>0&&o+a.length<d,l=u&&a.length>0?oe(s,a[a.length-1].id,o+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:no(i,u,l)}}function ro(e,t,n){return de("list",{status:e,options:st(t,cs),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Ol(e){let{options:t,runtime:n,statusSelection:r,ordering:s}=e,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),o=[n.projection.mode==="full",n.projection.fields.some(p=>{let y=ze(p);return y==="body"||Vi.has(y)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,s.treeEnabled,s.sortField!==void 0,o,Nr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([p,y])=>y!==void 0&&!i.has(p))].includes(!0))return null;let c=await Se(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=W(t.limit),u=Zi(t.offset)??0,l=await ns({pmRoot:n.pmRoot,expectedSourceCursor:c.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:d,offset:u}});if(!l)return null;let f=l.items.length>0&&u+l.items.length<l.total,m=f?oe(ro(r.filtersStatus,t,s),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:to(l.items,n.projection,!1),totalMatched:l.total,pageExtras:no(d,f,m)}}function $l(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:s,treeDepth:i,sortField:o,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let u=n;for(let l of Xu){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of Ju)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,Vu(n),Wu(n)),Qi(d,n),r&&(d.no_truncate=!0),s&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),o!==void 0&&(d.sort=o,d.order=a),d.runtime_filters=c,d}async function He(e,t,n){let r=await Al(t,n),s=[],i=Fl(t),o=Ll(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await Ol({options:t,runtime:r,statusSelection:o,ordering:i}),d=c;if(!d){let y=await Nl(t,r,s);ll(y,t.tag,s);let w=bl(y,o.resolvedStatus,o.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let E=Be(y,r.statusRegistry);return w.filter(I=>E.has(I.id.trim().toLowerCase()))})():w,b=Cl(_,i.sortField,i.sortOrder,r.statusRegistry),k=i.treeEnabled?vl(b,i.parentRoot,i.treeDepth):b;d=Ml(k,t,r.projection,i.treeEnabled,ro(o.filtersStatus,t,i))}let u=G(),l=[...new Set(s)].sort((y,w)=>y.localeCompare(w)),f=Gu(l,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let y=Zu({filtersStatus:o.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:y,projection:{mode:"compact",fields:m},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:$l({filtersStatus:o.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:m},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as Pl}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f1677c6e-872e-5c42-ae3d-f73f4ec73616")}catch{}})();var Xn=["agenda","day","week","month"],Jn=["markdown","toon","json"],jl=["sun","mon","tue","wed","thu","fri","sat"],Ul=365,Bl=365,oo=28,Gl=1e3;function Qn(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new h(`${t} must be a non-negative integer`,g.USAGE);return n}function Kl(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(s=>s.trim()).filter(s=>s.length>0);if(n.length===0)throw new h("Calendar include filter must not be empty",g.USAGE);let r=new Set;for(let s of n){if(s==="deadlines"||s==="deadline"){r.add("deadlines");continue}if(s==="reminders"||s==="reminder"){r.add("reminders");continue}if(s==="events"||s==="event"||s==="scheduled"){r.add("events");continue}throw new h("Calendar include filter must be deadlines|reminders|events|scheduled|all",g.USAGE)}return r}function ao(e,t){let n;for(let r of t){let s=Cr(e,r,2);s!==null&&(n===void 0||s<n.distance)&&(n={choice:r,distance:s})}return n?.choice}function zl(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Xn.includes(t)){let n=ao(t,Xn);throw new h(`Calendar view must be one of ${Xn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function Hl(e){if(!e)return;let t=e.trim().toLowerCase();if(!Jn.includes(t)){let n=ao(t,Jn);throw new h(`Calendar format must be one of ${Jn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,g.USAGE)}return t}function fw(e,t){let n=Hl(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"markdown"}function ql(e,t){if(e===void 0)return;let n=F(e,t);if(!n){let r=t.definitions.map(s=>s.id);throw new h(`Calendar status filter must be one of ${r.join("|")}`,g.USAGE)}return n}function Wl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Calendar assignee filter must be one of assigned|unassigned",g.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,g.USAGE);return t}function Pt(e){return new Date(e).toISOString().slice(0,10)}function co(e,t){if(!t||t==="UTC")return Pt(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(o=>o.type==="year")?.value,s=n.find(o=>o.type==="month")?.value,i=n.find(o=>o.type==="day")?.value;if(r&&s&&i)return`${r}-${s}-${i}`}catch{}return Pt(e)}function nr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function ae(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function uo(e){let t=new Date(nr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return ae(t.toISOString(),r)}function Vl(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Yl(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Xl(e,t){return x(e,t)>=0?e:t}function so(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function io(e,t){e.set(t,(e.get(t)??0)+1)}function Jl(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,s)=>be(r)-be(s));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,s)=>r-s);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,s)=>r.localeCompare(s));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function lo(e,t,n,r){let s=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(s.getUTCFullYear()!==e||s.getUTCMonth()!==t||s.getUTCDate()!==n))return s.toISOString()}function fo(e){return jl[new Date(e).getUTCDay()]}function Ql(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Zl(e){let t=new Set;for(let n of e??[]){let r=Ql(n);r&&t.add(r)}return t}function ef(e,t,n,r,s){let i=e??ae(n,-(r??Bl)),o=t??ae(e??n,s??Ul);return{start:i,end:x(o,i)>0?o:ae(i,1)}}function tf(e,t,n,r){let s=t.by_weekday!==void 0?[...t.by_weekday]:[fo(e)],i=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??Gl,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Zl(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(s)].sort((o,a)=>be(o)-be(a)),sortedMonthDays:[...new Set(i)].sort((o,a)=>o-a),occurrences:[],produced:0}}function jt(e,t){return x(t,e.startAt)<0?"continue":e.until&&x(t,e.until)>0||x(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,x(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Ut(e,t){let n=fo(t),r=new Date(t).getUTCDate(),s=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return s&&i}function nf(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Ut(e,t)&&jt(e,t)==="stop");n+=1)t=ae(t,e.interval);return e.occurrences}function rf(e,t,n){let r=be(n),s=ae(t,r),i=new Date(s);return new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function sf(e){let t=uo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=ae(t,n*e.interval*7);for(let s of e.sortedWeekdays){let i=rf(e,r,s);if(Ut(e,i)&&jt(e,i)==="stop")return e.occurrences}}return e.occurrences}function of(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let s=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let o=lo(s.getUTCFullYear(),s.getUTCMonth(),i,e.startDate);if(!(!o||!Ut(e,o))&&jt(e,o)==="stop")return e.occurrences}}return e.occurrences}function af(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let s=t+r*e.interval;for(let i of e.sortedMonthDays){let o=lo(s,n,i,e.startDate);if(!(!o||!Ut(e,o))&&jt(e,o)==="stop")return e.occurrences}}return e.occurrences}function cf(e,t,n,r){let s=tf(e,t,n,r);return t.freq==="daily"?nf(s):t.freq==="weekly"?sf(s):t.freq==="monthly"?of(s):af(s)}function mo(e){return[...e].sort((t,n)=>{let r=x(t.at,n.at);if(r!==0)return r;let s=t.item_priority-n.item_priority;if(s!==0)return s;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;let o=t.kind.localeCompare(n.kind);if(o!==0)return o;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 rr(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 df(e){return e.deadline?{at:e.deadline,date:Pt(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,...rr(e),item_deadline:e.deadline}:null}function uf(e){return(e.reminders??[]).map(t=>({at:t.at,date:Pt(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,...rr(e)}))}function lf(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function ff(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function mf(e,t,n,r){let s=Jl(t.recurrence),i=lf(t.start_at,t.end_at);return(t.recurrence?cf(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):co(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:ff(a,t,i),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:s,...rr(e)}))}function pf(e,t,n,r){let s=[];for(let i of e){let o=n.has("deadlines")?df(i):null;o&&s.push(o),n.has("reminders")&&s.push(...uf(i));for(let a of n.has("events")?i.events??[]:[])s.push(...mf(i,a,t,r))}return mo(s)}function gf(e,t,n,r,s){let i=Cs(t.type,n),o=t.tag?.trim().toLowerCase(),a=pt(t.priority),c=ql(t.status,r),d=t.assignee?.trim(),u=Wl(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',g.USAGE);if(d!==void 0&&u==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",g.USAGE);return e.filter(m=>hf(m,{typeFilter:i,tagFilter:o,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:s}))}function hf(e,t){return yf(e,t)&&_f(e,t)&&dt(e,t.runtimeFieldFilters)}function yf(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 _f(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 wf(e,t,n){return!(t&&x(e.at,t)<0||n&&x(e.at,n)>=0)}function Zn(e,t,n){return e.trim().toLowerCase()==="today"?nr(t):ie(e,new Date(t),n)}function bf(e,t,n){let r=t.date?Zn(t.date,n,"--date"):n,s=t.past===!0,i=t.fullPeriod===!0,o=t.from?Zn(t.from,n,"--from"):void 0,a=t.to?Zn(t.to,n,"--to"):void 0;if(o&&a&&x(o,a)>=0)throw new h("Calendar --from must be before --to",g.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new h("--from and --to are only supported for --view agenda",g.USAGE);if(e==="agenda")return kf(r,t,n,s,i,o,a);if(e==="day"){let d=nr(r);return er(r,n,s,i,d,ae(d,1))}if(e==="week"){let d=uo(r);return er(r,n,s,i,d,ae(d,7))}let c=Vl(r);return er(r,n,s,i,c,Yl(r))}function kf(e,t,n,r,s,i,o){if(s)throw new h("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",g.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:o,fullPeriod:!1}}function er(e,t,n,r,s,i){let o=n||r;return{anchor:e,start:o?s:Xl(s,t),end:i,periodStart:s,periodEnd:i,fullPeriod:o}}function vf(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:mo(r)}))}function xf(e){let t=new Set,n=new Map,r=new Map,s=0,i=0,o=0,a=0;for(let c of e)t.add(c.item_id),io(n,c.item_type),io(r,c.item_status),c.kind==="deadline"?s+=1:c.kind==="reminder"?i+=1:(o+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:s,reminders:i,scheduled:o,by_kind:{deadline:s,reminder:i,event:o},by_type:so(n),by_status:so(r),recurring_events:a}}function Ef(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function po(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(i=>i.type==="hour")?.value,s=n.find(i=>i.type==="minute")?.value;if(r&&s)return`${r}:${s}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function tr(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function If(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===co(e.event_end,e.event_timezone)?po(e.event_end,e.event_timezone):e.event_end:null}function Cf(e){let t=`${po(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let i=If(e);return i&&n.push(`end=${i}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function mw(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Ef(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: ${tr(e.summary.by_kind)}`),t.push(`- by-type: ${tr(e.summary.by_type)}`),t.push(`- by-status: ${tr(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(`- ${Cf(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 Sf(t.join(`
3
+ `))}function pw(e){return Pl(e)}function Sf(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function Tf(e){let t=G(),n=zl(e.view),r=bf(n,e,t),s=W(e.limit),i=Kl(e.include),o=Qn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Qn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Qn(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new h("Calendar occurrence limit must be >= 1",g.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),u=e.to!==void 0||o!==void 0||a!==void 0||c!==void 0,l=d&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:s,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:l?oo:o,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function Df(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${oo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Rf(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 Af(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function go(e,t){let n=S(process.cwd(),t.path);if(!await A($(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,g.NOT_FOUND);let r=Tf(e),s=await T(n),i=z(s.schema),o=nt(s.schema),a=ct(e,o,"calendar"),c=O(s,N()),d=[];Df(d,r.eventsOnlyCapApplied);let u=await Q(n,s.item_format,c.type_to_folder,d,s.schema),l=gf(u,e,c,i,a),f=ef(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=pf(l,f,r.includeSources,r.occurrenceLimit).filter(b=>wf(b,r.rangeBounds.start,r.rangeBounds.end)),y=r.limit===void 0?p:p.slice(0,r.limit),w=vf(y),_=[...new Set(d)].sort((b,k)=>b.localeCompare(k));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:Af(e,r.rangeBounds),filters:Rf(e,a),summary:xf(y),events:y,days:w,..._.length>0?{warnings:_}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1f898377-b606-5bfd-932d-6ce5f2f9c717")}catch{}})();var sr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Nf=Symbol("no-context-author"),Ff=Symbol("no-item-assignee");function ho(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Lf(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 Mf(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 Of(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 Bt(e,t,n){return e?.[t]??n}function Gt(e,t){let n=d=>{if(typeof d!="string")return"";try{return ie(d,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((d,u)=>{let l=n(d.updated_at),f=n(u.updated_at);return x(f,l)||d.id.localeCompare(u.id)}),s=new Map(r.map((d,u)=>[d.id,u])),i=Math.max(e.length-1,1),o=ho(t.author,Nf),a=F("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=ho(d.assignee,Ff)===o,l=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signals:{recency:e.length===1?1:1-s.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:Bt(t.graphProximity,d.id,d.parent?.3:0),claim_focus:Bt(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:Lf(d.priority,4),risk_pressure:Of(d.risk),deadline_pressure:Mf(d.deadline,c),knowledge_density:Bt(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:Bt(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var $f="context_relevance",Pf={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},jf=new TextEncoder;function Uf(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,s]of Object.entries(n.signals??{})){if(r==="structural"||!sr.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(s!==void 0&&(!Number.isFinite(s)||s<0||s>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function Bf(e){let t={...Pf};for(let[n,r]of Object.entries(e??{}))r!==void 0&&sr.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 _o(e,t={}){Uf(e);let n=Bf(t.weights),r=Math.max(e.length-1,1),s=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&s.add(c);let i=sr.filter(a=>s.has(a)),o=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},u={},l=0,f=0;for(let m of i){let p=d[m];if(p===void 0)continue;let y=p*n[m];u[m]=y,l+=y,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:l/f,contributions:u}});return o.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),o.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:o}}async function Gf(e,t={}){let n=_o(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),s=new Map;for(let o of r){if(s.has(o.id)||!Number.isFinite(o.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");s.set(o.id,o.score)}if(s.size!==e.length||e.some(o=>!s.has(o.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(o=>{let a=s.get(o.id);return{...o,score:a,contributions:{custom:a}}});return i.sort((o,a)=>a.score-o.score||o.baseline_rank-a.baseline_rank),i.forEach((o,a)=>{o.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function Kt(e,t,n={}){let r=_o(t,n),s=await Fr($f,{surface:e,candidates:t,default_report:r});if(!s.handled)return s.warnings.length>0?{...r,warnings:s.warnings}:r;if(!Array.isArray(s.result)||!s.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...s.warnings,"extension_context_relevance_invalid_result"]};try{let i=await Gf(t,{...n,scorer:()=>s.result});return s.warnings.length>0?{...i,warnings:s.warnings}:i}catch{return{...r,warnings:[...s.warnings,"extension_context_relevance_invalid_result"]}}}var Kf=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function yo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function zf(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(d=>Math.max(0,t[d]??0)),r=Object.values(t).map(d=>Math.max(0,d)).sort((d,u)=>u-d).slice(0,n.length||1),s=d=>d.reduce((u,l,f)=>u+(2**l-1)/Math.log2(f+2),0),i=s(r),o=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:s(n)/i,reciprocal_rank:o<0?0:1/(o+1),required_recall:yo(e.required_ids??[],a),continuity_coverage:yo(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function Hf(e){return Math.ceil(jf.encode(JSON.stringify(e)).byteLength/4)}function qf(e){return Math.round(e*1e4)/1e4}function Wf(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),s=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:s}}async function Vf(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0}):await t.next({...e.options,explainRanking:!0}),{rankedIds:r,attribution:s}=Wf(n,e.surface),i={...n,ranking:void 0},o=Hf(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:o,metrics:zf({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:o,token_budget:e.token_budget}),attribution:s}}function Yf(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Kf;for(let i of n)if(!Number.isFinite(t[i]))throw new TypeError(`Context evaluation threshold ${i} must be a finite number`);let r=Object.fromEntries(n.map(i=>[i,qf(e.reduce((o,a)=>o+a.metrics[i],0)/e.length)])),s=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:s.length===0,failures:s}}async function ww(e,t,n){let r=[];for(let s of e)r.push(await Vf(s,t));return Yf(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 Xf={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Jf=["identity","summary","full"];function Qf(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=Jf.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 Zf(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=Xf[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,s=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(s)||s<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:s,profile:t}}function em(e){let t=new Set;for(let n of e){if(Qf(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 tm(e,t,n,r,s){let i=-1,o=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&s()>=r)return{index:i,evaluated:o,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;o+=1;let d=i<0?void 0:e[i],u=n(c)/c.token_costs.identity,l=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(u>l||u===l&&d!==void 0&&(c.rank<d.rank||c.rank===d.rank&&c.id.localeCompare(d.id)<0))&&(i=a)}return{index:i,evaluated:o,timedOut:!1}}function nm(e){let t=new Set,n=[],r=e.tokenBudget,s=d=>{let u=d.lineage??d.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*l)},i=d=>{let u=d.token_costs.identity;n.push({...d,projection:"identity",tokens:u,marginal_value:s(d)}),r-=u;let l=d.lineage??d.cluster;l&&t.add(l)};for(let d of e.ordered.filter(u=>u.required))d.token_costs.identity<=r&&i(d);let o=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;o.length>0;){let d=tm(o,r,s,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;i(o.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function rm(e,t){let n=t;for(let r of["summary","full"]){let s=r==="summary"?"identity":"summary",i=[...e].sort((o,a)=>{let c=o.token_costs[r]-o.token_costs[s],d=a.token_costs[r]-a.token_costs[s];return a.marginal_value/Math.max(d,1)-o.marginal_value/Math.max(c,1)||o.rank-a.rank||o.id.localeCompare(a.id)});for(let o of i){if(o.projection!==s)continue;let a=o.token_costs[r]-o.tokens;a>n||(o.projection=r,o.tokens+=a,n-=a)}}return n}function wo(e,t){let n=Zf(t),r=em(e),s=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:s()+t.latencyBudgetMs,o=nm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:s}),{included:a}=o,c=rm(a,o.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let d=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!d.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:o.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:o.selectionComplete,termination_reason:o.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:o.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as sm}from"node:crypto";import{appendFile as im,mkdir as om,readFile as am,rename as cm,stat as dm,writeFile as um}from"node:fs/promises";import bo from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var ko=2048,vo=30,xo=864e5,lm=262144,fm="context-usage-ledger",te=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function Eo(e){return bo.join(e,"runtime","context-usage.jsonl")}function qe(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new te("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Io(e){try{let n=(await am(Eo(e.pmRoot),"utf8")).split(`
5
+ `).filter(Boolean).flatMap(o=>{try{return[JSON.parse(o)]}catch{return[]}}),r=e.maxEvents??ko,s=e.retentionDays??vo,i=qe(e).ms-s*xo;return n.filter(o=>Date.parse(o.at)>=i).slice(-r)}catch{return[]}}async function Co(e,t){let n=e.maxEvents??ko,r=e.retentionDays??vo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new te("Context usage retention requires positive maxEvents and retentionDays");let s=Eo(e.pmRoot),i=bo.dirname(s),o=await Ce(e.pmRoot,fm,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await om(i,{recursive:!0}),await im(s,t.map(u=>`${JSON.stringify(u)}
6
+ `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await dm(s)).size<=lm)return;let c=await Io(e),d=`${s}.${process.pid}.${sm()}.tmp`;await um(d,`${c.map(u=>JSON.stringify(u)).join(`
7
+ `)}
8
+ `,"utf8"),await cm(d,s)}finally{await o()}}async function So(e,t){await Co(e,[t])}async function zt(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new te("Context usage serving requires an author and valid ranked rows");await So(e,{kind:"serve",at:qe(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Cw(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new te("Context usage touch requires author, itemId, and intent");await So(e,{kind:"touch",at:qe(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Sw(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 te("Context usage touch requires author and intent");let r=new Set;for(let o of e.itemIds){if(typeof o!="string")throw new te("Context usage touch requires string itemIds");let a=o.trim();if(!a)throw new te("Context usage touch requires non-empty itemId");r.add(a)}let s=qe(e).iso,i=[...r].map(o=>({kind:"touch",at:s,author:t,item_id:o,intent:n}));await Co(e,i)}function mm(e,t,n,r){return e.find(({entry:s,time:i})=>s.item_id===t&&i>=n&&i-n<=r)?.time}async function Ht(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Io(e),n=qe(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new te("Context usage horizonHours must be positive");let s=e.author.trim(),i=t.filter(l=>l.kind==="touch"&&l.author===s).map(l=>({entry:l,time:Date.parse(l.at)})),o=new Map,a=0,c=0;for(let l of t){if(l.kind!=="serve"||l.author!==s)continue;a+=1;let f=Date.parse(l.at);for(let m of l.rows){if(!m.included)continue;let p=mm(i,m.id,f,r);if(p===void 0)continue;c+=1;let y=Math.max(0,(n-p)/xo);o.set(m.id,(o.get(m.id)??0)+Math.exp(-y/14))}}let d=Math.max(0,...o.values());return{affinity:Object.fromEntries([...o.entries()].map(([l,f])=>[l,.05+.95*(d>0?f/d:0)])),positive_judgments:c,serving_events:a}}import We from"node:fs/promises";import Ve from"node:path";import{createHash as pm,randomUUID as gm}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2a0f64cf-f6a4-5304-921d-c83b98d3a31f")}catch{}})();var ir=1,or=1,To=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],hm={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 qt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Do(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function ym(e){let t={};for(let n of To){let r=e[n];if(r!==void 0){if(!Do(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function _m(e,t){let n=e.map(s=>[s.id,t(s)]),r=Math.max(0,...n.map(([,s])=>s));return Object.fromEntries(n.map(([s,i])=>[s,r===0?0:i/r]))}function wm(e){let t=new Map(e.map(s=>[s.id,0])),n=s=>{t.set(s,(t.get(s)??0)+1)};for(let s of e){typeof s.parent=="string"&&s.parent.trim()&&(n(s.id),n(s.parent.trim()));for(let i of s.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(s.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(s=>[s.id,r===0?0:t.get(s.id)/r]))}function bm(e,t){return{...t,activityDensity:t.activityDensity??_m(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??wm(e)}}function km(e){if(!qt(e)||typeof e.id!="string"||!qt(e.signals))return null;let t={},n=new Set(To);for(let[r,s]of Object.entries(e.signals)){if(!n.has(r)||!Do(s))return null;t[r]=s}return{id:e.id,signals:t}}function vm(e){if(!qt(e)||e.format_version!==ir||e.signal_set_version!==or||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=e.items.map(km);if(t.some(r=>r===null))return null;let n=t;return new Set(n.map(r=>r.id)).size!==n.length||n.some(r=>r.id.trim().length===0)?null:{format_version:ir,signal_set_version:or,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,s)=>r.id.localeCompare(s.id))}}function xm(e,t){if(typeof t.sourceCursor!="string"||t.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(t.source!=="derived_index"&&t.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback");let n=Gt(e,bm(e,t)).map(({id:r,signals:s})=>({id:r,signals:ym(s)})).sort((r,s)=>r.id.localeCompare(s.id));return Object.freeze({format_version:ir,signal_set_version:or,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var ar=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=Ve.resolve(t)}async read(){try{return JSON.parse(await We.readFile(this.filePath,"utf8"))}catch(t){if(qt(t)&&t.code==="ENOENT")return null;throw t}}async write(t){let n=Ve.dirname(this.filePath);await We.mkdir(n,{recursive:!0});let r=Ve.join(n,`.${Ve.basename(this.filePath)}.${gm()}.tmp`);try{await We.writeFile(r,`${JSON.stringify(t)}
9
+ `,{encoding:"utf8",flag:"wx"}),await We.rename(r,this.filePath)}finally{try{await We.rm(r,{force:!0})}catch{}}}},cr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],s=null;try{let l=await this.adapter.read();s=vm(l),l!==null&&s===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(l=>l.id).sort((l,f)=>l.localeCompare(f)),o=s?.items.map(l=>l.id)??[],a=s!==null&&s.source_cursor===n.sourceCursor&&s.source===n.source&&o.length===i.length&&o.every((l,f)=>l===i[f]),c;if(a&&s!==null)c=s;else{s!==null&&r.push("context_signal_store_stale"),c=xm(t,n);try{await this.adapter.write(c)}catch{r.push("context_signal_store_write_failed")}}let d=new Map(c.items.map(l=>[l.id,l.signals])),u=Gt(t,n);return{snapshot:c,candidates:u.map(l=>({...l,signals:{...l.signals,...d.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(l=>hm[l])}}};function Em(e){let t=pm("sha256");for(let n of[...e].sort((r,s)=>r.id.localeCompare(s.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 Wt(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 s=n?null:await Se(t.pmRoot),i=t.sourceCursor??s?.source_cursor??Em(e),o=t.source??(s===null?"scan_fallback":"derived_index");return new cr(new ar(Ve.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:i,source: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]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Im(e){for(let t of e.patch){if(t.path==="/metadata/status"||t.path==="/front_matter/status"){if(typeof t.value=="string")return t.value.trim().toLowerCase();continue}if(t.path!==""||typeof t.value!="object")continue;let n=t.value,r=n.metadata??n.front_matter;if(typeof r?.status=="string")return r.status.trim().toLowerCase()}}function Cm(e,t,n){let r,s;for(let i of t){let o=Im(i);if(o===void 0)continue;let a=n.has(o)&&(r!==void 0&&!n.has(r)||r===void 0&&i.op==="create");r=o,a&&Number.isFinite(Date.parse(i.ts))&&(s={id:e,completed_at:i.ts,history_op:i.op})}return s}function Ro(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}function Mw(e,t,n){let r=[];for(let s of e){if(s.completed_at!==void 0||!n.has(s.status.trim().toLowerCase()))continue;let i=Cm(s.id,t.get(s.id)??[],n);i!==void 0&&r.push(i)}return r.sort((s,i)=>s.id.localeCompare(i.id))}import Sm from"node:path";import{createHash as Tm}from"node:crypto";import Dm from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2e225010-1b53-59e9-8188-dcbe4a4f7eb7")}catch{}})();var Ao=1,Rm=1e4,No=12;function Am(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Nm(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let s=t.get(r);if(!s)return;if(s.type.toLowerCase()==="epic")return s;r=s.parent}}function Fm(e){let t=[...e.items].sort((s,i)=>i.completion.timestamp.localeCompare(s.completion.timestamp)||s.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:s}of t){let i=s.resolution??s.close_reason;i?.trim()&&n.add(i.trim()),r+=(s.notes?.length??0)+(s.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:s,title:i}})=>({id:s,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function Lm(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(i=>t.statusRegistry.terminal_done_statuses.has(C(i.status,t.statusRegistry))).map(i=>{let o=Ro(i);if(!o.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:o}}),r=new Map(e.map(i=>[i.id,i])),s=new Map;for(let i of n){let{item:o,completion:a}=i,c=Am(a.timestamp),d=`epoch:${c}`,u=s.get(d)??{kind:"epoch",key:c,label:c,items:[]};u.items.push(i),s.set(d,u);let l=Nm(o,r);if(l){let f=`epic:${l.id}`,m=s.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};m.items.push(i),s.set(f,m)}}return{format_version:Ao,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:o})=>(i[o.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...s.values()].map(Fm).sort((i,o)=>o.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(o.kind)||i.key.localeCompare(o.key))}}function Mm(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 Om(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(s=>typeof s=="string"&&s.length>0),r=[t.first_closed_at,t.last_closed_at].every(s=>typeof s=="string"&&Number.isFinite(Date.parse(s)));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(Mm)&&Array.isArray(t.outcomes)&&t.outcomes.every(s=>typeof s=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function $m(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Ao||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(Om)?t:null}function Pm(e){return`scan:${Tm("sha256").update(ke(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function jm(e,t,n){return n!==void 0?n:(await Se(t))?.source_cursor??Pm(e)}async function Um(e){try{let t=$m(JSON.parse(await Dm.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&t.code==="ENOENT")}}}async function Fo(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Rm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await jm(e,t.pmRoot,t.sourceCursor),s=Sm.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],o=await Um(s),a=o.snapshot;if(o.invalid&&i.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:i};a&&i.push("workspace_memory_stale");let c=Lm(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await K(s,`${JSON.stringify(c)}
10
+ `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function Bm(e,t,n=No){let r=Math.max(0,Math.floor(t)),s=0,i=[];for(let o of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(o).length/4);s+a>r||(i.push(o),s+=a)}return i}function Lo(e,t,n=No){if(e.snapshot===null)return;let r=Bm(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 Gm(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(s=>({rollup:s,score:r.filter(i=>[s.key,s.label,...s.outcomes,...s.representative_items.flatMap(o=>[o.id,o.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:s})=>s>0).sort((s,i)=>i.score-s.score||i.rollup.last_closed_at.localeCompare(s.rollup.last_closed_at)||s.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:s})=>s)}function Hw(e,t,n=5){let r=Gm(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 Mo=16;async function Oo(e,t,n){let r=O(t,N()).type_to_folder,s=[],i=new Set,o=n;for(;o&&s.length<Mo;){let a=o.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let c=await le(e,o,t.id_prefix,t.item_format,r);if(!c)break;let d=await fe(c,{schema:t.schema});s.push(d.document.metadata.id),o=d.document.metadata.parent}return s}async function Jw(e){await Pr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Oo(e.pmRoot,e.settings,e.itemId)})}async function Qw(e){await jr(e)}async function Zw(e){await Ur({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Oo(e.pmRoot,e.settings,e.itemId)}:{}})}var eb={lineage_depth:Mo,active_items:64,evidence_rows:32};function $o(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="757a0349-9fb6-579d-ab29-fabaad790ce4")}catch{}})();var Km=["markdown","toon","json","ndjson"],Xe=new Set(["Epic","Feature"]),Ko=10,zo=1e4,Ho=["hierarchy","activity","progress","recently_created","unparented","workload"],zm=[...Ho,"blockers","files","staleness","tests"],Hm=/^(\d{4})-(\d{2})-(\d{2})/,qm=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Wm=/^(\d{4})(\d{2})(\d{2})$/,Vm=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Ym(e){if(!e)return;let t=e.trim().toLowerCase();if(!Km.includes(t))throw new h("Context format must be one of markdown|toon|json|ndjson",g.USAGE);return t}var Po=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function Xm(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Po.has(r))throw new h(`Context --fields value not projectable: ${r} (valid: ${[...Po].join(", ")})`,g.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new h("Context --fields requires at least one field name",g.USAGE);return t}function Ye(e,t){return e.map(n=>{let r={},s=n;for(let i of t)r[i]=s[i]??null;return r})}function wb(e,t){let n=Ym(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Jm(e,t){return W(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Ko)}function lr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new h("--token-budget must be a positive integer",g.USAGE);return n}function Qm(e,t){return t>=zo&&e===Number.MAX_SAFE_INTEGER?Ko:e}function Zm(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Zt.includes(n))throw new h(`Context --depth must be one of ${Zt.join("|")}`,g.USAGE);return n}function ep(e,t,n){if(e&&e.length>0){let s=[];for(let i of e){let o=i.trim().toLowerCase();if(!et.includes(o))throw new h(`Context --section must be one of ${et.join("|")}`,g.USAGE);s.includes(o)||s.push(o)}return s}return t==="brief"?[]:t==="full"?[...et]:(t==="deep"?zm:Ho).filter(s=>n.sections[s])}function tp(e,t){return e?W(e,"--activity-limit")??t.activity_limit:t.activity_limit}function np(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new h("--stale-threshold must be a number of days (e.g. 7 or 7d)",g.USAGE);let s=parseInt(r[1],10);if(s<=0)throw new h("--stale-threshold must be positive",g.USAGE);return s}function jo(e,t){let n=C(e,t),r=F("in_progress",t),s=F("open",t),i=F("blocked",t),o=F("draft",t);return r&&n===r?0:s&&n===s?1:i&&n===i?2:o&&n===o?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function Je(e,t){let n=F("closed",t);return C(e,t)===n}function fr(e,t){let n=F("in_progress",t);return C(e,t)===n}function qo(e,t){let n=F("open",t);return C(e,t)===n}function rp(e,t){return t.blocked_statuses.has(C(e,t))}var sp=["compact","brief","fields","includeBody","include_body","parent"];function ip(e){let t={...e};for(let n of sp)delete t[n];return t}function mr(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 s=Le(e),i=Qe(r.id,s);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function op(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new h("Context --parent requires an item id",g.USAGE);return t}function ap(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function cp(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:x(n,r)}function dp(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function up(e){let t=Hm.exec(e)??qm.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),s=Number.parseInt(t[3],10);return r>=1&&r<=12&&s>=1&&s<=dp(n,r-1)}function lp(e){let t=Wm.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Vm.exec(e);if(n){let[,r,s,i,o,a,c,d]=n,u=c?`:${c}`:"",l=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${s}-${i}T${o}:${a}${u}${l}`}return e}function Wo(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!up(t))return Number.NaN;let n=Date.parse(lp(t));return Number.isFinite(n)?n:Number.NaN}function ur(e){let t=Wo(e);return Number.isFinite(t)?new Date(t).toISOString():""}function fp(e){let t=Wo(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function pr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ye(e,t,n){let r=jo(e.status,n)-jo(t.status,n);if(r!==0)return r;let s=e.priority-t.priority;if(s!==0)return s;let i=ap(e.order,t.order);if(i!==0)return i;let o=cp(e.deadline,t.deadline);if(o!==0)return o;let a=x(ur(t.updated_at),ur(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function dr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function gr(e,t,n=new Set,r="context"){return wo(e.ranked.map(s=>({id:s.id,item:s.item,rank:s.rank,score:s.score,required:n.has(s.id),cluster:s.item.parent?.trim()||s.item.type,token_costs:{identity:dr({id:s.id,title:s.item.title}),summary:dr({id:s.id,title:s.item.title,type:s.item.type,status:s.item.status,priority:s.item.priority,parent:s.item.parent}),full:dr(s.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function hr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function yr(e,t){return{model:e.model,available_signals:e.available_signals,items:e.ranked.map(n=>({id:n.id,rank:n.rank,baseline_rank:n.baseline_rank,score:n.score,contributions:n.contributions})),...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Vo(e,t){return t>0?Math.round(e/t*100):0}function Le(e){let t=new Map;for(let n of e){let r=pr(n.parent);if(!r)continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function Ze(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:pr(e.parent)};if(t&&n){let s=Qe(e.id,n),i=s.length;if(i>0){let o=s.filter(a=>Je(a.status,t)).length;r.children_total=i,r.children_closed=o,r.completion_pct=Vo(o,i)}}return r}function mp(e){let t=0,n=0,r=0,s=new Set;for(let i of e){if(s.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:s.size,deadlines:t,reminders:n,scheduled:r}}function Vt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function pp(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function gp(e,t,n,r){let s=new Map;for(let c of e)s.set(c.id,c);let i=Le(e),o=new Set(t.filter(c=>Xe.has(c.type)).map(c=>c.id)),a=[];for(let c of o){let d=s.get(c);if(!d)continue;let u=Qe(c,i),l=i.get(c)??[],f=0,m=0,p=0,y=0;for(let _ of u)Je(_.status,n)?f++:fr(_.status,n)?p++:rp(_.status,n)?y++:qo(_.status,n)&&m++;let w=l.sort((_,b)=>ye(_,b,n)).slice(0,r).map(_=>{let b=Qe(_.id,i),k=b.filter(E=>Je(E.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:b.length,children_closed:k}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:m,children_in_progress:p,children_blocked:y,children:w})}return a.sort((c,d)=>{let u=s.get(c.id),l=s.get(d.id);return ye(u,l,n)}).slice(0,r)}function Qe(e,t){let n=[],r=[e],s=new Set;for(;r.length>0;){let i=r.pop();if(s.has(i))continue;s.add(i);let o=t.get(i)??[];for(let a of o)n.push(a),r.push(a.id)}return n}async function hp(e,t){return(await As({compact:!0,limit:String(e)},t)).compact_activity??[]}function yp(e,t,n,r,s){let i=new Map;for(let c of e){if(!c.parent)continue;let d=i.get(c.parent)??[];d.push(c),i.set(c.parent,d)}let o=t.filter(c=>Xe.has(c.type)),a=[];for(let c of o){let d=Qe(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,m=0,p=0;for(let y of d)Je(y.status,r)?l++:n.has(y.id.trim().toLowerCase())?p++:fr(y.status,r)?m++:qo(y.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:m,blocked:p,completion_pct:Vo(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,s)}function _p(e,t,n,r){let s=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let o=Ot(i,s,n),a=o.find(d=>!d.resolved)?.id??o[0]?.id??null,c=a?s.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function wp(e,t){let n=new Map;for(let r of e)for(let s of r.files??[]){let i=n.get(s.path)??new Set;i.add(r.id),n.set(s.path,i)}return[...n.entries()].map(([r,s])=>({path:r,references:s.size,items:[...s].sort()})).sort((r,s)=>s.references-r.references).slice(0,t)}function bp(e,t,n){let r=new Map;for(let s of e){let i=s.assignee??null,o=r.get(i)??[];o.push(s),r.set(i,o)}return[...r.entries()].map(([s,i])=>({assignee:s,active:i.length,in_progress:i.filter(o=>fr(o.status,t)).length,items:i.map(o=>o.id).sort()})).sort((s,i)=>i.active-s.active).slice(0,n)}function kp(e,t,n,r){let s=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<s).map(i=>({id:i.id,title:i.title,status:i.status,updated_at:i.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(i.updated_at).getTime())/(1440*60*1e3))})).sort((i,o)=>o.stale_days-i.stale_days).slice(0,r)}function vp(e,t,n,r){return e.map(s=>({item:s,sortKey:ur(s.created_at)})).sort((s,i)=>{let o=x(i.sortKey,s.sortKey);return o!==0?o:s.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:s})=>({...Ze(s,t,n),created_at:s.created_at}))}function xp(e,t,n,r){return e.filter(s=>!pr(s.parent)&&!Xe.has(s.type)).sort((s,i)=>ye(s,i,t)).slice(0,r).map(s=>Ze(s,t,n))}function Ep(e){let t=0,n=0,r=0,s=0,i=0,o=[];for(let a of e){(a.tests??[]).length>0&&t++;let c=a.test_runs??[];if(c.length>0){n++;let d=!1;for(let u of c)r+=u.passed??0,s+=u.failed??0,i+=u.skipped??0,(u.failed??0)>0&&(d=!0);d&&o.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:s,skipped:i},items_failing:o.sort()}}function Uo(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Yo(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",s=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",i=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${s}${i} ${e.title}`}function Ip(e,t){let n=e;return t.map(r=>{let s=n[r];return Array.isArray(s)?`${r}:${s.join(",")}`:`${r}:${s??"-"}`}).join(" ")}function Cp(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`${Uo(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Uo(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function Bo(e,t,n,r,s){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${s(i)}`);e.push("")}function Sp(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 Tp(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(`- ${Cp(n)}`);e.push("")}function Dp(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 s of n.children){let i=s.children_total>0?Math.round(s.children_closed/s.children_total*100):0;e.push(` - ${s.id} ${s.type} ${s.status} "${s.title}" [${s.children_closed}/${s.children_total} done ${i}%]`)}}e.push("")}}function Rp(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 Ap(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let s of t.recently_created)e.push(n?`- ${r(s)}`:`- ${fp(s.created_at)} ${Yo(s)}`);e.push("")}}function Np(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 Fp(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 Lp(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:-",s=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${s}${i}`)}e.push("")}}function Mp(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 Op(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 $p(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 Pp(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 jp(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 bb(e){let t=[],n=e.focus_fields,r=i=>n?Ip(i,n):Yo(i);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let i=e.extension_health.packages.filter(o=>o.status==="degraded").map(o=>o.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${i.length>0?` (${i.join(", ")})`:""}`)}let s=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(s.length>0&&t.push(`- sections: ${s.join(", ")}`),t.push(""),Bo(t,"High-level focus",e.high_level,"No high-level active items.",r),Bo(t,"Low-level focus",e.low_level,"No low-level active items.",r),Sp(t,e,r),Tp(t,e),e.workspace_memory){t.push("## Workspace memory");for(let i of e.workspace_memory.rollups)t.push(`- ${i.kind}:${i.key} \u2014 ${i.label} (${i.item_count} completed, latest ${i.last_closed_at})`);t.push("")}return Dp(t,e),Rp(t,e),Ap(t,e,n,r),Np(t,e,r),Fp(t,e),Lp(t,e),Mp(t,e),Op(t,e),$p(t,e),Pp(t,e),jp(t,e),t.join(`
11
+ `)}async function Up(e,t){let n=S(process.cwd(),t.path),r=await T(n),s=r.context??Er.context,i=z(r.schema),o=Zm(e.depth,s),a=Jm(e.limit??e.maxItems,o);return{settings:r,contextSettings:s,statusRegistry:i,depth:o,limit:a,sectionsIncluded:ep(e.section,o,s),activityLimit:tp(e.activityLimit,s),staleThresholdDays:np(e.staleThreshold,s),parentScope:op(e.parent),focusFields:Xm(e.fields),baseListOptions:ip(e)}}function _r(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Bp(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Gp(e,t){let n=_r(t.sectionsIncluded),r=await He(void 0,Bp(t.baseListOptions,{excludeTerminal:!1}),e),s=r.items,i=s.filter(c=>!L(c.status,t.statusRegistry)),o=n||t.parentScope!==void 0?s:i,a=Kp(t.parentScope,s);return a&&(i=i.filter(c=>a.has(c.id.trim().toLowerCase())),o=o.filter(c=>a.has(c.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:i,allItems:o,fullCorpus:s,subtreeIds:a}}function Kp(e,t){if(e===void 0)return;let n=mr(t,e);if(!n.found)throw new h(`Context --parent item not found: ${e}`,g.NOT_FOUND);return n.ids}async function zp(e,t,n,r,s,i,o,a,c,d,u,l,f,m,p){let y=[...e].sort((v,we)=>ye(v,we,s)),w=await Ht({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await Wt(y,{pmRoot:f,storeKey:"context",statusRegistry:s,now:a,author:c,usageAffinity:w.affinity,claimFocus:p}),b=await Kt("context",_.candidates),k=b.ranked.map(v=>v.item),E=s.active_statuses,I=k.filter(v=>E.has(C(v.status,s))),P=l?Ee(I,d,u,v=>v.id):0,D=l?I.slice(P,P+o):I,U=l&&D.length>0&&P+D.length<I.length,ce=U&&D.length>0?oe(u,D[D.length-1].id,P+D.length-1):void 0,B=k.filter(v=>r.has(v.id.trim().toLowerCase())),M=new Set([...D.map(v=>v.id),...B.slice(0,o).map(v=>v.id)]),H=gr({...b,ranked:b.ranked.filter(v=>M.has(v.id))},m,new Set(Object.entries(p??{}).filter(([,v])=>v>=1).map(([v])=>v))),Y=H.included.map(v=>v.item),X=Y.filter(v=>E.has(C(v.status,s))),_e=Y.filter(v=>r.has(v.id.trim().toLowerCase())),J=Le(t),ne=_r(i)?J:void 0,re=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),Jt=v=>{let we=Ze(v,s,ne);return r.has(v.id.trim().toLowerCase())&&(we.blocked=!0,we.blocker_ids=Ot(v,re,s).filter(Qt=>!Qt.resolved).map(Qt=>Qt.id)),we},ua=X.filter(v=>Xe.has(v.type)).slice(0,l?D.length:o).map(Jt),la=X.filter(v=>!Xe.has(v.type)).slice(0,l?D.length:o).map(Jt),kr=I.length===0;return{activeItems:X,blockedItems:_e,highLevel:ua,lowLevel:la,blockedFallback:kr?_e.slice(0,o).map(Jt):[],blockedFallbackUsed:kr,ranking:b,packing:H,featureStore:_,pageExtras:{...l?{applied_limit:o}:{},...U?{has_more:!0,truncated:!0}:{},...ce?{next_cursor:ce}:{}}}}function Hp(e){return de("context",st(e,ds))}function qp(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=zo}async function Wp(e,t,n,r){let s={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await go(s,e),o=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=pp(o,t.statusRegistry).slice(0,t.limit),c=a.map(d=>r.has(d.item_id)?{at:d.at,date:d.date,kind:d.kind,item_id:d.item_id,reference_only:!0,...d.kind==="reminder"?{reminder_text:d.reminder_text}:{},...d.kind==="event"?{event_title:d.event_title,event_recurring:d.event_recurring}:{}}:d);return{agenda:i,agendaEvents:c,agendaSummary:mp(a)}}function Go(e,t,n){let r=String(t);return e.filter(s=>C(s.status,n)===r).length}async function Vp(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:s,focusGroups:i,now:o,global:a}=e,c=Le(n),d=n.filter(l=>!L(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?gp(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await hp(t.activityLimit,a):void 0,progress:u("progress")?yp(n,i.activeItems,s,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?_p(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?vp(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?xp(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?wp(i.activeItems,t.limit):void 0,workload:u("workload")?bp(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?kp(d,t.staleThresholdDays,o,t.limit):void 0,tests:u("tests")?Ep(i.activeItems):void 0}}function Yp(e,t,n){if(!e)return{};let r=F("canceled",n);return{total_items:t.length,closed:t.filter(s=>Je(s.status,n)).length,canceled:t.filter(s=>C(s.status,n)===r).length}}function Xp(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 Jp(e,t){t&&(e.focus_fields=t,e.high_level=Ye(e.high_level,t),e.low_level=Ye(e.low_level,t),e.blocked_fallback=Ye(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Ye(e.recently_created,t)),e.unparented&&(e.unparented=Ye(e.unparented,t)))}function Qp(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let i of n)delete i.tags,delete i.tags_inherited;return}let r=new Map(n.map(i=>[i.id,i])),s=new Map(n.map(i=>[i.id,i.tags?[...i.tags].sort().join("\0"):void 0]));for(let i of n){if(!i.parent||!i.tags)continue;let o=r.get(i.parent);o&&s.get(i.id)===s.get(o.id)&&(delete i.tags,i.tags_inherited=o.id)}}function Zp(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 eg(e,t,n,r){try{let s=new Set(t.packing.included.map(i=>i.id));await zt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:s.has(i.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=Vt(e.warnings,["context_usage_feedback_write_failed"])}}async function tg(e,t,n){if(e)return{};let s=(await Rr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(o=>({name:o.name??o.directory,status:o.status==="ok"?"ok":"degraded"})).sort((o,a)=>o.name.localeCompare(a.name)),i=s.filter(o=>o.status==="degraded").length;return s.length===0?{}:{extension_health:{total:s.length,ok:s.length-i,degraded:i,packages:s.slice(0,20),...s.length>20?{truncated:!0}:{}}}}async function ng(e,t){let n=Br(),r=await Or(e),s=n.instance||$r(t);return $o(r.semantic_attribution?.[s])}async function kb(e,t){let n=S(process.cwd(),t.path),r=await Up(e,t),s=await Gp(t,r),i=Qm(r.limit,s.fullCorpus.length),o={...r,limit:i,tokenBudget:lr(e.tokenBudget,Math.max(256,i*160))},a=pe(void 0,o.settings.author_default),c=await ng(n,a),d=tg(e.noExtensionHealth===!0,n,o.settings),u=Be(s.fullCorpus,o.statusRegistry),l=await zp(s.listedItemMetadata,s.allItems,s.fullCorpus,u,o.statusRegistry,o.sectionsIncluded,o.limit,G(),a,e.after,Hp(e),qp(e,s.fullCorpus.length),n,o.tokenBudget,c),f=await Wp(t,o,s.subtreeIds,new Set([...l.highLevel,...l.lowLevel,...l.blockedFallback].map(E=>E.id))),m=await Fo(s.fullCorpus,{pmRoot:n,statusRegistry:o.statusRegistry,now:f.agenda.now}),p=Vt(s.listed.warnings,f.agenda.warnings,l.ranking.warnings,[...l.featureStore.warnings],m.warnings),y=Go(l.activeItems,F("in_progress",o.statusRegistry),o.statusRegistry),w=Go(l.activeItems,F("open",o.statusRegistry),o.statusRegistry),_=await Vp({runtime:o,allItems:s.allItems,fullCorpus:s.fullCorpus,blockedIds:u,focusGroups:l,now:f.agenda.now,global:t}),b=Yp(_r(o.sectionsIncluded),s.allItems,o.statusRegistry),k={output_default:"toon",now:f.agenda.now,depth:o.depth,sections_included:o.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:o.parentScope??null,token_budget:o.tokenBudget,runtime_filters:s.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:l.activeItems.length,in_progress:y,open:w,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=Lo(m,Math.min(800,Math.floor(o.tokenBudget*.2))),Object.assign(k,await d),Xp(k,_,l.featureStore.warning_details),Qp(k,e.noTags===!0),e.explainRanking===!0&&(k.ranking=yr(l.ranking,l.featureStore),k.packing=hr(l.packing)),Jp(k,o.focusFields),p.length>0&&(k.warnings=p),Zp(k,l.activeItems,l.blockedItems),await eg(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]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var rg=["markdown","toon","json"],sg=5,ig=1440*60*1e3;function og(e){if(!e)return;let t=e.trim().toLowerCase();if(!rg.includes(t))throw new h("Next format must be one of markdown|toon|json",g.USAGE);return t}function Nb(e,t){let n=og(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",g.USAGE);return t.json?"json":n??"toon"}function Xo(e,t,n){let r=W(e,t);return r===void 0||r<=0?n:r}function wr(e,t,n,r){return{...Ze(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(s=>({id:s.id,title:s.title,status:s.status})),unblocks:e.unblocks,rank:r}}function ag(e,t,n,r){let s=e.item,i=[],o=F("in_progress",t);return i.push(C(s.status,t)===o?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${s.priority}${s.priority===0?" (highest)":""}`),typeof s.deadline=="string"&&s.deadline.trim().length>0&&i.push(dg(s.deadline,n)),i.push(ge(s).length>0?"all blockers resolved":"no blockers"),typeof s.parent=="string"&&s.parent.trim().length>0&&i.push(`advances ${s.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),i}function Qo(e,t,n){let r=pe(n,t),s=[],i=[];for(let o of e){let a=typeof o.item.assignee=="string"?o.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:o.item.id,assignee:a}):s.push(o)}return{available:s,held:i}}var Fb={partitionCallerOwnedReady:Qo,resolveNextCallerAuthor:(e,t)=>Zo(e,t)};function cg(e,t){let n=e.filter(r=>r.item.type.trim().toLowerCase()==="decision");return{agent:t?e:e.filter(r=>r.item.type.trim().toLowerCase()!=="decision"),decisions:t?[]:n}}function dg(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),s=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(s))/ig);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function ug(e,t){let n=F("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function br(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function lg(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function Jo(e,t,n){return[...e].sort((r,s)=>{let i=br(r.item,t),o=br(s.item,t);return i!==o?Number(i)-Number(o):ye(r.item,s.item,n)})}function fg(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:ag(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function mg(e,t){if(e===null){if(t.length>0){let n=t.find(r=>r.blockers.length>0);return[n?`${t.length} item(s) are blocked; unblock the top one by closing ${n.blockers.map(r=>r.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return['pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}}function pg(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 gg(e){try{let t=new Set(e.packing.included.map(n=>n.id));await zt({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:e.ranking.ranked.map(n=>({id:n.id,rank:n.rank,included:t.has(n.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.result.warnings=Vt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function hg(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=yr(e.readyRanking,e.featureStore),e.result.packing=hr(e.packing)),e.result.suggestions=mg(e.recommended,e.blockedRows),await gg({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function yg(e,t,n){if(!n)return e;let r=mr(t,n);if(!r.found)throw new h(`Next --parent item not found: ${n}`,g.NOT_FOUND);return e.filter(s=>r.ids.has(s.id.trim().toLowerCase()))}async function _g(e,t,n,r,s,i,o){let a=e.filter(y=>!br(y.item,t)),c=a.length>0?a:e,d=await Ht({pmRoot:i,author:s,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await Wt(c.map(y=>y.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:s,usageAffinity:d.affinity}),l=await Kt("next",u.candidates),f=gr(l,o,new Set,"next"),m=new Map(c.map(y=>[y.item.id,y]));return{projectedReady:l.ranked.map(y=>m.get(y.id)).filter(y=>y!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function Zo(e,t){let n=e.assignee?.trim();return pe(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Lb(e,t){let n=S(process.cwd(),t.path),r=await T(n),s=Zo(e,r.author_default),i=z(r.schema),o=G(),a=Xo(e.limit,"--limit",sg),c=lr(e.tokenBudget,Math.max(192,a*128)),d=Xo(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await He(void 0,lg(e,{excludeTerminal:!0}),t),m=await He(void 0,{excludeTerminal:!1,noTruncate:!0},t),p=yg(f.items,m.items,l),y=m.items,w=zn(p,y,i),_=Le(y),b=cg(w.ready,e.includeDecisions===!0),k=Qo(b.agent,r.author_default,s),E=Jo(k.available,_,i),I=[...w.blocked].sort((ne,re)=>ye(ne.item,re.item,i)),{projectedReady:P,ranking:D,completedContainer:U,packing:ce,featureStore:B}=await _g(E,_,i,o,s,n,c),M=P.map((ne,re)=>wr(ne,i,_,re+1)),H=I.map((ne,re)=>wr(ne,i,_,re+1)),Y=Jo(b.decisions,_,i).map((ne,re)=>wr(ne,i,_,re+1)),X=fg({projectedReady:P,readyRows:M,statusRegistry:i,now:o,completedContainer:U}),_e=pg(Y.length,k.held.length,a),J={output_default:"toon",now:o,recommended:X,ready:M.slice(1,a+1),decision_needed:Y.slice(0,a),blocked:u?[]:H.slice(0,d),held_by_others:k.held.slice(0,a),summary:{recommended:X!==null,ready:M.length,blocked:H.length,in_progress:ug(M,i),candidates:w.active_count,containers:w.container_count,decision_needed:Y.length,held_by_others:k.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:_e};return hg({result:J,recommended:X,blockedRows:H,candidatesWarnings:f.warnings,corpusWarnings:m.warnings,readyRanking:D,explainRanking:e.explainRanking===!0,pmRoot:n,author:s,packing:ce,featureStore:B})}function Mb(e){let t=["# pm next","",...wg(e)];if(t.push(...Yt("Recommended",bg(e.recommended),"No ready work.")),t.push(...Yt("Decision needed",(e.decision_needed??[]).map(n=>`- ${Xt(n)}`),"No human-gated decisions.")),t.push(...Yt("Ready",e.ready.map(n=>`- ${Xt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Yt("Blocked",e.blocked.map(n=>`- ${kg(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
12
+ `).trimEnd()}function wg(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 bg(e){return e?[`- ${Xt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Yt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function kg(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Xt(e)} blocked_by:${t}`}function Xt(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}`}import{createHash as vg}from"node:crypto";import{setTimeout as xg}from"node:timers/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f9853cc-0719-544f-8726-3cfd6063b59e")}catch{}})();var ta=1,na=/^[A-Za-z0-9_-]+$/,Eg=100,ea=1e3,Ig=250;function V(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,s)=>r.localeCompare(s));return n.length===0?void 0:n}function ra(e){return vg("sha256").update(ke({type:V(e.type),author:V(e.author),item:V(e.item),harness:V(e.harness),agent_instance:V(e.agentInstance),provenance:V(e.provenanceFilter)})).digest("hex").slice(0,24)}function sa(e,t){let n={version:ta,fingerprint:t,ts:e.entry.ts,stream_id:e.stream_id,stream_offset:e.stream_offset};return Buffer.from(JSON.stringify(n),"utf8").toString("base64url")}function ia(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===ta,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function oa(e,t){let n=e.trim();if(n.length===0||n.length>4096||!na.test(n))throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new h("Invalid mutation event cursor.",g.USAGE,{code:"invalid_event_cursor"})}if(!ia(r,t))throw new h("Mutation event cursor does not match this query.",g.USAGE,{code:"event_cursor_query_mismatch"});return r}function aa(e){let t=e??Eg;if(!Number.isSafeInteger(t)||t<0||t>ea)throw new h(`Mutation event limit must be an integer from 0 to ${ea}.`,g.USAGE,{code:"invalid_event_limit"});return t}function ca(e){return e instanceof Error&&e.name==="AbortError"}function da(e,t){let n=e?.trim();if(!n)return{};if(na.test(n))return{cursor:oa(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new h("Mutation event --since must be an event cursor or ISO timestamp.",g.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Cg(e,t){let n=await nn(e,t);if(n===null){if(!await Gr(e))throw new h("Mutation events require a runtime with node:sqlite DatabaseSync support.",g.GENERIC_FAILURE,{code:"event_index_unavailable"});n=await nn(e,t)}if(n===null)throw new h("Mutation event index could not be opened after rebuild.",g.GENERIC_FAILURE,{code:"event_index_unavailable"});return n}async function Sg(e={}){let t=S(e.cwd??process.cwd(),e.pmRoot);if(!await A($(t)))throw new h(`Tracker is not initialized at ${t}. Run pm init first.`,g.NOT_FOUND);let n=aa(e.limit);if(e.full===!0&&e.provenance===!0)throw new h("Mutation event projections are mutually exclusive. Use --provenance or --full.",g.USAGE);let r=await T(t),s=r.agent_identity.identity_vocabulary,i=ht(r.agent_identity.harness_signals),o=pn({provenance:e.provenanceFilter},i),a=V(e.harness),c=ra(e),{cursor:d,sinceTimestamp:u}=da(e.since,c),l={...d?{after_ts:d.ts,after_stream_id:d.stream_id,after_stream_offset:d.stream_offset}:u?{since_ts:u}:{},ops:V(e.type),authors:V(e.author),harnesses:a,harness_alias_authors:a?Object.entries(s.aliases).filter(([,p])=>a.includes(p)).map(([p])=>p):void 0,agent_instances:V(e.agentInstance),provenance:[...o].map(([p,y])=>({dimension:p,values:[...y]})),stream_ids:V(e.item),limit:n},f=await Cg(t,l),m=f.events.map(p=>({cursor:sa(p,c),item_id:p.stream_id,version:p.stream_offset+1,ts:p.entry.ts,author:p.entry.author,type:p.entry.op,...p.entry.message===void 0?{}:{message:p.entry.message},patch_count:p.entry.patch.length,...e.full===!0?{entry:p.entry}:{},...e.provenance===!0?{provenance:yt(p.entry,s,{itemId:p.stream_id,version:p.stream_offset+1})}:{}}));return{events:m,count:m.length,has_more:f.has_more,...m.length===0?{}:{next_cursor:m[m.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:_t(f.events.map(p=>p.entry),s,i)}:{}}}async function*Wb(e={}){let t=e.intervalMs??Ig;if(!Number.isSafeInteger(t)||t<10)throw new h("Mutation event follow interval must be an integer of at least 10ms.",g.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Sg({...e,since:n});if(r.events.length>0){for(let s of r.events)yield s;n=r.next_cursor;continue}try{await xg(t,void 0,{signal:e.signal})}catch(s){if(ca(s))return;throw s}}}var Vb={decodeMutationEventCursor:oa,encodeMutationEventCursor:sa,eventQueryFingerprint:ra,isAbortError:ca,isMutationEventCursorEnvelope:ia,parseMutationEventLimit:aa,resolveMutationEventStart:da};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function Xb(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,s)=>r.localeCompare(s))}export{us as a,ls as b,Oe as c,fs as d,ms as e,Ug as f,ps as g,fn as h,ch as i,dh as j,xh as k,Eh as l,mt as m,Es as n,Is as o,Th as p,W as q,pt as r,Cs as s,gt as t,ht as u,pn as v,yt as w,Ph as x,gn as y,_t as z,Wh as A,As as B,Ns as C,sc as D,Te as E,Xh as F,Jh as G,yn as H,De as I,oc as J,wn as K,ac as L,Re as M,bt as N,bn as O,kt as P,oy as Q,Ms as R,Ty as S,Gs as T,Ks as U,zs as V,Hs as W,qs as X,Tt as Y,Vs as Z,At as _,Ys as $,Zs as aa,ei as ba,ti as ca,Pd as da,Nt as ea,Fn as fa,Ft as ga,ii as ha,ci as ia,Ln as ja,Ue as ka,ui as la,On as ma,$n as na,Pn as oa,li as pa,jn as qa,mi as ra,pi as sa,hi as ta,tu as ua,w_ as va,Xb as wa,_u as xa,ge as ya,Mt as za,Ii as Aa,Ot as Ba,Be as Ca,zn as Da,Hn as Ea,Ge as Fa,Si as Ga,Ti as Ha,Fi as Ia,Vn as Ja,Mi as Ka,A_ as La,N_ as Ma,Pi as Na,ji as Oa,L_ as Pa,Pu as Qa,Wi as Ra,Ki as Sa,zi as Ta,ju as Ua,Uu as Va,ow as Wa,qu as Xa,Wu as Ya,Vu as Za,He as _a,fw as $a,mw as ab,pw as bb,go as cb,sr as db,Gt as eb,$f as fb,_o as gb,Gf as hb,Kt as ib,Kf as jb,zf as kb,Vf as lb,Yf as mb,ww as nb,Xf as ob,wo as pb,te as qb,zt as rb,Cw as sb,Sw as tb,Ht as ub,ir as vb,or as wb,hm as xb,vm as yb,xm as zb,ar as Ab,cr as Bb,Wt as Cb,Ro as Db,Mw as Eb,Rm as Fb,Lm as Gb,Fo as Hb,Bm as Ib,Lo as Jb,Gm as Kb,Hw as Lb,Oo as Mb,Jw as Nb,Qw as Ob,Zw as Pb,eb as Qb,$o as Rb,Km as Sb,Xm as Tb,Ye as Ub,wb as Vb,lr as Wb,Zm as Xb,ep as Yb,mr as Zb,ye as _b,gr as $b,hr as ac,yr as bc,Le as cc,Ze as dc,Vt as ec,bb as fc,Qp as gc,kb as hc,rg as ic,Nb as jc,Fb as kc,cg as lc,Lb as mc,Mb as nc,Sg as oc,Wb as pc,Vb as qc};
13
+ //# sourceMappingURL=chunk-7KL6KMWF.js.map