@unbrained/pm-cli 2026.8.8 → 2026.8.10

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 (222) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +59 -0
  3. package/dist/cli/commander-usage.js +17 -12
  4. package/dist/cli/help-json-payload.js +51 -16
  5. package/dist/cli/main.js +7 -6
  6. package/dist/cli-bundle/bundle-manifest.json +162 -162
  7. package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
  8. package/dist/cli-bundle/chunks/{chunk-2ZMXX3Q6.js → chunk-EBO7OUUE.js} +70 -70
  9. package/dist/cli-bundle/chunks/{chunk-NUXRRNAB.js → chunk-ETML5C6H.js} +48 -48
  10. package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
  11. package/dist/cli-bundle/chunks/chunk-JZSNADRR.js +5 -0
  12. package/dist/cli-bundle/chunks/chunk-MENWVGJW.js +2 -0
  13. package/dist/cli-bundle/chunks/{chunk-ALDHXLPS.js → chunk-S4EITGLA.js} +2 -2
  14. package/dist/cli-bundle/chunks/chunk-TIGKWVLA.js +13 -0
  15. package/dist/cli-bundle/chunks/{chunk-CBLA33YK.js → chunk-TRWXF476.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
  17. package/dist/cli-bundle/chunks/{register-list-query-WFZAMJHZ.js → register-list-query-OJ6ZXKV4.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-SOKKOTHQ.js → register-mutation-DKI7QC7O.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
  20. package/dist/cli-bundle/chunks/{register-setup-2HL5ZHMK.js → register-setup-S3KT2LTH.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-ANTMGYLI.js → chunk-2COZ67XT.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-YSAHYUXX.js → chunk-34SX654S.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
  27. package/dist/cli-bundle/focused-chunks/chunk-7UN6BHHO.js +2 -0
  28. package/dist/cli-bundle/focused-chunks/{chunk-TCSAPH33.js → chunk-CHIBMEZR.js} +6 -6
  29. package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-GHTN2ILR.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-JMVA4HKR.js +5 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-PL2EYDJK.js → chunk-KR5RVXLQ.js} +31 -29
  37. package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
  38. package/dist/cli-bundle/focused-chunks/chunk-M6RPIXKC.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
  41. package/dist/cli-bundle/focused-chunks/chunk-RKWSCYYN.js +2 -0
  42. package/dist/cli-bundle/main.js +13 -13
  43. package/dist/cli-bundle/sdk-authoring.js +1 -1
  44. package/dist/cli-bundle/sdk-contracts.js +1 -1
  45. package/dist/cli-bundle/sdk-core.js +38 -38
  46. package/dist/cli-bundle/sdk-governance.js +1 -1
  47. package/dist/cli-bundle/sdk-graph.js +1 -1
  48. package/dist/cli-bundle/sdk-merge.js +1 -1
  49. package/dist/cli-bundle/sdk-query.js +1 -1
  50. package/dist/cli-bundle/sdk-runtime.js +1 -1
  51. package/dist/cli-bundle/sdk-testing.js +1 -1
  52. package/dist/cli-bundle/sdk.js +2 -2
  53. package/dist/core/diagnostics/remediation.js +19 -9
  54. package/dist/core/fs/fs-utils.d.ts +10 -0
  55. package/dist/core/fs/fs-utils.js +16 -4
  56. package/dist/core/history/history.js +13 -4
  57. package/dist/core/item/actionability.d.ts +7 -1
  58. package/dist/core/item/actionability.js +71 -15
  59. package/dist/core/item/item-format.js +3 -32
  60. package/dist/core/schema/fields-file.d.ts +1 -2
  61. package/dist/core/schema/fields-file.js +4 -11
  62. package/dist/core/schema/runtime-schema.js +3 -10
  63. package/dist/core/schema/status-defs-file.d.ts +1 -2
  64. package/dist/core/schema/status-defs-file.js +4 -32
  65. package/dist/core/schema/status-token.d.ts +2 -0
  66. package/dist/core/schema/status-token.js +32 -0
  67. package/dist/core/schema/type-workflows.d.ts +1 -2
  68. package/dist/core/schema/type-workflows.js +4 -11
  69. package/dist/core/shared/author.d.ts +25 -0
  70. package/dist/core/shared/author.js +128 -10
  71. package/dist/core/shared/errors.d.ts +4 -0
  72. package/dist/core/shared/errors.js +2 -2
  73. package/dist/core/shared/text-normalization.d.ts +1 -1
  74. package/dist/core/shared/text-normalization.js +2 -2
  75. package/dist/sdk/actionability.d.ts +1 -1
  76. package/dist/sdk/actionability.js +3 -3
  77. package/dist/sdk/agent/command-recovery.d.ts +4 -0
  78. package/dist/sdk/agent/command-recovery.js +52 -0
  79. package/dist/sdk/agent/command-suggestions.d.ts +4 -0
  80. package/dist/sdk/agent/command-suggestions.js +67 -0
  81. package/dist/sdk/agent/create-option-policy.d.ts +12 -0
  82. package/dist/sdk/agent/create-option-policy.js +32 -0
  83. package/dist/sdk/agent/item-addressing.d.ts +19 -0
  84. package/dist/sdk/agent/item-addressing.js +208 -0
  85. package/dist/sdk/cli-bootstrap.d.ts +1 -1
  86. package/dist/sdk/cli-bootstrap.js +20 -5
  87. package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
  88. package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
  89. package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
  90. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +8 -0
  91. package/dist/sdk/cli-contracts/runtime-contracts.js +20 -3
  92. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
  93. package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
  94. package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
  95. package/dist/sdk/cli-contracts/tool-schema.js +17 -4
  96. package/dist/sdk/context-intent-runtime.js +8 -5
  97. package/dist/sdk/context-signal-store.d.ts +34 -0
  98. package/dist/sdk/context-signal-store.js +24 -2
  99. package/dist/sdk/core-governance.d.ts +1 -1
  100. package/dist/sdk/core-governance.js +3 -3
  101. package/dist/sdk/dependencies.d.ts +2 -0
  102. package/dist/sdk/dependencies.js +7 -6
  103. package/dist/sdk/dependency-flag-validation.d.ts +15 -1
  104. package/dist/sdk/dependency-flag-validation.js +54 -2
  105. package/dist/sdk/extension/bundled-catalog.js +19 -6
  106. package/dist/sdk/generated-error-code-catalog.js +110 -2
  107. package/dist/sdk/governance/health.js +38 -12
  108. package/dist/sdk/governance/provenance-health.d.ts +39 -0
  109. package/dist/sdk/governance/provenance-health.js +185 -0
  110. package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
  111. package/dist/sdk/governance/validate-item-reader.js +18 -0
  112. package/dist/sdk/governance/validate.d.ts +2 -2
  113. package/dist/sdk/governance/validate.js +25 -11
  114. package/dist/sdk/governance.d.ts +1 -0
  115. package/dist/sdk/governance.js +3 -2
  116. package/dist/sdk/graph/assembly.d.ts +4 -0
  117. package/dist/sdk/graph/assembly.js +22 -2
  118. package/dist/sdk/graph/run.d.ts +2 -0
  119. package/dist/sdk/graph/run.js +3 -2
  120. package/dist/sdk/index.d.ts +4 -0
  121. package/dist/sdk/index.js +6 -2
  122. package/dist/sdk/lifecycle/close.js +27 -19
  123. package/dist/sdk/lifecycle/create.d.ts +2 -0
  124. package/dist/sdk/lifecycle/create.js +66 -19
  125. package/dist/sdk/lifecycle/plan.js +6 -3
  126. package/dist/sdk/lifecycle/update-many.js +39 -27
  127. package/dist/sdk/lifecycle/update.d.ts +6 -1
  128. package/dist/sdk/lifecycle/update.js +51 -28
  129. package/dist/sdk/merge/driver.d.ts +2 -1
  130. package/dist/sdk/merge/driver.js +7 -4
  131. package/dist/sdk/merge/index.d.ts +1 -1
  132. package/dist/sdk/merge/index.js +3 -3
  133. package/dist/sdk/merge/install.d.ts +4 -0
  134. package/dist/sdk/merge/install.js +29 -17
  135. package/dist/sdk/merge/receipts.d.ts +17 -1
  136. package/dist/sdk/merge/receipts.js +112 -20
  137. package/dist/sdk/merge/reconcile.js +21 -4
  138. package/dist/sdk/merge/three-way.d.ts +6 -2
  139. package/dist/sdk/merge/three-way.js +24 -10
  140. package/dist/sdk/output-projection.js +24 -4
  141. package/dist/sdk/query/context.d.ts +2 -0
  142. package/dist/sdk/query/context.js +7 -4
  143. package/dist/sdk/query/get.d.ts +11 -0
  144. package/dist/sdk/query/get.js +37 -3
  145. package/dist/sdk/query/light-metadata.d.ts +3 -0
  146. package/dist/sdk/query/light-metadata.js +19 -0
  147. package/dist/sdk/read-output-contracts.d.ts +1 -1
  148. package/dist/sdk/read-output-contracts.js +23 -4
  149. package/dist/sdk/relationship-kinds/contract.d.ts +48 -0
  150. package/dist/sdk/relationship-kinds/contract.js +22 -0
  151. package/dist/sdk/relationships.d.ts +6 -41
  152. package/dist/sdk/relationships.js +12 -126
  153. package/dist/sdk/runtime-primitives.d.ts +1 -1
  154. package/dist/sdk/runtime-primitives.js +3 -3
  155. package/dist/sdk/runtime.d.ts +4 -1
  156. package/dist/sdk/runtime.js +8 -3
  157. package/dist/sdk/schema-migration.js +7 -9
  158. package/dist/sdk/similarity-scoring.d.ts +1 -2
  159. package/dist/sdk/similarity-scoring.js +4 -16
  160. package/dist/sdk/similarity.d.ts +5 -0
  161. package/dist/sdk/similarity.js +40 -10
  162. package/dist/sdk/structured-mutations.js +5 -2
  163. package/dist/sdk/test/linked-command-detection.d.ts +2 -7
  164. package/dist/sdk/test/linked-command-detection.js +22 -9
  165. package/dist/sdk/workspace-snapshot.d.ts +4 -0
  166. package/dist/sdk/workspace-snapshot.js +24 -11
  167. package/docs/AGENT_GUIDE.md +5 -2
  168. package/docs/COMMANDS.md +27 -6
  169. package/docs/DEPENDENCY_KIND_CONTRACT.md +29 -0
  170. package/docs/ITEM_READ_PROJECTIONS.md +26 -0
  171. package/docs/MERGE_SAFETY.md +17 -8
  172. package/docs/README.md +2 -5
  173. package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
  174. package/docs/RELATIONSHIP_GRAPH.md +1 -1
  175. package/docs/SDK.md +33 -8
  176. package/docs/SDK_AGENT_SESSION_CONTEXT.md +36 -2
  177. package/docs/SDK_CONTEXT.md +97 -0
  178. package/docs/SDK_CONTEXT_INTEGRITY.md +33 -3
  179. package/docs/SENTRY_CONTRACT_EPOCHS.md +20 -0
  180. package/docs/agent-task-token-baseline.json +2 -2
  181. package/marketplace.json +2 -2
  182. package/package.json +5 -4
  183. package/packages/pm-beads/package.json +1 -1
  184. package/packages/pm-calendar/package.json +1 -1
  185. package/packages/pm-command-kit/package.json +1 -1
  186. package/packages/pm-digital-twin/package.json +1 -1
  187. package/packages/pm-governance-audit/package.json +1 -1
  188. package/packages/pm-guide-shell/package.json +1 -1
  189. package/packages/pm-kanban/package.json +1 -1
  190. package/packages/pm-lifecycle-hooks/package.json +1 -1
  191. package/packages/pm-linked-test-adapters/package.json +1 -1
  192. package/packages/pm-search-advanced/package.json +1 -1
  193. package/packages/pm-templates/package.json +1 -1
  194. package/packages/pm-todos/package.json +1 -1
  195. package/packages/pm-vcs/package.json +1 -1
  196. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  197. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  198. package/sdk/public-surface.json +415 -43
  199. package/dist/cli-bundle/chunks/chunk-GKA54IJM.js +0 -5
  200. package/dist/cli-bundle/chunks/chunk-KRY7SRUO.js +0 -2
  201. package/dist/cli-bundle/chunks/chunk-MNJ4NNSY.js +0 -26
  202. package/dist/cli-bundle/chunks/chunk-OJPCFDDY.js +0 -13
  203. package/dist/cli-bundle/chunks/chunk-PFSD3DAN.js +0 -194
  204. package/dist/cli-bundle/chunks/chunk-SQ7QZFQ6.js +0 -2
  205. package/dist/cli-bundle/chunks/register-operations-5XQETS6E.js +0 -2
  206. package/dist/cli-bundle/focused-chunks/chunk-54EU2UVO.js +0 -2
  207. package/dist/cli-bundle/focused-chunks/chunk-5FLBTZJQ.js +0 -2
  208. package/dist/cli-bundle/focused-chunks/chunk-5GJ57YKN.js +0 -2
  209. package/dist/cli-bundle/focused-chunks/chunk-CMDS3KYT.js +0 -14
  210. package/dist/cli-bundle/focused-chunks/chunk-DMKOMTTY.js +0 -6
  211. package/dist/cli-bundle/focused-chunks/chunk-F5B3HBEZ.js +0 -5
  212. package/dist/cli-bundle/focused-chunks/chunk-FI6DWU2M.js +0 -2
  213. package/dist/cli-bundle/focused-chunks/chunk-FNOKJG6N.js +0 -16
  214. package/dist/cli-bundle/focused-chunks/chunk-FPDYXZBK.js +0 -4
  215. package/dist/cli-bundle/focused-chunks/chunk-GWI6YIKJ.js +0 -3
  216. package/dist/cli-bundle/focused-chunks/chunk-HCUC62AB.js +0 -2
  217. package/dist/cli-bundle/focused-chunks/chunk-HGNKPSCB.js +0 -153
  218. package/dist/cli-bundle/focused-chunks/chunk-IAS7PMLG.js +0 -2
  219. package/dist/cli-bundle/focused-chunks/chunk-SM2PJGP3.js +0 -2
  220. package/dist/cli-bundle/focused-chunks/chunk-U646T7Z6.js +0 -18
  221. package/dist/cli-bundle/focused-chunks/chunk-YKPE4PPY.js +0 -2
  222. package/dist/cli-bundle/focused-chunks/chunk-ZOLDTUU7.js +0 -2
@@ -1,13 +0,0 @@
1
- import{A as m,Ad as te,Af as Vn,Bb as je,Bd as de,Bf as qe,C as p,Cc as On,Cd as jn,Cg as Zn,Dd as At,E as F,Fa as K,Fg as T,Ga as Ue,Kf as Yn,Lf as We,Lg as Qn,Na as S,Nd as Bn,P as N,Pg as er,Qa as M,Qc as J,Qg as tr,R as v,Ra as An,Rg as le,S as Dn,Sc as Be,Sd as Ke,Sg as nr,T as W,Ta as Tt,Td as Ge,Ub as Mn,Ud as _e,Ug as Xe,Vg as Je,Wg as rr,Xd as He,Xg as fe,Xi as ir,Yg as or,bd as C,c as A,cb as Fn,cd as x,d as Oe,dd as O,e as q,eg as Xn,fg as Jn,hf as ue,id as Pn,if as Kn,jb as Rn,jd as Un,jf as Gn,jg as Rt,kf as Hn,lc as $,mb as Nn,mf as we,mk as sr,of as Z,pd as ce,pf as Ft,qf as zn,ta as ae,tf as qn,uc as Dt,uf as ze,v as Sn,vg as Ve,wc as $n,wf as Wn,wg as Ye,xc as Ln,ya as St,z as Tn,za as Pe}from"./chunk-PFSD3DAN.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 gi(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new p(`History for this item contains invalid timestamp at entry ${o+1}.`,m.GENERIC_FAILURE);i<=t&&(n=o)}),n}function hi(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 ar(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 o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function cr(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=hi(t);if(!r)throw new p(`Missing ${o} target. Use a timestamp or version number.`,m.USAGE,s);if(/^\d+$/.test(r)){let u=Number(r);if(!Number.isSafeInteger(u)||u<1||u>t.length)throw new p(`${i} version must be between 1 and ${t.length} for this item.`,m.USAGE,s);return{kind:"version",raw:r,historyIndex:u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new p(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,m.USAGE,s);let d=gi(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new p(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,m.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function be(e,t,n,r){let o=qn(e,t);if(o.ok)return o.document;let i=ar(t,o.error),s=[`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 p(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,m.GENERIC_FAILURE)}function dr(e,t){let n=structuredClone(we);for(let r=0;r<=t;r+=1){let o=e[r];if(!o)throw new p(`History target entry ${r+1} does not exist.`,m.USAGE);if(Z(n)!==o.before_hash)throw new p(`History hash mismatch before replay at entry ${r+1}.`,m.GENERIC_FAILURE);if(n=be(n,o.patch,r+1,o.op),Z(n)!==o.after_hash)throw new p(`History hash mismatch after replay at entry ${r+1}.`,m.GENERIC_FAILURE)}return n}function ur(e,t){if(Object.keys(e.metadata).length>0)return e;throw new p(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,m.USAGE)}import Nt from"node:fs/promises";import yi 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 _i(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=Zn(e.settings);if(n.ownership_enforcement==="strict")throw new p(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,m.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function wi(e){let t=await Oe(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new p(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);let n=await Xe(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await Je(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new p(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function nf(e){let t=e.writeHistoryRaw??q;try{await t(e.historyPath,e.nextHistoryRaw),await ue(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await yi.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await ue(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function lr(e){let t=[..._i({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await qe(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 wi({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 Mt(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function fr(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function mr(e){let t=e.trim();if(t.length===0)throw new p("history-redact --regex requires a non-empty pattern.",m.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=fr(t.slice(o+1)))}if(n.length===0)throw new p("history-redact --regex cannot use an empty pattern.",m.USAGE);try{new RegExp(n,r)}catch{throw new p("Invalid --regex value; provide a valid JavaScript regular expression.",m.USAGE)}return{kind:"regex",source:n,flags:r}}function pr(e,t){let n=[...new Set(Mt(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set(Mt(t).map(i=>i.trim()))].filter(i=>i.length>0).map(mr),o=[...n,...r];if(o.length===0)throw new p("history-redact requires at least one matcher via --literal or --regex.",m.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 o}function gr(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,o=0;for(;r<=e.length;){let i=e.indexOf(t,r);if(i===-1)break;o+=1,r=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:o}}function hr(e,t,n){let r=new RegExp(t.source,t.flags),o=[...e.matchAll(r)];return o.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:o.length}}function $t(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?gr(r,i.value,n):hr(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function Ze(e,t,n){if(typeof e=="string")return $t(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=Ze(i,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,o={};for(let[i,s]of Object.entries(e)){let a=Ze(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function bi(e){let t=structuredClone(we),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];Z(t)!==i.before_hash&&(n+=1),t=be(t,i.patch,o+1,i.op),Z(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function ki(e,t,n){let r=0,o=!1,i=e.message;if(typeof e.message=="string"){let a=$t(e.message,t,n);i=a.value,r+=a.replacements,a.replacements>0&&(o=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let c=Ze(a.value,t,n);return r+=c.replacements,c.replacements>0?(o=!0,{...a,value:c.value}):a});return{entry:{...e,message:i,patch:s},replacements:r,changed:o}}function vi(e,t,n){let r=structuredClone(we),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=ki(e[a],t,n);i+=c.replacements,c.changed&&(o+=1);let d=Z(r);r=be(r,c.entry.patch,a+1,c.entry.op);let u=Z(r);s.push({...c.entry,before_hash:d,after_hash:u})}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function yr(e){return Object.keys(e.metadata).length>0}async function Ei(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await Je(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function xi(e){if(!yr(e.finalDocument))return{raw:null,path:null,document:null};let t=Un(Ft(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new p("history-redact would change the item id; narrow your patterns.",m.USAGE);return{document:t,path:An(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Pn(t,{format:"toon",schema:e.settings.schema})}}function Ii(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 Ci(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??Ft(e.rewritten.finalDocument);return t.push(Hn({nowIso:N(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function Si(e){let t=[];return lr({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 tr(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await q(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await Nt.rm(e.currentItem.path,{force:!0}),await q(e.subject.historyPath,Wn(e.rewrittenEntries))}catch(c){try{await Ti(e.subject.historyPath,n,o,i)}finally{await ue(e.subject.historyPath)}throw c}await ue(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await nr({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=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...t,...await Di(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Ti(e,t,n,r){t===null?await Nt.rm(e,{force:!0}):await q(e,t);for(let o of n){let i=r.get(o);i===void 0?await Nt.rm(o,{force:!0}):await q(o,i)}}async function Di(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await Dt({path:o,scope:"project",op:"history_redact"}));return n.push(...await Dt({path:e,scope:"project",op:"history_redact:history"})),n}async function Lt(e,t,n,r){let o=await Xe(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:Tt(e,o.id),located:o};let i=We(t,n.id_prefix),s=Yn(t),a=i===s?[i]:[i,s];for(let c of a){let d=Tt(e,c);if(await A(d))return{id:c,historyPath:d,located:null}}throw new p(`Item ${t} not found`,m.NOT_FOUND)}async function If(e,t,n){let r=S(process.cwd(),n.path);if(!await A(M(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let o=await T(r),i=K(o,$()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=pr(t.literal,t.regex),u=await Lt(r,e,o,i.type_to_folder);if(!await A(u.historyPath))throw new p(`No history stream exists for ${u.id}.`,m.NOT_FOUND);let l=await Oe(u.historyPath),f=await de(u.historyPath,u.id);if(f.length===0)throw new p(`No history entries exist for ${u.id}; nothing to redact.`,m.USAGE);let g=bi(f),h=vi(f,d,c),y=g.hashMismatchesBefore+g.hashMismatchesAfter,k=!!t.dryRun,_=h.replacements>0,w=[];y>0&&w.push(`history_redact_preexisting_hash_mismatches:${y}`),_||w.push("history_redact_no_matches");let E=await Ei(u,o),I=xi({pmRoot:r,subject:u,settings:o,typeToFolder:i.type_to_folder,finalDocument:h.finalDocument}),B=(E.path??null)!==(I.path??null)||(E.raw??null)!==(I.raw??null),D=te(t.author,o.author_default),oe=Ii(t,h),{rewrittenEntries:Q,auditEntryAdded:ye}=Ci({rewritten:h,dryRun:k,changed:_,nextItemDocument:I.document,author:D,message:oe}),Y=ze(Q);if(!Y.ok)throw new p(`history-redact produced an invalid rewritten chain (${Y.errors.join(", ")}).`,m.GENERIC_FAILURE);return!k&&_&&w.push(...await Si({pmRoot:r,subject:u,settings:o,typeRegistry:i,historyRawBeforeLock:l,currentItem:E,nextItem:I,author:D,force:t.force,rewrittenEntries:Q})),{id:u.id,dry_run:k,changed:_,patterns:{literal_count:d.filter(R=>R.kind==="literal").length,regex_count:d.filter(R=>R.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:u.historyPath,entries_scanned:f.length,entries_changed:h.entriesChanged,replacements:h.replacements,hash_mismatches_before:g.hashMismatchesBefore,hash_mismatches_after:g.hashMismatchesAfter,preexisting_hash_mismatches:y,audit_entry_added:ye,verify_ok:Y.ok,verify_errors:Y.errors},item:{existed_before:E.path!==null,exists_after:I.path!==null,path_before:E.path,path_after:I.path,changed:B},warnings:[...new Set(w)].sort((R,X)=>R.localeCompare(X)),generated_at:N()}}var Cf={applyLiteralRule:gr,applyRegexRule:hr,buildRedactionRules:pr,hasItemMetadata:yr,normalizeRegexFlags:fr,normalizeStringArrayInput:Mt,parseRegexRule:mr,redactStringValue:$t,redactUnknownValue:Ze};(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 jf(e,t){let n=ze(e),r=e.length>0?e[e.length-1].after_hash:Gn(),o=t===void 0?void 0:Kn(t),i=o===void 0?void 0:o===r,s=[...n.errors];return i===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:o,current_matches_latest:i}}async function Bf(e,t,n={}){let r=S(n.cwd??process.cwd(),n.pmRoot);if(!await A(M(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let o=await T(r),i=K(o,$()),s=await Lt(r,e,o,i.type_to_folder),a=await de(s.historyPath,s.id);if(a.length===0)throw new p(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let c=cr(t,a),d=ur(dr(a,c.historyIndex),c),u=zn(d,{schema:o.schema});if(u.metadata.id!==s.id)throw new p(`History target resolved to item ${u.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let l=a[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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function P(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return r}function Qe(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new p(`${t} filter must be 0..4`,m.USAGE);return r}function _r(e,t,n="--type"){if(e===void 0)return;let r=Ue(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.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 et={version:1,aliases:{}};function tt(e=[]){let t=new Set(ce),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function wr(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 Ot(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 Pt(e,t=ce){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new p(`Provenance predicate must use dimension=value; received "${i.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),c=i.slice(s+1).trim();if(!n.has(a))throw new p(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,m.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new p(`Provenance predicate must use dimension=value; received "${i.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function nt(e,t=et,n={}){let r=Ot(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 Jf(e,t,n=et,r=ce){return Ut(t,n,r)(e)}function Ut(e,t=et,n=ce){let r=wr(e.harness),o=wr(e.agentInstance),i=Pt(e,n);return s=>{let c=Ot(s,t).agent_harness;if(r&&(!c||!r.has(c))||o&&!o.has(s.agent_instance??""))return!1;for(let[d,u]of i){let l=s.agent_provenance?.[d];if(!l||!u.has(l.value))return!1}return!0}}function rt(e,t=et,n=ce){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);Ot(s,t).agent_harness?i+=1:o.set(s.author,(o.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...o].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,c=0;for(let d of e){let u=d.agent_provenance?.[s];u===null?c+=1:u!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import Ai from"node:fs/promises";import kr 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]="a7efa5e0-5610-51ca-8288-4f5410dbcf51")}catch{}})();var Fi=20,Ri=5;function jt(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new p(`${t} must not be empty`,m.USAGE);return n}function br(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new p("Activity time bounds must not be empty",m.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return W(o,new Date(t),n)}function Ni(e,t,n){return!(e.ts.length===0&&(t||n)||t&&v(e.ts,t)<0||n&&v(e.ts,n)>=0)}function Mi(e,t){return t===void 0?e:e.slice(0,t)}function ke(e,t=""){return typeof e=="string"?e:t}function $i(e,t){return{...t,id:e,ts:ke(t.ts),author:ke(t.author,"unknown"),op:ke(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:ke(t.before_hash),after_hash:ke(t.after_hash)}}function Li(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let o=t.id.localeCompare(n.id);return o!==0?o:t.op.localeCompare(n.op)})}async function Oi(e){try{return(await Ai.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(t.code==="ENOENT")return[];throw t}}function Pi(e){let t=N(),n=br(e.from,t,"--from"),r=br(e.to,t,"--to");if(n&&r&&v(n,r)>=0)throw new p("Activity --from must be before --to",m.USAGE);let o=Rt(e.limit);if(e.unbounded===!0&&o!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:jt(e.id,"Activity --id"),op:jt(e.op,"Activity --op"),author:jt(e.author,"Activity --author"),from:n,to:r,limit:e.unbounded===!0?void 0:o??(e.compact===!0?Fi:Ri),limitSource:e.unbounded===!0||o!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Ui(e){let t=S(process.cwd(),e.path);if(!await A(M(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await T(t)}}async function ji(e){let t=K(e.settings,$()),n=await fe(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Vn({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=kr.join(e.pmRoot,"history");return await $n({path:r,scope:"project"}),r}function Bi(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Ni(t,n.from,n.to)}async function Ki(e,t){let n=[];for(let r of await Oi(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await de(kr.join(e,r),o);for(let s of i){let a=$i(o,s);Bi(s,a,t)&&n.push(a)}}return n}function Gi(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}async function vr(e,t){let n=await Ui(t),r=Pi(e),o=await ji(n),i=tt(n.settings.agent_identity.harness_signals),s=n.settings.agent_identity.identity_vocabulary,a=Ut({harness:r.harness,agentInstance:r.agentInstance,provenance:r.provenance},s,i),c=Li(await Ki(o,r)).filter(a),d=Mi(c,r.limit),u=e.compact===!0,l=u?Gi(d):void 0,f=e.provenance===!0?d.map(k=>nt(k,s,{itemId:k.id})):void 0,g=c.length-d.length,h=e.provenance===!0?"provenance":u?"compact":"full";return{...{compact:{compact_activity:l},provenance:{provenance_activity:f},full:{activity:d}}[h],compact:u,projection:{mode:h,row_key:h==="compact"?"compact_activity":h==="provenance"?"provenance_activity":"activity"},omission_receipt:Bn("activity",h),count:d.length,total_count:c.length,limit:r.limit??null,omitted_count:g,has_more:g>0,...e.provenanceSummary===!0?{provenance_summary:rt(c,s,i)}:{},applied_bound:{kind:r.limit===void 0?"unbounded":"limit",source:r.limitSource,value:r.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bf429f76-9722-5e34-a5f0-6ced8d1ed667")}catch{}})();var Hi="blocked_by",Er="no-active-blocker";function U(e){return e.trim().toLowerCase()}function ve(e){let t=new Set,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";n.length>0&&n.toLowerCase()!==Er&&t.add(n);for(let r of e.dependencies??[])r.kind===Hi&&typeof r.id=="string"&&r.id.trim().length>0&&r.id.trim().toLowerCase()!==Er&&t.add(r.id.trim());return[...t].sort((r,o)=>r.localeCompare(o))}function me(e,t,n){return ve(e).map(r=>{let o=t.get(U(r));return o?{id:r,title:o.title,status:o.status,resolved:O(o.status,n)}:{id:r,title:null,status:null,resolved:!1}})}function Ee(e,t){let n=new Map(e.map(i=>[U(i.id),i])),r=new Set([...xr(t),...t.blocked_statuses]),o=new Set;for(let i of e){let s=x(i.status,t);if(!r.has(s))continue;(t.blocked_statuses.has(s)||me(i,n,t).some(c=>!c.resolved))&&o.add(U(i.id))}return o}function xr(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function zi(e,t,n){let r=[U(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!O(s.status,n))return!0;r.push(U(s.id))}}}return!1}function qi(e){let t=new Map,n=new Map,r=new Map;for(let o of e){t.set(U(o.id),o);let i=typeof o.parent=="string"?o.parent.trim():"";if(i.length>0){let s=U(i),a=n.get(s)??[];a.push(o),n.set(s,a)}for(let s of ve(o)){let a=U(s),c=r.get(a)??[];c.push(o.id),r.set(a,c)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r}}function Bt(e,t,n){let{itemsById:r,childrenByParent:o,blockedByReverse:i}=qi(t),s=new Set([...xr(n),...n.blocked_statuses]),a=new Set(t.filter(f=>!O(f.status,n)).map(f=>U(f.id))),c=[],d=[],u=0,l=0;for(let f of e){if(!s.has(x(f.status,n)))continue;if(u+=1,zi(f.id,o,n)){l+=1;continue}let g=me(f,r,n).filter(_=>!_.resolved),h=(i.get(U(f.id))??[]).filter(_=>a.has(U(_))).sort((_,w)=>_.localeCompare(w)),y={item:f,open_blockers:g,unblocks:h},k=n.blocked_statuses.has(x(f.status,n));g.length===0&&!k?c.push(y):d.push(y)}return{ready:c,blocked:d,active_count:u,container_count:l}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9184e723-8269-5e45-8c6a-52fd02da60e6")}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 Kt(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let o=n.map(s=>s.trim());if(o.some(s=>s.length===0))throw new p(`${t.label} requires at least one non-empty value`,m.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function xe(e,t){let n=Kt(e,t);return n===void 0?void 0:new Set(n)}function Ir(e,t,n="--type"){let r=Kt(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=Ue(i,t);if(!s)throw new p(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,m.USAGE);return s});return new Set(o)}function Cr(e,t="--priority"){let n=Kt(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Qe(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 Sr(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Fr(e){return{isTerminal(t){return e.terminal_statuses.has(Sr(t,e))},classify(t){let n=Sr(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 Gt(e){return F(e.acceptance_criteria)===void 0}function Ht(e){return!Number.isFinite(e.estimated_minutes)}function Rr(e,t){return t.isTerminal(e.status)?F(e.resolution)===void 0:!1}function Wi(e){return F(e.reviewer)===void 0}function Vi(e){return F(e.risk)===void 0}function Yi(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):F(e.confidence)===void 0}function Xi(e){return F(e.sprint)===void 0}function Ji(e){return F(e.release)===void 0}function zt(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Zi(e,t,n){return[[t.acMissing,Gt(e)],[t.estimatesMissing,Ht(e)],[t.resolutionMissing,Rr(e,n)],[t.reviewerMissing,Wi(e)],[t.riskMissing,Vi(e)],[t.confidenceMissing,Yi(e)],[t.sprintMissing,Xi(e)],[t.releaseMissing,Ji(e)]].every(([o,i])=>o!==!0||i)}function Qi(e,t){return Gt(e)||Ht(e)||Rr(e,t)}function Nr(e,t,n){return zt(t)?!(!Zi(e,t,n)||t.metadataMissing&&!Qi(e,n)):!0}var qt=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function es(e,t){switch(t){case"acceptance_criteria":return!Gt(e);case"estimated_minutes":return!Ht(e);case"resolution":return F(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return F(e.parent)!==void 0}}function ts(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function ns(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Tr(){let e={};for(let t of qt)e[t]={present:0,applicable:0,percent:100};return e}function Dr(e,t,n){for(let r of qt){if(!ts(t,r,n))continue;let o=e[r];o.applicable+=1,es(t,r)&&(o.present+=1)}}function Ar(e){for(let t of qt){let n=e[t];n.percent=ns(n.present,n.applicable)}}function ym(e,t){let n=Tr(),r={};for(let o of e){Dr(n,o,t);let i=r[o.type]??(r[o.type]=Tr());Dr(i,o,t)}Ar(n);for(let o of Object.values(r))Ar(o);return{overall:n,by_type:r}}var rs={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function os(e){return rs[e]}function is(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function ss(e,t,n){switch(t){case"assignee":return[F(e.assignee)??null];case"parent":return[F(e.parent)??null];case"type":return[F(e.type)??null];case"status":return[F(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(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return i.length>0?i:[null]}}}function _m(e,t,n,r={}){let o=new Map,i=0;for(let a of e){i+=1;let c=n.classify(a.status);for(let d of ss(a,t,r)){let u=d??"\0empty",l=o.get(u);l||(l={label:d??os(t),key:d,buckets:is(),total:0},o.set(u,l)),l.buckets[c]+=1,l.total+=1}}let s=[...o.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:s,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 pe=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function ne(e){return Array.isArray(e)&&e.length>0}function as(e){return typeof e=="string"&&e.trim().length>0}function cs(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 $r(e,t){switch(t){case"notes":return ne(e.notes);case"learnings":return ne(e.learnings);case"files":return ne(e.files);case"docs":return ne(e.docs);case"tests":return ne(e.tests);case"comments":return ne(e.comments);case"deps":return ne(e.dependencies);case"body":return as(e.body);case"linked_command":return cs(e.tests)}}function Lr(e){return pe.some(t=>e[t]!==void 0)}function Or(e,t){for(let n of pe){let r=t[n];if(r===void 0)continue;let o=$r(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Pr(e){return pe.some(t=>t!=="body"&&e[t]!==void 0)}function Ur(e){return e.body!==void 0}function Mr(e,t){return t===0?100:Math.round(e/t*1e3)/10}function ds(){let e={};for(let t of pe)e[t]={present:0,total:0,percent:100};return e}function bm(e){let t=ds(),n=e.length;for(let s of e)for(let a of pe)$r(s,a)&&(t[a].present+=1);for(let s of pe)t[s].total=n,t[s].percent=Mr(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:Mr(o,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 us=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}),jr=[{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"}],zr=e=>{let t=jr.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new p(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(jr.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Br=["priority","deadline","updated_at","created_at","title","parent"],Kr=["asc","desc"],ls=["id","title","status","type","priority","parent","updated_at"],fs=["id","status","type","title"],qm={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},ms=["tree_depth","tree_parent","tree_children","tree_title"],qr=new Set(er);function ps(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":r+o>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:o};if(n&&i.status==="partial")throw new p(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,m.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function gs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var hs=[{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"}],ys=[{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 Wr(e,t){for(let n of hs)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Vr(e,t){for(let n of ys)t[n.key]===!0&&(e[n.summaryKey]=!0)}function _s(e,t,n){for(let r of n){let o=t[r.optionKey];o!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(o):o)}}function ws(e){let t={};return Wr(t,e),t}function bs(e){let t={};return Vr(t,e),t}var ks=[{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"}],vs=[{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"}],Es=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],xs="-7d";function Is(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),_s(c,n,ks),Xr(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),Vr(c,n),Wr(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,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),gs(a)&&(c.runtime_filters=a),c}function Yr(e,t,n){let r=O(e.status,n),o=O(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=v(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Cs(e,t){return[...e].sort((n,r)=>Yr(n,r,t))}function Gr(e,t){if(e!==void 0)return W(e,new Date,t)}function Ie(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return W(n,new Date,t)}function Ss(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new p("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Ie(xs,"recent"):Ie(e.updatedAfter,"updated-after")}function Xr(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Ts(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);return new Set(n)}function Jr(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new p("Offset filter must be a non-negative integer",m.USAGE);return n}function Ds(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function As(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,o=Ds(e.fields);if(Number(t)+Number(n)+Number(r)+ +(o!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...fs]}:t?{mode:"compact",fields:[...ls]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Ce(e){return e.startsWith("item.")?e.slice(5):e}function Fs(e,t){if(e.mode!=="fields")return;let n=new Set([...Sn,"body",...ms,...t]),r=e.fields.filter(o=>!n.has(Ce(o)));if(r.length>0)throw new p(`Unknown list --fields value(s): ${r.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var Rs=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Ns(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Rs.get(t);if(n)return n;if(!Br.includes(t))throw new p(`Sort field must be one of ${Br.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Ms(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Kr.includes(t))throw new p(`Sort order must be one of ${Kr.join("|")}`,m.USAGE);return t}function $s(e){return P(e,"--tree-depth")}function Ls(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function Hr(e,t){return Jn(e,t,{strict:!0})}function Zr(e){return xe(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Os(e,t,n){let r=Zr(t);if(r===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...r].filter(s=>!o.has(s));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function Ps(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Us(e,t,n,r){let o=xe(t.assignee,{label:"--assignee"}),i=Ls(t.assigneeFilter);Ps(o,i);let s=us(t),a=zr(t);return{idsFilter:Ts(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ir(t.type,n),tagFilters:Zr(t.tag),priorityFilter:Cr(t.priority),deadlineBefore:Gr(t.deadlineBefore,"deadline-before"),deadlineAfter:Gr(t.deadlineAfter,"deadline-after"),updatedAfter:Ss(t),updatedBefore:Ie(t.updatedBefore,"updated-before"),createdAfter:Ie(t.createdAfter,"created-after"),createdBefore:Ie(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:xe(t.sprint,{label:"--sprint"}),releaseFilter:xe(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:zt(s),lifecycleClassifier:Fr(r),contentFieldFilters:a,contentFiltersActive:Lr(a)}}function js(e,t,n){return Bs(e,t,n)&&Ks(e,t)&&Gs(e,t)&&Hs(e,t)}function Bs(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&O(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(o=>o.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Ks(e,t){return Dn(e,t)}function Gs(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 Hs(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 zs(e,t,n,r){return!(!js(e,t,n)||t.missingMetadataActive&&!Nr(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Or(e,t.contentFieldFilters)||!Ye(e,r))}function qs(e,t,n,r,o,i){let s=Us(t,n,r,o);return e.filter(a=>zs(a,s,o,i))}function ot(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Ws(e,t,n){let r=e,o=typeof r.title=="string"?r.title:"",i=ot(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function Vs(e,t,n){let r=new Map,o=new Map;for(let d of e){r.set(d.id,d);let u=ot(d.parent);if(!u)continue;let l=o.get(u);l?l.push(d):o.set(u,[d])}let i=t?[...o.get(t)??[]]:e.filter(d=>{let u=ot(d.parent);return!u||!r.has(u)}),s=[],a=new Set,c=(d,u)=>{if(a.has(d.id))return;a.add(d.id);let l=o.get(d.id)??[];if(s.push(Ws(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 s}function Ys(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Xs(e,t){return e===t?0:e===null?1:t===null?-1:v(e,t)}function Js(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Xs(e.deadline??null,t.deadline??null);case"updated_at":return v(e.updated_at,t.updated_at);case"created_at":return v(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Ys(e.parent??null,t.parent??null);default:return 0}}function Zs(e,t,n,r){return t?[...e].sort((o,i)=>{let s=Js(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=Yr(o,i,r);return n==="desc"?-a:a}):Cs(e,r)}function Qs(e,t,n=!1){let r=Ce(t.trim());if(r.length===0)return null;let o=e;return n&&r==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:null}function Qr(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Qs(r,i,n);return o})}function ea(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function ta(e,t){if(e.noTruncate!==!0)return P(e.limit)??(t>=1e4?20:void 0)}function na(e,t,n){return t.after===void 0?Jr(t.offset)??0:He(e,t.after,n,r=>r.id)}function eo(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function ra(e,t){let n=S(process.cwd(),t.path);if(!await A(M(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await T(n),o=J(r.schema),i=Be(r.schema),s=As(e);return Fs(s,ea(i.definitions)),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:Ve(e,i,"list"),typeRegistry:K(r,$()),projection:s}}async function oa(e,t,n){let r=t.projection.fields.some(c=>Ce(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>qr.has(Ce(c))),i=zr(e),s=Pr(i),a=Ur(i);return e.includeBody||r||a?await or(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await rr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await fe(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function ia(e){let t=Ns(e.sort),n=Ms(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new p("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new p("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?$s(e.treeDepth):void 0,parentRoot:r?ot(e.parent):void 0}}function sa(e,t,n){let r=Hr(t.status,n),o=r??Hr(e,n),i=Xn(t.status),s=r||i?{...t,excludeTerminal:!1}:t,a=i?"all":o===void 0?s.excludeTerminal===!0?null:"all":o.length===1?o[0]:o;return{resolvedStatus:o,explicitAllStatuses:i,effectiveOptions:s,filtersStatus:a}}function aa(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new p("List --after cannot be combined with --offset.",m.USAGE);let i=ta(t,e.length),s=na(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=Qr(a,n,r),d=e.length,u=a.length>0&&s+a.length<d,l=u&&a.length>0?_e(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:eo(i,u,l)}}function to(e,t,n){return Ge("list",{status:e,options:Ke(t,ir),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function ca(e){let{options:t,runtime:n,statusSelection:r,ordering:o}=e,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),s=[n.projection.mode==="full",n.projection.fields.some(h=>{let y=Ce(h);return y==="body"||qr.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,o.treeEnabled,o.sortField!==void 0,s,Ln(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([h,y])=>y!==void 0&&!i.has(h))].includes(!0))return null;let c=await le(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=P(t.limit),u=Jr(t.offset)??0,l=await Qn({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,g=f?_e(to(r.filtersStatus,t,o),l.items.at(-1).id,u+l.items.length-1):void 0;return{projected:Qr(l.items,n.projection,!1),totalMatched:l.total,pageExtras:eo(d,f,g)}}function da(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:o,treeDepth:i,sortField:s,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 vs){let f=u[l.optionKey];f!=null&&(d[l.summaryKey]=f)}for(let l of Es)u[l.key]===!0&&(d[l.summaryKey]=!0);return Object.assign(d,bs(n),ws(n)),Xr(d,n),r&&(d.no_truncate=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Se(e,t,n){let r=await ra(t,n),o=[],i=ia(t),s=sa(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await ca({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let y=await oa(t,r,o);Os(y,t.tag,o);let k=qs(y,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let I=Ee(y,r.statusRegistry);return k.filter(B=>I.has(B.id.trim().toLowerCase()))})():k,w=Zs(_,i.sortField,i.sortOrder,r.statusRegistry),E=i.treeEnabled?Vs(w,i.parentRoot,i.treeDepth):w;d=aa(E,t,r.projection,i.treeEnabled,to(s.filtersStatus,t,i))}let u=N(),l=[...new Set(o)].sort((y,k)=>y.localeCompare(k)),f=ps(l,c!==null,t.strictRead===!0),g=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let y=Is({filtersStatus:s.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:g},...l.length>0?{warnings:l}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:da({filtersStatus:s.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:g},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:u,...l.length>0?{warnings:l}:{}}}import{encode as ua}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 Wt=["agenda","day","week","month"],Vt=["markdown","toon","json"],la=["sun","mon","tue","wed","thu","fri","sat"],fa=365,ma=365,oo=28,pa=1e3;function Yt(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return n}function ga(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(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new p("Calendar include filter must not be empty",m.USAGE);let r=new Set;for(let o of n){if(o==="deadlines"||o==="deadline"){r.add("deadlines");continue}if(o==="reminders"||o==="reminder"){r.add("reminders");continue}if(o==="events"||o==="event"||o==="scheduled"){r.add("events");continue}throw new p("Calendar include filter must be deadlines|reminders|events|scheduled|all",m.USAGE)}return r}function io(e,t){let n;for(let r of t){let o=Fn(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function ha(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Wt.includes(t)){let n=io(t,Wt);throw new p(`Calendar view must be one of ${Wt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function ya(e){if(!e)return;let t=e.trim().toLowerCase();if(!Vt.includes(t)){let n=io(t,Vt);throw new p(`Calendar format must be one of ${Vt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Zm(e,t){let n=ya(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"markdown"}function _a(e,t){if(e===void 0)return;let n=C(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new p(`Calendar status filter must be one of ${r.join("|")}`,m.USAGE)}return n}function wa(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Calendar assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function it(e){return new Date(e).toISOString().slice(0,10)}function so(e,t){if(!t||t==="UTC")return it(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,o=n.find(s=>s.type==="month")?.value,i=n.find(s=>s.type==="day")?.value;if(r&&o&&i)return`${r}-${o}-${i}`}catch{}return it(e)}function Qt(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function V(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function ao(e){let t=new Date(Qt(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return V(t.toISOString(),r)}function ba(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function ka(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function va(e,t){return v(e,t)>=0?e:t}function no(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function ro(e,t){e.set(t,(e.get(t)??0)+1)}function Ea(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,o)=>ae(r)-ae(o));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,o)=>r-o);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,o)=>r.localeCompare(o));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function co(e,t,n,r){let o=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(o.getUTCFullYear()!==e||o.getUTCMonth()!==t||o.getUTCDate()!==n))return o.toISOString()}function uo(e){return la[new Date(e).getUTCDay()]}function xa(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Ia(e){let t=new Set;for(let n of e??[]){let r=xa(n);r&&t.add(r)}return t}function Ca(e,t,n,r,o){let i=e??V(n,-(r??ma)),s=t??V(e??n,o??fa);return{start:i,end:v(s,i)>0?s:V(i,1)}}function Sa(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[uo(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??pa,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Ia(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(o)].sort((s,a)=>ae(s)-ae(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function st(e,t){return v(t,e.startAt)<0?"continue":e.until&&v(t,e.until)>0||v(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,v(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function at(e,t){let n=uo(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Ta(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(at(e,t)&&st(e,t)==="stop");n+=1)t=V(t,e.interval);return e.occurrences}function Da(e,t,n){let r=ae(n),o=V(t,r),i=new Date(o);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 Aa(e){let t=ao(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=V(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Da(e,r,o);if(at(e,i)&&st(e,i)==="stop")return e.occurrences}}return e.occurrences}function Fa(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let s=co(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!at(e,s))&&st(e,s)==="stop")return e.occurrences}}return e.occurrences}function Ra(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=t+r*e.interval;for(let i of e.sortedMonthDays){let s=co(o,n,i,e.startDate);if(!(!s||!at(e,s))&&st(e,s)==="stop")return e.occurrences}}return e.occurrences}function Na(e,t,n,r){let o=Sa(e,t,n,r);return t.freq==="daily"?Ta(o):t.freq==="weekly"?Aa(o):t.freq==="monthly"?Fa(o):Ra(o)}function lo(e){return[...e].sort((t,n)=>{let r=v(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function en(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 Ma(e){return e.deadline?{at:e.deadline,date:it(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,...en(e),item_deadline:e.deadline}:null}function $a(e){return(e.reminders??[]).map(t=>({at:t.at,date:it(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,...en(e)}))}function La(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Oa(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Pa(e,t,n,r){let o=Ea(t.recurrence),i=La(t.start_at,t.end_at);return(t.recurrence?Na(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):so(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Oa(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:o,...en(e)}))}function Ua(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Ma(i):null;s&&o.push(s),n.has("reminders")&&o.push(...$a(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Pa(i,a,t,r))}return lo(o)}function ja(e,t,n,r,o){let i=_r(t.type,n),s=t.tag?.trim().toLowerCase(),a=Qe(t.priority),c=_a(t.status,r),d=t.assignee?.trim(),u=wa(t.assigneeFilter),l=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(d!==void 0&&u==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(g=>Ba(g,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:u,sprintFilter:l,releaseFilter:f,runtimeFieldFilters:o}))}function Ba(e,t){return Ka(e,t)&&Ga(e,t)&&Ye(e,t.runtimeFieldFilters)}function Ka(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 Ga(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 Ha(e,t,n){return!(t&&v(e.at,t)<0||n&&v(e.at,n)>=0)}function Xt(e,t,n){return e.trim().toLowerCase()==="today"?Qt(t):W(e,new Date(t),n)}function za(e,t,n){let r=t.date?Xt(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?Xt(t.from,n,"--from"):void 0,a=t.to?Xt(t.to,n,"--to"):void 0;if(s&&a&&v(s,a)>=0)throw new p("Calendar --from must be before --to",m.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new p("--from and --to are only supported for --view agenda",m.USAGE);if(e==="agenda")return qa(r,t,n,o,i,s,a);if(e==="day"){let d=Qt(r);return Jt(r,n,o,i,d,V(d,1))}if(e==="week"){let d=ao(r);return Jt(r,n,o,i,d,V(d,7))}let c=ba(r);return Jt(r,n,o,i,c,ka(r))}function qa(e,t,n,r,o,i,s){if(o)throw new p("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",m.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function Jt(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:va(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Wa(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:lo(r)}))}function Va(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let c of e)t.add(c.item_id),ro(n,c.item_type),ro(r,c.item_status),c.kind==="deadline"?o+=1:c.kind==="reminder"?i+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:o,reminders:i,scheduled:s,by_kind:{deadline:o,reminder:i,event:s},by_type:no(n),by_status:no(r),recurring_events:a}}function Ya(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function fo(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,o=n.find(i=>i.type==="minute")?.value;if(r&&o)return`${r}:${o}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function Zt(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Xa(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===so(e.event_end,e.event_timezone)?fo(e.event_end,e.event_timezone):e.event_end:null}function Ja(e){let t=`${fo(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=Xa(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 Qm(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Ya(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: ${Zt(e.summary.by_kind)}`),t.push(`- by-type: ${Zt(e.summary.by_type)}`),t.push(`- by-status: ${Zt(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(`- ${Ja(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 Za(t.join(`
3
- `))}function ep(e){return ua(e)}function Za(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function Qa(e){let t=N(),n=ha(e.view),r=za(n,e,t),o=P(e.limit),i=ga(e.include),s=Yt(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Yt(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Yt(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new p("Calendar occurrence limit must be >= 1",m.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),u=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,l=d&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:l?oo:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function ec(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 tc(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 nc(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 mo(e,t){let n=S(process.cwd(),t.path);if(!await A(M(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=Qa(e),o=await T(n),i=J(o.schema),s=Be(o.schema),a=Ve(e,s,"calendar"),c=K(o,$()),d=[];ec(d,r.eventsOnlyCapApplied);let u=await fe(n,o.item_format,c.type_to_folder,d,o.schema),l=ja(u,e,c,i,a),f=Ca(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),h=Ua(l,f,r.includeSources,r.occurrenceLimit).filter(w=>Ha(w,r.rangeBounds.start,r.rangeBounds.end)),y=r.limit===void 0?h:h.slice(0,r.limit),k=Wa(y),_=[...new Set(d)].sort((w,E)=>w.localeCompare(E));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:nc(e,r.rangeBounds),filters:tc(e,a),summary:Va(y),events:y,days:k,..._.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 tn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],rc=Symbol("no-context-author"),oc=Symbol("no-item-assignee");function po(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function ic(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 sc(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 ac(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function ct(e,t,n){return e?.[t]??n}function dt(e,t){let n=d=>{if(typeof d!="string")return"";try{return W(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 v(f,l)||d.id.localeCompare(u.id)}),o=new Map(r.map((d,u)=>[d.id,u])),i=Math.max(e.length-1,1),s=po(t.author,rc),a=C("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let u=po(d.assignee,oc)===s,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-o.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:ct(t.graphProximity,d.id,d.parent?.3:0),claim_focus:ct(t.claimFocus,d.id,x(d.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:ic(d.priority,4),risk_pressure:ac(d.risk),deadline_pressure:sc(d.deadline,c),knowledge_density:ct(t.knowledgeDensity,d.id,Math.min(l/5,1)),author_affinity:ct(t.authorAffinity,d.id,u?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var cc="context_relevance",dc={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},uc=new TextEncoder;function lc(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,o]of Object.entries(n.signals??{})){if(r==="structural"||!tn.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(o!==void 0&&(!Number.isFinite(o)||o<0||o>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function fc(e){let t={...dc};for(let[n,r]of Object.entries(e??{}))r!==void 0&&tn.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 ho(e,t={}){lc(e);let n=fc(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&o.add(c);let i=tn.filter(a=>o.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},u={},l=0,f=0;for(let g of i){let h=d[g];if(h===void 0)continue;let y=h*n[g];u[g]=y,l+=y,f+=n[g]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:l/f,contributions:u}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function mc(e,t={}){let n=ho(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),o=new Map;for(let s of r){if(o.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");o.set(s.id,s.score)}if(o.size!==e.length||e.some(s=>!o.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(s=>{let a=o.get(s.id);return{...s,score:a,contributions:{custom:a}}});return i.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),i.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function ut(e,t,n={}){let r=ho(t,n),o=await On(cc,{surface:e,candidates:t,default_report:r});if(!o.handled)return o.warnings.length>0?{...r,warnings:o.warnings}:r;if(!Array.isArray(o.result)||!o.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]};try{let i=await mc(t,{...n,scorer:()=>o.result});return o.warnings.length>0?{...i,warnings:o.warnings}:i}catch{return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]}}}var pc=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function go(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function gc(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),o=d=>d.reduce((u,l,f)=>u+(2**l-1)/Math.log2(f+2),0),i=o(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:go(e.required_ids??[],a),continuity_coverage:go(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function hc(e){return Math.ceil(uc.encode(JSON.stringify(e)).byteLength/4)}function yc(e){return Math.round(e*1e4)/1e4}function _c(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),o=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:o}}async function wc(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:o}=_c(n,e.surface),i={...n,ranking:void 0},s=hc(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:gc({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:o}}function bc(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=pc;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,yc(e.reduce((s,a)=>s+a.metrics[i],0)/e.length)])),o=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:o.length===0,failures:o}}async function ip(e,t,n){let r=[];for(let o of e)r.push(await wc(o,t));return bc(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 kc={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},vc=["identity","summary","full"];function Ec(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=vc.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 xc(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=kc[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,o=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(o)||o<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:o,profile:t}}function Ic(e){let t=new Set;for(let n of e){if(Ec(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 Cc(e,t,n,r,o){let i=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&o()>=r)return{index:i,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=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:s,timedOut:!1}}function Sc(e){let t=new Set,n=[],r=e.tokenBudget,o=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:o(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 s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=Cc(s,r,o,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;i(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function Tc(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[o],d=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(d,1)-s.marginal_value/Math.max(c,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of i){if(s.projection!==o)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function yo(e,t){let n=xc(t),r=Ic(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Sc({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Tc(a,s.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:s.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as Dc}from"node:crypto";import{appendFile as Ac,mkdir as Fc,readFile as Rc,rename as Nc,stat as Mc,writeFile as $c}from"node:fs/promises";import _o 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 wo=2048,bo=30,ko=864e5,Lc=262144,Oc="context-usage-ledger",G=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function vo(e){return _o.join(e,"runtime","context-usage.jsonl")}function Te(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new G("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function Eo(e){try{let n=(await Rc(vo(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??wo,o=e.retentionDays??bo,i=Te(e).ms-o*ko;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function xo(e,t){let n=e.maxEvents??wo,r=e.retentionDays??bo;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new G("Context usage retention requires positive maxEvents and retentionDays");let o=vo(e.pmRoot),i=_o.dirname(o),s=await qe(e.pmRoot,Oc,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Fc(i,{recursive:!0}),await Ac(o,t.map(u=>`${JSON.stringify(u)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Mc(o)).size<=Lc)return;let c=await Eo(e),d=`${o}.${process.pid}.${Dc()}.tmp`;await $c(d,`${c.map(u=>JSON.stringify(u)).join(`
7
- `)}
8
- `,"utf8"),await Nc(d,o)}finally{await s()}}async function Io(e,t){await xo(e,[t])}async function lt(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 G("Context usage serving requires an author and valid ranked rows");await Io(e,{kind:"serve",at:Te(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function fp(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new G("Context usage touch requires author, itemId, and intent");await Io(e,{kind:"touch",at:Te(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function mp(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 G("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new G("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new G("Context usage touch requires non-empty itemId");r.add(a)}let o=Te(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await xo(e,i)}function Pc(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function ft(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await Eo(e),n=Te(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new G("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(l=>l.kind==="touch"&&l.author===o).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,c=0;for(let l of t){if(l.kind!=="serve"||l.author!==o)continue;a+=1;let f=Date.parse(l.at);for(let g of l.rows){if(!g.included)continue;let h=Pc(i,g.id,f,r);if(h===void 0)continue;c+=1;let y=Math.max(0,(n-h)/ko);s.set(g.id,(s.get(g.id)??0)+Math.exp(-y/14))}}let d=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,f])=>[l,.05+.95*(d>0?f/d:0)])),positive_judgments:c,serving_events:a}}import De from"node:fs/promises";import Ae from"node:path";import{createHash as Uc,randomUUID as jc}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]="a502be8f-57da-53c2-8de0-118a15688d93")}catch{}})();var nn=1,rn=1,Co=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"];function mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function So(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Bc(e){let t={};for(let n of Co){let r=e[n];if(r!==void 0){if(!So(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Kc(e,t){let n=e.map(o=>[o.id,t(o)]),r=Math.max(0,...n.map(([,o])=>o));return Object.fromEntries(n.map(([o,i])=>[o,r===0?0:i/r]))}function Gc(e){let t=new Map(e.map(o=>[o.id,0])),n=o=>{t.set(o,(t.get(o)??0)+1)};for(let o of e){typeof o.parent=="string"&&o.parent.trim()&&(n(o.id),n(o.parent.trim()));for(let i of o.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(o.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(o=>[o.id,r===0?0:t.get(o.id)/r]))}function Hc(e,t){return{...t,activityDensity:t.activityDensity??Kc(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Gc(e)}}function zc(e){if(!mt(e)||typeof e.id!="string"||!mt(e.signals))return null;let t={},n=new Set(Co);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!So(o))return null;t[r]=o}return{id:e.id,signals:t}}function qc(e){if(!mt(e)||e.format_version!==nn||e.signal_set_version!==rn||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(zc);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:nn,signal_set_version:rn,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function Wc(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=dt(e,Hc(e,t)).map(({id:r,signals:o})=>({id:r,signals:Bc(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:nn,signal_set_version:rn,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var on=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=Ae.resolve(t)}async read(){try{return JSON.parse(await De.readFile(this.filePath,"utf8"))}catch(t){if(mt(t)&&t.code==="ENOENT")return null;throw t}}async write(t){let n=Ae.dirname(this.filePath);await De.mkdir(n,{recursive:!0});let r=Ae.join(n,`.${Ae.basename(this.filePath)}.${jc()}.tmp`);try{await De.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await De.rename(r,this.filePath)}finally{try{await De.rm(r,{force:!0})}catch{}}}},sn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=qc(l),l!==null&&o===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)),s=o?.items.map(l=>l.id)??[],a=o!==null&&o.source_cursor===n.sourceCursor&&o.source===n.source&&s.length===i.length&&s.every((l,f)=>l===i[f]),c;if(a&&o!==null)c=o;else{o!==null&&r.push("context_signal_store_stale"),c=Wc(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=dt(t,n);return{snapshot:c,candidates:u.map(l=>({...l,signals:{...l.signals,...d.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r}}};function Vc(e){let t=Uc("sha256");for(let n of[...e].sort((r,o)=>r.id.localeCompare(o.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 pt(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 o=n?null:await le(t.pmRoot),i=t.sourceCursor??o?.source_cursor??Vc(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new sn(new on(Ae.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:i,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Yc(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 Xc(e,t,n){let r,o;for(let i of t){let s=Yc(i);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&i.op==="create");r=s,a&&Number.isFinite(Date.parse(i.ts))&&(o={id:e,completed_at:i.ts,history_op:i.op})}return o}function To(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}function kp(e,t,n){let r=[];for(let o of e){if(o.completed_at!==void 0||!n.has(o.status.trim().toLowerCase()))continue;let i=Xc(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Jc from"node:path";import{createHash as Zc}from"node:crypto";import Qc 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 Do=1,ed=1e4,Ao=12;function td(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function nd(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let o=t.get(r);if(!o)return;if(o.type.toLowerCase()==="epic")return o;r=o.parent}}function rd(e){let t=[...e.items].sort((o,i)=>i.completion.timestamp.localeCompare(o.completion.timestamp)||o.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:o}of t){let i=o.resolution??o.close_reason;i?.trim()&&n.add(i.trim()),r+=(o.notes?.length??0)+(o.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:o,title:i}})=>({id:o,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function od(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(x(i.status,t.statusRegistry))).map(i=>{let s=To(i);if(!s.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:s}}),r=new Map(e.map(i=>[i.id,i])),o=new Map;for(let i of n){let{item:s,completion:a}=i,c=td(a.timestamp),d=`epoch:${c}`,u=o.get(d)??{kind:"epoch",key:c,label:c,items:[]};u.items.push(i),o.set(d,u);let l=nd(s,r);if(l){let f=`epic:${l.id}`,g=o.get(f)??{kind:"epic",key:l.id,label:l.title,items:[]};g.items.push(i),o.set(f,g)}}return{format_version:Do,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:s})=>(i[s.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...o.values()].map(rd).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function id(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 sd(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(o=>typeof o=="string"&&o.length>0),r=[t.first_closed_at,t.last_closed_at].every(o=>typeof o=="string"&&Number.isFinite(Date.parse(o)));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(id)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function ad(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Do||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(sd)?t:null}function cd(e){return`scan:${Zc("sha256").update(je(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function dd(e,t,n){return n!==void 0?n:(await le(t))?.source_cursor??cd(e)}async function ud(e){try{let t=ad(JSON.parse(await Qc.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??ed));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await dd(e,t.pmRoot,t.sourceCursor),o=Jc.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await ud(o),a=s.snapshot;if(s.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=od(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await q(o,`${JSON.stringify(c)}
10
- `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function ld(e,t,n=Ao){let r=Math.max(0,Math.floor(t)),o=0,i=[];for(let s of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);o+a>r||(i.push(s),o+=a)}return i}function Ro(e,t,n=Ao){if(e.snapshot===null)return;let r=ld(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 fd(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(o=>({rollup:o,score:r.filter(i=>[o.key,o.label,...o.outcomes,...o.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:o})=>o>0).sort((o,i)=>i.score-o.score||i.rollup.last_closed_at.localeCompare(o.rollup.last_closed_at)||o.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:o})=>o)}function Fp(e,t,n=5){let r=fd(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]="dbcd4e0e-3fa0-5ce9-8bbc-6de05779d729")}catch{}})();var md=["markdown","toon","json","ndjson"],Re=new Set(["Epic","Feature"]),Po=10,Uo=1e4,jo=["hierarchy","activity","progress","recently_created","unparented","workload"],pd=[...jo,"blockers","files","staleness","tests"],gd=/^(\d{4})-(\d{2})-(\d{2})/,hd=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,yd=/^(\d{4})(\d{2})(\d{2})$/,_d=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function wd(e){if(!e)return;let t=e.trim().toLowerCase();if(!md.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var No=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 bd(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!No.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...No].join(", ")})`,m.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new p("Context --fields requires at least one field name",m.USAGE);return t}function Fe(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function Wp(e,t){let n=wd(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function kd(e,t){return P(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Po)}function dn(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new p("--token-budget must be a positive integer",m.USAGE);return n}function vd(e,t){return t>=Uo&&e===Number.MAX_SAFE_INTEGER?Po:e}function Ed(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!St.includes(n))throw new p(`Context --depth must be one of ${St.join("|")}`,m.USAGE);return n}function xd(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!Pe.includes(s))throw new p(`Context --section must be one of ${Pe.join("|")}`,m.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...Pe]:(t==="deep"?pd:jo).filter(o=>n.sections[o])}function Id(e,t){return e?P(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Cd(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new p("--stale-threshold must be a number of days (e.g. 7 or 7d)",m.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new p("--stale-threshold must be positive",m.USAGE);return o}function Mo(e,t){let n=x(e,t),r=C("in_progress",t),o=C("open",t),i=C("blocked",t),s=C("draft",t);return r&&n===r?0:o&&n===o?1:i&&n===i?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function Ne(e,t){let n=C("closed",t);return x(e,t)===n}function un(e,t){let n=C("in_progress",t);return x(e,t)===n}function Bo(e,t){let n=C("open",t);return x(e,t)===n}function Sd(e,t){return t.blocked_statuses.has(x(e,t))}var Td=["compact","brief","fields","includeBody","include_body","parent"];function Dd(e){let t={...e};for(let n of Td)delete t[n];return t}function ln(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 o=ge(e),i=Me(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Ad(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new p("Context --parent requires an item id",m.USAGE);return t}function Fd(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Rd(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:v(n,r)}function Nd(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Md(e){let t=gd.exec(e)??hd.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),o=Number.parseInt(t[3],10);return r>=1&&r<=12&&o>=1&&o<=Nd(n,r-1)}function $d(e){let t=yd.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=_d.exec(e);if(n){let[,r,o,i,s,a,c,d]=n,u=c?`:${c}`:"",l=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${o}-${i}T${s}:${a}${u}${l}`}return e}function Ko(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Md(t))return Number.NaN;let n=Date.parse($d(t));return Number.isFinite(n)?n:Number.NaN}function cn(e){let t=Ko(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Ld(e){let t=Ko(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function fn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function re(e,t,n){let r=Mo(e.status,n)-Mo(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Fd(e.order,t.order);if(i!==0)return i;let s=Rd(e.deadline,t.deadline);if(s!==0)return s;let a=v(cn(t.updated_at),cn(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function an(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function mn(e,t,n=new Set,r="context"){return yo(e.ranked.map(o=>({id:o.id,item:o.item,rank:o.rank,score:o.score,required:n.has(o.id),cluster:o.item.parent?.trim()||o.item.type,token_costs:{identity:an({id:o.id,title:o.item.title}),summary:an({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:an(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function pn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function gn(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 Go(e,t){return t>0?Math.round(e/t*100):0}function ge(e){let t=new Map;for(let n of e){let r=fn(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function $e(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:fn(e.parent)};if(t&&n){let o=Me(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>Ne(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=Go(s,i)}}return r}function Od(e){let t=0,n=0,r=0,o=new Set;for(let i of e){if(o.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:o.size,deadlines:t,reminders:n,scheduled:r}}function gt(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Pd(e,t){return e.filter(n=>!t.terminal_statuses.has(x(n.item_status,t)))}function Ud(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=ge(e),s=new Set(t.filter(c=>Re.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let u=Me(c,i),l=i.get(c)??[],f=0,g=0,h=0,y=0;for(let _ of u)Ne(_.status,n)?f++:un(_.status,n)?h++:Sd(_.status,n)?y++:Bo(_.status,n)&&g++;let k=l.sort((_,w)=>re(_,w,n)).slice(0,r).map(_=>{let w=Me(_.id,i),E=w.filter(I=>Ne(I.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:w.length,children_closed:E}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:u.length,children_closed:f,children_open:g,children_in_progress:h,children_blocked:y,children:k})}return a.sort((c,d)=>{let u=o.get(c.id),l=o.get(d.id);return re(u,l,n)}).slice(0,r)}function Me(e,t){let n=[],r=[e],o=new Set;for(;r.length>0;){let i=r.pop();if(o.has(i))continue;o.add(i);let s=t.get(i)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function jd(e,t){return(await vr({compact:!0,limit:String(e)},t)).compact_activity??[]}function Bd(e,t,n,r,o){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 s=t.filter(c=>Re.has(c.type)),a=[];for(let c of s){let d=Me(c.id,i),u=d.length;if(u===0)continue;let l=0,f=0,g=0,h=0;for(let y of d)Ne(y.status,r)?l++:n.has(y.id.trim().toLowerCase())?h++:un(y.status,r)?g++:Bo(y.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:u,closed:l,open:f,in_progress:g,blocked:h,completion_pct:Go(l,u)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Kd(e,t,n,r){let o=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let s=me(i,o,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?o.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 Gd(e,t){let n=new Map;for(let r of e)for(let o of r.files??[]){let i=n.get(o.path)??new Set;i.add(r.id),n.set(o.path,i)}return[...n.entries()].map(([r,o])=>({path:r,references:o.size,items:[...o].sort()})).sort((r,o)=>o.references-r.references).slice(0,t)}function Hd(e,t,n){let r=new Map;for(let o of e){let i=o.assignee??null,s=r.get(i)??[];s.push(o),r.set(i,s)}return[...r.entries()].map(([o,i])=>({assignee:o,active:i.length,in_progress:i.filter(s=>un(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function zd(e,t,n,r){let o=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<o).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,s)=>s.stale_days-i.stale_days).slice(0,r)}function qd(e,t,n,r){return e.map(o=>({item:o,sortKey:cn(o.created_at)})).sort((o,i)=>{let s=v(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...$e(o,t,n),created_at:o.created_at}))}function Wd(e,t,n,r){return e.filter(o=>!fn(o.parent)&&!Re.has(o.type)).sort((o,i)=>re(o,i,t)).slice(0,r).map(o=>$e(o,t,n))}function Vd(e){let t=0,n=0,r=0,o=0,i=0,s=[];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,o+=u.failed??0,i+=u.skipped??0,(u.failed??0)>0&&(d=!0);d&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function $o(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ho(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",o=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}${o}${i} ${e.title}`}function Yd(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Xd(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`${$o(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${$o(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 Lo(e,t,n,r,o){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${o(i)}`);e.push("")}function Jd(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 Zd(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(`- ${Xd(n)}`);e.push("")}function Qd(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 o of n.children){let i=o.children_total>0?Math.round(o.children_closed/o.children_total*100):0;e.push(` - ${o.id} ${o.type} ${o.status} "${o.title}" [${o.children_closed}/${o.children_total} done ${i}%]`)}}e.push("")}}function eu(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 tu(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let o of t.recently_created)e.push(n?`- ${r(o)}`:`- ${Ld(o.created_at)} ${Ho(o)}`);e.push("")}}function nu(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 ru(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 ou(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:-",o=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${o}${i}`)}e.push("")}}function iu(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 su(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 au(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 cu(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 du(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 Vp(e){let t=[],n=e.focus_fields,r=i=>n?Yd(i,n):Ho(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(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${i.length>0?` (${i.join(", ")})`:""}`)}let o=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(o.length>0&&t.push(`- sections: ${o.join(", ")}`),t.push(""),Lo(t,"High-level focus",e.high_level,"No high-level active items.",r),Lo(t,"Low-level focus",e.low_level,"No low-level active items.",r),Jd(t,e,r),Zd(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 Qd(t,e),eu(t,e),tu(t,e,n,r),nu(t,e,r),ru(t,e),ou(t,e),iu(t,e),su(t,e),au(t,e),cu(t,e),du(t,e),t.join(`
11
- `)}async function uu(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=r.context??Tn.context,i=J(r.schema),s=Ed(e.depth,o),a=kd(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:xd(e.section,s,o),activityLimit:Id(e.activityLimit,o),staleThresholdDays:Cd(e.staleThreshold,o),parentScope:Ad(e.parent),focusFields:bd(e.fields),baseListOptions:Dd(e)}}function hn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function lu(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function fu(e,t){let n=hn(t.sectionsIncluded),r=await Se(void 0,lu(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(c=>!O(c.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=mu(t.parentScope,o);return a&&(i=i.filter(c=>a.has(c.id.trim().toLowerCase())),s=s.filter(c=>a.has(c.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:i,allItems:s,fullCorpus:o,subtreeIds:a}}function mu(e,t){if(e===void 0)return;let n=ln(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function pu(e,t,n,r,o,i,s,a,c,d,u,l,f,g){let h=[...e].sort((b,se)=>re(b,se,o)),y=await ft({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),k=await pt(h,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:y.affinity}),_=await ut("context",k.candidates),w=_.ranked.map(b=>b.item),E=o.active_statuses,I=w.filter(b=>E.has(x(b.status,o))),B=l?He(I,d,u,b=>b.id):0,D=l?I.slice(B,B+s):I,oe=l&&D.length>0&&B+D.length<I.length,Q=oe&&D.length>0?_e(u,D[D.length-1].id,B+D.length-1):void 0,ye=w.filter(b=>r.has(b.id.trim().toLowerCase())),Y=new Set([...D.map(b=>b.id),...ye.slice(0,s).map(b=>b.id)]),R=mn({..._,ranked:_.ranked.filter(b=>Y.has(b.id))},g),X=R.included.map(b=>b.item),ee=X.filter(b=>E.has(x(b.status,o))),ie=X.filter(b=>r.has(b.id.trim().toLowerCase())),xt=ge(t),It=hn(i)?xt:void 0,z=new Map(n.map(b=>[b.id.trim().toLowerCase(),b])),L=b=>{let se=$e(b,o,It);return r.has(b.id.trim().toLowerCase())&&(se.blocked=!0,se.blocker_ids=me(b,z,o).filter(Ct=>!Ct.resolved).map(Ct=>Ct.id)),se},mi=ee.filter(b=>Re.has(b.type)).slice(0,l?D.length:s).map(L),pi=ee.filter(b=>!Re.has(b.type)).slice(0,l?D.length:s).map(L),Cn=I.length===0;return{activeItems:ee,blockedItems:ie,highLevel:mi,lowLevel:pi,blockedFallback:Cn?ie.slice(0,s).map(L):[],blockedFallbackUsed:Cn,ranking:_,packing:R,featureStore:k,pageExtras:{...l?{applied_limit:s}:{},...oe?{has_more:!0,truncated:!0}:{},...Q?{next_cursor:Q}:{}}}}function gu(e){return Ge("context",Ke(e,sr))}function hu(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Uo}async function yu(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await mo(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Pd(s,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:Od(a)}}function Oo(e,t,n){let r=String(t);return e.filter(o=>x(o.status,n)===r).length}async function _u(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=ge(n),d=n.filter(l=>!O(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?Ud(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await jd(t.activityLimit,a):void 0,progress:u("progress")?Bd(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Kd(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?qd(d,t.statusRegistry,c,t.limit):void 0,unparented:u("unparented")?Wd(d,t.statusRegistry,c,t.limit):void 0,filesSection:u("files")?Gd(i.activeItems,t.limit):void 0,workload:u("workload")?Hd(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?zd(d,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Vd(i.activeItems):void 0}}function wu(e,t,n){if(!e)return{};let r=C("canceled",n);return{total_items:t.length,closed:t.filter(o=>Ne(o.status,n)).length,canceled:t.filter(o=>x(o.status,n)===r).length}}function bu(e,t){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)}function ku(e,t){t&&(e.focus_fields=t,e.high_level=Fe(e.high_level,t),e.low_level=Fe(e.low_level,t),e.blocked_fallback=Fe(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Fe(e.recently_created,t)),e.unparented&&(e.unparented=Fe(e.unparented,t)))}function vu(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])),o=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 s=r.get(i.parent);s&&o.get(i.id)===o.get(s.id)&&(delete i.tags,i.tags_inherited=s.id)}}function Eu(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 xu(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await lt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:o.has(i.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=gt(e.warnings,["context_usage_feedback_write_failed"])}}async function Iu(e,t,n){if(e)return{};let o=(await Mn({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),i=o.filter(s=>s.status==="degraded").length;return o.length===0?{}:{extension_health:{total:o.length,ok:o.length-i,degraded:i,packages:o.slice(0,20),...o.length>20?{truncated:!0}:{}}}}async function Yp(e,t){let n=S(process.cwd(),t.path),r=await uu(e,t),o=await fu(t,r),i=vd(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:dn(e.tokenBudget,Math.max(256,i*160))},a=te(void 0,s.settings.author_default),c=Iu(e.noExtensionHealth===!0,n,s.settings),d=Ee(o.fullCorpus,s.statusRegistry),u=await pu(o.listedItemMetadata,o.allItems,o.fullCorpus,d,s.statusRegistry,s.sectionsIncluded,s.limit,N(),a,e.after,gu(e),hu(e,o.fullCorpus.length),n,s.tokenBudget),l=await yu(t,s,o.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),f=await Fo(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:l.agenda.now}),g=gt(o.listed.warnings,l.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],f.warnings),h=Oo(u.activeItems,C("in_progress",s.statusRegistry),s.statusRegistry),y=Oo(u.activeItems,C("open",s.statusRegistry),s.statusRegistry),k=await _u({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:d,focusGroups:u,now:l.agenda.now,global:t}),_=wu(hn(s.sectionsIncluded),o.allItems,s.statusRegistry),w={output_default:"toon",now:l.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:l.agenda.anchor,start:l.agenda.range.start,end:l.agenda.range.end,past:l.agenda.range.past,from:l.agenda.range.from,to:l.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??l.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:h,open:y,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:l.agendaSummary.events,..._},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:l.agendaSummary,events:l.agendaEvents},...u.pageExtras};return w.workspace_memory=Ro(f,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await c),bu(w,k),vu(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=gn(u.ranking,u.featureStore),w.packing=pn(u.packing)),ku(w,s.focusFields),g.length>0&&(w.warnings=g),Eu(w,u.activeItems,u.blockedItems),await xu(w,u,n,a),w}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var Cu=["markdown","toon","json"],Su=5,Tu=1440*60*1e3;function Du(e){if(!e)return;let t=e.trim().toLowerCase();if(!Cu.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function sg(e,t){let n=Du(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"toon"}function zo(e,t,n){let r=P(e,t);return r===void 0||r<=0?n:r}function yn(e,t,n,r){return{...$e(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status})),unblocks:e.unblocks,rank:r}}function Au(e,t,n,r){let o=e.item,i=[],s=C("in_progress",t);return i.push(x(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(Ru(o.deadline,n)),i.push(ve(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),i}function Wo(e,t,n){let r=te(n,t),o=[],i=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:s.item.id,assignee:a}):o.push(s)}return{available:o,held:i}}var ag={partitionCallerOwnedReady:Wo,resolveNextCallerAuthor:(e,t)=>Vo(e,t)};function Fu(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 Ru(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),o=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(o))/Tu);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Nu(e,t){let n=C("in_progress",t);return e.filter(r=>x(r.status,t)===n).length}function _n(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Mu(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 qo(e,t,n){return[...e].sort((r,o)=>{let i=_n(r.item,t),s=_n(o.item,t);return i!==s?Number(i)-Number(s):re(r.item,o.item,n)})}function $u(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Au(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Lu(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 Ou(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 Pu(e){try{let t=new Set(e.packing.included.map(n=>n.id));await lt({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=gt(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Uu(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=gn(e.readyRanking,e.featureStore),e.result.packing=pn(e.packing)),e.result.suggestions=Lu(e.recommended,e.blockedRows),await Pu({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function ju(e,t,n){if(!n)return e;let r=ln(t,n);if(!r.found)throw new p(`Next --parent item not found: ${n}`,m.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Bu(e,t,n,r,o,i,s){let a=e.filter(y=>!_n(y.item,t)),c=a.length>0?a:e,d=await ft({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await pt(c.map(y=>y.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:d.affinity}),l=await ut("next",u.candidates),f=mn(l,s,new Set,"next"),g=new Map(c.map(y=>[y.item.id,y]));return{projectedReady:l.ranked.map(y=>g.get(y.id)).filter(y=>y!==void 0),ranking:l,completedContainer:a.length===0,packing:f,featureStore:u}}function Vo(e,t){let n=e.assignee?.trim();return te(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function cg(e,t){let n=S(process.cwd(),t.path),r=await T(n),o=Vo(e,r.author_default),i=J(r.schema),s=N(),a=zo(e.limit,"--limit",Su),c=dn(e.tokenBudget,Math.max(192,a*128)),d=zo(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",f=await Se(void 0,Mu(e,{excludeTerminal:!0}),t),g=await Se(void 0,{excludeTerminal:!1,noTruncate:!0},t),h=ju(f.items,g.items,l),y=g.items,k=Bt(h,y,i),_=ge(y),w=Fu(k.ready,e.includeDecisions===!0),E=Wo(w.agent,r.author_default,o),I=qo(E.available,_,i),B=[...k.blocked].sort((z,L)=>re(z.item,L.item,i)),{projectedReady:D,ranking:oe,completedContainer:Q,packing:ye,featureStore:Y}=await Bu(I,_,i,s,o,n,c),R=D.map((z,L)=>yn(z,i,_,L+1)),X=B.map((z,L)=>yn(z,i,_,L+1)),ee=qo(w.decisions,_,i).map((z,L)=>yn(z,i,_,L+1)),ie=$u({projectedReady:D,readyRows:R,statusRegistry:i,now:s,completedContainer:Q}),xt=Ou(ee.length,E.held.length,a),It={output_default:"toon",now:s,recommended:ie,ready:R.slice(1,a+1),decision_needed:ee.slice(0,a),blocked:u?[]:X.slice(0,d),held_by_others:E.held.slice(0,a),summary:{recommended:ie!==null,ready:R.length,blocked:X.length,in_progress:Nu(R,i),candidates:k.active_count,containers:k.container_count,decision_needed:ee.length,held_by_others:E.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:d,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:c},truncation:xt};return Uu({result:It,recommended:ie,blockedRows:X,candidatesWarnings:f.warnings,corpusWarnings:g.warnings,readyRanking:oe,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:ye,featureStore:Y})}function dg(e){let t=["# pm next","",...Ku(e)];if(t.push(...ht("Recommended",Gu(e.recommended),"No ready work.")),t.push(...ht("Decision needed",(e.decision_needed??[]).map(n=>`- ${yt(n)}`),"No human-gated decisions.")),t.push(...ht("Ready",e.ready.map(n=>`- ${yt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...ht("Blocked",e.blocked.map(n=>`- ${Hu(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 Ku(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 Gu(e){return e?[`- ${yt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function ht(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Hu(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${yt(e)} blocked_by:${t}`}function yt(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var Yo="global",zu="external";function he(e){let t=e?.trim().toLowerCase();return t===Yo||t===zu}function fg(e){let t=e?.trim();if(t)return he(t)?Yo:t}function mg(e,t,n){let r=e.trim();return he(n)?r:We(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]="8368a519-4c09-540e-b0fb-f74cfdc1d7b2")}catch{}})();function _t(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function wn(e){let t=_t(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function qu(){let e=Rn();for(let t of $()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}function bn(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Wu(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=_t(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${o.toLowerCase()}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function Vu(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 o of Wu(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=bn(r.holder_id,o.holder_id);if(i!==0)return i;let s=bn(r.target_id,o.target_id);return s!==0?s:bn(r.kind,o.kind)})}function Yu(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())),o=new Map,i=(c,d,u,l)=>{let f=_t(d);if(!f||r.has(f.toLowerCase()))return;let g={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"};o.set(`${g.holder_id}::${g.target_id}::${g.kind}::${g.source}`,g)};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;he(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency")}}let s=[...o.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=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function Xu(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(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function Ju(e){let t=new Map;for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null||!he(r.source_kind))continue;let o=_t(r.id);o&&!t.has(o.toLowerCase())&&t.set(o.toLowerCase(),o)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function _g(e,t,n){let r=n??qu(),o=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=Yu(o,t),a=Xu(s);for(let f of a)i.set(f.toLowerCase(),f);let c=Ju(o),d=new Set(i.keys()),u=new Map;for(let f of c){let g=f;for(;d.has(g.toLowerCase());)g=`external:${g}`;u.set(f.toLowerCase(),g),d.add(g.toLowerCase())}let l=o.map(f=>{let g=wn(f.parent),h=wn(f.blocked_by),y=(f.dependencies??[]).flatMap(k=>{if(typeof k!="object"||k===null)return[];let _=k,w=wn(_.id);return w?[{id:he(_.source_kind)?u.get(w.toLowerCase()):i.get(w.toLowerCase()),kind:typeof _.kind=="string"?_.kind:"related"}]:[]});return{id:f.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},...h?{blocked_by:i.get(h.toLowerCase())}:{},dependencies:y}});return{graph:Nn.fromItems([...l,...a.map(f=>({id:f})),...c.map(f=>({id:u.get(f.toLowerCase())}))],r),details:[...o.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:s,duplicateRows:Vu(o,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]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var Zu=5,Qu=1e4,el=8;function kn(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function wt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function Le(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function bg(e,t){let n=Le(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function tl(e,t,n){if(t===void 0)return;let r=e.registry(),o=new Set;for(let i of t){let s=r.require(i);if(!s[n])throw new TypeError(`Relationship kind ${s.kind} is not a ${n} kind`);o.add(s.kind)}return o}function nl(e,t,n,r,o){let i=e.registry(),s=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of s.value){let u=i.require(d.edge.kind);u[r]&&o(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function rl(e,t,n,r,o,i){if(t>=n)return e.neighbors.some(s=>!i.seen.has(s))&&(i.truncated=!0),!1;for(let s of e.neighbors)if(!i.seen.has(s)){if(i.seen.add(s),i.queue.push({id:s,depth:t+1}),!i.resumed){s===o&&(i.resumed=!0);continue}if(i.value.length>=r)return i.truncated=!0,!0;i.value.push(s)}return!1}function bt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=tl(e,n.kinds,r),s=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 g=d.queue[f];u+=1;let h=nl(e,g.id,i,r,o);if(l+=h.inspectedEdges,rl(h,g.depth,a,s,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 Xo(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Jo(e,t,n,r,o){let i=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return o.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(s=>!t.nodeSet.has(s.id))}function ol(e,t,n,r,o,i,s){for(let a of Jo(e,t,r,o,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),u=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:u,length:u.length}),s.value.length>=i)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function kg(e,t,n={}){return bt(e,t,n,"hierarchy",(r,o)=>wt(r.edge,o)===r.id)}function vg(e,t,n={}){return bt(e,t,n,"hierarchy",(r,o,i)=>wt(r.edge,o)===i)}function Eg(e,t,n={}){return bt(e,t,n,"ordering",(r,o)=>Le(r.edge,o)===r.id)}function xg(e,t,n={}){return bt(e,t,n,"ordering",(r,o,i)=>Le(r.edge,o)===i)}function il(e,t,n,r,o,i,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=o+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 g=c.queue[f];if(d+=1,g.edges.length>=s){Jo(e,g,r,a,c).length>0&&(u=!0);continue}if(ol(e,g,n,r,a,l,c)){u=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function Ig(e,t,n,r={}){Xo(e,t),Xo(e,n);let o=r.maxPaths??Zu,i=r.maxVisitedPaths??Qu,s=r.maxDepth??el;kn("maxPaths",o),kn("maxVisitedPaths",i),kn("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?o===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:il(e,t,n,r,o,i,s,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 sl=16,al=2,cl=8;function kt(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function dl(e,t,n){let r=e.registry(),o=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 s=r.require(i.kind);o!==void 0&&!(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))||n(i,s)}}function ul(e,t){let n=new Map;dl(e,t,r=>{Zo(n,r.source,r.target),Zo(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function Zo(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function ll(e,t){let n=new Map;for(let i of e){let s=t.get(i);n.set(s,(n.get(s)??0)+1)}let r,o=0;for(let[i,s]of n)(s>o||s===o&&i<r)&&(r=i,o=s);return r}function fl(e,t){let n=new Map;for(let[o,i]of e){let s=n.get(i);s===void 0?n.set(i,[o]):s.push(o)}let r=[];for(let o of n.values())o.length<t||(o.sort(),r.push({representative:o[0],size:o.length,members:o}));return r.sort((o,i)=>i.size-o.size||o.representative.localeCompare(i.representative))}function Tg(e,t={}){let n=t.maxIterations??sl,r=t.minSize??al;kt("maxIterations",n),kt("minSize",r);let o=ul(e,t.kinds),i=e.nodes(),s=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=o.get(l);if(f===void 0)continue;u+=f.length;let g=ll(f,s);g!==s.get(l)&&(s.set(l,g),c=!1)}}return{value:{communities:fl(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function vt(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Et(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function vn(e,t){return(t.hierarchy?wt(e,t):e.source===Le(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function ml(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let o of t){let i=n.require(o);if(!vt(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(Et(i))}return r}function pl(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!vt(i))continue;let s=Et(i);if(t!==void 0&&!t.has(s))continue;let a=vn(o,i);if(a.from===a.to)continue;let c=r.get(s);c===void 0&&(c={adjacency:new Map,records:[]},r.set(s,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:o})}return r}function gl(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function hl(e,t,n,r){let o=[r];for(let i=n;i!==t;i=e.get(i))o.push(i);return o.push(t),o.reverse()}function yl(e,t,n,r,o,i){for(let s of e.get(n.id)??[])if(i.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return hl(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function _l(e,t,n,r){let o=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let s=0;s<i.length;s+=1){let a=i[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=yl(e,t,a,o,i,r);if(c!==void 0)return c}}function Dg(e,t={}){let n=t.maxDepth??cl;kt("maxDepth",n),t.limit!==void 0&&kt("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=ml(e,t.kinds),i=pl(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=gl(u);for(let f of u.records){t.signal?.throwIfAborted();let g=_l(l,f,n,a);if(g!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:g})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function wl(e,t,n,r,o){let i=new Set,s=[];for(let a of n){if(a.id===e||i.has(a.id))continue;if(!o.seen.has(a.id)){if(t>=r){o.truncated=!0;continue}o.seen.add(a.id),o.queue.push({id:a.id,depth:t+1})}i.add(a.id),s.push(a.id);let c=o.predecessors.get(a.id);c===void 0&&(c=new Set,o.predecessors.set(a.id,c)),c.add(e)}return s}function bl(e,t,n){let r=n.direction??"outgoing",o=n.maxDepth??Number.POSITIVE_INFINITY,i=[],s=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,s.set(u,wl(u,l,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function kl(e,t){let n=[],r=new Set([t]),o=[{id:t,index:0}];for(;o.length>0;){let i=o.at(-1),s=e.successors.get(i.id);if(i.index<s.length){let a=s[i.index];i.index+=1,r.has(a)||(r.add(a),o.push({id:a,index:0}))}else n.push(i.id),o.pop()}return n.reverse()}function vl(e,t,n,r){let o=e,i=t;for(;o!==i;){for(;r.get(o)>r.get(i);)o=n.get(o);for(;r.get(i)>r.get(o);)i=n.get(i)}return o}function El(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:vl(r,o,t,n));return r}function xl(e,t,n,r,o){let i=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(o?.throwIfAborted(),a===t)continue;let c=El(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function Ag(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=bl(e,t,n),o=kl(r,t),i=new Map(o.map((d,u)=>[d,u])),s=xl(r,t,o,i,n.signal),a=new Map(o.map(d=>[d,1]));for(let d=o.length-1;d>=0;d-=1){let u=o[d];if(u===t)continue;let l=s.get(u);a.set(l,a.get(l)+a.get(u))}let c=o.filter(d=>d!==t).map(d=>({id:d,idom:s.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]="76fa19c7-a421-5026-8de8-450285987c4e")}catch{}})();var Il=25,Qo={error:0,warning:1,info:2};function xn(e,t,n,r,o,i,s){let a=[...o].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:s}}function Cl(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let[i,s]=(o.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(i);a?a.push(s):n.set(i,[s])}for(let r of n.values())r.sort((o,i)=>o.localeCompare(i));return n}function ni(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 Sl(e,t,n,r){let o=n.get(e.node)??[];if(e.neighborIndex>=o.length)return!1;let i=o[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))):(ni(i,r),t.push({node:i,neighborIndex:0})),!0}function Tl(e,t,n,r){t.pop();let o=t.at(-1);if(o&&r.lowLinks.set(o.node,Math.min(r.lowLinks.get(o.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let i=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),i.push(s),s===e.node)break}(i.length>1||i.length===1&&n.get(i[0])?.includes(i[0]))&&r.components.push(i.sort((s,a)=>s.localeCompare(a)))}function Dl(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,o)=>r.localeCompare(o));for(let r of n){if(t.indexes.has(r))continue;let o=[{node:r,neighborIndex:0}];for(ni(r,t);o.length>0;){let i=o.at(-1);Sl(i,o,e,t)||Tl(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function En(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function H(e,t,n,r,o,i,s,a){t.length!==0&&e.push(xn(r,o,i,s,t,n,a))}function Al(e,t,n){let r=[],o=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return H(r,o.filter(i=>!t(i.holder_status)).map(En),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."),H(r,o.filter(i=>t(i.holder_status)).map(En),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."),H(r,e.dangling.no_active_blocker_sentinels.map(En),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 In(e,t){let n=t.get(e);return n?!n.terminal:!0}function Fl(e,t,n,r){let o=[],i=Cl(e);for(let c of Dl(i)){let d=c.some(u=>In(u,t));o.push(d?xn("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."):xn("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 s=new Map;for(let[c,d]of i)for(let u of d){let l=s.get(u);l?l.push(c):s.set(u,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let u=t.get(d);return u===void 0||!u.terminal})).map(c=>c.id);return H(o,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.'),o}function Rl(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Nl(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!vt(i))continue;let s=vn(o,i);if(s.from===s.to)continue;let a=`${Et(i)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(o):n.set(a,{...s,edges:[o]})}let r=[...n.values()].filter(o=>o.edges.length>=2);for(let o of r)o.edges.sort((i,s)=>i.kind.localeCompare(s.kind));return r.sort((o,i)=>o.from.localeCompare(i.from)||o.to.localeCompare(i.to))}function Ml(e,t,n){let r=[],o=[];for(let s of Nl(e))(In(s.from,t)||In(s.to,t)?r:o).push(Rl(s));let i=[];return H(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.",s=>`${s} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),H(i,o,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",s=>`${s} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function $l(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 o=[];return H(o,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."),H(o,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."),o}function Ll(e,t,n,r,o){e.active+=1;let i=t.type??"(untyped)",s=e.byType.get(i);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,s)),s.active+=1,!(n>1)&&(e.degreeLeqOne+=1,s.degree_leq_one+=1,n===0&&(e.isolated+=1,s.isolated+=1),!(r.has(t.id.toLowerCase())||o.has(i.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function Ol(e,t,n,r,o,i){let s={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let u of e.graph.nodes()){let l=t.get(u);if(l){if(l.missing){s.missing+=1;continue}l.terminal||Ll(s,l,e.graph.incidentEdges(u).length,n,r)}}let{isolates:a,sparse:c}=s,d=[];return H(d,a,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",u=>`${u} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),H(d,c,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",u=>`${u} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one."),{findings:d,profile:{nodes:e.graph.nodes().length,edges:e.graph.edges().length,edge_basis:"deduplicated_directed",edges_by_kind:Object.fromEntries(Object.entries(i).sort(([u],[l])=>u.localeCompare(l))),active_nodes:s.active,missing_nodes:s.missing,isolated_active_nodes:s.isolated,degree_leq_one_active_nodes:s.degreeLeqOne,coverage_by_type:Object.fromEntries([...s.byType.entries()].sort(([u],[l])=>u<l?-1:1))}}}function Ng(e,t={}){let n=t.isTerminal??(l=>l==="closed"||l==="canceled"),r=t.isBlocked??(l=>l==="blocked"),o=t.maxSampleSize??Il;if(!Number.isInteger(o)||o<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())),s=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=Al(e,n,o);t.signal?.throwIfAborted(),d.push(...Fl(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...Ml(e,a,o),...$l(e,o)),t.signal?.throwIfAborted();let u=Ol(e,a,i,s,o,c);return d.push(...u.findings),d.sort((l,f)=>Qo[l.severity]-Qo[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:d,profile:u.profile}}function ei(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let o of n){let i=(t[o]??0)-(e[o]??0);i!==0&&(r[o]=i)}return r}function ti(e){return e.profile.coverage_by_type??{}}function Mg(e,t){let n={},r=ti(e),o=ti(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=r[s],c=o[s],d={active:(c?.active??0)-(a?.active??0),isolated:(c?.isolated??0)-(a?.isolated??0),degree_leq_one:(c?.degree_leq_one??0)-(a?.degree_leq_one??0)};Object.values(d).some(u=>u!==0)&&(n[s]=d)}return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:ei(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:ei(e.profile.edges_by_kind,t.profile.edges_by_kind),coverage_by_type:n}}}import{createHash as Pl}from"node:crypto";import{setTimeout as Ul}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 oi=1,ii=/^[A-Za-z0-9_-]+$/,jl=100,ri=1e3,Bl=250;function j(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,o)=>r.localeCompare(o));return n.length===0?void 0:n}function si(e){return Pl("sha256").update(je({type:j(e.type),author:j(e.author),item:j(e.item),harness:j(e.harness),agent_instance:j(e.agentInstance),provenance:j(e.provenanceFilter)})).digest("hex").slice(0,24)}function ai(e,t){let n={version:oi,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 ci(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===oi,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 di(e,t){let n=e.trim();if(n.length===0||n.length>4096||!ii.test(n))throw new p("Invalid mutation event cursor.",m.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new p("Invalid mutation event cursor.",m.USAGE,{code:"invalid_event_cursor"})}if(!ci(r,t))throw new p("Mutation event cursor does not match this query.",m.USAGE,{code:"event_cursor_query_mismatch"});return r}function ui(e){let t=e??jl;if(!Number.isSafeInteger(t)||t<0||t>ri)throw new p(`Mutation event limit must be an integer from 0 to ${ri}.`,m.USAGE,{code:"invalid_event_limit"});return t}function li(e){return e instanceof Error&&e.name==="AbortError"}function fi(e,t){let n=e?.trim();if(!n)return{};if(ii.test(n))return{cursor:di(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new p("Mutation event --since must be an event cursor or ISO timestamp.",m.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Kl(e,t){let n=await At(e,t);if(n===null){if(!await jn(e))throw new p("Mutation events require a runtime with node:sqlite DatabaseSync support.",m.GENERIC_FAILURE,{code:"event_index_unavailable"});n=await At(e,t)}if(n===null)throw new p("Mutation event index could not be opened after rebuild.",m.GENERIC_FAILURE,{code:"event_index_unavailable"});return n}async function Gl(e={}){let t=S(e.cwd??process.cwd(),e.pmRoot);if(!await A(M(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);let n=ui(e.limit);if(e.full===!0&&e.provenance===!0)throw new p("Mutation event projections are mutually exclusive. Use --provenance or --full.",m.USAGE);let r=await T(t),o=r.agent_identity.identity_vocabulary,i=tt(r.agent_identity.harness_signals),s=Pt({provenance:e.provenanceFilter},i),a=j(e.harness),c=si(e),{cursor:d,sinceTimestamp:u}=fi(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:j(e.type),authors:j(e.author),harnesses:a,harness_alias_authors:a?Object.entries(o.aliases).filter(([,h])=>a.includes(h)).map(([h])=>h):void 0,agent_instances:j(e.agentInstance),provenance:[...s].map(([h,y])=>({dimension:h,values:[...y]})),stream_ids:j(e.item),limit:n},f=await Kl(t,l),g=f.events.map(h=>({cursor:ai(h,c),item_id:h.stream_id,version:h.stream_offset+1,ts:h.entry.ts,author:h.entry.author,type:h.entry.op,...h.entry.message===void 0?{}:{message:h.entry.message},patch_count:h.entry.patch.length,...e.full===!0?{entry:h.entry}:{},...e.provenance===!0?{provenance:nt(h.entry,o,{itemId:h.stream_id,version:h.stream_offset+1})}:{}}));return{events:g,count:g.length,has_more:f.has_more,...g.length===0?{}:{next_cursor:g[g.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:rt(f.events.map(h=>h.entry),o,i)}:{}}}async function*qg(e={}){let t=e.intervalMs??Bl;if(!Number.isSafeInteger(t)||t<10)throw new p("Mutation event follow interval must be an integer of at least 10ms.",m.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Gl({...e,since:n});if(r.events.length>0){for(let o of r.events)yield o;n=r.next_cursor;continue}try{await Ul(t,void 0,{signal:e.signal})}catch(o){if(li(o))return;throw o}}}var Wg={decodeMutationEventCursor:di,encodeMutationEventCursor:ai,eventQueryFingerprint:si,isAbortError:li,isMutationEventCursorEnvelope:ci,parseMutationEventLimit:ui,resolveMutationEventStart:fi};(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 Yg(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}export{ar as a,cr as b,be as c,dr as d,ur as e,nf as f,lr as g,Lt as h,If as i,Cf as j,jf as k,Bf as l,P as m,Qe as n,_r as o,et as p,tt as q,Pt as r,nt as s,Jf as t,Ut as u,rt as v,vr as w,ve as x,me as y,Ee as z,Bt as A,Kt as B,xe as C,Ir as D,Cr as E,Fr as F,zt as G,Nr as H,ym as I,_m as J,Lr as K,Or as L,bm as M,us as N,zr as O,Br as P,Kr as Q,ls as R,fs as S,qm as T,_s as U,ws as V,bs as W,Se as X,Zm as Y,Qm as Z,ep as _,mo as $,tn as aa,dt as ba,cc as ca,ho as da,mc as ea,ut as fa,pc as ga,gc as ha,wc as ia,bc as ja,ip as ka,kc as la,yo as ma,G as na,lt as oa,fp as pa,mp as qa,ft as ra,nn as sa,rn as ta,qc as ua,Wc as va,on as wa,sn as xa,pt as ya,To as za,kp as Aa,ed as Ba,od as Ca,Fo as Da,ld as Ea,Ro as Fa,fd as Ga,Fp as Ha,md as Ia,bd as Ja,Fe as Ka,Wp as La,dn as Ma,Ed as Na,xd as Oa,ln as Pa,re as Qa,mn as Ra,pn as Sa,gn as Ta,ge as Ua,$e as Va,gt as Wa,Vp as Xa,vu as Ya,Yp as Za,Cu as _a,sg as $a,ag as ab,Fu as bb,cg as cb,dg as db,Yo as eb,zu as fb,he as gb,fg as hb,mg as ib,wn as jb,qu as kb,Vu as lb,Yu as mb,Xu as nb,_g as ob,bg as pb,kg as qb,vg as rb,Eg as sb,xg as tb,Ig as ub,dl as vb,Tg as wb,Dg as xb,Ag as yb,Dl as zb,Rl as Ab,Nl as Bb,Ng as Cb,Mg as Db,Yg as Eb,Gl as Fb,qg as Gb,Wg as Hb};
13
- //# sourceMappingURL=chunk-OJPCFDDY.js.map