@unbrained/pm-cli 2026.9.3 → 2026.9.5

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 (228) hide show
  1. package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
  2. package/.agents/skills/README.md +2 -2
  3. package/.agents/skills/pm-developer/SKILL.md +4 -1
  4. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +10 -0
  5. package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +3 -1
  6. package/.agents/skills/pm-extensions/SKILL.md +2 -2
  7. package/.agents/skills/pm-extensions/references/LIFECYCLE.md +3 -3
  8. package/.agents/skills/pm-extensions/references/TROUBLESHOOTING.md +3 -3
  9. package/.agents/skills/pm-user/SKILL.md +2 -0
  10. package/.agents/skills/pm-user/references/BACKLOG_SHAPING.md +5 -0
  11. package/.agents/skills/pm-user/references/WORKFLOWS.md +20 -5
  12. package/.claude-plugin/marketplace.json +2 -2
  13. package/CHANGELOG.md +52 -0
  14. package/dist/cli/commander-usage.d.ts +2 -0
  15. package/dist/cli/commander-usage.js +15 -12
  16. package/dist/cli/help-json-payload.js +12 -7
  17. package/dist/cli/main.js +15 -6
  18. package/dist/cli/register-list-query.js +4 -2
  19. package/dist/cli/register-mutation.js +4 -2
  20. package/dist/cli/register-operations.js +6 -2
  21. package/dist/cli-bundle/bundle-manifest.json +154 -154
  22. package/dist/cli-bundle/chunks/{chunk-EDPIS7EB.js → chunk-3HBDTJRK.js} +2 -2
  23. package/dist/cli-bundle/chunks/chunk-66VPKFP2.js +5 -0
  24. package/dist/cli-bundle/chunks/{chunk-Y4PJ6HPK.js → chunk-HUAQITVW.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-DKGP3QLE.js → chunk-IBYREGSP.js} +2 -2
  26. package/dist/cli-bundle/chunks/chunk-LUI4E32I.js +231 -0
  27. package/dist/cli-bundle/chunks/{chunk-UPPM2FOZ.js → chunk-QPZHQY2O.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-34HASX3S.js → chunk-SF6SM6U5.js} +2 -2
  29. package/dist/cli-bundle/chunks/chunk-SVK5Y64D.js +40 -0
  30. package/dist/cli-bundle/chunks/chunk-V5GBD5KV.js +9 -0
  31. package/dist/cli-bundle/chunks/{chunk-LENC656S.js → chunk-WWAEGW4V.js} +67 -70
  32. package/dist/cli-bundle/chunks/chunk-ZRAQS3UA.js +8 -0
  33. package/dist/cli-bundle/chunks/{register-list-query-W2ZTOMKP.js → register-list-query-AYKGODWT.js} +3 -3
  34. package/dist/cli-bundle/chunks/{register-mutation-RVND5NCG.js → register-mutation-YZYG53SQ.js} +4 -4
  35. package/dist/cli-bundle/chunks/register-operations-KFSCC7QV.js +2 -0
  36. package/dist/cli-bundle/chunks/{register-setup-D3ZFHY3L.js → register-setup-UJCRVGBG.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/chunk-24IG6ONG.js +2 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-M5M6SVHS.js → chunk-3ASU6WGI.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-3ITLIBKS.js +56 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-3NQD5YDG.js +2 -0
  41. package/dist/cli-bundle/focused-chunks/{chunk-S27XMBIN.js → chunk-4OSHLNUE.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/chunk-65N6JHAN.js +2 -0
  43. package/dist/cli-bundle/focused-chunks/{chunk-5RFXUPN5.js → chunk-B2TTQGFG.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/chunk-GUBM3RGY.js +20 -0
  45. package/dist/cli-bundle/focused-chunks/{chunk-Q45NHPF2.js → chunk-H5FOGAVD.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/chunk-JX3RCVCX.js +2 -0
  47. package/dist/cli-bundle/focused-chunks/{chunk-D7KXFBXV.js → chunk-KWWCBWFO.js} +2 -2
  48. package/dist/cli-bundle/focused-chunks/chunk-MV752SUC.js +12 -0
  49. package/dist/cli-bundle/focused-chunks/chunk-PKIPMCFS.js +6 -0
  50. package/dist/cli-bundle/focused-chunks/{chunk-4HJFY4MB.js → chunk-QL66QNWG.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/chunk-RJMR2JIF.js +9 -0
  52. package/dist/cli-bundle/focused-chunks/chunk-WIUPWIZR.js +177 -0
  53. package/dist/cli-bundle/focused-chunks/chunk-WOCIPMW7.js +2 -0
  54. package/dist/cli-bundle/focused-chunks/{chunk-GT7MXDLW.js → chunk-YEF5PQQ2.js} +2 -2
  55. package/dist/cli-bundle/main.js +22 -15
  56. package/dist/cli-bundle/sdk-authoring.js +1 -1
  57. package/dist/cli-bundle/sdk-contracts.js +1 -1
  58. package/dist/cli-bundle/sdk-core.js +29 -32
  59. package/dist/cli-bundle/sdk-governance.js +1 -1
  60. package/dist/cli-bundle/sdk-graph.js +1 -1
  61. package/dist/cli-bundle/sdk-merge.js +45 -37
  62. package/dist/cli-bundle/sdk-query.js +1 -1
  63. package/dist/cli-bundle/sdk-runtime.js +1 -1
  64. package/dist/cli-bundle/sdk-testing.js +1 -1
  65. package/dist/cli-bundle/sdk.js +10 -10
  66. package/dist/core/diagnostics/remediation.js +4 -4
  67. package/dist/core/extensions/extension-types.d.ts +2 -0
  68. package/dist/core/extensions/extension-types.js +2 -2
  69. package/dist/core/history/drift-scan.d.ts +5 -0
  70. package/dist/core/history/drift-scan.js +16 -6
  71. package/dist/core/history/event-classification.d.ts +1 -1
  72. package/dist/core/history/event-classification.js +3 -2
  73. package/dist/core/history/history.d.ts +37 -1
  74. package/dist/core/history/history.js +311 -59
  75. package/dist/core/history/identity.d.ts +15 -0
  76. package/dist/core/history/identity.js +31 -0
  77. package/dist/core/history/projection.js +50 -17
  78. package/dist/core/history/read.js +6 -3
  79. package/dist/core/history/replay.d.ts +1 -2
  80. package/dist/core/history/replay.js +70 -36
  81. package/dist/core/history/version-address.d.ts +13 -0
  82. package/dist/core/history/version-address.js +33 -0
  83. package/dist/core/item/actionability.d.ts +21 -1
  84. package/dist/core/item/actionability.js +45 -10
  85. package/dist/core/item/id.js +8 -4
  86. package/dist/core/item/item-type-definition.d.ts +2 -0
  87. package/dist/core/item/item-type-definition.js +9 -2
  88. package/dist/core/item/type-registry.d.ts +5 -1
  89. package/dist/core/item/type-registry.js +9 -4
  90. package/dist/core/lock/lock.d.ts +10 -0
  91. package/dist/core/lock/lock.js +42 -3
  92. package/dist/core/shared/author.d.ts +3 -1
  93. package/dist/core/shared/author.js +111 -23
  94. package/dist/core/shared/errors.d.ts +8 -0
  95. package/dist/core/shared/errors.js +2 -2
  96. package/dist/core/store/item-store.d.ts +14 -0
  97. package/dist/core/store/item-store.js +48 -10
  98. package/dist/core/store/settings-validator.js +3 -2
  99. package/dist/sdk/actionability.d.ts +1 -1
  100. package/dist/sdk/actionability.js +3 -3
  101. package/dist/sdk/cli-contracts/command-aliases.js +11 -2
  102. package/dist/sdk/cli-contracts/completeness.js +4 -3
  103. package/dist/sdk/cli-contracts/flag-contracts.js +29 -5
  104. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +19 -12
  105. package/dist/sdk/cli-contracts/tool-parameter-tables.js +14 -2
  106. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  107. package/dist/sdk/cli-contracts/tool-schema.js +19 -6
  108. package/dist/sdk/context-intent-contracts.js +3 -3
  109. package/dist/sdk/context-usage.js +9 -11
  110. package/dist/sdk/define.d.ts +1 -1
  111. package/dist/sdk/define.js +2 -2
  112. package/dist/sdk/environment/agent-environment.d.ts +296 -0
  113. package/dist/sdk/environment/agent-environment.js +467 -0
  114. package/dist/sdk/environment/project-runtime-compatibility.d.ts +19 -1
  115. package/dist/sdk/environment/project-runtime-compatibility.js +118 -21
  116. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +98 -38
  117. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -2
  118. package/dist/sdk/governance/health.js +13 -44
  119. package/dist/sdk/governance/merge-receipt-history.d.ts +62 -0
  120. package/dist/sdk/governance/merge-receipt-history.js +207 -0
  121. package/dist/sdk/governance/provenance-health.js +9 -3
  122. package/dist/sdk/governance/validate-history-drift.js +16 -5
  123. package/dist/sdk/guide-topics.js +116 -2
  124. package/dist/sdk/history/salvage.d.ts +35 -0
  125. package/dist/sdk/history/salvage.js +248 -0
  126. package/dist/sdk/history-compact.js +41 -37
  127. package/dist/sdk/history-read.d.ts +3 -2
  128. package/dist/sdk/history-read.js +6 -3
  129. package/dist/sdk/history-redact.js +58 -23
  130. package/dist/sdk/history-repair.d.ts +5 -0
  131. package/dist/sdk/history-repair.js +28 -6
  132. package/dist/sdk/index.d.ts +2 -0
  133. package/dist/sdk/index.js +4 -2
  134. package/dist/sdk/lifecycle/claim.d.ts +4 -0
  135. package/dist/sdk/lifecycle/claim.js +9 -3
  136. package/dist/sdk/lifecycle/restore.d.ts +1 -0
  137. package/dist/sdk/lifecycle/restore.js +19 -7
  138. package/dist/sdk/merge/driver.d.ts +3 -1
  139. package/dist/sdk/merge/driver.js +9 -9
  140. package/dist/sdk/merge/index.d.ts +1 -1
  141. package/dist/sdk/merge/index.js +3 -3
  142. package/dist/sdk/merge/receipts.d.ts +17 -6
  143. package/dist/sdk/merge/receipts.js +246 -75
  144. package/dist/sdk/merge/reconcile.d.ts +9 -7
  145. package/dist/sdk/merge/reconcile.js +175 -12
  146. package/dist/sdk/merge/three-way.d.ts +22 -2
  147. package/dist/sdk/merge/three-way.js +92 -25
  148. package/dist/sdk/output-projection.d.ts +3 -1
  149. package/dist/sdk/output-projection.js +11 -3
  150. package/dist/sdk/public-surface.json +1 -0
  151. package/dist/sdk/query/context.d.ts +9 -0
  152. package/dist/sdk/query/context.js +33 -21
  153. package/dist/sdk/query/get.d.ts +2 -2
  154. package/dist/sdk/query/get.js +4 -3
  155. package/dist/sdk/query/history.d.ts +11 -0
  156. package/dist/sdk/query/history.js +34 -10
  157. package/dist/sdk/query/next.d.ts +15 -1
  158. package/dist/sdk/query/next.js +43 -20
  159. package/dist/sdk/query.d.ts +1 -0
  160. package/dist/sdk/query.js +3 -2
  161. package/dist/sdk/runtime-primitives.d.ts +3 -3
  162. package/dist/sdk/runtime-primitives.js +5 -5
  163. package/dist/types.d.ts +27 -0
  164. package/dist/types.js +2 -2
  165. package/docs/AGENT_ENVIRONMENTS.md +47 -0
  166. package/docs/AGENT_GUIDE.md +36 -0
  167. package/docs/AGENT_PROVENANCE_ADR.md +17 -2
  168. package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +38 -1
  169. package/docs/HISTORY_RECOVERY.md +146 -0
  170. package/docs/MERGE_SAFETY.md +119 -23
  171. package/docs/README.md +2 -0
  172. package/docs/RELEASING.md +25 -11
  173. package/docs/SDK_CONTEXT_EVIDENCE_CONTRACTS.md +24 -2
  174. package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +24 -1
  175. package/docs/SDK_EXECUTION_CONTRACTS.md +105 -0
  176. package/docs/SDK_RUNTIME_BOUNDARIES.md +17 -1
  177. package/docs/TESTING.md +5 -0
  178. package/docs/agent-task-token-baseline.json +17 -17
  179. package/docs/agent-task-transcripts.json +2 -1
  180. package/docs/examples/sdk-agent-environment/README.md +14 -0
  181. package/docs/examples/sdk-agent-environment/package.json +8 -0
  182. package/docs/examples/sdk-agent-environment/run-agent-environment.mjs +154 -0
  183. package/docs/generated/FLAG_LEXICON_BUDGETS.md +10 -10
  184. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
  185. package/marketplace.json +2 -2
  186. package/package.json +5 -6
  187. package/packages/pm-beads/package.json +1 -1
  188. package/packages/pm-calendar/package.json +1 -1
  189. package/packages/pm-command-kit/package.json +1 -1
  190. package/packages/pm-digital-twin/package.json +1 -1
  191. package/packages/pm-governance-audit/package.json +1 -1
  192. package/packages/pm-guide-shell/package.json +1 -1
  193. package/packages/pm-kanban/package.json +1 -1
  194. package/packages/pm-lifecycle-hooks/package.json +1 -1
  195. package/packages/pm-linked-test-adapters/package.json +1 -1
  196. package/packages/pm-search-advanced/package.json +1 -1
  197. package/packages/pm-templates/package.json +1 -1
  198. package/packages/pm-todos/package.json +1 -1
  199. package/packages/pm-vcs/package.json +1 -1
  200. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  201. package/plugins/pm-claude/skills/pm-audit/SKILL.md +2 -2
  202. package/plugins/pm-claude/skills/pm-developer/SKILL.md +2 -2
  203. package/plugins/pm-claude/skills/pm-planner/SKILL.md +2 -2
  204. package/plugins/pm-claude/skills/pm-release/SKILL.md +2 -2
  205. package/plugins/pm-claude/skills/pm-workflow/SKILL.md +3 -3
  206. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  207. package/plugins/pm-codex/skills/pm-auditor/SKILL.md +2 -2
  208. package/plugins/pm-codex/skills/pm-native/SKILL.md +3 -4
  209. package/plugins/pm-codex/skills/pm-release/SKILL.md +2 -2
  210. package/scripts/finalize-build.mjs +13 -1
  211. package/dist/cli-bundle/chunks/chunk-AY324UJ5.js +0 -9
  212. package/dist/cli-bundle/chunks/chunk-E5RBBCXO.js +0 -230
  213. package/dist/cli-bundle/chunks/chunk-IEHHE6GA.js +0 -5
  214. package/dist/cli-bundle/chunks/chunk-L7B7343B.js +0 -8
  215. package/dist/cli-bundle/chunks/chunk-LISESA7W.js +0 -35
  216. package/dist/cli-bundle/chunks/register-operations-TTROIVC4.js +0 -2
  217. package/dist/cli-bundle/focused-chunks/chunk-3ZBI35HU.js +0 -176
  218. package/dist/cli-bundle/focused-chunks/chunk-4RRHC3S4.js +0 -6
  219. package/dist/cli-bundle/focused-chunks/chunk-4WR46RMG.js +0 -9
  220. package/dist/cli-bundle/focused-chunks/chunk-BWKHEIVF.js +0 -2
  221. package/dist/cli-bundle/focused-chunks/chunk-GHCZ3YFR.js +0 -20
  222. package/dist/cli-bundle/focused-chunks/chunk-KBLZRU62.js +0 -2
  223. package/dist/cli-bundle/focused-chunks/chunk-KZ2NB3ET.js +0 -2
  224. package/dist/cli-bundle/focused-chunks/chunk-OL5EH6I3.js +0 -2
  225. package/dist/cli-bundle/focused-chunks/chunk-QKHCSUGJ.js +0 -51
  226. package/dist/cli-bundle/focused-chunks/chunk-TXE4TSHM.js +0 -12
  227. package/dist/cli-bundle/focused-chunks/chunk-UCLO3XDU.js +0 -2
  228. package/sdk/public-surface.json +0 -32524
@@ -0,0 +1,9 @@
1
+ import{$i as pe,Ab as lo,Ah as Fn,Ai as Nt,B as to,Bh as Mo,C as h,Cc as S,Ce as he,Da as Ie,De as It,E as y,Ee as Se,Eh as Mn,Fd as q,Ff as An,Fg as Tt,Fh as No,Fi as Bo,G as U,Gh as Lt,Hd as Et,Hg as Dt,Ia as Cn,Ii as L,Ja as kt,Je as Eo,Jh as Oo,Jm as Yo,Ka as so,Ke as Io,Kg as Rt,Lc as Tn,Le as Dn,Me as xo,Nc as fo,Nh as $o,Oc as po,Og as At,Oi as Go,Qa as A,R as H,Ra as vt,Rb as xe,Sa as ao,Sd as V,Si as Ko,Tc as mo,Td as C,Ti as Ho,U as no,Ud as M,Ui as Ae,V as x,Vi as zo,W as ro,We as xt,X as ae,Ya as D,Ye as Co,Zd as go,Zh as Po,Zi as O,_d as ho,_h as Ft,_i as fe,ab as co,af as Rn,ah as Ln,bf as Ct,bj as Wo,c as In,ca as oo,cb as Sn,cf as ue,cg as St,cj as ne,d as wt,df as te,dj as qo,e as Zr,ea as io,ee as yo,eh as De,f as se,fe as _o,g as W,ge as bo,gf as So,h as eo,he as wo,hf as Te,ic as uo,ie as ko,ii as jo,ji as Uo,me as Ce,nh as To,ni as Nn,oh as Do,qh as Ro,ql as Vo,s as xn,sh as Ao,th as Lo,uh as Fo,vb as J,ve as vo,wh as Re,yh as ze,zi as Mt}from"./chunk-LUI4E32I.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]="7ad4e6c0-7545-51cb-9af7-4ba1ad4c4758")}catch{}})();function We(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new y("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",h.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(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]="2efbffc1-722c-5f3a-9ca5-e4e7a4f97729")}catch{}})();function tc(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new y(`History for this item contains invalid timestamp at entry ${o+1}.`,h.GENERIC_FAILURE);i<=t&&(n=o)}),n}function nc(e,t){let n=e[0]?.ts??null,r=e.at(-1)?.ts??null,o={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:n,last_timestamp:r}};return r!==null&&(o.examples=[r],t!==null&&(o.examples.unshift(String(t+1),String(t+e.length)),o.valid_range.first_version=t+1,o.valid_range.last_version=t+e.length)),{guidance:o,lastTimestamp:r}}function Xo(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 Jo(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=nc(t,We(t,!0));if(!r)throw new y(`Missing ${o} target. Use a timestamp or version number.`,h.USAGE,s);if(/^\d+$/.test(r)){let l=We(t),u=Number(r);if(u>=1&&u<=l)throw new y(`History version ${u} was pruned by compaction.`,h.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(u)||u<1||u>l+t.length)throw new y(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,h.USAGE,s);return{kind:"version",raw:r,historyIndex:u-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new y(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,h.USAGE,s);let d=tc(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new y(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,h.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function qe(e,t,n,r){let o=Mn(e,t);if(o.ok)return o.document;let i=Xo(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 y(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,h.GENERIC_FAILURE)}function Qo(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Mn(Re,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new y("History starts without a reconstructable item baseline.",h.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=Lt([...r]),i=structuredClone(Re);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new y(`History target entry ${s+1} does not exist.`,h.USAGE);i=qe(i,a.patch,s+1,a.op)}if(!o.ok)throw new y(`History cannot be replayed: ${o.errors.join(", ")}.`,h.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function Zo(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new y("History has no complete item baseline for this target.",h.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new y(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,h.USAGE)}import On from"node:fs/promises";import rc 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 oc(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=Bo(e.settings);if(n.ownership_enforcement==="strict")throw new y(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,h.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function ic(e){let t=await se(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new y(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,h.CONFLICT);let n=await fe(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await pe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new y(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,h.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function dy(e){let t=e.writeHistoryRaw??W;try{await t(e.historyPath,e.nextHistoryRaw),await De(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await rc.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await De(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function ei(e){let t=[...oc({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await It(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 ic({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]="bd1e86b0-6696-5fba-8dd4-b9636bf3ee60")}catch{}})();function $n(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function ni(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function ri(e){let t=e.trim();if(t.length===0)throw new y("history-redact --regex requires a non-empty pattern.",h.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=ni(t.slice(o+1)))}if(n.length===0)throw new y("history-redact --regex cannot use an empty pattern.",h.USAGE);try{new RegExp(n,r)}catch{throw new y("Invalid --regex value; provide a valid JavaScript regular expression.",h.USAGE)}return{kind:"regex",source:n,flags:r}}function oi(e,t){let n=[...new Set($n(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set($n(t).map(i=>i.trim()))].filter(i=>i.length>0).map(ri),o=[...n,...r];if(o.length===0)throw new y("history-redact requires at least one matcher via --literal or --regex.",h.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 ii(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 si(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 Pn(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?ii(r,i.value,n):si(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function Ve(e,t,n){if(typeof e=="string")return Pn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=Ve(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=Ve(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function ti(e,t,n){let r=0;return{patch:e.map(i=>{if(!Object.prototype.hasOwnProperty.call(i,"value"))return i;let s=Ve(i.value,t,n);return r+=s.replacements,s.replacements>0?{...i,value:s.value}:i}),replacements:r}}function sc(e){let t=structuredClone(Re),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];ze(t)!==i.before_hash&&(n+=1),t=qe(t,i.patch,o+1,i.op),ze(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function ac(e,t,n){let r=0,o=!1,i=!1,s=e.message;if(typeof e.message=="string"){let d=Pn(e.message,t,n);s=d.value,r+=d.replacements,d.replacements>0&&(o=!0)}let a=ti(e.patch,t,n);r+=a.replacements,o||=a.replacements>0;let c=e.reanchor_evidence?.map(d=>{let l=d.patch?ti(d.patch,t,n):{patch:void 0,replacements:0},u=d.record?Ve(d.record,t,n):{value:void 0,replacements:0};r+=l.replacements,r+=u.replacements;let f=l.replacements>0||u.replacements>0;if(o||=f,!f)return d;i=!0;let{patch:m,record:p,record_hash:g,record_hash_version:_,...k}=d;return l.replacements>0?k:{...k,patch:d.patch}});return{entry:{...e,message:s,patch:a.patch,...c?{reanchor_evidence:c}:{}},replacements:r,changed:o,reanchorEvidenceRedacted:i}}function cc(e,t,n){let r=structuredClone(Re),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=e[a],d=To(c);if(!d.ok)throw new y(`history-redact refuses invalid immutable record ${a+1} (${d.error}).`,h.GENERIC_FAILURE);let l=ac(c,t,n);i+=l.replacements,l.changed&&(o+=1);let u=ze(r);r=qe(r,l.entry.patch,a+1,l.entry.op);let f=ze(r);s.push(Do(c,{...l.entry,before_hash:u,after_hash:f},{retainPriorRecord:l.changed,retainPriorRecordHash:!l.changed}))}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function ai(e){return Object.keys(e.metadata).length>0}async function dc(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await pe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function lc(e){if(!ai(e.finalDocument))return{raw:null,path:null,document:null};let t=ho(Fn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new y("history-redact would change the item id; narrow your patterns.",h.USAGE);return{document:t,path:co(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:go(t,{format:"toon",schema:e.settings.schema})}}function uc(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 fc(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??Fn(e.rewritten.finalDocument);return t.push(Fo({nowIso:H(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function pc(e){let t=[];return ei({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 Ho(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 W(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await On.rm(e.currentItem.path,{force:!0}),await W(e.subject.historyPath,Oo(e.rewrittenEntries))}catch(c){try{await mc(e.subject.historyPath,n,o,i)}finally{await De(e.subject.historyPath)}throw c}await De(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await zo({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 gc(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function mc(e,t,n,r){t===null?await On.rm(e,{force:!0}):await W(e,t);for(let o of n){let i=r.get(o);i===void 0?await On.rm(o,{force:!0}):await W(o,i)}}async function gc(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await Tn({path:o,scope:"project",op:"history_redact"}));return n.push(...await Tn({path:e,scope:"project",op:"history_redact:history"})),n}async function jn(e,t,n,r){let o=await fe(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:Sn(e,o.id),located:o};let i=Ft(t,n.id_prefix),s=Po(t),a=i===s?[i]:[i,s];for(let c of a){let d=Sn(e,c);if(await In(d))return{id:c,historyPath:d,located:null}}throw new y(`Item ${t} not found`,h.NOT_FOUND)}async function Ly(e,t,n){let r=D(process.cwd(),n.path);await O(r);let o=await L(r),i=A(o,S()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=oi(t.literal,t.regex),l=await jn(r,e,o,i.type_to_folder);if(!await In(l.historyPath))throw new y(`No history stream exists for ${l.id}.`,h.NOT_FOUND);let u=await se(l.historyPath),f=await Se(l.historyPath,l.id);if(f.length===0)throw new y(`No history entries exist for ${l.id}; nothing to redact.`,h.USAGE);let m=sc(f),p=cc(f,d,c),g=m.hashMismatchesBefore+m.hashMismatchesAfter,_=!!t.dryRun,k=p.replacements>0,b=[];g>0&&b.push(`history_redact_preexisting_hash_mismatches:${g}`),k||b.push("history_redact_no_matches");let w=await dc(l,o),v=lc({pmRoot:r,subject:l,settings:o,typeToFolder:i.type_to_folder,finalDocument:p.finalDocument}),I=(w.path??null)!==(v.path??null)||(w.raw??null)!==(v.raw??null),F=he(t.author,o.author_default),N=uc(t,p),{rewrittenEntries:R,auditEntryAdded:le}=fc({rewritten:p,dryRun:_,changed:k,nextItemDocument:v.document,author:F,message:N}),P=Lt(R);if(!P.ok)throw new y(`history-redact produced an invalid rewritten chain (${P.errors.join(", ")}).`,h.GENERIC_FAILURE);return!_&&k&&b.push(...await pc({pmRoot:r,subject:l,settings:o,typeRegistry:i,historyRawBeforeLock:u,currentItem:w,nextItem:v,author:F,force:t.force,rewrittenEntries:R})),{id:l.id,dry_run:_,changed:k,patterns:{literal_count:d.filter(G=>G.kind==="literal").length,regex_count:d.filter(G=>G.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:l.historyPath,entries_scanned:f.length,entries_changed:p.entriesChanged,replacements:p.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:g,audit_entry_added:le,verify_ok:P.ok,verify_errors:P.errors},item:{existed_before:w.path!==null,exists_after:v.path!==null,path_before:w.path,path_after:v.path,changed:I},warnings:[...new Set(b)].sort((G,X)=>G.localeCompare(X)),generated_at:H()}}var Fy={applyLiteralRule:ii,applyRegexRule:si,buildRedactionRules:oi,hasItemMetadata:ai,normalizeRegexFlags:ni,normalizeStringArrayInput:$n,parseRegexRule:ri,redactStringValue:Pn,redactUnknownValue:Ve};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6fe766e2-93e8-5653-beb5-16bd92efae51")}catch{}})();function Yy(e,t){let n=No(e),r=e.length>0?e[e.length-1].after_hash:Lo(),o=t===void 0||n.item_hash_version===void 0?void 0:Ao(t,n.item_hash_version),i=t===void 0?void 0:o===void 0?Ro(t):o[Math.max(0,o.indexOf(r))],s=i===void 0?void 0:i===r,a=[...n.errors];return s===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:s}}async function Xy(e,t,n={}){let r=D(n.cwd??process.cwd(),n.pmRoot);await O(r);let o=await L(r),i=A(o,S()),s=await jn(r,e,o,i.type_to_folder),a=await Se(s.historyPath,s.id);if(a.length===0)throw new y(`No history exists for ${s.id}; point-in-time reads are unavailable.`,h.NOT_FOUND);let c=Jo(t,a),d=Zo(Qo(a,c.historyIndex),c),l=Mo(d,{schema:o.schema});if(l.metadata.id!==s.id)throw new y(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,h.GENERIC_FAILURE);let u=a[c.historyIndex],f=We(a,!0);return{document:l,reconstructed:!0,as_of_version:f===null?null:f+c.historyIndex+1,as_of_timestamp:u.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]="3167c288-0bcc-5a66-8aa0-ca5876ed7d36")}catch{}})();function hc(e,t,n,r,o,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:Ec(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function di(e,t,n,r){let o=ue("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:o,after:t.after===void 0?void 0:So(t.after,o)}}function Le(e,t,n){e.get(t).add(n)}function Ye(e){return new Map(e.map(t=>[t,new Set]))}function li(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function Ot(e){if(Array.isArray(e))return e.map(n=>Ot(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?Ot(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,Ot(r)]))}function ci(e){return JSON.stringify(Ot(e))}function yc(e,t,n,r){let o=[{id:e,expanded:!1}];for(;o.length>0;){let i=o.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),o.push({id:i.id,expanded:!0});let s=[...t.get(i.id)].sort().reverse();for(let a of s)n.has(a)||o.push({id:a,expanded:!1})}}function _c(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||yc(o,t,n,r);return r}function bc(e,t){let n=new Set,r=[];for(let o of[...e].reverse()){if(n.has(o))continue;let i=[],s=[o];for(n.add(o);s.length>0;){let a=s.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(i)}return li(r)}function ui(e,t){let n=Ye(e);for(let[r,o]of t)for(let i of o)Le(n,i,r);return bc(_c(e,t),n)}function wc(e,t){let n=Ye(e.nodes());for(let r of e.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let i=(o.precedence??"source_before_target")==="source_before_target";Le(n,i?r.source:r.target,i?r.target:r.source)}return n}function kc(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let s of i)n.set(s,n.get(s)+1);let r=e.filter(i=>n.get(i)===0).sort(),o=[];for(;r.length>0;){o.push(r);let i=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return o}function vc(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let o=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],i=o===void 0?[]:[o];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function Ec(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function Pt(e,t={}){let n=t.registry??J(),r=[...e.nodes()],o=wc(e,n),i=kc(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:ui(r,o).filter(l=>l.length>1||o.get(l[0]).has(l[0])),d=vc(s,o);return{exact:!0,acyclic:a,order:s,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Ic(e,t,n){let r=Ye(e.nodes()),o=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),i=e.edges();for(let s of i){let a=e.registry().require(s.kind);o!==void 0&&!o.has(s.kind)&&(a.inverse===void 0||!o.has(a.inverse))||Le(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:i.length}}function xc(e,t,n,r,o,i){let s=$t(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=$t(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((p,g)=>p.distance-g.distance||p.id.localeCompare(g.id)||p.path.join("\0").localeCompare(g.path.join("\0")));for(let p of d)c.has(p.id)||c.set(p.id,p);let l=[...c.values()].sort((p,g)=>p.distance-g.distance||p.id.localeCompare(g.id)),u=r===void 0||r===t?-1:l.findIndex(p=>p.id===r);if(r!==void 0&&r!==t&&u<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=l.slice(u+1,u+1+o),m=u+1+f.length<l.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||m,...m?{nextCursor:te(i,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function Cc(e,t,n){let r=n.direction,o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=di(t,n,r,o),{adjacency:c,inspectedEdges:d}=Ic(e,r,n.kinds),l={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},u=0,f=!1,m=!1;e:for(let p=0;p<l.queue.length;p+=1){n.signal?.throwIfAborted();let g=l.queue[p];u+=1;let _=[...c.get(g.id)].sort();if(g.depth>=o){_.some(k=>!l.seen.has(k))&&(f=!0);continue}for(let k of _)if(hc(l,k,g,t,a,i)==="truncate"){f=!0,m=!0;break e}}if(!l.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:l.affected,exact:!0,truncated:f,...m?{nextCursor:te(s,l.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:u,inspectedEdges:d}}}function $t(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return Cc(e,t,{...n,direction:r});let o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=di(t,n,r,o);return xc(e,t,n,a,i,s)}function fi(e){let t=[...e.nodes()],n=Ye(t),r=Ye(t);for(let c of e.edges())Le(n,c.source,c.target),Le(n,c.target,c.source),Le(r,c.source,c.target);let o=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],l=[c];for(i.add(c);l.length>0;){let u=l.pop();d.push(u);for(let f of n.get(u))i.has(f)||(i.add(f),l.push(f))}o.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:li(o),stronglyConnected:ui(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function t_(e,t){let n=new Map(e.edges.map(o=>[ci(o),o])),r=new Map(t.edges.map(o=>[ci(o),o]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([o])=>!n.has(o)).map(([,o])=>o),removed:[...n].filter(([o])=>!r.has(o)).map(([,o])=>o),unchangedCount:[...n.keys()].filter(o=>r.has(o)).length,exact:!0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function Q(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 y(`${t} must be a non-negative integer`,h.USAGE);return r}function jt(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 y(`${t} filter must be 0..4`,h.USAGE);return r}function pi(e,t,n="--type"){if(e===void 0)return;let r=vt(e,t);if(!r)throw new y(`${n} filter must be one of ${t.types.join("|")}`,h.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 Ut={version:1,aliases:{}};function Bt(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 mi(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 Un(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 Bn(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 y(`Provenance predicate must use dimension=value; received "${i.trim()}".`,h.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 y(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,h.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new y(`Provenance predicate must use dimension=value; received "${i.trim()}".`,h.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function Gt(e,t=Ut,n={}){let r=Un(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 u_(e,t,n=Ut,r=Ce){return Gn(t,n,r)(e)}function Gn(e,t=Ut,n=Ce){let r=mi(e.harness),o=mi(e.agentInstance),i=Bn(e,n);return s=>{let c=Un(s,t).agent_harness;if(r&&(!c||!r.has(c))||o&&!o.has(s.agent_instance??""))return!1;for(let[d,l]of i){let u=s.agent_provenance?.[d];if(!u||!l.has(u.value))return!1}return!0}}function Kt(e,t=Ut,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);Un(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 l=d.agent_provenance?.[s];l===null?c+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import Sc from"node:fs/promises";import yi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7005305a-5fd4-56b8-a0a0-5612e8bf48cc")}catch{}})();var Tc=20,Dc=5,Rc=15,Ac="-24h";function v_(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var Lc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Kn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new y(`${t} must not be empty`,h.USAGE);return n}function gi(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new y("Activity time bounds must not be empty",h.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return ae(o,new Date(t),n)}function Fc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&x(e.ts,t)<0||n&&x(e.ts,n)>=0)}function hi(e,t){return t===void 0?e:e.slice(0,t)}function Xe(e,t=""){return typeof e=="string"?e:t}function Mc(e,t){return{...t,id:e,ts:Xe(t.ts),author:Xe(t.author,"unknown"),op:Xe(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Xe(t.before_hash),after_hash:Xe(t.after_hash)}}function Nc(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 Oc(e){try{return(await Sc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Zr(t))return[];throw t}}function $c(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function Pc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Rc:n==="compact"?Tc:Dc}function jc(e,t){let n=H(),r=t==="digest",o=gi(e.to??(r?n:void 0),n,"--to"),i=gi(e.from??(r?Ac:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&x(i,o)>=0)throw new y("Activity --from must be before --to",h.USAGE);let s=Nn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new y("Activity --unbounded cannot be combined with --limit",h.USAGE);return{id:Kn(e.id,"Activity --id"),op:Kn(e.op,"Activity --op"),author:Kn(e.author,"Activity --author"),from:i,to:o,limit:Pc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Uc(e){let t=D(process.cwd(),e.path);return await O(t),{pmRoot:t,settings:await L(t)}}async function Bc(e){let t=A(e.settings,S()),n=await ne(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await $o({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=yi.join(e.pmRoot,"history");return await fo({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function Gc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Fc(t,n.from,n.to)}async function Kc(e,t){let n=[];for(let r of await Oc(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Se(yi.join(e,r),o);for(let s of i){let a=Mc(o,s);Gc(s,a,t)&&n.push(a)}}return n}function Hc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function zc(e){let t=[...e.entries()].sort(([r,o],[i,s])=>s-o||r.localeCompare(i)),n=t.slice(0,4).map(([r,o])=>`${r}:${o}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function Wc(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,x(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),x(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:zc(o.operations)}}).sort((r,o)=>x(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function qc(e){let t=new Map;for(let o of e)t.set(o.op,(t.get(o.op)??0)+1);let n=[...t.entries()].sort((o,i)=>i[1]-o[1]||o[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((o,[,i])=>o+i,0)]),Object.fromEntries(r)}function Vc(e,t,n,r,o){if(e==="digest"){let s=Wc(t,r),a=hi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=hi(t,n);return e==="compact"?{rows:{compact_activity:Hc(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(o)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function _i(e,t){let n=await Uc(t),r=$c(e),o=jc(e,r),i=await Bc(n),s=Bt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=Gn({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=Nc(await Kc(i.historyDir,o)).filter(c),l=Vc(r,d,o.limit,i.itemsById,f=>Gt(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:Lc[r]},omission_receipt:Co("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:o.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:d.length,item_count:l.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:qc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:Kt(d,a,s)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.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]="971d929f-12be-5648-93c9-8a9878b40dde")}catch{}})();function ce(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function re(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}(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]="f3f3beb2-1d60-52fe-88ce-1ab3cb9dba0d")}catch{}})();var Yc="global",S_="external",Xc=["open","closed","unknown"],Je=new Map,Jc=240,Qc=2048;function bi(e,t,n){return(e?.trim()||t).slice(0,n)}function Zc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return typeof t.status=="string"&&(t.title==null||typeof t.title=="string")&&(t.source==null||typeof t.source=="string")&&(t.checkedAt==null||typeof t.checkedAt=="string")}function T_(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(Je.has(t))throw new Error(`External dependency resolver already registered: ${t}`);let n={name:t,supports:r=>e.supports(r),resolve:r=>e.resolve(r)};return Je.set(t,n),()=>{Je.get(t)===n&&Je.delete(t)}}async function D_(e,t={}){let n=e.trim();if(!ce(n))return null;let r=[...Je.values()].filter(i=>{try{return i.supports(n)}catch{return!1}}),o=await Promise.allSettled(r.map(i=>Promise.resolve().then(()=>i.resolve(n))));for(let[i,s]of o.entries()){if(s.status!=="fulfilled"||!Zc(s.value))continue;let a=r[i],c=s.value,d=Xc.includes(c.status)?c.status:"unknown",l=bi(c.title,"",Jc),u=bi(c.source,n,Qc),f=Date.parse(c.checkedAt?.trim()??""),m=Number.isFinite(f)?new Date(f).toISOString():t.now?.()??new Date().toISOString();return{id:n,status:d,resolved:d==="closed",title:l.length>0?l:null,source:u,checked_at:m,resolver:a.name}}return null}function R_(e){let t=e?.trim();if(t)return re(t)?Yc:t}function A_(e,t,n){let r=e.trim();return re(n)?r:Ft(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]="d49d73c9-f988-5c3c-a22d-0580ee5526f6")}catch{}})();function B(){let e=J();for(let t of S()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="924f7718-0527-5967-8ab0-53e8228bd665")}catch{}})();function Qe(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Ht(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function ed(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function td(e,t){let n=[...e].sort(),r=ed(n,t),o=new Set,i=nd(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=rd(a,i,o);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function nd(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,o]of t)for(let i of o)n.get(i)?.add(r);return n}function rd(e,t,n){let r=[],o=[e];for(n.add(e);o.length>0;){let i=o.pop();r.push(i);for(let s of[...t.get(i)].sort())n.has(s)||(n.add(s),o.push(s))}return r.sort()}function wi(e){let t=new Map;for(let n of e){let r=Qe(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function od(e,t,n){let r=Qe(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function id(e,t,n,r){let o=Qe(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function ki(e,t){let n=new Map;for(let[r,o]of e){let i=od(r,o,e);i&&n.set(Ht(i),i);for(let s of o.dependencies??[]){let a=id(r,s,e,t);a&&n.set(Ht(a),a)}}return[...n.values()].sort((r,o)=>Ht(r).localeCompare(Ht(o)))}function vi(e,t=B()){return ki(wi(e),t)}function sd(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function ad(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Qe(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function zt(e,t=r=>r==="closed"||r==="canceled",n=B()){let r=wi(e),o=ki(r,n),i=zn(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=td([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:sd(o,i.parents_by_child,s),divergences:ad(r,o,s)}}function U_(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function zn(e){let t=new Map,n=new Map;for(let r of e){let o=t.get(r.child_id)??new Set;o.add(r.parent_id),t.set(r.child_id,o);let i=n.get(r.parent_id)??new Set;i.add(r.child_id),n.set(r.parent_id,i)}return{parents_by_child:new Map([...t].map(([r,o])=>[r,[...o].sort()])),children_by_parent:new Map([...n].map(([r,o])=>[r,[...o].sort()]))}}function Hn(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function B_(e,t,n,r,o){let i=Qe(n);if(!i)return;let s=zt(e,r,o),a=zt(t,r,o),c=a.divergences.find(u=>!s.divergences.some(f=>f.child_id===u.child_id&&f.scalar_parent_id===u.scalar_parent_id&&Hn(u.dependency_parent_ids,f.dependency_parent_ids)));if(c){let u=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new y(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${u.join(", ")}.`,h.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:u})}let d=a.cardinality_violations.find(u=>(u.child_id===i||u.parent_ids.includes(i))&&!s.cardinality_violations.some(f=>f.child_id===u.child_id&&Hn(u.parent_ids,f.parent_ids)));if(d)throw new y(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,h.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(u=>u.item_ids.includes(i)&&!s.cycles.some(f=>Hn(u.item_ids,f.item_ids)));if(l)throw new y(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,h.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.item_ids})}(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]="e04a91fa-4625-50fd-9bfd-c712126baf0d")}catch{}})();function Me(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ze(e){let t=Me(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function et(e,t,n=!0){let r=Me(e);return n&&(re(t)||r!==void 0&&ce(r))}function Wn(e,t){return et(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ei(e,t,n,r){return et(e,t)?r.get(e):n.get(e.toLowerCase())}function Fe(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function cd(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Me(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Wn(o,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function dd(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 cd(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=Fe(r.holder_id,o.holder_id);if(i!==0)return i;let s=Fe(r.target_id,o.target_id);return s!==0?s:Fe(r.kind,o.kind)})}function ld(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Me(n.id);if(!i||Wn(i,n.source_kind)!==Wn(t))return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function ud(e,t=r=>r==="closed"||r==="canceled",n=B()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=Me(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=ld(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=Fe(o.holder_id,i.holder_id);if(s!==0)return s;let a=Fe(o.target_id,i.target_id);return a!==0?a:Fe(o.dependency_kind,i.dependency_kind)})}function qn(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,l,u,f)=>{let m=Me(d);if(!m||r.has(m.toLowerCase())||et(m,void 0,f))return;let p={holder_id:c.id.trim(),target_id:m,kind:l,source:u,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:m.toLowerCase()==="no-active-blocker"};o.set(`${p.holder_id}::${p.target_id}::${p.kind}::${p.source}`,p)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;re(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}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 fd(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 pd(e){let t=new Map;for(let n of e){let r=Ze(n.blocked_by);r&&et(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!et(o.id,o.source_kind))continue;let i=Ze(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ii=new WeakMap;function Wt(e){return e.hierarchyIntegrity??Ii.get(e)}function md(e,t=B()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function Ne(e,t,n){let r=n??B(),o=e.filter(p=>typeof p?.id=="string"&&p.id.trim().length>0),i=new Map(o.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),s=qn(o,t),a=fd(s);for(let p of a)i.set(p.toLowerCase(),p);let c=pd(o),d=new Set(i.keys()),l=new Map;for(let p of c){let g=p;for(;d.has(g.toLowerCase());)g=`external:${g}`;l.set(p,g),d.add(g.toLowerCase())}let u=o.map(p=>{let g=Ze(p.parent),_=Ze(p.blocked_by),k=(p.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,v=Ze(w.id);return v?[{id:Ei(v,w.source_kind,i,l),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:p.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},..._?{blocked_by:Ei(_,void 0,i,l)}:{},dependencies:k}}),f=zt(o,t,r),m={graph:lo.fromItems([...u,...a.map(p=>({id:p})),...c.map(p=>({id:l.get(p)}))],r),details:[...o.map(p=>({id:p.id.trim(),title:p.title,status:p.status,...typeof p.type=="string"&&p.type.trim().length>0?{type:p.type.trim()}:{}})),...a.map(p=>({id:p,title:`[missing] ${p}`,status:"missing"})),...c.map(p=>({id:l.get(p),title:`[external] ${p}`,status:"external"}))],missingIdSet:new Set(a.map(p=>p.toLowerCase())),dangling:s,duplicateRows:dd(o,t),orderingContradictions:ud(o,t,r),legacyAliasCounts:md(o,r),hierarchyIntegrity:f};return Ii.set(m,f),m}import{createHash as gd}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var hd=64,yd=8;function _d(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function qt(e,t=r=>r==="closed"||r==="canceled",n=J()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>_d(i,t)).sort(),o=n.list().map(i=>xe(i)).sort();return gd("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function xi(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Vn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=xi("maxResultsPerWorkspace",t.maxResultsPerWorkspace,hd),this.#n=xi("maxWorkspaces",t.maxWorkspaces,yd)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let l=s.results.get(c);if(l!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,l),{value:structuredClone(l),reused:!0};let u=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(u)),{value:u,reused:!1}}}}clear(){this.#e.clear()}},Ci=new Vn;function Vt(){return Ci}function Q_(){Ci.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="afdba960-ae43-52be-b21d-282dac1f22ff")}catch{}})();var bd=["prerequisite","dependent","ancestor","descendant","provenance","related"],wd=new TextEncoder;function Yn(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function Yt(e){return Math.max(1,Math.ceil(wd.encode(JSON.stringify(e)).byteLength/4))}function Xn(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function kd(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Xn(i,n,r));return[...new Set(o)].sort()}function vd(e){return bd.find(t=>e.includes(t))}function Ed(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,l=!1;for(let u=0;u<a.length;u+=1){r.signal?.throwIfAborted();let f=a[u];if(f.distance>=i&&l)continue;let m=e.neighborEdges(f.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=i){m.value.some(p=>!s.has(p.id))&&(l=!0);continue}for(let{id:p,edge:g}of m.value){if(s.has(p))continue;s.add(p);let _={id:p,distance:f.distance+1,via:f.id,role:Xn(g,p,n)};c.push(_),a.push(_)}}return c.sort((u,f)=>u.distance-f.distance||u.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Id(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Xn(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function xd(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?kd(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?vd(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Yt(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Cd(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=Yt(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Si(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Yn(r.nodeLimit,20,"nodeLimit"),i=Yn(r.edgeLimit,40,"edgeLimit"),s=Yn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??J(),c=new Map(n.map(K=>[K.id,K])),d=c.get(t)??{id:t},{evidence:l=[],...u}=d,f=[...l],m=Ed(e,t,a,r),{rootEdges:p,...g}=Id(e,t,a,r),_=ue("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),k=Te(m.rows,r.cursor,_,({id:K})=>K),b=m.rows.slice(k),w=Yt(u)+Yt(f);if(w>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let v=xd({candidates:b,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:w}),{nodes:I}=v,F=new Set([t,...I.map(({id:K})=>K)]),N=Cd({graph:e,included:F,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:v.usedTokens}),{edges:R,usedTokens:le}=N,P=k+I.length,G=P<m.rows.length,X=I.at(-1),ee=N.candidateCount-R.length,ie=m.depthTruncated||G||ee>0,z={rootId:t,...u.status===void 0?{}:{rootStatus:u.status},...g,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:R.length,omittedNodes:m.rows.length-P,omittedEdges:ee,evidenceCount:f.length,hasMore:G};return{root:u,summary:z,nodes:I,edges:R,evidence:f,meta:{exact:!0,truncated:ie,completeness:ie?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:le,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-P,omittedEdges:ee,...G&&X?{nextCursor:te(_,X.id,P-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="74a825f3-1301-5dc5-a887-c6ff68f6d7ec")}catch{}})();var Sd=["tree","graph","context"],Td=["none","repeated"],Dd=["outgoing","incoming","both"],Rd=32,Ad=200,Ld=400,Fd=16e3;function Md(e){let t=e?.trim().toLowerCase()??"tree";if(Sd.includes(t))return t;throw new y(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,h.USAGE)}function oe(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new y(`Invalid --${t} value "${e}". Use a positive integer.`,h.USAGE);return n}function Xt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new y(`Invalid --max-depth value "${e}". Use a non-negative integer.`,h.USAGE);return t}function Nd(e){let t=e?.trim().toLowerCase()??"none";if(Td.includes(t))return t;throw new y(`Invalid --collapse value "${e}". Use "none" or "repeated".`,h.USAGE)}function Qn(e){let t=e?.trim().toLowerCase()??"both";if(Dd.includes(t))return t;throw new y(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,h.USAGE)}function Zn(e,t=J()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new y(`Invalid --kind value "${o}". Registered kinds: ${s}.`,h.USAGE)}r.add(i.kind)}return[...r].sort()}function Od(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function $d(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Od(e.dependencies)}}function Pd(e){return St(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function jd(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let l=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+l>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=l,e.dependencies.push(Di(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Ud(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Di(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),u={id:l?.id??e,title:l?.title,type:l?.type,status:l?.status,via:c,missing:!l,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=Pd(u),Ud(u,l,d,r,o,i,s,a))return u;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),jd(u,l,t,f,r,o,i,s,a),u}function Ti(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Bd(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Ti(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,Ti(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",l=`${a.id}::${c.id}::${d}`;n.has(l)||n.set(l,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let l=a.to.localeCompare(c.to);return l!==0?l:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function Ri(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],l=d.id.trim().toLowerCase();r.add(l);let u=t.get(l);if(!u){i.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let f of u.dependencies)o.add(`${l}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Gd(e,t=J()){let n=Xt(e.maxDepth),r=oe(e.nodeLimit,"node-limit"),o=oe(e.edgeLimit,"edge-limit"),i=oe(e.tokenBudget,"token-budget"),s=Zn(e.kind,t);return{direction:Qn(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Kd(e,t,n,r){return Si(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Jn(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Hd(e,t,n,r){let o=await fe(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await pe(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],l=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(l.every(([,f])=>f===0))return[];let u=[`linked:${l.map(([f,m])=>`${f}=${m}`).join(",")}`];return Jn(u,"file",a.map(f=>f.path),3),Jn(u,"test",c.map(f=>f.command??f.path),2),Jn(u,"doc",d.map(f=>f.path),2),u}function zd(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function Wd(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Ai(e,t,n){let r;for(;;){let o=St(new TextEncoder().encode(Ln(Rn("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function qd(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Vd(e){try{return Kd(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&qd(t))return e.smallestResult;throw t}}function Yd(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,l=r.edgeLimit??40,u=r.tokenBudget,f,m;for(;;){let p=Vd({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:u,rootEvidence:o,smallestResult:m});if("format"in p)return p;let g=p;f??=g.meta.tokenBudget,u??=f;let _=zd({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:i});if(m=_,i||(g.meta.tokenBudget=f,g.meta.usedTokens=Ai(Oe(_,!1),s,w=>{g.meta.usedTokens=w}),g.meta.usedTokens<=f))return _;if(l>0){l-=1;continue}let k=u,b=k*f/g.meta.usedTokens;u=Math.min(k-1,Math.max(1,Math.floor(b*.9)))}}function Xd(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Gd(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(g=>t.missingIdSet.has(g.toLowerCase())),l=new Set(d.map(g=>g.toLowerCase())),u=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(g=>u.require(g).kind)):void 0,m=new Set([n,...c.value]),p=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>Wd({row:g,missingReachableSet:l,packetIds:m,filteredKinds:f,registry:u}));return Yd({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:p})}function Jd(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function Qd(e,t,n,r,o,i,s){let a=o??Rd,c=oe(n.nodeLimit,"node-limit")??Ad,d=oe(n.edgeLimit,"edge-limit")??Ld,l=oe(n.tokenBudget,"token-budget")??Fd,u={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=Di(e,r,new Set,a,t==="graph"?"repeated":i,new Set,u),m=Ri(e,r,void 0),p;for(;;){let g=Bd(f),_=u.reasons.size===0?void 0:{reasons:[...u.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-g.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-g.edges.length)},k={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,..._?{truncation:_}:{}};if(p=t==="tree"?{...k,tree:f}:{...k,graph:g},(p.truncation===void 0?St(new TextEncoder().encode(Ln(Rn("deps",Oe(p,!1)),s)).byteLength):Ai(Oe(p,!1),s,w=>{p.truncation.estimated_tokens=w}))<=l)return p;if(!Jd(f))return u.reasons.add("token_budget"),p;u.reasons.add("token_budget")}}function Oe(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function wb(e,t,n){let r=D(process.cwd(),n.path);await O(r);let o=Md(t.format),i=Xt(t.maxDepth),s=Nd(t.collapse);xt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await L(r),d=A(c,S()),l=await ne(r,c.item_format,d.type_to_folder,void 0,c.schema),u=q(c.schema),f=new Map(l.map(p=>[p.id.trim().toLowerCase(),$d(p)])),m=qn(l,p=>M(p,u));for(let p of[...m.active,...m.legacy_terminal]){let g=f.get(p.holder_id.trim().toLowerCase()),_=p.kind.trim().toLowerCase();g&&!g.dependencies.some(k=>k.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&k.kind===_)&&g.dependencies.push({id:p.target_id,kind:_})}if(!f.has(e.trim().toLowerCase()))throw new y(`Item ${e} not found`,h.NOT_FOUND);if(o==="context"){let p=f.get(e.trim().toLowerCase()).id,g=a?[]:await Hd(r,p,c,d.type_to_folder),_=w=>M(w,u),k=B(),b=Vt().lookup(r,qt(l,_,k),()=>Ne(l,_,k));return Oe(Xd({assembly:b.assembly,canonicalId:p,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,b.assembly.legacyAliasCounts)}return a?Oe({id:e,format:o,...Ri(e,f,i)},!0,Object.fromEntries(Object.entries(Ne(l,p=>M(p,u)).legacyAliasCounts))):Oe(Qd(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Ne(l,p=>M(p,u)).legacyAliasCounts)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ac2b3cd9-5a98-5fea-888c-e96de8cd593d")}catch{}})();var Zd=5,el=1e4,tl=8;function er(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Jt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function tt(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function Qt(e,t){let n=tt(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function nl(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),a=s.traversal;if(a==="association")throw new TypeError(`Relationship kind ${s.kind} uses association traversal; use graph impact --direction both`);if(a!==n&&a!=="semantic"){let c=a==="hierarchy"?"graph ancestors or graph descendants":"graph predecessors or graph successors";throw new TypeError(`Relationship kind ${s.kind} uses ${a} traversal; use ${c}`)}o.add(s.kind)}return o}function rl(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 l=i.require(d.edge.kind);n===void 0&&!l[r]||o(d,l,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function ol(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 Zt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=nl(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},l=0,u=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];l+=1;let p=rl(e,m.id,i,r,o);if(u+=p.inspectedEdges,ol(p,m.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:l,inspectedEdges:u,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Li(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Fi(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 il(e,t,n,r,o,i,s){for(let a of Fi(e,t,r,o,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),l=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:l,length:l.length}),s.value.length>=i)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:l})}return!1}function Mi(e,t,n={}){return Zt(e,t,n,"hierarchy",(r,o)=>Jt(r.edge,o)===r.id)}function Ni(e,t,n={}){return Zt(e,t,n,"hierarchy",(r,o,i)=>Jt(r.edge,o)===i)}function Oi(e,t,n={}){return Zt(e,t,n,"ordering",(r,o)=>tt(r.edge,o)===r.id)}function $i(e,t,n={}){return Zt(e,t,n,"ordering",(r,o,i)=>tt(r.edge,o)===i)}function sl(e,t,n,r,o,i,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,l=!1,u=o+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=u||d>=i){l=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=s){Fi(e,m,r,a,c).length>0&&(l=!0);continue}if(il(e,m,n,r,a,u,c)){l=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:l}}}function Pi(e,t,n,r={}){Li(e,t),Li(e,n);let o=r.maxPaths??Zd,i=r.maxVisitedPaths??el,s=r.maxDepth??tl;er("maxPaths",o),er("maxVisitedPaths",i),er("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}}:sl(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 al=16,cl=2,dl=8;function en(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function tn(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 ll(e,t){let n=new Map;tn(e,t,r=>{ji(n,r.source,r.target),ji(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ji(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function ul(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 Ui(e,t={}){let n=t.maxIterations??al,r=t.minSize??cl;en("maxIterations",n),en("minSize",r);let o=ll(e,t.kinds),i=e.nodes(),s=new Map(i.map(u=>[u,u])),a=0,c=!1,d=0,l=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let u of i){d+=1;let f=o.get(u);if(f===void 0)continue;l+=f.length;let m=ul(f,s);m!==s.get(u)&&(s.set(u,m),c=!1)}}return{value:{communities:fl(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:l,truncated:!c}}}function nn(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function rn(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function tr(e,t){return(t.hierarchy?Jt(e,t):e.source===tt(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function pl(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(!nn(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(rn(i))}return r}function ml(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!nn(i))continue;let s=rn(i);if(t!==void 0&&!t.has(s))continue;let a=tr(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 $e(e,t={}){let n=t.maxDepth??dl;en("maxDepth",n),t.limit!==void 0&&en("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=pl(e,t.kinds),i=ml(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let l=i.get(d),u=gl(l);for(let f of l.records){t.signal?.throwIfAborted();let m=_l(u,f,n,a);if(m!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:m})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function bl(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 wl(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:l,depth:u}=a.queue[d];i.push(l);let f=e.neighborEdges(l,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(l,bl(l,u,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 Il(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 Bi(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=wl(e,t,n),o=kl(r,t),i=new Map(o.map((d,l)=>[d,l])),s=Il(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 l=o[d];if(l===t)continue;let u=s.get(l);a.set(u,a.get(u)+a.get(l))}let c=o.filter(d=>d!==t).map(d=>({id:d,idom:s.get(d),dominatedCount:a.get(d)-1})).sort((d,l)=>l.dominatedCount-d.dominatedCount||d.id.localeCompare(l.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Gi(e){return Math.round(e*1e6)/1e6}function Ki(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Hi(e,t){let n=new Map(e.nodes().map(o=>[o,new Set]));tn(e,t,o=>{n.get(o.source).add(o.target),n.get(o.target).add(o.source)});let r=new Map;for(let[o,i]of n)r.set(o,[...i].sort());return r}function xl(e,t){let n=new Map,r=new Map;return tn(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=Qt(o,i);Ki(r,s,a),Ki(n,a,s)}),{incoming:n,outgoing:r}}function Cl(e,t,n){let r=new Map([[e,0]]),o=new Map([[e,1]]),i=new Map,s=[],a=[e],c=0,d=0;for(let l=0;l<a.length;l+=1){let u=a[l];n.visitedNodes+=1,s.push(u);let f=r.get(u);u!==e&&(c+=1,d+=f);for(let m of t.get(u))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){o.set(m,(o.get(m)??0)+o.get(u));let p=i.get(m);p===void 0?i.set(m,[u]):p.push(u)}}return{stack:s,sigma:o,predecessors:i,reachableCount:c,distanceSum:d}}function Sl(e,t,n){let r=new Map;for(let o=e.stack.length-1;o>=0;o-=1){let i=e.stack[o],s=(1+(r.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);i!==t&&n.set(i,(n.get(i)??0)+(r.get(i)??0))}}function Tl(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Dl(e,t,n,r,o){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:Gi((r.get(e)??0)/2),closeness:Gi(o.get(e))}}function zi(e,t={}){let n=Hi(e,t.kinds),r=xl(e,t.kinds),o=e.nodes(),i=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let l of o){t.signal?.throwIfAborted();let u=Cl(l,n,a);s.set(l,Tl(u,o.length)),Sl(u,l,i)}let c=0;for(let l of n.values())c+=l.length;let d=o.map(l=>Dl(l,n,r,i,s)).sort((l,u)=>u.betweenness-l.betweenness||u.degree-l.degree||l.id.localeCompare(u.id));return{value:{nodeCount:o.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function Rl(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Al(e,t,n){let o=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,o!==e.parent){if(n.discovery.has(o)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(o)));return}return e.children+=1,n.discovery.set(o,n.timer),n.low.set(o,n.timer),n.timer+=1,{node:o,parent:e.node,neighborIndex:0,children:0}}}function Ll(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,o=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),o)),r!==t&&o>=n.discovery.get(r)&&n.articulation.add(r),o>n.discovery.get(r)&&n.bridges.push(Rl(r,e.node))}function Fl(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let o=[{node:e,parent:null,neighborIndex:0,children:0}];for(;o.length>0;){r?.throwIfAborted();let i=o.at(-1);if(i.neighborIndex<t.get(i.node).length){let s=Al(i,t,n);s!==void 0&&o.push(s)}else Ll(i,e,n),o.pop()}}function on(e,t={}){let n=Hi(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let o of e.nodes())r.discovery.has(o)||Fl(o,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((o,i)=>o.source.localeCompare(i.source)||o.target.localeCompare(i.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!1}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Ml(e){let t=e.registry(),n=new Map,r=new Set;for(let o of e.edges()){let i=t.require(o.kind);if(!i.ordering)continue;let{predecessor:s,successor:a}=Qt(o,i);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function Nl(e,t,n,r){if(e===void 0)return r;let o=r;for(let i of e)t.has(i)&&(o=Math.min(o,n.get(i)));return o}function Ol(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function $l(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Nl(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>Ol(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Wi(e,t={}){t.signal?.throwIfAborted();let n=Pt(e,{registry:e.registry()}),r=Ml(e),o=new Set(n.order),i=n.order.filter(d=>r.participants.has(d)),s=i.reduce((d,l)=>Math.max(d,n.depth[l]+1),0),a=$l(i,r,n.depth,o,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a8bc0ebd-e5e4-57f3-8e6c-417f9809eb72")}catch{}})();var Pe=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","hierarchy_cycle","legacy_hierarchy_cycle","hierarchy_cardinality_violation","legacy_hierarchy_cardinality_violation","hierarchy_direction_violation","legacy_hierarchy_direction_violation","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(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]="27de9c62-434c-566d-a000-54eddb9a16a9")}catch{}})();var Pl=25,jl="milestone",Ul="outcome milestone:",Bl=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function ir(e){return Bl.has(e)}var qi={error:0,warning:1,info:2};function Vi(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function je(e,t,n,r,o,i,s,a){let c=[...o].sort((d,l)=>d.localeCompare(l));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,i),sample_truncated:c.length>i,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,l)=>d.localeCompare(l)).slice(0,i)}}}function Gl(e,t){return e.cycles.map(n=>je(n.legacy_terminal?"legacy_hierarchy_cycle":"hierarchy_cycle",n.legacy_terminal?"info":"error","Structural hierarchy must be acyclic across scalar and registered dependency relationships.",r=>`${r} items participate in one hierarchy cycle.`,n.item_ids,t,n.legacy_terminal?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove or retype one exact hierarchy relation before continuing mutation."))}function Yi(e,t,n){let r=e.cardinality_violations.filter(o=>o.legacy_terminal===n);return r.length===0?[]:[je(n?"legacy_hierarchy_cardinality_violation":"hierarchy_cardinality_violation",n?"info":"error","Every structural child must resolve to at most one logical parent across all hierarchy spellings.",o=>`${o} child item${o===1?"":"s"} resolve to multiple hierarchy parents.`,r.map(o=>o.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove the exact surplus hierarchy rows so each child has one parent.",r.map(o=>`${o.child_id} <- ${o.parent_ids.join(", ")}`))]}function Xi(e,t,n){let r=e.divergences.filter(o=>o.legacy_terminal===n);return r.length===0?[]:[je(n?"legacy_hierarchy_direction_violation":"hierarchy_direction_violation",n?"info":"error","Scalar parent metadata and dependency-backed hierarchy rows must resolve to the same logical parent.",o=>`${o} child item${o===1?"":"s"} have divergent hierarchy storage surfaces.`,r.map(o=>o.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Align the scalar parent and exact dependency rows to one canonical parent.",r.map(o=>`${o.child_id}: scalar=${o.scalar_parent_id} dependencies=${o.dependency_parent_ids.join(",")}`))]}function Kl(e,t){let n=Wt(e);return n?[...Gl(n,t),...Yi(n,t,!1),...Yi(n,t,!0),...Xi(n,t,!1),...Xi(n,t,!0)]:[]}function Hl(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 Qi(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 zl(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))):(Qi(i,r),t.push({node:i,neighborIndex:0})),!0}function Wl(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 ql(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(Qi(r,t);o.length>0;){let i=o.at(-1);zl(i,o,e,t)||Wl(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function nr(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function Y(e,t,n,r,o,i,s,a){t.length!==0&&e.push(je(r,o,i,s,t,n,a))}function Vl(e,t,n){let r=[],o=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return Y(r,o.filter(i=>!t(i.holder_status)).map(nr),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."),Y(r,o.filter(i=>t(i.holder_status)).map(nr),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."),Y(r,e.dangling.no_active_blocker_sentinels.map(nr),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 or(e,t){let n=t.get(e);return n?!n.terminal:!0}function Zi(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Yl(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(Zi(i));let o=[];return Y(o,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",i=>`${i} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),Y(o,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",i=>`${i} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),o}function Xl(e,t,n,r){let o=[],i=Hl(e);for(let c of ql(i)){let d=c.some(f=>or(f,t)),l=new Set(c.map(f=>f.toLowerCase())),u=(e.orderingContradictions??[]).filter(f=>l.has(f.holder_id.toLowerCase())&&l.has(f.target_id.toLowerCase())).map(Zi);o.push(d?je("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",f=>`execution-order cycle across ${f} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",u.length===0?void 0:u):je("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",f=>`terminal-only execution-order cycle across ${f} 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.",u.length===0?void 0:u))}let s=new Map;for(let[c,d]of i)for(let l of d){let u=s.get(l);u?u.push(c):s.set(l,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let l=t.get(d);return l===void 0||!l.terminal})).map(c=>c.id);return Y(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 sn(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function sr(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!nn(i))continue;let s=tr(o,i);if(s.from===s.to)continue;let a=`${rn(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 Jl(e,t,n){let r=[],o=[];for(let s of sr(e))(or(s.from,t)||or(s.to,t)?r:o).push(sn(s));let i=[];return Y(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."),Y(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 Ql(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 Y(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."),Y(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 Zl(e,t){let n=new Map,r={source_to_target:[],target_to_source:[],both:[]};for(let s of e.graph.registry().list())s.outcomeTraversal!==void 0&&r[s.outcomeTraversal].push(s.kind);let o={source_to_target:r.source_to_target.join(","),target_to_source:r.target_to_source.join(","),both:r.both.join(",")},i=(s,a)=>{let c=n.get(a)??new Set;c.add(s),n.set(a,c)};for(let s of e.graph.edges()){t?.throwIfAborted();let a=e.graph.registry().require(s.kind);(a.outcomeTraversal==="source_to_target"||a.outcomeTraversal==="both")&&i(s.source,s.target),(a.outcomeTraversal==="target_to_source"||a.outcomeTraversal==="both")&&i(s.target,s.source)}return{basis:o,reverse:n}}function eu(e,t,n){let r=new Set(e),o=[...e].sort();for(let i=0;i<o.length;i+=1){n?.throwIfAborted();for(let s of[...t.get(o[i])??[]].sort())r.has(s)||(r.add(s),o.push(s))}return r}function tu(e,t,n,r){let o=0,i=0,s=0,a=0;for(let m of e.values())if(r?.throwIfAborted(),!t.has(m.id)&&!(m.missing||m.status==="external")){if(m.terminal){s+=1,n.has(m.id)&&(a+=1);continue}n.has(m.id)?o+=1:i+=1}let c=o+i,d=s-a,l=o+a,u=i+d,f=l+u;return{active_outcome_reachable_nodes:o,active_outcome_unreachable_nodes:i,active_outcome_reachability_basis_points:c===0?0:Math.floor(o*1e4/c),terminal_nodes:s,terminal_outcome_reachable_nodes:a,terminal_outcome_unreachable_nodes:d,terminal_outcome_reachability_basis_points:s===0?0:Math.floor(a*1e4/s),outcome_reachable_nodes:l,outcome_unreachable_nodes:u,outcome_reachability_basis_points:f===0?0:Math.floor(l*1e4/f)}}function nu(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===jl&&a.title.trim().toLowerCase().startsWith(Ul)).map(a=>a.id)),{basis:o,reverse:i}=Zl(e,n),s=eu(r,i,n);return{outcome_nodes:r.size,outcome_reachability_basis:o,...tu(t,r,s,n)}}function ru(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 ou(e,t,n,r,o,i,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let b of e.graph.nodes()){s?.throwIfAborted();let w=t.get(b);if(w){if(w.missing){a.missing+=1;continue}w.terminal||ru(a,w,e.graph.incidentEdges(b).length,n,r)}}let{isolates:c,sparse:d}=a,l=[];Y(l,c,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",b=>`${b} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),Y(l,d,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",b=>`${b} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let u=e.graph.edges().length,f=$e(e.graph,{signal:s}).value,m=new Set(f.map(({edge:b})=>`${b.source.toLowerCase()}\0${b.target.toLowerCase()}\0${b.kind}`));for(let b of e.orderingContradictions??[])m.add(`${b.holder_id.toLowerCase()}\0${b.target_id.toLowerCase()}\0${b.dependency_kind}`);let p=Object.fromEntries(Object.entries(i).sort(([b],[w])=>b.localeCompare(w))),g=Object.entries(p).reduce((b,[w,v])=>b+(ir(w)?v:0),0),_=on(e.graph,{signal:s}).value,k=nu(e,t,s);return{findings:l,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(b=>b.status!=="missing"&&b.status!=="external").length,edges:u,informative_edges:u-m.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:p,edge_share_by_kind:Object.fromEntries(Object.entries(p).map(([b,w])=>[b,w/u])),semantic_edges:g,semantic_edge_share:u===0?0:g/u,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([b],[w])=>b<w?-1:1)),articulation_points:_.articulationPoints.length,bridge_edges:_.bridges.length,...k,finding_subjects_by_code:Object.fromEntries(Pe.map(b=>[b,0]))}}}function an(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),o=t.maxSampleSize??Pl;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=Vi(t.exemptIsolates),s=Vi(t.isolateExemptTypes),a=new Map(e.details.map(f=>[f.id,{id:f.id,status:f.status,missing:e.missingIdSet.has(f.id.toLowerCase()),terminal:n(f.status),...f.type===void 0?{}:{type:f.type}}]));t.signal?.throwIfAborted();let c={};for(let f of e.graph.edges())c[f.kind]=(c[f.kind]??0)+1;let d=Vl(e,n,o);d.push(...Kl(e,o)),t.signal?.throwIfAborted(),d.push(...Yl(e,o)),t.signal?.throwIfAborted(),d.push(...Xl(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...Jl(e,a,o),...Ql(e,o)),t.signal?.throwIfAborted();let l=ou(e,a,i,s,o,c,t.signal);d.push(...l.findings),d.sort((f,m)=>qi[f.severity]-qi[m.severity]||f.code.localeCompare(m.code)||f.sample[0].localeCompare(m.sample[0]));let u=l.profile.finding_subjects_by_code;for(let f of d)u[f.code]+=f.count;return{findings:d,profile:{...l.profile,finding_subjects_by_code:u}}}function rr(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 Ji(e){return e.profile.coverage_by_type??{}}function iu(e,t){let n={},r=Ji(e),o=Ji(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=Object.assign({active:0,isolated:0,degree_leq_one:0},r[s]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},o[s]),d={active:c.active-a.active,isolated:c.isolated-a.isolated,degree_leq_one:c.degree_leq_one-a.degree_leq_one};Object.values(d).some(l=>l!==0)&&(n[s]=d)}return n}function es(e,t){let n=iu(e,t),{edge_share_by_kind:r={},semantic_edges:o=0,semantic_edge_share:i=0}=e.profile,{edge_share_by_kind:s={},semantic_edges:a=0,semantic_edge_share:c=0}=t.profile,d=e.profile.recorded_nodes??e.profile.nodes,l=t.profile.recorded_nodes??t.profile.nodes,u=e.profile.informative_edges??e.profile.edges,f=t.profile.informative_edges??t.profile.edges,m=e.profile.redundant_edges??0,p=t.profile.redundant_edges??0,g=e.profile.ordering_contradiction_edges??0,_=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:rr(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:l-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-u,redundant_edges:p-m,ordering_contradiction_edges:_-g,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:rr(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:rr(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import ts 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]="9e4aa41d-fca4-5e55-ab2b-d99f06d90ae2")}catch{}})();var ns=1,ar=500,su=64,au="graph-durable-cache";function rs(e){return It(e,au,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function rt(e){return ts.join(e,"runtime","graph-cache.json")}function os(e){return ts.join(e,"runtime","graph-audit-baseline.json")}function cr(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==ns||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function dr(e,t){let n=await se(rt(e)),r=cr(n),o=r?.fingerprint===t;return{exists:n!==null,fresh:o,results:o?r.results:{}}}async function lr(e,t,n,r,o){let i=await rs(e);try{let s=cr(await se(rt(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=o;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-su)))delete a[d];await W(rt(e),JSON.stringify({version:ns,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function ur(e){let t=await rs(e);try{await eo(rt(e))}finally{await t()}}async function is(e,t){let n=rt(e),r=await se(n),o=cr(r);return o===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:o.fingerprint===t,entry_count:Object.keys(o.results).length,fingerprint:o.fingerprint.slice(0,12),saved_at:o.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function fr(e,t){return t||e>=ar}function cn(e){return Ue(e)&&Object.values(e).every(ye)}function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ye(e){return Number.isInteger(e)&&Number(e)>=0}function ss(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function nt(e,t){return e===void 0||t(e)}function cu(e){return Ue(e)&&Object.values(e).every(ss)}function du(e){return Ue(e)?Object.values(e).every(t=>Ue(t)&&[t.active,t.isolated,t.degree_leq_one].every(ye)):!1}function lu(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],o=r.filter(s=>e[s]!==void 0).length;if(o!==0&&o!==r.length||!r.every(s=>nt(e[s],ye)))return;let i={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??n,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return i.recorded_nodes<=t&&i.informative_edges<=n&&i.redundant_edges<=n&&i.ordering_contradiction_edges<=n?i:void 0}function uu(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],o=r.filter(i=>e[i]!==void 0).length;return o!==0&&o!==r.length?!1:t.every(i=>nt(e[i],ye))&&n.every(i=>nt(e[i],ye)&&(e[i]===void 0||Number(e[i])<=1e4))&&nt(e.finding_subjects_by_code,cn)}function fu(e,t,n,r){let o=lu(e,n,r);if(o===void 0)return;let i=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],s=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!uu(e,i,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=cn(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...o,...Object.fromEntries(i.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(Pe.map(c=>[c,a[c]??t[c]??0]))}}function pu(e,t,n,r,o){let i=[n,r,o],s=i.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==i.length||!cu(n)||!ye(r)||!ss(o))return;let a=Object.entries(t);if(a.reduce((d,[,l])=>d+l,0)!==e||Object.keys(n).length!==a.length||a.some(([d,l])=>n[d]!==(e===0?0:l/e)))return;let c=a.reduce((d,[l,u])=>d+(ir(l)?u:0),0);if(!(r!==c||o!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:o}}function mu(e){if(e!==null)try{let t=JSON.parse(e);if(!Ue(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let o=n.affected_subjects_by_code;if(!cn(o)||!Ue(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(ye)||!cn(r.edges_by_kind)||!nt(r.coverage_by_type,du))return;let i=pu(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(i===void 0)return;let s=fu(r,o,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...i,...s,coverage_by_type:a}}}catch{return}}async function as(e){return mu(await se(os(e)))}async function cs(e,t){await W(os(e),JSON.stringify(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7054952e-444a-5be2-b0c1-fcc3b72afde5")}catch{}})();var gu={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},hierarchy_cycle:{op:"investigate",confidence:"low",rationale:"Cut or retype one exact structural relation in the cycle; the planner preserves every evidence row because intent determines the correct parent."},legacy_hierarchy_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only hierarchy cycles are historical debt; waive them unless an explicit closed-history repair is approved."},hierarchy_cardinality_violation:{op:"investigate",confidence:"medium",rationale:"Choose the canonical parent and remove or retype the exact surplus hierarchy rows; the planner cannot infer ownership intent."},legacy_hierarchy_cardinality_violation:{op:"waive",confidence:"high",rationale:"Multiple parents confined to terminal items are historical debt; waive them unless a dedicated history repair is approved."},hierarchy_direction_violation:{op:"investigate",confidence:"medium",rationale:"Align the scalar parent and dependency-backed hierarchy rows to the intended canonical parent."},legacy_hierarchy_direction_violation:{op:"waive",confidence:"high",rationale:"Divergent hierarchy storage confined to terminal items is historical debt; waive it unless a dedicated history repair is approved."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function ds(e){return`${e.source} -${e.kind}-> ${e.target}`}function hu(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:ds(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${ds(t)}`,`group: ${sn(e)}`],confidence:"high"}))}function yu(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>hu(t.get(r)));let n=gu[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function ls(e,t={}){let{redundancyLimit:n,...r}=t,o=an(e,r),i=new Map(sr(e).map(d=>[sn(d),d])),s=o.findings.flatMap(d=>yu(d,i)),a=o.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=$e(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:o,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8797dddf-3643-554b-ba7f-4c513535c154")}catch{}})();var ms=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function us(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function fs(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function _u(e,t,n){let r=e.trim().toLowerCase();if(!An.includes(r))throw io({command_path:"graph",token:r||"<empty>",allowed:An});let o=r;if(ms.has(o)&&!t?.trim())throw new y(`graph ${o} requires an item id.`,h.USAGE);if(o==="paths"&&!n?.trim())throw new y("graph paths requires a source and a target item id.",h.USAGE);return o}function pr(e){throw e instanceof TypeError?new y(e.message,h.USAGE):e}function mr(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function ps(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new y(`Item ${t} not found`,h.NOT_FOUND)}function bu(e,t,n){let r={ancestors:Mi,descendants:Ni,predecessors:Oi,successors:$i}[e],o;try{o=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){pr(s)}let i=mr(o.meta);return{subcommand:e,root:t,count:o.value.length,...i,...o.meta.nextCursor===void 0?{}:{next_cursor:o.meta.nextCursor},...n.summary?{}:{ids:o.value}}}function wu(e,t,n){let r=Pi(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...mr(r.meta),...n.summary?{}:{paths:r.value.map(o=>({nodes:o.nodes,kinds:o.edges.map(i=>i.kind),length:o.length}))}}}function ku(e,t){let n;try{n=$t(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??me},...t.after===void 0?{}:{after:t.after}})}catch(r){pr(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function vu(e,t,n){return{acyclic:e.acyclic,ordered_node_count:e.order.length,layer_count:e.layers.length,frontier_count:e.frontier.length,critical_path_length:e.criticalPathLength,cycle_count:e.cycles.length,...t?{}:{frontier:e.frontier.slice(0,n),critical_path:e.criticalPath.slice(0,n),cycles:e.cycles.slice(0,n)}}}function Eu(e,t,n){return{component_count:e.components.length,largest_component_size:e.components[0]?.length??0,orphan_count:e.orphans.length,...t?{}:{orphans:e.orphans.slice(0,n),hubs:e.hubs.slice(0,n)}}}function Iu(e,t,n){let r=0,o=0,i=0;for(let s of e.cycles)r+=Number(s.legacy_terminal);for(let s of e.cardinality_violations)o+=Number(s.legacy_terminal);for(let s of e.divergences)i+=Number(s.legacy_terminal);return{acyclic:e.cycles.length===0,relation_count:e.relations.length,cycle_count:e.cycles.length,active_cycle_count:e.cycles.length-r,legacy_cycle_count:r,cardinality_violation_count:e.cardinality_violations.length,active_cardinality_violation_count:e.cardinality_violations.length-o,legacy_cardinality_violation_count:o,parent_divergence_count:e.divergences.length,active_parent_divergence_count:e.divergences.length-i,legacy_parent_divergence_count:i,...t?{}:{cycles:e.cycles.slice(0,n).map(s=>s.item_ids)}}}function xu(e){let t=e.assembly.graph,n=e.limit??me,r=Pt(t,{registry:t.registry()}),o=fi(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:vu(r,e.summary,n),knowledge:Eu(o,e.summary,n),hierarchy:Iu(Wt(e.assembly),e.summary,n)}}function Cu(e,t){let n=an(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},o={},i={},s={};for(let d of n.findings)r[d.severity]=(r[d.severity]??0)+1,o[d.code]=(o[d.code]??0)+1,i[d.severity]=(i[d.severity]??0)+d.count,s[d.code]=(s[d.code]??0)+d.count;let{finding_subjects_by_code:a,...c}=n.profile;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:o,affected_subjects_by_severity:i,affected_subjects_by_code:s,profile:e.summary?c:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function Su(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Ui(e.assembly.graph,n),o=r.value;return{subcommand:"communities",community_count:o.communities.length,largest_community_size:o.communities[0]?.size??0,iterations:o.iterations,converged:o.converged,truncated:!o.converged||o.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:o.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Tu(e){let t;try{t=$e(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){pr(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...mr(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function Du(e,t){let n=t.limit??me,r=Bi(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),o=r.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:o.length,truncated:r.meta.truncated||o.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:o.slice(0,n).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Ru(e){let t=e.limit??me,n=Wi(e.assembly.graph),r=n.rows.filter(o=>o.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(o=>({id:o.id,earliest_start:o.earliestStart,latest_start:o.latestStart,slack:o.slack,critical:o.critical}))}}}function Au(e){let t=e.limit??me,n=zi(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(o=>({id:o.id,degree:o.degree,in_degree:o.inDegree,out_degree:o.outDegree,betweenness:o.betweenness,closeness:o.closeness}))}}}function Lu(e){let t=e.limit??me,n=on(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:o}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:o.length,truncated:r.length>t||o.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:o.slice(0,t)}}}function Fu(e,t){let n=e.limit??me,r=ls(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),o={},i={};for(let s of r.steps)o[s.op]=(o[s.op]??0)+1,i[s.code]=(i[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:o,steps_by_code:i,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function gs(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(o=>o.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(o=>o.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function hs(e,t,n,r,o){return e==="analyze"?xu(r):e==="audit"?Cu(r,o):e==="plan"?Fu(r,o):e==="communities"?Su(r):e==="redundancy"?Tu(r):e==="dominators"?Du(t,r):e==="slack"?Ru(r):e==="centrality"?Au(r):e==="articulation"?Lu(r):e==="paths"?wu(t,n,r):e==="impact"?ku(t,r):bu(e,t,r)}function Mu(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new y("--rebuild and --clear apply only to graph index.",h.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new y("--save-baseline applies only to graph audit.",h.USAGE);if(e==="slack"&&t.kind!==void 0)throw new y("graph slack analyzes every ordering kind; --kind is not supported.",h.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new y("graph index accepts either --rebuild or --clear, not both.",h.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new y("graph impact accepts either --full or --limit, not both.",h.USAGE)}async function Nu(e,t,n,r,o,i){let s="status";if(i.clear===!0&&(await ur(e),s="cleared"),i.rebuild===!0){await ur(e);let c=await dr(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let l of["analyze","audit"])await lr(e,t,c,gs(l,void 0,void 0,d),hs(l,void 0,void 0,d,o));s="rebuilt"}let a=await is(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:ar,persist_enabled:fr(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function Ou(e,t,n,r){let o={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:{...n.profile,finding_subjects_by_code:Object.fromEntries(Pe.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},i=await as(e);return r&&await cs(e,o),i===void 0?n:{...n,baseline:es(i,o)}}async function $u(e,t,n,r,o){try{await lr(e,t,n,r,o)}catch{}}async function yw(e,t,n,r,o){let i=_u(e,t,n);xt(r.summary===!0,r.full===!0,"--summary");let s=D(process.cwd(),o.path);await O(s);let a=await L(s),c=A(a,S()),d=await ne(s,a.item_format,c.type_to_folder,void 0,a.schema),l=q(a.schema),u=R=>M(R,l);Mu(i,r);let f=B(),m=Zn(r.kind,f),p=Vt().lookup(s,qt(d,u,f),()=>Ne(d,u,f)),g={assembly:p.assembly,...m===void 0?{}:{kinds:m},maxDepth:Xt(r.maxDepth),limit:oe(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Qn(r.direction),maxPaths:oe(r.maxPaths,"max-paths"),sample:oe(r.sample,"sample"),exemptIsolates:fs(r.exemptIsolate),exemptIsolateTypes:fs(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return us(await Nu(s,p.fingerprint,g,d.length,u,r),!1);let _=ms.has(i)?ps(g.assembly,t):void 0,k=i==="paths"?ps(g.assembly,n):void 0,b=gs(i,_,k,g),w=await dr(s,p.fingerprint),v=w.results[b],I=p.memoize(b,()=>v!==void 0?structuredClone(v):hs(i,_,k,g,u)),F=fr(d.length,w.exists);!I.reused&&v===void 0&&F&&await $u(s,p.fingerprint,w,b,I.value);let N=I.value.subcommand==="audit"?await Ou(s,p.fingerprint,I.value,g.saveBaseline):I.value;return N.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:v!==void 0?"hit":F?"miss":"off"},us(N,g.summary,"result_rows")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7d98ca40-57e8-5afe-8e9d-b694da0130d1")}catch{}})();function ge(e,t){return(t===void 0?void 0:ao(e,t))?.execution_role??so[e.trim().toLowerCase()]??"agent"}var hr="blocked_by",ys="blocks",Pu=Object.freeze([hr,ys]),gr="no-active-blocker";function T(e){return e.trim().toLowerCase()}function dn(e,t){return t?`external:${e}`:`local:${T(e)}`}function _e(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&T(n)!==gr){let r=ce(n);t.set(dn(n,r),r?n:T(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===hr&&o.length>0&&T(o)!==gr){let i=ce(o)||re(r.source_kind);t.set(dn(o,i),i?o:T(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function ln(e){let t=new Map;for(let n of e){let r=T(n.id);r.length!==0&&t.set(r,new Set(_e(n)))}for(let n of e){let r=T(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===ys&&typeof o.id=="string"?T(o.id):"";if(i.length===0||i===gr)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function _s(e,t){let n=T(e.id);return n.length>0?ln(t).get(n)??_e(e):_e(e)}function yr(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(T(o.id))??_s(o,[...t.values()]):_e(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===hr&&re(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>dn(a.id.trim(),!0)));return i.map(a=>{if(ce(a)||s.has(dn(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(T(a));return c?{id:a,title:c.title,status:c.status,resolved:M(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function un(e,t,n){return yr(e,t,n)}function ot(e,t){let n=new Map(e.map(s=>[T(s.id),s])),r=ln(e),o=new Set([...bs(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=C(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||yr(s,n,t,r).some(d=>!d.resolved))&&i.add(T(s.id))}return i}function _r(e,t,n={},r){let o=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(C(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=ge(s.item.type,r);a==="human"&&n.includeDecisions!==!0?i.decisions.push(s):a==="gate"&&n.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function bs(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function ju(e,t,n){let r=[T(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(!M(s.status,n))return!0;r.push(T(s.id))}}}return!1}function Uu(e){let t=new Map,n=new Map,r=new Map,o=ln(e);for(let i of e){t.set(T(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=T(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(T(i.id))){let c=T(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function it(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Uu(t),c=new Set([...bs(n),...n.blocked_statuses]),d=new Set(t.filter(_=>!M(_.status,n)).map(_=>T(_.id))),l=[],u=[],f=[],m=[],p=[],g=0;for(let _ of e){if(!c.has(C(_.status,n)))continue;g+=1;let k=yr(_,o,n,a).filter(I=>!I.resolved),b=(s.get(T(_.id))??[]).filter(I=>d.has(T(I))).sort((I,F)=>I.localeCompare(F)),w={item:_,open_blockers:k,unblocks:b};if(ju(_.id,i,n)){f.push(w);continue}let v=n.blocked_statuses.has(C(_.status,n));if(k.length===0&&!v){let I=ge(_.type,r);I==="human"?m.push(w):I==="gate"?p.push(w):l.push(w)}else u.push(w)}return{ready:l,blocked:u,containers:f,decisions:m,gates:p,active_count:g,container_count:f.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]="7d393eb0-d24d-55d2-8e4e-e94805d91784")}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 br(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 y(`${t.label} requires at least one non-empty value`,h.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function st(e,t){let n=br(e,t);return n===void 0?void 0:new Set(n)}function ws(e,t,n="--type"){let r=br(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=vt(i,t);if(!s)throw new y(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,h.USAGE);return s});return new Set(o)}function ks(e,t="--priority"){let n=br(e,{label:t});if(n!==void 0)return new Set(n.map(r=>jt(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]="5bb71ec1-7eb1-558e-a965-acd779570c2e")}catch{}})();var wr=["id","title","status","type","priority","parent","updated_at"],kr=["id","status","type","title"],Bu={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Gu=["tree_depth","tree_parent","tree_children","tree_title"];function vr(e=[]){return[...new Set([...xn,"body",...Gu,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var Aw=["brief","standard","deep"],Ku=["body","linked","claim_state","children","schedule"],Hu=["linked.files","linked.tests","linked.docs"],zu=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],Wu=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function Lw(e=[]){return[...[...new Set([...xn,...e,"notes_count","tests_count","collection_counts"])].flatMap(n=>[n,`item.${n}`]),...Ku,...Hu,...zu,...Wu].sort()}var Fw=["id","title","status","type","priority","updated_at","score","matched_fields"],qu=["score","matched_fields","highlights"],vs=["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"];function Mw(e=[]){let t=[...new Set(e)];return[...qu,...vs,...vs.map(n=>`item.${n}`),...t,...t.map(n=>`item.${n}`)].sort()}(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 Es(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ss(e){return{isTerminal(t){return e.terminal_statuses.has(Es(t,e))},classify(t){let n=Es(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 Er(e){return U(e.acceptance_criteria)===void 0}function Ir(e){return!Number.isFinite(e.estimated_minutes)}function Ts(e,t){return t.isTerminal(e.status)?U(e.resolution)===void 0:!1}function Vu(e){return U(e.reviewer)===void 0}function Yu(e){return U(e.risk)===void 0}function Xu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):U(e.confidence)===void 0}function Ju(e){return U(e.sprint)===void 0}function Qu(e){return U(e.release)===void 0}function xr(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Zu(e,t,n){return[[t.acMissing,Er(e)],[t.estimatesMissing,Ir(e)],[t.resolutionMissing,Ts(e,n)],[t.reviewerMissing,Vu(e)],[t.riskMissing,Yu(e)],[t.confidenceMissing,Xu(e)],[t.sprintMissing,Ju(e)],[t.releaseMissing,Qu(e)]].every(([o,i])=>o!==!0||i)}function ef(e,t){return Er(e)||Ir(e)||Ts(e,t)}function Ds(e,t,n){return xr(t)?!(!Zu(e,t,n)||t.metadataMissing&&!ef(e,n)):!0}var Cr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function tf(e,t){switch(t){case"acceptance_criteria":return!Er(e);case"estimated_minutes":return!Ir(e);case"resolution":return U(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return U(e.parent)!==void 0}}function nf(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function rf(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Is(){let e={};for(let t of Cr)e[t]={present:0,applicable:0,percent:100};return e}function xs(e,t,n){for(let r of Cr){if(!nf(t,r,n))continue;let o=e[r];o.applicable+=1,tf(t,r)&&(o.present+=1)}}function Cs(e){for(let t of Cr){let n=e[t];n.percent=rf(n.present,n.applicable)}}function $w(e,t){let n=Is(),r={};for(let o of e){xs(n,o,t);let i=r[o.type]??(r[o.type]=Is());xs(i,o,t)}Cs(n);for(let o of Object.values(r))Cs(o);return{overall:n,by_type:r}}var of={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function sf(e){return of[e]}function af(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function cf(e,t,n){switch(t){case"assignee":return[U(e.assignee)??null];case"parent":return[U(e.parent)??null];case"type":return[U(e.type)??null];case"status":return[U(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 Pw(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 cf(a,t,r)){let l=d??"\0empty",u=o.get(l);u||(u={label:d??sf(t),key:d,buckets:af(),total:0},o.set(l,u)),u.buckets[c]+=1,u.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 Be=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function be(e){return Array.isArray(e)&&e.length>0}function df(e){return typeof e=="string"&&e.trim().length>0}function lf(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 As(e,t){switch(t){case"notes":return be(e.notes);case"learnings":return be(e.learnings);case"files":return be(e.files);case"docs":return be(e.docs);case"tests":return be(e.tests);case"comments":return be(e.comments);case"deps":return be(e.dependencies);case"body":return df(e.body);case"linked_command":return lf(e.tests)}}function Ls(e){return Be.some(t=>e[t]!==void 0)}function Fs(e,t){for(let n of Be){let r=t[n];if(r===void 0)continue;let o=As(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Ms(e){return Be.some(t=>t!=="body"&&e[t]!==void 0)}function Ns(e){return e.body!==void 0}function Rs(e,t){return t===0?100:Math.round(e/t*1e3)/10}function uf(){let e={};for(let t of Be)e[t]={present:0,total:0,percent:100};return e}function Uw(e){let t=uf(),n=e.length;for(let s of e)for(let a of Be)As(s,a)&&(t[a].present+=1);for(let s of Be)t[s].total=n,t[s].percent=Rs(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:Rs(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]="ccdb7d16-4f38-58d4-a19d-4ab1516cb1d7")}catch{}})();var ff=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}),Os=[{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"}],Gs=e=>{let t=Os.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new y(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,h.USAGE);return Object.fromEntries(Os.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},$s=["priority","deadline","updated_at","created_at","title","parent"],Ps=["asc","desc"],Ks=new Set(Ko);function pf(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 y(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,h.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 mf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var gf=[{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"}],hf=[{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 Hs(e,t){for(let n of gf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function zs(e,t){for(let n of hf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function yf(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 _f(e){let t={};return Hs(t,e),t}function bf(e){let t={};return zs(t,e),t}var wf=[{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"}],kf=[{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"}],vf=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Ef="-7d";function If(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"),yf(c,n,wf),qs(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),zs(c,n),Hs(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),mf(a)&&(c.runtime_filters=a),c}function Ws(e,t,n){let r=M(e.status,n),o=M(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=x(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function xf(e,t){return[...e].sort((n,r)=>Ws(n,r,t))}function js(e,t){if(e!==void 0)return ae(e,new Date,t)}function at(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ae(n,new Date,t)}function Cf(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 y("Choose only one updated_at window: --today, --recent, or --updated-after.",h.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?at(Ef,"recent"):at(e.updatedAfter,"updated-after")}function qs(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Sf(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new y("--ids requires at least one non-empty item ID",h.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new y("--ids requires at least one non-empty item ID",h.USAGE);return new Set(n)}function Vs(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 y("Offset filter must be a non-negative integer",h.USAGE);return n}function Tf(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 y("List --fields requires a comma-separated list of field names",h.USAGE);return[...new Set(t)]}function Df(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,o=e.full===!0,i=Tf(e.fields);if(Number(n)+Number(r)+Number(o)+ +(i!==void 0)>1)throw new y("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",h.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return o?{mode:"full",fields:[]}:r?{mode:"brief",fields:[...kr]}:n?{mode:"compact",fields:[...wr]}:i?{mode:"fields",fields:[...new Set(i.map(a=>we(a)))]}:{mode:"full",fields:[]}}function we(e){return e.startsWith("item.")?e.slice(5):e}function Rf(e,t,n){if(e.mode!=="fields")return;let r=vr(t),o=new Set(r.map(s=>we(s))),i=e.fields.filter(s=>!o.has(we(s)));if(i.length>0)throw new y(`Unknown list --fields value(s): ${i.join(", ")}`,h.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:`pm ${n} --fields id,title,status --limit 10`,suggested_retry_args:[n,"--fields","id,title,status","--limit","10"]}})}var Af=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Lf(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Af.get(t);if(n)return n;if(!$s.includes(t))throw new y(`Sort field must be one of ${$s.join("|")} (aliases: updated->updated_at, created->created_at)`,h.USAGE);return t}function Ff(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Ps.includes(t))throw new y(`Sort order must be one of ${Ps.join("|")}`,h.USAGE);return t}function Mf(e){return Q(e,"--tree-depth")}function Nf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new y("Assignee filter must be one of assigned|unassigned",h.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new y(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,h.USAGE);return t}function Us(e,t){return Uo(e,t,{strict:!0})}function Ys(e){return st(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Of(e,t,n){let r=Ys(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 $f(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new y('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',h.USAGE);if(e!==void 0&&t==="unassigned")throw new y("Cannot combine --assignee with --assignee-filter unassigned",h.USAGE)}function Pf(e,t,n,r){let o=st(t.assignee,{label:"--assignee"}),i=Nf(t.assigneeFilter);$f(o,i);let s=ff(t),a=Gs(t);return{idsFilter:Sf(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:ws(t.type,n),tagFilters:Ys(t.tag),priorityFilter:ks(t.priority),deadlineBefore:js(t.deadlineBefore,"deadline-before"),deadlineAfter:js(t.deadlineAfter,"deadline-after"),updatedAfter:Cf(t),updatedBefore:at(t.updatedBefore,"updated-before"),createdAfter:at(t.createdAfter,"created-after"),createdBefore:at(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:st(t.sprint,{label:"--sprint"}),releaseFilter:st(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:xr(s),lifecycleClassifier:Ss(r),contentFieldFilters:a,contentFiltersActive:Ls(a)}}function jf(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&M(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 Uf(e,t){return ro(e,t)}function Bf(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 Gf(e,t,n){let r=e.parent?.trim().toLowerCase(),o=[...new Set([...n?.get(e.id.trim().toLowerCase())??[],...r?[r]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!o.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function Kf(e,t,n,r,o){return!(!jf(e,t,n)||!Uf(e,t)||!Bf(e,t)||!Gf(e,t,o)||t.missingMetadataActive&&!Ds(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Fs(e,t.contentFieldFilters)||!Nt(e,r))}function Hf(e,t,n,r,o,i,s){let a=Pf(t,n,r,o);return e.filter(c=>Kf(c,a,o,i,s))}function ct(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Bs(e,t,n,r){let o=e,i=typeof o.title=="string"?o.title:"",s=r??ct(typeof o.parent=="string"?o.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:n,tree_title:`${" ".repeat(t)}${i}`}}function zf(e,t){let n=new Map,r=new Map;for(let o of e){let i=o.id.trim().toLowerCase();n.set(i,o);let s=t?t.parents_by_child.get(i)??[]:[ct(o.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let c=r.get(a)??[];c.push(o),r.set(a,c)}}return{byId:n,childrenByParent:r}}function Wf(e,t,n,r,o){return t?[...r.get(t.toLowerCase())??[]]:e.filter(i=>(o?o.parents_by_child.get(i.id.trim().toLowerCase())??[]:[ct(i.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function qf(e,t,n,r,o=e){let{byId:i,childrenByParent:s}=zf(e,r),a=Wf(e,t,i,s,r),c=[],d=new Set,l=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),u=[...a].reverse().map(f=>({node:f,depth:0,parentId:t===void 0?void 0:l.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:f,depth:m,parentId:p}=u.pop(),g=f.id.trim().toLowerCase();if(d.has(g))continue;d.add(g);let _=s.get(g)??[];if(c.push(Bs(f,m,_.length,p)),!(n!==void 0&&m>=n))for(let k of[..._].reverse())u.push({node:k,depth:m+1,parentId:l.get(g)})}if(t===void 0&&n===void 0)for(let f of e){let m=f.id.trim().toLowerCase();d.has(m)||(d.add(m),c.push(Bs(f,0,s.get(m)?.length??0)))}return c}function Vf(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Yf(e,t){return e===t?0:e===null?1:t===null?-1:x(e,t)}function Xf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Yf(e.deadline??null,t.deadline??null);case"updated_at":return x(e.updated_at,t.updated_at);case"created_at":return x(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Vf(e.parent??null,t.parent??null);default:return 0}}function Jf(e,t,n,r){return t?[...e].sort((o,i)=>{let s=Xf(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=Ws(o,i,r);return n==="desc"?-a:a}):xf(e,r)}function Qf(e,t,n=!1){let r=we(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 Xs(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Qf(r,i,n);return o})}function Zf(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function ep(e,t){if(e.noTruncate!==!0)return Q(e.limit)??(t>=1e4?20:void 0)}function tp(e,t,n){return t.after===void 0?Vs(t.offset)??0:Te(e,t.after,n,r=>r.id)}function Js(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function np(e,t){let n=D(process.cwd(),t.path);await O(n);let r=await L(n),o=q(r.schema),i=Et(r.schema),s=e.projectionCommand??"list",a=Df(e,s);return Rf(a,Zf(i.definitions),s),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:Mt(e,i,"list"),typeRegistry:A(r,S()),projection:a}}async function rp(e,t,n){let r=t.projection.fields.some(c=>we(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>Ks.has(we(c))),i=Gs(e),s=Ms(i),a=Ns(i);return e.includeBody||r||a?await qo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await Wo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ne(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function op(e){let t=Lf(e.sort),n=Ff(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new y("List --tree-depth requires --tree",h.USAGE);if(!t&&e.order!==void 0)throw new y("List --order requires --sort",h.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Mf(e.treeDepth):void 0,parentRoot:r?ct(e.parent):void 0}}function ip(e,t,n){let r=Us(t.status,n),o;t.lifecycleBucket==="in_progress"?o=[n.in_progress_status]:t.lifecycleBucket==="open"&&(o=[...n.active_statuses].filter(d=>d!==n.in_progress_status).sort((d,l)=>d.localeCompare(l)));let i=r??o??Us(e,n),s=jo(t.status),a=r||s?{...t,excludeTerminal:!1}:t,c="all";return s?c="all":r!==void 0?c=r.length===1?r[0]:r:t.lifecycleBucket!==void 0?c=t.lifecycleBucket:i!==void 0?c=i.length===1?i[0]:i:a.excludeTerminal===!0&&(c=null),{resolvedStatus:i,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:c}}function sp(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new y("List --after cannot be combined with --offset.",h.USAGE);let i=ep(t,e.length),s=tp(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=Xs(a,n,r),d=e.length,l=a.length>0&&s+a.length<d,u=l&&a.length>0?te(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:Js(i,l,u)}}function Qs(e,t,n){return ue("list",{status:e,options:Ct(t,Vo),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function ap(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","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(p=>{let g=we(p);return g==="body"||Ks.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,po(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([p,g])=>g!==void 0&&!i.has(p))].includes(!0))return null;let c=await Ae(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=Q(t.limit),l=Vs(t.offset)??0,u=await Go({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:l}});if(!u)return null;let f=u.items.length>0&&l+u.items.length<u.total,m=f?te(Qs(r.filtersStatus,t,o),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:Xs(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Js(d,f,m)}}function cp(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 l=n;for(let u of kf){let f=l[u.optionKey];f!=null&&(d[u.summaryKey]=f)}for(let u of vf)l[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,bf(n),_f(n)),qs(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!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 dt(e,t,n){let r=await np(t,n),o=[],i=op(t),s=ip(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await ap({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let g=await rp(t,r,o),k=i.treeEnabled||ct(t.parent)!==void 0?zn(vi(g,B())):void 0;Of(g,t.tag,o);let b=Hf(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,k?.parents_by_child),w=t.dependencyBlocked===!0?(()=>{let F=ot(g,r.statusRegistry);return b.filter(N=>F.has(N.id.trim().toLowerCase()))})():b,v=Jf(w,i.sortField,i.sortOrder,r.statusRegistry),I=i.treeEnabled?qf(v,i.parentRoot,i.treeDepth,k,g):v;d=sp(I,t,r.projection,i.treeEnabled,Qs(s.filtersStatus,t,i))}let l=H(),u=[...new Set(o)].sort((g,_)=>g.localeCompare(_)),f=pf(u,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=If({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:g,projection:{mode:"compact",fields:m},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:cp({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:m},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}import{encode as dp}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47de55f1-589f-5743-bcb8-3b7a6302dfbb")}catch{}})();var Sr=["agenda","day","week","month"],Tr=["markdown","toon","json"],lp=["sun","mon","tue","wed","thu","fri","sat"],up=365,fp=365,ta=28,pp=1e3;function Dr(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new y(`${t} must be a non-negative integer`,h.USAGE);return n}function mp(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 y("Calendar include filter must not be empty",h.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 y("Calendar include filter must be deadlines|reminders|events|scheduled|all",h.USAGE)}return r}function na(e,t){let n;for(let r of t){let o=oo(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function gp(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Sr.includes(t)){let n=na(t,Sr);throw new y(`Calendar view must be one of ${Sr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function hp(e){if(!e)return;let t=e.trim().toLowerCase();if(!Tr.includes(t)){let n=na(t,Tr);throw new y(`Calendar format must be one of ${Tr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function vk(e,t){let n=hp(e.format);if(t.json&&n&&n!=="json")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?"json":n??"markdown"}function yp(e,t){if(e===void 0)return;let n=V(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new y(`Calendar status filter must be one of ${r.join("|")}`,h.USAGE)}return n}function _p(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new y("Calendar assignee filter must be one of assigned|unassigned",h.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new y(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,h.USAGE);return t}function fn(e){return new Date(e).toISOString().slice(0,10)}function ra(e,t){if(!t||t==="UTC")return fn(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 fn(e)}function Fr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function de(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function oa(e){let t=new Date(Fr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return de(t.toISOString(),r)}function bp(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function wp(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function kp(e,t){return x(e,t)>=0?e:t}function Zs(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function ea(e,t){e.set(t,(e.get(t)??0)+1)}function vp(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)=>Ie(r)-Ie(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 ia(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 sa(e){return lp[new Date(e).getUTCDay()]}function Ep(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Ip(e){let t=new Set;for(let n of e??[]){let r=Ep(n);r&&t.add(r)}return t}function xp(e,t,n,r,o){let i=e??de(n,-(r??fp)),s=t??de(e??n,o??up);return{start:i,end:x(s,i)>0?s:de(i,1)}}function Cp(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[sa(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??pp,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Ip(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)=>Ie(s)-Ie(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function pn(e,t){return x(t,e.startAt)<0?"continue":e.until&&x(t,e.until)>0||x(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,x(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function mn(e,t){let n=sa(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Sp(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(mn(e,t)&&pn(e,t)==="stop");n+=1)t=de(t,e.interval);return e.occurrences}function Tp(e,t,n){let r=Ie(n),o=de(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 Dp(e){let t=oa(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=de(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Tp(e,r,o);if(mn(e,i)&&pn(e,i)==="stop")return e.occurrences}}return e.occurrences}function Rp(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=ia(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!mn(e,s))&&pn(e,s)==="stop")return e.occurrences}}return e.occurrences}function Ap(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=ia(o,n,i,e.startDate);if(!(!s||!mn(e,s))&&pn(e,s)==="stop")return e.occurrences}}return e.occurrences}function Lp(e,t,n,r){let o=Cp(e,t,n,r);return t.freq==="daily"?Sp(o):t.freq==="weekly"?Dp(o):t.freq==="monthly"?Rp(o):Ap(o)}function aa(e){return[...e].sort((t,n)=>{let r=x(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 Mr(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 Fp(e){return e.deadline?{at:e.deadline,date:fn(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,...Mr(e),item_deadline:e.deadline}:null}function Mp(e){return(e.reminders??[]).map(t=>({at:t.at,date:fn(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,...Mr(e)}))}function Np(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Op(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function $p(e,t,n,r){let o=vp(t.recurrence),i=Np(t.start_at,t.end_at);return(t.recurrence?Lp(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):ra(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Op(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,...Mr(e)}))}function Pp(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Fp(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Mp(i));for(let a of n.has("events")?i.events??[]:[])o.push(...$p(i,a,t,r))}return aa(o)}function jp(e,t,n,r,o){let i=pi(t.type,n),s=t.tag?.trim().toLowerCase(),a=jt(t.priority),c=yp(t.status,r),d=t.assignee?.trim(),l=_p(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new y('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',h.USAGE);if(d!==void 0&&l==="unassigned")throw new y("Cannot combine --assignee with --assignee-filter unassigned",h.USAGE);return e.filter(m=>Up(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:o}))}function Up(e,t){return Bp(e,t)&&Gp(e,t)&&Nt(e,t.runtimeFieldFilters)}function Bp(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 Gp(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 Kp(e,t,n){return!(t&&x(e.at,t)<0||n&&x(e.at,n)>=0)}function Rr(e,t,n){return e.trim().toLowerCase()==="today"?Fr(t):ae(e,new Date(t),n)}function Hp(e,t,n){let r=t.date?Rr(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?Rr(t.from,n,"--from"):void 0,a=t.to?Rr(t.to,n,"--to"):void 0;if(s&&a&&x(s,a)>=0)throw new y("Calendar --from must be before --to",h.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new y("--from and --to are only supported for --view agenda",h.USAGE);if(e==="agenda")return zp(r,t,n,o,i,s,a);if(e==="day"){let d=Fr(r);return Ar(r,n,o,i,d,de(d,1))}if(e==="week"){let d=oa(r);return Ar(r,n,o,i,d,de(d,7))}let c=bp(r);return Ar(r,n,o,i,c,wp(r))}function zp(e,t,n,r,o,i,s){if(o)throw new y("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",h.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function Ar(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:kp(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Wp(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:aa(r)}))}function qp(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),ea(n,c.item_type),ea(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:Zs(n),by_status:Zs(r),recurring_events:a}}function Vp(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function ca(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 Lr(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Yp(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===ra(e.event_end,e.event_timezone)?ca(e.event_end,e.event_timezone):e.event_end:null}function Xp(e){let t=`${ca(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=Yp(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 Ek(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Vp(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: ${Lr(e.summary.by_kind)}`),t.push(`- by-type: ${Lr(e.summary.by_type)}`),t.push(`- by-status: ${Lr(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(`- ${Xp(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 Jp(t.join(`
3
+ `))}function Ik(e){return dp(e)}function Jp(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function Qp(e){let t=H(),n=gp(e.view),r=Hp(n,e,t),o=Q(e.limit),i=mp(e.include),s=Dr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Dr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Dr(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new y("Calendar occurrence limit must be >= 1",h.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,u=d&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:u?ta:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function Zp(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${ta}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function em(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 tm(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 da(e,t){let n=D(process.cwd(),t.path);await O(n);let r=Qp(e),o=await L(n),i=q(o.schema),s=Et(o.schema),a=Mt(e,s,"calendar"),c=A(o,S()),d=[];Zp(d,r.eventsOnlyCapApplied);let l=await ne(n,o.item_format,c.type_to_folder,d,o.schema),u=jp(l,e,c,i,a),f=xp(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=Pp(u,f,r.includeSources,r.occurrenceLimit).filter(b=>Kp(b,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?p:p.slice(0,r.limit),_=Wp(g),k=[...new Set(d)].sort((b,w)=>b.localeCompare(w));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:tm(e,r.rangeBounds),filters:em(e,a),summary:qp(g),events:g,days:_,...k.length>0?{warnings:k}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="377499d7-13b3-55f0-9d44-425bfcaf7964")}catch{}})();var la="1970-01-01T00:00:00.000Z";function lt(e){if(typeof e!="string")return null;let t=e.trim();if(!no(t)&&!/^\d{4}-\d{2}-\d{2}$/u.test(t))return null;try{return ae(t,new Date(Number.NaN),"context signal recency coordinate")}catch{return null}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80a03884-711e-5170-a3c1-f05ccb065702")}catch{}})();var Nr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],nm=Symbol("no-context-author"),rm=Symbol("no-item-assignee");function ua(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function om(e){if(typeof e!="string")return;let t=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),o=Number(t[3]),i=new Date(Date.UTC(n,r-1,o));return i.getUTCFullYear()===n&&i.getUTCMonth()===r-1&&i.getUTCDate()===o?i.toISOString():void 0}function im(e){let t=om(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:lt(e.created_at)??la}}function sm(e){if(!["substantive_history","release_cohort","created_at"].includes(e.source)||(e.source==="substantive_history"?e.history_op!==void 0&&typeof e.history_op!="string"||e.event_class!==void 0&&e.event_class!=="substantive":e.history_op!==void 0||e.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");let t=lt(e.coordinate);if(t===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...e,coordinate:t}}function am(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 cm(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 dm(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 gn(e,t,n){return e?.[t]??n}function hn(e,t){let n=new Map(e.map(d=>{let l=t.recencyEvidence?.[d.id];return[d.id,l===void 0?im(d):sm(l)]})),r=[...e].sort((d,l)=>{let u=n.get(d.id).coordinate,f=n.get(l.id).coordinate;return x(f,u)||d.id.localeCompare(l.id)}),o=new Map(r.map((d,l)=>[d.id,l])),i=Math.max(e.length-1,1),s=ua(t.author,nm),a=V("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let l=ua(d.assignee,rm)===s,u=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signal_provenance:{recency:n.get(d.id)},signals:{recency:e.length===1?1:1-o.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:gn(t.graphProximity,d.id,d.parent?.3:0),claim_focus:gn(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:am(d.priority,4),risk_pressure:dm(d.risk),deadline_pressure:cm(d.deadline,c),knowledge_density:gn(t.knowledgeDensity,d.id,Math.min(u/5,1)),author_affinity:gn(t.authorAffinity,d.id,l?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var lm="context_relevance",um={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},fm=new TextEncoder;function pm(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"||!Nr.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 mm(e){let t={...um};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Nr.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 pa(e,t={}){pm(e);let n=mm(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=Nr.filter(a=>o.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},l={},u=0,f=0;for(let m of i){let p=d[m];if(p===void 0)continue;let g=p*n[m];l[m]=g,u+=g,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:u/f,contributions:l}});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 gm(e,t={}){let n=pa(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 yn(e,t,n={}){let r=pa(t,n),o=await mo(lm,{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 gm(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 hm=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function fa(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function ym(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,l)=>l-d).slice(0,n.length||1),o=d=>d.reduce((l,u,f)=>l+(2**u-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:fa(e.required_ids??[],a),continuity_coverage:fa(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function _m(e){return Math.ceil(fm.encode(JSON.stringify(e)).byteLength/4)}function bm(e){return Math.round(e*1e4)/1e4}function wm(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 km(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:o}=wm(n,e.surface),i={...n,ranking:void 0},s=_m(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:ym({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 vm(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=hm;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,bm(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 Lk(e,t,n){let r=[];for(let o of e)r.push(await km(o,t));return vm(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 Em={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Im=["identity","summary","full"];function xm(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=Im.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 Cm(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=Em[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 Sm(e){let t=new Set;for(let n of e){if(xm(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function Tm(e,t,n,r,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],l=n(c)/c.token_costs.identity,u=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(l>u||l===u&&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 Dm(e){let t=new Set,n=[],r=e.tokenBudget,o=d=>{let l=d.lineage??d.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*u)},i=d=>{let l=d.token_costs.identity;n.push({...d,projection:"identity",tokens:l,marginal_value:o(d)}),r-=l;let u=d.lineage??d.cluster;u&&t.add(u)};for(let d of e.ordered.filter(l=>l.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=Tm(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 Rm(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 ma(e,t){let n=Cm(t),r=Sm(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Dm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Rm(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let d=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!d.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import ut from"node:fs/promises";import ft from"node:path";import{createHash as ga,randomUUID as Am}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b112b71-e0b8-5502-89f6-b4da6eb85f6b")}catch{}})();var Or=3,$r=2,ha=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Lm=new Set(["substantive_history","release_cohort","created_at"]),Fm={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function Ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ya(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Mm(e){let t={};for(let n of ha){let r=e[n];if(r!==void 0){if(!ya(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Nm(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 Om(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 _a(e,t){return{...t,activityDensity:t.activityDensity??Nm(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Om(e)}}function Ur(e){let t=ga("sha256");for(let{id:n,signal_provenance:{recency:r}}of[...e].sort((o,i)=>o.id.localeCompare(i.id)))t.update(JSON.stringify([n,r.source,r.coordinate,r.history_op??null,r.event_class??null]));return`sha256:${t.digest("hex")}`}function $m(e){if(!Ge(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",Ge(e.signals),Ge(t)].every(Boolean))return null;let n=t.recency;if(!Ge(n))return null;let r=lt(n.coordinate);if(r===null)return null;let o=new Set(ha),i=Object.entries(e.signals);return!i.every(([s,a])=>o.has(s)&&ya(a))||![typeof n.source=="string"&&Lm.has(n.source),["undefined","string"].includes(typeof n.history_op),[void 0,"substantive","maintenance"].includes(n.event_class),n.source==="substantive_history"?n.event_class===void 0||n.event_class==="substantive":n.history_op===void 0&&n.event_class===void 0].every(Boolean)?null:{id:e.id,signals:Object.fromEntries(i),signal_provenance:{recency:{source:n.source,coordinate:r,history_op:n.history_op,event_class:n.event_class}}}}function Pm(e,t){let n=Array.from(e,$m);if(n.some(o=>o===null))return null;let r=n;return new Set(r.map(o=>o.id)).size!==r.length||r.some(o=>o.id.trim().length===0)||t!==Ur(r)?null:r.sort((o,i)=>o.id.localeCompare(i.id))}function jm(e){if(!Ge(e)||e.format_version!==Or||e.signal_set_version!==$r||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.recency_evidence_fingerprint!="string"||!/^sha256:[a-f0-9]{64}$/u.test(e.recency_evidence_fingerprint)||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=Pm(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:Or,signal_set_version:$r,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function ba(e){if(typeof e.sourceCursor!="string"||e.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(e.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(e.source!=="derived_index"&&e.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback")}function wa(e,t,n=Ur(e)){let r=e.map(({id:i})=>i);if(new Set(r).size!==r.length||r.some(i=>i.trim().length===0))throw new TypeError("Context signal snapshot item IDs must be unique and non-empty");let o=e.map(({id:i,signals:s,signal_provenance:a})=>({id:i,signals:Mm(s),signal_provenance:a})).sort((i,s)=>i.id.localeCompare(s.id));return Object.freeze({format_version:Or,signal_set_version:$r,source_cursor:t.sourceCursor,recency_evidence_fingerprint:n,generated_at:t.now,source:t.source,items:Object.freeze(o.map(i=>Object.freeze(i)))})}function Kk(e,t){return ba(t),wa(hn(e,_a(e,t)),t)}var Pr=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=ft.resolve(t)}async read(){try{return JSON.parse(await ut.readFile(this.filePath,"utf8"))}catch(t){if(Ge(t)&&wt(t))return null;throw t}}async write(t){let n=ft.dirname(this.filePath);await ut.mkdir(n,{recursive:!0});let r=ft.join(n,`.${ft.basename(this.filePath)}.${Am()}.tmp`);try{await ut.writeFile(r,`${JSON.stringify(t)}
5
+ `,{encoding:"utf8",flag:"wx"}),await ut.rename(r,this.filePath)}finally{try{await ut.rm(r,{force:!0})}catch{}}}},jr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){ba(n);let r=[],o=null;try{let f=await this.adapter.read();o=jm(f),f!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(f=>f.id).sort((f,m)=>f.localeCompare(m)),s=o?.items.map(f=>f.id)??[],a=hn(t,_a(t,n)),c=Ur(a),d=o!==null&&o.source_cursor===n.sourceCursor&&o.recency_evidence_fingerprint===c&&o.source===n.source&&s.length===i.length&&s.every((f,m)=>f===i[m]),l;if(d&&o!==null)l=o;else{o!==null&&r.push("context_signal_store_stale"),l=wa(a,n,c);try{await this.adapter.write(l)}catch{r.push("context_signal_store_write_failed")}}let u=new Map(l.items.map(f=>[f.id,f]));return{snapshot:l,candidates:a.map(f=>({...f,signals:{...f.signals,...u.get(f.id)?.signals},signal_provenance:u.get(f.id).signal_provenance})),cache_status:d?"fresh":"rebuilt",warnings:r,warning_details:r.map(f=>Fm[f])}}};function Um(e){let t=ga("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 _n(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 Ae(t.pmRoot),i=t.sourceCursor??o?.source_cursor??Um(e),s=t.source??(o===null?"scan_fallback":"derived_index"),a=new jr(new Pr(ft.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),c=t.recencyEvidence??Object.fromEntries(Object.entries(await xo(t.pmRoot,e.map(d=>d.id))).map(([d,l])=>[d,{source:"substantive_history",coordinate:l.entry.ts,history_op:l.entry.op,event_class:"substantive"}]));return a.readOrRebuild(e,{...t,recencyEvidence:c,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 Bm(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 Gm(e,t,n){let r,o;for(let i of t){let s=Bm(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 ka(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 zk(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=Gm(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Km from"node:path";import{createHash as Hm}from"node:crypto";import zm from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var va=1,Wm=1e4,Ea=12;function qm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Vm(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 Ym(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 Xm(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(i=>t.statusRegistry.terminal_done_statuses.has(C(i.status,t.statusRegistry))).map(i=>{let s=ka(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=qm(a.timestamp),d=`epoch:${c}`,l=o.get(d)??{kind:"epoch",key:c,label:c,items:[]};l.items.push(i),o.set(d,l);let u=Vm(s,r);if(u){let f=`epic:${u.id}`,m=o.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};m.items.push(i),o.set(f,m)}}return{format_version:va,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(Ym).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function Jm(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 Qm(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(Jm)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Zm(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==va||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(Qm)?t:null}function eg(e){return`scan:${Hm("sha256").update(xe(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function tg(e,t,n){return n!==void 0?n:(await Ae(t))?.source_cursor??eg(e)}async function ng(e){try{let t=Zm(JSON.parse(await zm.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&wt(t))}}}async function Ia(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Wm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await tg(e,t.pmRoot,t.sourceCursor),o=Km.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await ng(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=Xm(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await W(o,`${JSON.stringify(c)}
6
+ `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function rg(e,t,n=Ea){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 xa(e,t,n=Ea){if(e.snapshot===null)return;let r=rg(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 og(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 tv(e,t,n=5){let r=og(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var Ca=16;async function Sa(e,t,n){let r=A(t,S()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<Ca;){let a=s.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let c=await fe(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await pe(c,{schema:t.schema});o.push(d.document.metadata.id),s=d.document.metadata.parent}return o}async function av(e){await bo({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Sa(e.pmRoot,e.settings,e.itemId)})}async function cv(e){await wo(e)}async function dv(e){await ko({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Sa(e.pmRoot,e.settings,e.itemId)}:{}})}var lv={lineage_depth:Ca,active_items:64,evidence_rows:32};function Ta(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4f8e82a2-f4ea-5ecb-8ef5-3ca795cdeda5")}catch{}})();var ig=["markdown","toon","json","ndjson"],bn=new Set(["Epic","Feature"]),Fa=10,Ma=1e4,Na=["hierarchy","activity","progress","recently_created","unparented","workload"],sg=[...Na,"blockers","files","staleness","tests"],ag=/^(\d{4})-(\d{2})-(\d{2})/,cg=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,dg=/^(\d{4})(\d{2})(\d{2})$/,lg=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function ug(e){if(!e)return;let t=e.trim().toLowerCase();if(!ig.includes(t))throw new y("Context format must be one of markdown|toon|json|ndjson",h.USAGE);return t}var Da=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 fg(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Da.has(r))throw new y(`Context --fields value not projectable: ${r} (valid: ${[...Da].join(", ")})`,h.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new y("Context --fields requires at least one field name",h.USAGE);return t}function pt(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function Rv(e,t){let n=ug(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function pg(e,t){return Q(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Fa)}function Kr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new y("--token-budget must be a positive integer",h.USAGE);return n}function mg(e,t){return t>=Ma&&e===Number.MAX_SAFE_INTEGER?Fa:e}function gg(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Cn.includes(n))throw new y(`Context --depth must be one of ${Cn.join("|")}`,h.USAGE);return n}function hg(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!kt.includes(s))throw new y(`Context --section must be one of ${kt.join("|")}`,h.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...kt]:(t==="deep"?sg:Na).filter(o=>n.sections[o])}function yg(e,t){return e?Q(e,"--activity-limit")??t.activity_limit:t.activity_limit}function _g(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new y("--stale-threshold must be a number of days (e.g. 7 or 7d)",h.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new y("--stale-threshold must be positive",h.USAGE);return o}function Ra(e,t){let n=C(e,t),r=V("blocked",t),o=V("draft",t);return n===t.in_progress_status?0:t.active_statuses.has(n)?1:r&&n===r?2:o&&n===o?3:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function mt(e,t){let n=V("closed",t);return C(e,t)===n}function Hr(e,t){return C(e,t)===t.in_progress_status}function Oa(e,t){let n=C(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function bg(e,t){return t.blocked_statuses.has(C(e,t))}var wg=["compact","brief","fields","includeBody","include_body","parent"];function kg(e){let t={...e};for(let n of wg)delete t[n];return t}function zr(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=Ke(e),i=gt(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function vg(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new y("Context --parent requires an item id",h.USAGE);return t}function Eg(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Ig(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:x(n,r)}function xg(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Cg(e){let t=ag.exec(e)??cg.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<=xg(n,r-1)}function Sg(e){let t=dg.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=lg.exec(e);if(n){let[,r,o,i,s,a,c,d]=n,l=c?`:${c}`:"",u=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${o}-${i}T${s}:${a}${l}${u}`}return e}function $a(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Cg(t))return Number.NaN;let n=Date.parse(Sg(t));return Number.isFinite(n)?n:Number.NaN}function Gr(e){let t=$a(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Tg(e){let t=$a(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Wr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ke(e,t,n){let r=Ra(e.status,n)-Ra(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Eg(e.order,t.order);if(i!==0)return i;let s=Ig(e.deadline,t.deadline);if(s!==0)return s;let a=x(Gr(t.updated_at),Gr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function Br(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function qr(e,t,n=new Set,r="context"){return ma(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:Br({id:o.id,title:o.item.title}),summary:Br({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:Br(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Vr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Yr(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(o=>n.has(o.id));return{model:e.model,available_signals:e.available_signals,items:r.map(o=>({id:o.id,rank:o.rank,baseline_rank:o.baseline_rank,score:o.score,contributions:o.contributions,...o.signal_provenance===void 0?{}:{recency:o.signal_provenance.recency}})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Pa(e,t){return t>0?Math.round(e/t*100):0}function Ke(e){let t=new Map;for(let n of e){let r=Wr(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function ht(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:Wr(e.parent)};if(t&&n){let o=gt(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>mt(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=Pa(s,i)}}return r}function Dg(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 wn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Rg(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Ag(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=Ke(e),s=new Set(t.filter(c=>bn.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let l=gt(c,i),u=i.get(c)??[],f=0,m=0,p=0,g=0;for(let k of l)mt(k.status,n)?f++:Hr(k.status,n)?p++:bg(k.status,n)?g++:Oa(k.status,n)&&m++;let _=u.sort((k,b)=>ke(k,b,n)).slice(0,r).map(k=>{let b=gt(k.id,i),w=b.filter(v=>mt(v.status,n)).length;return{id:k.id,title:k.title,type:k.type,status:k.status,children_total:b.length,children_closed:w}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:l.length,children_closed:f,children_open:m,children_in_progress:p,children_blocked:g,children:_})}return a.sort((c,d)=>{let l=o.get(c.id),u=o.get(d.id);return ke(l,u,n)}).slice(0,r)}function gt(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 Lg(e,t){return(await _i({compact:!0,limit:String(e)},t)).compact_activity??[]}function Fg(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=>bn.has(c.type)),a=[];for(let c of s){let d=gt(c.id,i),l=d.length;if(l===0)continue;let u=0,f=0,m=0,p=0;for(let g of d)mt(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?p++:Hr(g.status,r)?m++:Oa(g.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:l,closed:u,open:f,in_progress:m,blocked:p,completion_pct:Pa(u,l)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Mg(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=un(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 Ng(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 Og(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=>Hr(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function $g(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 Pg(e,t,n,r){return e.map(o=>({item:o,sortKey:Gr(o.created_at)})).sort((o,i)=>{let s=x(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...ht(o,t,n),created_at:o.created_at}))}function jg(e,t,n,r){return e.filter(o=>!Wr(o.parent)&&!bn.has(o.type)).sort((o,i)=>ke(o,i,t)).slice(0,r).map(o=>ht(o,t,n))}function Ug(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 l of c)r+=l.passed??0,o+=l.failed??0,i+=l.skipped??0,(l.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 Aa(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function ja(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 Bg(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Gg(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`${Aa(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Aa(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 La(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 Kg(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 Hg(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(`- ${Gg(n)}`);e.push("")}function zg(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 Wg(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 qg(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)}`:`- ${Tg(o.created_at)} ${ja(o)}`);e.push("")}}function Vg(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 Yg(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 Xg(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 Jg(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 Qg(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 Zg(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 eh(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 th(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 Av(e){let t=[],n=e.focus_fields,r=i=>n?Bg(i,n):ja(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(""),La(t,"High-level focus",e.high_level,"No high-level active items.",r),La(t,"Low-level focus",e.low_level,"No low-level active items.",r),Kg(t,e,r),Hg(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 zg(t,e),Wg(t,e),qg(t,e,n,r),Vg(t,e,r),Yg(t,e),Xg(t,e),Jg(t,e),Qg(t,e),Zg(t,e),eh(t,e),th(t,e),t.join(`
7
+ `)}async function nh(e,t){let n=D(process.cwd(),t.path),r=await L(n),o=r.context??to.context,i=q(r.schema),s=gg(e.depth,o),a=pg(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:hg(e.section,s,o),activityLimit:yg(e.activityLimit,o),staleThresholdDays:_g(e.staleThreshold,o),parentScope:vg(e.parent),focusFields:fg(e.fields),baseListOptions:kg(e)}}function rh(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function oh(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function ih(e,t){let n=await dt(void 0,oh(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,o=r.filter(a=>!M(a.status,t.statusRegistry)),i=r,s=sh(t.parentScope,r);return s&&(o=o.filter(a=>s.has(a.id.trim().toLowerCase())),i=i.filter(a=>s.has(a.id.trim().toLowerCase()))),{listed:n,listedItemMetadata:o,allItems:i,fullCorpus:r,subtreeIds:s}}function sh(e,t){if(e===void 0)return;let n=zr(t,e);if(!n.found)throw new y(`Context --parent item not found: ${e}`,h.NOT_FOUND);return n.ids}function ah(e,t,n,r){let o=new Set(it(e,t,n,r).containers.map(i=>i.item.id));return new Set(e.filter(i=>bn.has(i.type)||o.has(i.id)||ge(i.type,r)!=="agent").map(i=>i.id))}async function ch(e,t,n,r,o,i,s,a,c,d,l,u,f,m,p,g){let _=[...e].sort((E,Ee)=>ke(E,Ee,o)),k=await At({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await _n(_,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:k.affinity,claimFocus:p}),w=await yn("context",b.candidates),v=w.ranked.map(E=>E.item),I=o.active_statuses,F=v.filter(E=>I.has(C(E.status,o))),N=u?Te(F,d,l,E=>E.id):0,R=u?F.slice(N,N+s):F,le=u&&R.length>0&&N+R.length<F.length,P=le&&R.length>0?te(l,R[R.length-1].id,N+R.length-1):void 0,G=v.filter(E=>r.has(E.id.trim().toLowerCase())),X=new Set([...R.map(E=>E.id),...G.slice(0,s).map(E=>E.id)]),ee=qr({...w,ranked:w.ranked.filter(E=>X.has(E.id))},m,new Set(Object.entries(p??{}).filter(([,E])=>E>=1).map(([E])=>E))),ie=ee.included.map(E=>E.item),z=ie.filter(E=>I.has(C(E.status,o))),K=ie.filter(E=>r.has(E.id.trim().toLowerCase())),He=Ke(t),ve=rh(i)?He:void 0,vn=new Map(n.map(E=>[E.id.trim().toLowerCase(),E])),$=E=>{let Ee=ht(E,o,ve);return r.has(E.id.trim().toLowerCase())&&(Ee.blocked=!0,Ee.blocker_ids=un(E,vn,o).filter(En=>!En.resolved).map(En=>En.id)),Ee},j=ah(z,n,o,g),Za=z.filter(E=>j.has(E.id)).slice(0,u?R.length:s).map($),ec=z.filter(E=>!j.has(E.id)).slice(0,u?R.length:s).map($),Qr=F.length===0;return{activeItems:z,blockedItems:K,highLevel:Za,lowLevel:ec,blockedFallback:Qr?K.slice(0,s).map($):[],blockedFallbackUsed:Qr,ranking:w,packing:ee,featureStore:b,pageExtras:{...u?{applied_limit:s}:{},...le?{has_more:!0,truncated:!0}:{},...P?{next_cursor:P}:{}}}}function dh(e){return ue("context",Ct(e,Yo))}function lh(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Ma}async function uh(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await da(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Rg(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:Dg(a)}}function Ua(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function fh(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=Ke(n),d=n.filter(u=>!M(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Ag(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Lg(t.activityLimit,a):void 0,progress:l("progress")?Fg(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Mg(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Pg(d,t.statusRegistry,c,t.limit):void 0,unparented:l("unparented")?jg(d,t.statusRegistry,c,t.limit):void 0,filesSection:l("files")?Ng(i.activeItems,t.limit):void 0,workload:l("workload")?Og(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?$g(d,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Ug(i.activeItems):void 0}}function ph(e,t,n){let r=V("canceled",t),o=e.filter(s=>t.active_statuses.has(C(s.status,t))),i=Ua(o,t.in_progress_status,t);return{scope:"matching_items",active_items:o.length,open:o.length-i,in_progress:i,blocked:e.filter(s=>n.has(s.id.trim().toLowerCase())).length,total_items:e.length,closed:e.filter(s=>mt(s.status,t)).length,canceled:e.filter(s=>C(s.status,t)===r).length}}function mh(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function gh(e,t){t&&(e.focus_fields=t,e.high_level=pt(e.high_level,t),e.low_level=pt(e.low_level,t),e.blocked_fallback=pt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=pt(e.recently_created,t)),e.unparented&&(e.unparented=pt(e.unparented,t)))}function hh(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 yh(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 _h(e,t,n,r){try{let o=new Set(t.packing.included.map(c=>c.id)),i=t.ranking.ranked.map(c=>({id:c.id,rank:c.rank,included:o.has(c.id)})),s=new Set(i.map(c=>c.id));for(let c of Dt(e,"context"))s.has(c)||(i.push({id:c,rank:i.length+1,included:!1}),s.add(c));let a=await Rt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Tt(e,a)}catch{e.warnings=wn(e.warnings,["context_usage_feedback_write_failed"])}}async function bh(e,t,n){if(e)return{};let o=(await uo({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 wh(e,t){let n=vo(),r=await yo(e),o=n.instance||_o(t);return Ta(r.semantic_attribution?.[o])}async function Lv(e,t){let n=D(process.cwd(),t.path),r=await nh(e,t),o=await ih(t,r),i=mg(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:Kr(e.tokenBudget,Math.max(256,i*160))},a=he(void 0,s.settings.author_default),c=await wh(n,a),d=bh(e.noExtensionHealth===!0,n,s.settings),l=ot(o.fullCorpus,s.statusRegistry),u=await ch(o.listedItemMetadata,o.allItems,o.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,H(),a,e.after,dh(e),lh(e,o.fullCorpus.length),n,s.tokenBudget,c,A(s.settings,S())),f=await uh(t,s,o.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(v=>v.id))),m=await Ia(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),p=wn(o.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],m.warnings),g=Ua(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),_=u.activeItems.length-g,k=await fh({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),b=ph(o.allItems,s.statusRegistry,l),w={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{returned_focus:{active_items:u.activeItems.length,in_progress:g,open:_,blocked:u.blockedItems.length},blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...b},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return w.workspace_memory=xa(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),mh(w,k,u.featureStore.warning_details),hh(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=Yr(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(v=>v.id))),w.packing=Vr(u.packing)),gh(w,s.focusFields),p.length>0&&(w.warnings=p),yh(w,u.activeItems,u.blockedItems),await _h(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]="6035e85b-81ed-512e-b291-b0d86af1848b")}catch{}})();var kh=["markdown","toon","json"],vh=5,Eh=1440*60*1e3;function Ih(e){if(!e)return;let t=e.trim().toLowerCase();if(!kh.includes(t))throw new y("Next format must be one of markdown|toon|json",h.USAGE);return t}function Hv(e,t){let n=Ih(e.format);if(t.json&&n&&n!=="json")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?"json":n??"toon"}function Ba(e,t,n){let r=Q(e,t);return r===void 0||r<=0?n:r}function yt(e,t,n,r){return{...ht(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,...o.external?{external:!0}:{},...o.blocked_since?{blocked_since:o.blocked_since}:{},...o.external?{resolver:o.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function xh(e,t,n,r){let o=e.item,i=[],s=V("in_progress",t);return i.push(C(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(Ch(o.deadline,n)),i.push(_e(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)`),i}function Ga(e,t,n){let r=he(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 zv={partitionCallerOwnedReady:Ga,resolveNextCallerAuthor:(e,t)=>Ka(e,t)};function Wv(e,t,n){let r=e.filter(o=>ge(o.item.type,n)==="human");return{agent:t?e:e.filter(o=>ge(o.item.type,n)!=="human"),decisions:t?[]:r}}function Ch(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))/Eh);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Sh(e,t){let n=V("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Xr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Th(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 kn(e,t,n){return[...e].sort((r,o)=>{let i=Xr(r.item,t),s=Xr(o.item,t);return i!==s?Number(i)-Number(s):ke(r.item,o.item,n)})}function Dh(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:xh(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Rh(e,t,n){if(e!==null)return;let r=n>0?["No executable recommendation: outcome gates require verification. Inspect gate_needed, or use pm next --include-gates to opt in."]:[];if(t.length>0){let o=t.find(i=>i.blockers.length>0);return[...r,o?`${t.length} item(s) are blocked; unblock the top one by closing ${o.blockers.map(i=>i.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return[...r,'pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}function Ah(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 Lh(e){try{let t=new Set(e.packing.included.map(i=>i.id)),n=e.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:t.has(i.id)})),r=new Set(n.map(i=>i.id));for(let i of Dt(e.result,"next"))r.has(i)||(n.push({id:i,rank:n.length+1,included:!1}),r.add(i));let o=await Rt({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Tt(e.result,o)}catch{e.result.warnings=wn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Fh(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=Yr(e.readyRanking,e.featureStore),e.result.packing=Vr(e.packing)),e.result.suggestions=Rh(e.recommended,e.blockedRows,e.gateCount),await Lh({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Mh(e,t,n){if(!n)return e;let r=zr(t,n);if(!r.found)throw new y(`Next --parent item not found: ${n}`,h.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Nh(e,t,n,r,o,i,s,a){let c=e.filter(_=>!Xr(_.item,t)),d=a||c.length===0?e:c,l=await At({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await _n(d.map(_=>_.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:l.affinity}),f=await yn("next",u.candidates),m=qr(f,s,new Set,"next"),p=new Map(d.map(_=>[_.item.id,_]));return{projectedReady:f.ranked.map(_=>p.get(_.id)).filter(_=>_!==void 0),ranking:f,completedContainer:c.length===0&&!a,packing:m,featureStore:u}}function Ka(e,t){let n=e.assignee?.trim();return he(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function qv(e,t){let n=D(process.cwd(),t.path),r=await L(n),o=Ka(e,r.author_default),i=q(r.schema),s=A(r,S()),a=H(),c=Ba(e.limit,"--limit",vh),d=Kr(e.tokenBudget,Math.max(192,c*128)),l=Ba(e.blockedLimit,"--blocked-limit",c),u=e.readyOnly===!0,f=typeof e.parent=="string"?e.parent.trim():"",m=await dt(void 0,Th(e,{excludeTerminal:!0}),t),p=await dt(void 0,{excludeTerminal:!1,noTruncate:!0},t),g=Mh(m.items,p.items,f),_=p.items,k=it(g,_,i,s),b=Ke(_),w=_r(k,i,e,s),v=Ga(w.ready,r.author_default,o),I=kn(v.available,b,i),F=[...k.blocked].sort(($,j)=>ke($.item,j.item,i)),{projectedReady:N,ranking:R,completedContainer:le,packing:P,featureStore:G}=await Nh(I,b,i,a,o,n,d,e.includeContainers===!0),X=N.map(($,j)=>yt($,i,b,j+1)),ee=F.map(($,j)=>yt($,i,b,j+1)),ie=kn(w.decisions,b,i).map(($,j)=>yt($,i,b,j+1)),z=kn(w.gates,b,i).map(($,j)=>yt($,i,b,j+1)),K=kn(k.containers,b,i).map(($,j)=>yt($,i,b,j+1)),He=Dh({projectedReady:N,readyRows:X,statusRegistry:i,now:a,completedContainer:le}),ve=Ah(ie.length,v.held.length,c)??{};z.length>c&&(ve.gate_needed_total=z.length),K.length>c&&(ve.containers_total=K.length);let vn={output_default:"toon",now:a,recommended:He,ready:X.slice(1,c+1),decision_needed:ie.slice(0,c),gate_needed:z.slice(0,c),containers:K.slice(0,c),blocked:u?[]:ee.slice(0,l),held_by_others:v.held.slice(0,c),summary:{recommended:He!==null,ready:X.length,blocked:ee.length,in_progress:Sh(X,i),candidates:k.active_count,containers:k.container_count,decision_needed:ie.length,gate_needed:z.length,held_by_others:v.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:f.length>0?f:null,limit:c,blocked_limit:l,ready_only:u,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:d},truncation:Object.keys(ve).length>0?ve:void 0};return Fh({result:vn,recommended:He,blockedRows:ee,gateCount:z.length,candidatesWarnings:m.warnings,corpusWarnings:p.warnings,readyRanking:R,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:P,featureStore:G})}function Vv(e){let t=["# pm next","",...Oh(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(..._t(n,r.map(o=>`- ${bt(o)}`),""));if(t.push(..._t("Recommended",$h(e.recommended),"No ready work.")),t.push(..._t("Decision needed",(e.decision_needed??[]).map(n=>`- ${bt(n)}`),"No human-gated decisions.")),t.push(..._t("Ready",e.ready.map(n=>`- ${bt(n)}`),"No ready items.")),e.filters.ready_only||t.push(..._t("Blocked",e.blocked.map(n=>`- ${Ph(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
8
+ `).trimEnd()}function Oh(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 $h(e){return e?[`- ${bt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function _t(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Ph(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${bt(e)} blocked_by:${t}`}function bt(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}import{createHash as jh}from"node:crypto";import{setTimeout as Uh}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]="01043e67-99d4-5b68-a1b2-33f35f5cef5f")}catch{}})();var za=1,Wa=/^[A-Za-z0-9_-]+$/,Bh=100,Ha=1e3,Gh=250,s0=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function Z(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 qa(e){return jh("sha256").update(xe({type:Z(e.type),author:Z(e.author),item:Z(e.item),harness:Z(e.harness),agent_instance:Z(e.agentInstance),provenance:Z(e.provenanceFilter)})).digest("hex").slice(0,24)}function Jr(e,t){let n={version:za,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 Va(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===za,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 Ya(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Wa.test(n))throw new y("Invalid mutation event cursor.",h.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new y("Invalid mutation event cursor.",h.USAGE,{code:"invalid_event_cursor"})}if(!Va(r,t))throw new y("Mutation event cursor does not match this query.",h.USAGE,{code:"event_cursor_query_mismatch"});return r}function Xa(e){let t=e??Bh;if(!Number.isSafeInteger(t)||t<0||t>Ha)throw new y(`Mutation event limit must be an integer from 0 to ${Ha}.`,h.USAGE,{code:"invalid_event_limit"});return t}function Ja(e){return e instanceof Error&&e.name==="AbortError"}function Qa(e,t){let n=e?.trim();if(!n)return{};if(Wa.test(n))return{cursor:Ya(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new y("Mutation event --since must be an event cursor or ISO timestamp.",h.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Kh(e,t){let n=await Dn(e,t);if(n===null){if(!await Eo(e))return{...await Io(e,t),source:"authoritative_history"};n=await Dn(e,t)}if(n===null)throw new y("Mutation event index could not be opened after rebuild.",h.GENERIC_FAILURE,{code:"event_index_unavailable"});return{...n,source:"derived_index"}}function Hh(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new y("Mutation event cursor mode must be batch or row.",h.USAGE,{code:"invalid_event_cursor_mode"});return t}async function zh(e={}){let t=D(e.cwd??process.cwd(),e.pmRoot);await O(t);let n=Xa(e.limit),r=Hh(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new y("Mutation event projections are mutually exclusive. Use --provenance or --full.",h.USAGE);let o=await L(t),i=o.agent_identity.identity_vocabulary,s=Bt(o.agent_identity.harness_signals),a=Bn({provenance:e.provenanceFilter},s),c=Z(e.harness),d=qa(e),{cursor:l,sinceTimestamp:u}=Qa(e.since,d),f={...l?{after_ts:l.ts,after_stream_id:l.stream_id,after_stream_offset:l.stream_offset}:u?{since_ts:u}:{},ops:Z(e.type),authors:Z(e.author),harnesses:c,harness_alias_authors:c?Object.entries(i.aliases).filter(([,g])=>c.includes(g)).map(([g])=>g):void 0,agent_instances:Z(e.agentInstance),provenance:[...a].map(([g,_])=>({dimension:g,values:[..._]})),stream_ids:Z(e.item),limit:n},m=await Kh(t,f),p=m.events.map(g=>({...r==="row"?{cursor:Jr(g,d)}:{},item_id:g.stream_id,version:g.stream_offset+1,ts:g.entry.ts,author:g.entry.author,type:g.entry.op,...g.entry.message===void 0?{}:{message:g.entry.message},patch_count:g.entry.patch.length,...e.full===!0?{entry:g.entry}:{},...e.provenance===!0?{provenance:Gt(g.entry,i,{itemId:g.stream_id,version:g.stream_offset+1})}:{}}));return{events:p,count:p.length,has_more:m.has_more,cursor_mode:r,...m.events.length===0?{}:{next_cursor:Jr(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:Kt(m.events.map(g=>g.entry),i,s)}:{}}}async function*Wh(e={}){let t=e.intervalMs??Gh;if(!Number.isSafeInteger(t)||t<10)throw new y("Mutation event follow interval must be an integer of at least 10ms.",h.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await zh({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await Uh(t,void 0,{signal:e.signal})}catch(i){if(Ja(i))return;throw i}}}async function*a0(e={}){for await(let t of Wh({...e,cursorMode:"row"}))for(let n of t.events)yield n}var c0={decodeMutationEventCursor:Ya,encodeMutationEventCursor:Jr,eventQueryFingerprint:qa,isAbortError:Ja,isMutationEventCursorEnvelope:Va,parseMutationEventLimit:Xa,resolveMutationEventStart:Qa};(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 l0(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{We as a,Xo as b,Jo as c,qe as d,Qo as e,Zo as f,oc as g,dy as h,ei as i,jn as j,Ly as k,Fy as l,Yy as m,Xy as n,Pt as o,$t as p,fi as q,t_ as r,Q as s,jt as t,pi as u,Ut as v,Bt as w,Bn as x,Gt as y,u_ as z,Gn as A,Kt as B,v_ as C,_i as D,ce as E,re as F,Yc as G,S_ as H,Xc as I,T_ as J,D_ as K,R_ as L,A_ as M,B as N,vi as O,zt as P,U_ as Q,zn as R,B_ as S,Ze as T,dd as U,ud as V,qn as W,fd as X,Ne as Y,qt as Z,Vn as _,Vt as $,Q_ as aa,Si as ba,wb as ca,Mi as da,Ni as ea,Oi as fa,$i as ga,Pi as ha,tn as ia,Ui as ja,$e as ka,Bi as la,zi as ma,on as na,Wi as oa,ql as pa,Zi as qa,sn as ra,sr as sa,an as ta,es as ua,ns as va,ar as wa,rt as xa,os as ya,dr as za,lr as Aa,ur as Ba,is as Ca,fr as Da,as as Ea,cs as Fa,ls as Ga,_u as Ha,yw as Ia,l0 as Ja,ge as Ka,Pu as La,_e as Ma,ln as Na,_s as Oa,un as Pa,ot as Qa,_r as Ra,it as Sa,br as Ta,st as Ua,ws as Va,ks as Wa,Ss as Xa,xr as Ya,Ds as Za,$w as _a,Pw as $a,Ls as ab,Fs as bb,Uw as cb,wr as db,kr as eb,Bu as fb,vr as gb,Aw as hb,Lw as ib,Fw as jb,Mw as kb,ff as lb,Gs as mb,$s as nb,Ps as ob,yf as pb,_f as qb,bf as rb,dt as sb,vk as tb,Ek as ub,Ik as vb,da as wb,la as xb,lt as yb,Nr as zb,hn as Ab,lm as Bb,pa as Cb,gm as Db,yn as Eb,hm as Fb,ym as Gb,km as Hb,vm as Ib,Lk as Jb,Em as Kb,ma as Lb,Or as Mb,$r as Nb,Fm as Ob,jm as Pb,Kk as Qb,Pr as Rb,jr as Sb,_n as Tb,ka as Ub,zk as Vb,Wm as Wb,Xm as Xb,Ia as Yb,rg as Zb,xa as _b,og as $b,tv as ac,Sa as bc,av as cc,cv as dc,dv as ec,lv as fc,Ta as gc,ig as hc,fg as ic,pt as jc,Rv as kc,Kr as lc,gg as mc,hg as nc,zr as oc,ke as pc,qr as qc,Vr as rc,Yr as sc,Ke as tc,ht as uc,wn as vc,Av as wc,hh as xc,Lv as yc,kh as zc,Hv as Ac,zv as Bc,Wv as Cc,qv as Dc,Vv as Ec,s0 as Fc,zh as Gc,Wh as Hc,a0 as Ic,c0 as Jc};
9
+ //# sourceMappingURL=chunk-V5GBD5KV.js.map