@unbrained/pm-cli 2026.8.7 → 2026.8.9

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 (288) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +54 -0
  3. package/dist/cli/main.js +4 -3
  4. package/dist/cli/register-annotations.d.ts +11 -0
  5. package/dist/cli/register-annotations.js +195 -0
  6. package/dist/cli/register-history-author.js +7 -30
  7. package/dist/cli/register-mutation.js +25 -206
  8. package/dist/cli/runtime-compatibility-boundary.d.ts +17 -0
  9. package/dist/cli/runtime-compatibility-boundary.js +43 -0
  10. package/dist/cli-bundle/bundle-manifest.json +158 -694
  11. package/dist/cli-bundle/chunks/chunk-2DTCZXSD.js +13 -0
  12. package/dist/cli-bundle/chunks/chunk-5JO6R4BS.js +3 -0
  13. package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +194 -0
  14. package/dist/cli-bundle/chunks/chunk-EF43KODO.js +2 -0
  15. package/dist/cli-bundle/chunks/chunk-GMX5YOI3.js +77 -0
  16. package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +28 -0
  17. package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +2 -0
  18. package/dist/cli-bundle/chunks/chunk-PYO5GZU6.js +5 -0
  19. package/dist/cli-bundle/chunks/chunk-QWRRFYK3.js +2 -0
  20. package/dist/cli-bundle/chunks/chunk-RJC7TPF4.js +8 -0
  21. package/dist/cli-bundle/chunks/chunk-YC3UF2IO.js +2068 -0
  22. package/dist/cli-bundle/chunks/{register-list-query-FJZCJ67O.js → register-list-query-BUE7PTCU.js} +8 -8
  23. package/dist/cli-bundle/chunks/register-mutation-FC3XLVIK.js +20 -0
  24. package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +2 -0
  25. package/dist/cli-bundle/chunks/register-setup-UQDTNTLJ.js +2 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +153 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-4VJQTS3P.js → chunk-3GSFUDAI.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-3WVHTUAW.js +5 -0
  29. package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +16 -0
  30. package/dist/cli-bundle/focused-chunks/{chunk-73JUDYXT.js → chunk-54TZJ4BM.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-HNL6IFGS.js → chunk-6DO4YQWZ.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/chunk-73FIJONU.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/{chunk-TIKDBG4D.js → chunk-C3GCHDSQ.js} +29 -27
  35. package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +18 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-YZEZAPJK.js → chunk-KNEHLPBF.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/chunk-MRWVJ3ZG.js +2 -0
  38. package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +4 -0
  39. package/dist/cli-bundle/focused-chunks/{chunk-NBJKQP4S.js → chunk-P6BBIQRG.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-QHRTT7WT.js → chunk-PZAGVQNN.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +14 -0
  42. package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +2 -0
  43. package/dist/cli-bundle/focused-chunks/chunk-U46GQJNY.js +2 -0
  44. package/dist/cli-bundle/focused-chunks/{chunk-RPNYG5MO.js → chunk-VRXJSGIT.js} +6 -6
  45. package/dist/cli-bundle/focused-chunks/{chunk-R2LEMEV5.js → chunk-XC2ZW3CJ.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/chunk-ZG54B4XG.js +2 -0
  47. package/dist/cli-bundle/main.js +13 -13
  48. package/dist/cli-bundle/sdk-authoring.js +1 -1
  49. package/dist/cli-bundle/sdk-contracts.js +1 -1
  50. package/dist/cli-bundle/sdk-core.js +38 -38
  51. package/dist/cli-bundle/sdk-governance.js +1 -1
  52. package/dist/cli-bundle/sdk-graph.js +1 -1
  53. package/dist/cli-bundle/sdk-merge.js +1 -1
  54. package/dist/cli-bundle/sdk-query.js +1 -1
  55. package/dist/cli-bundle/sdk-runtime.js +1 -1
  56. package/dist/cli-bundle/sdk-testing.js +1 -1
  57. package/dist/cli-bundle/sdk.js +2 -1
  58. package/dist/cli.js +14 -4
  59. package/dist/core/diagnostics/remediation.js +12 -2
  60. package/dist/core/history/history.js +13 -4
  61. package/dist/core/item/actionability.d.ts +7 -1
  62. package/dist/core/item/actionability.js +71 -15
  63. package/dist/core/output/output.js +9 -2
  64. package/dist/core/sentry/helpers.d.ts +10 -0
  65. package/dist/core/sentry/helpers.js +59 -4
  66. package/dist/core/shared/author.d.ts +25 -0
  67. package/dist/core/shared/author.js +114 -9
  68. package/dist/core/shared/constants.d.ts +2 -0
  69. package/dist/core/shared/constants.js +4 -2
  70. package/dist/sdk/actionability.d.ts +1 -1
  71. package/dist/sdk/actionability.js +3 -3
  72. package/dist/sdk/annotations.d.ts +40 -0
  73. package/dist/sdk/annotations.js +61 -9
  74. package/dist/sdk/author-attribution.d.ts +12 -0
  75. package/dist/sdk/author-attribution.js +73 -11
  76. package/dist/sdk/cli-contracts/command-exit-contracts.d.ts +118 -0
  77. package/dist/sdk/cli-contracts/command-exit-contracts.js +152 -0
  78. package/dist/sdk/cli-contracts/completeness.js +5 -3
  79. package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
  80. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +19 -0
  81. package/dist/sdk/cli-contracts/runtime-contracts.js +44 -2
  82. package/dist/sdk/cli-contracts/tool-parameter-tables.js +15 -2
  83. package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
  84. package/dist/sdk/cli-contracts/tool-schema.js +6 -3
  85. package/dist/sdk/comments.d.ts +7 -0
  86. package/dist/sdk/comments.js +2 -2
  87. package/dist/sdk/completion.js +9 -5
  88. package/dist/sdk/contracts.d.ts +1 -0
  89. package/dist/sdk/contracts.js +3 -2
  90. package/dist/sdk/core-governance.d.ts +1 -1
  91. package/dist/sdk/core-governance.js +3 -3
  92. package/dist/sdk/dependencies.d.ts +2 -0
  93. package/dist/sdk/dependencies.js +7 -6
  94. package/dist/sdk/environment/host-environment-errors.d.ts +27 -0
  95. package/dist/sdk/environment/host-environment-errors.js +124 -0
  96. package/dist/sdk/environment/project-runtime-compatibility.d.ts +65 -0
  97. package/dist/sdk/environment/project-runtime-compatibility.js +385 -0
  98. package/dist/sdk/environment/source-context.d.ts +23 -0
  99. package/dist/sdk/environment/source-context.js +29 -0
  100. package/dist/sdk/error-code-catalog.d.ts +6 -0
  101. package/dist/sdk/error-code-catalog.js +62 -8
  102. package/dist/sdk/extension/bundled-catalog.js +19 -6
  103. package/dist/sdk/generated-error-code-catalog.js +665 -3
  104. package/dist/sdk/governance/health.d.ts +11 -3
  105. package/dist/sdk/governance/health.js +32 -13
  106. package/dist/sdk/governance/provenance-health.d.ts +26 -0
  107. package/dist/sdk/governance/provenance-health.js +139 -0
  108. package/dist/sdk/governance/validate.js +13 -8
  109. package/dist/sdk/governance.d.ts +1 -0
  110. package/dist/sdk/governance.js +3 -2
  111. package/dist/sdk/graph/assembly.d.ts +4 -0
  112. package/dist/sdk/graph/assembly.js +22 -2
  113. package/dist/sdk/graph/run.d.ts +2 -0
  114. package/dist/sdk/graph/run.js +3 -2
  115. package/dist/sdk/index.d.ts +7 -3
  116. package/dist/sdk/index.js +9 -5
  117. package/dist/sdk/learnings.d.ts +15 -0
  118. package/dist/sdk/learnings.js +2 -2
  119. package/dist/sdk/lifecycle/close-many.d.ts +6 -1
  120. package/dist/sdk/lifecycle/close-many.js +43 -5
  121. package/dist/sdk/lifecycle/close.js +13 -8
  122. package/dist/sdk/lifecycle/create.js +6 -12
  123. package/dist/sdk/lifecycle/plan.js +6 -3
  124. package/dist/sdk/lifecycle/update-many.d.ts +2 -1
  125. package/dist/sdk/lifecycle/update-many.js +29 -5
  126. package/dist/sdk/lifecycle/update.js +6 -20
  127. package/dist/sdk/merge/driver.d.ts +2 -1
  128. package/dist/sdk/merge/driver.js +7 -4
  129. package/dist/sdk/merge/index.d.ts +1 -1
  130. package/dist/sdk/merge/index.js +3 -3
  131. package/dist/sdk/merge/install.d.ts +21 -0
  132. package/dist/sdk/merge/install.js +51 -21
  133. package/dist/sdk/merge/receipts.d.ts +14 -1
  134. package/dist/sdk/merge/receipts.js +36 -8
  135. package/dist/sdk/merge/reconcile.js +21 -4
  136. package/dist/sdk/merge/three-way.d.ts +6 -2
  137. package/dist/sdk/merge/three-way.js +24 -10
  138. package/dist/sdk/notes.d.ts +7 -0
  139. package/dist/sdk/notes.js +2 -2
  140. package/dist/sdk/query/get.d.ts +11 -0
  141. package/dist/sdk/query/get.js +37 -3
  142. package/dist/sdk/read-output-contracts.d.ts +1 -1
  143. package/dist/sdk/read-output-contracts.js +103 -5
  144. package/dist/sdk/relationship-kinds/contract.d.ts +48 -0
  145. package/dist/sdk/relationship-kinds/contract.js +22 -0
  146. package/dist/sdk/relationships.d.ts +6 -41
  147. package/dist/sdk/relationships.js +12 -126
  148. package/dist/sdk/runtime-primitives.d.ts +1 -1
  149. package/dist/sdk/runtime-primitives.js +3 -3
  150. package/dist/sdk/runtime.d.ts +1 -1
  151. package/dist/sdk/runtime.js +9 -25
  152. package/dist/sdk/similarity.d.ts +5 -0
  153. package/dist/sdk/similarity.js +40 -10
  154. package/dist/sdk/structured-mutations.js +5 -2
  155. package/dist/sdk/test/execution.js +4 -2
  156. package/dist/sdk/test/linked-command-detection.d.ts +2 -7
  157. package/dist/sdk/test/linked-command-detection.js +22 -9
  158. package/dist/sdk/test/parsers.js +5 -2
  159. package/dist/sdk/workspace-snapshot.d.ts +9 -0
  160. package/dist/sdk/workspace-snapshot.js +48 -16
  161. package/docs/AGENT_GUIDE.md +2 -1
  162. package/docs/AGENT_RUNTIME_PRIMITIVES.md +11 -4
  163. package/docs/COMMANDS.md +19 -1
  164. package/docs/DEPENDENCY_KIND_CONTRACT.md +29 -0
  165. package/docs/ITEM_READ_PROJECTIONS.md +26 -0
  166. package/docs/MERGE_SAFETY.md +10 -3
  167. package/docs/README.md +1 -0
  168. package/docs/RELATIONSHIP_GRAPH.md +1 -1
  169. package/docs/RELEASING.md +27 -2
  170. package/docs/SCRIPTING.md +27 -1
  171. package/docs/SDK_AGENT_SESSION_CONTEXT.md +35 -2
  172. package/docs/SDK_CONTEXT_INTEGRITY.md +81 -0
  173. package/docs/SDK_RUNTIME_BOUNDARIES.md +58 -0
  174. package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +13 -0
  175. package/docs/SENTRY_CONTRACT_EPOCHS.md +20 -0
  176. package/docs/TESTING.md +17 -0
  177. package/docs/agent-task-token-baseline.json +2 -2
  178. package/marketplace.json +2 -2
  179. package/package.json +5 -3
  180. package/packages/pm-beads/package.json +1 -1
  181. package/packages/pm-calendar/package.json +1 -1
  182. package/packages/pm-command-kit/package.json +1 -1
  183. package/packages/pm-digital-twin/package.json +1 -1
  184. package/packages/pm-governance-audit/package.json +1 -1
  185. package/packages/pm-guide-shell/package.json +1 -1
  186. package/packages/pm-kanban/package.json +1 -1
  187. package/packages/pm-lifecycle-hooks/package.json +1 -1
  188. package/packages/pm-linked-test-adapters/package.json +1 -1
  189. package/packages/pm-search-advanced/package.json +1 -1
  190. package/packages/pm-templates/package.json +1 -1
  191. package/packages/pm-todos/package.json +1 -1
  192. package/packages/pm-vcs/package.json +1 -1
  193. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  194. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  195. package/sdk/public-surface.json +756 -57
  196. package/dist/cli-bundle/chunks/append-7BXBFDGD.js +0 -2
  197. package/dist/cli-bundle/chunks/chunk-2AXF3VSK.js +0 -2
  198. package/dist/cli-bundle/chunks/chunk-2XS43CCV.js +0 -2
  199. package/dist/cli-bundle/chunks/chunk-3A6KWB72.js +0 -8
  200. package/dist/cli-bundle/chunks/chunk-3ISTDB42.js +0 -8
  201. package/dist/cli-bundle/chunks/chunk-4MTI7XOV.js +0 -5
  202. package/dist/cli-bundle/chunks/chunk-6BX5UDCN.js +0 -3
  203. package/dist/cli-bundle/chunks/chunk-6QPO7KLR.js +0 -2
  204. package/dist/cli-bundle/chunks/chunk-7MXHZHSQ.js +0 -5
  205. package/dist/cli-bundle/chunks/chunk-7ZPMJW4U.js +0 -2
  206. package/dist/cli-bundle/chunks/chunk-A6KGKEWT.js +0 -2
  207. package/dist/cli-bundle/chunks/chunk-AGYNSNCI.js +0 -2
  208. package/dist/cli-bundle/chunks/chunk-B4H7FEFH.js +0 -5
  209. package/dist/cli-bundle/chunks/chunk-B4KLBBMN.js +0 -2
  210. package/dist/cli-bundle/chunks/chunk-BXCSXK4J.js +0 -2
  211. package/dist/cli-bundle/chunks/chunk-CALJHNBL.js +0 -23
  212. package/dist/cli-bundle/chunks/chunk-CFIGP5LY.js +0 -2
  213. package/dist/cli-bundle/chunks/chunk-CHOQ2VAW.js +0 -2
  214. package/dist/cli-bundle/chunks/chunk-CS6MRHG7.js +0 -2
  215. package/dist/cli-bundle/chunks/chunk-CUGNQQKH.js +0 -2
  216. package/dist/cli-bundle/chunks/chunk-D4FPS43D.js +0 -164
  217. package/dist/cli-bundle/chunks/chunk-E2ZSLTOP.js +0 -2
  218. package/dist/cli-bundle/chunks/chunk-FB7G2HY2.js +0 -2
  219. package/dist/cli-bundle/chunks/chunk-H5Y5YE6A.js +0 -2
  220. package/dist/cli-bundle/chunks/chunk-H5Y6UV6E.js +0 -2
  221. package/dist/cli-bundle/chunks/chunk-H7KGWPDF.js +0 -2
  222. package/dist/cli-bundle/chunks/chunk-HFSD77TQ.js +0 -2
  223. package/dist/cli-bundle/chunks/chunk-HX2GTA6L.js +0 -2
  224. package/dist/cli-bundle/chunks/chunk-J2IEKAVR.js +0 -2
  225. package/dist/cli-bundle/chunks/chunk-JC6FKIFM.js +0 -2
  226. package/dist/cli-bundle/chunks/chunk-K44PYFXH.js +0 -2
  227. package/dist/cli-bundle/chunks/chunk-K4KGEEBT.js +0 -2
  228. package/dist/cli-bundle/chunks/chunk-KFLK5TRH.js +0 -21
  229. package/dist/cli-bundle/chunks/chunk-KL6IEBV2.js +0 -2
  230. package/dist/cli-bundle/chunks/chunk-KWQZDZSS.js +0 -2
  231. package/dist/cli-bundle/chunks/chunk-KZ4X3DGU.js +0 -3
  232. package/dist/cli-bundle/chunks/chunk-LD77HJMQ.js +0 -13
  233. package/dist/cli-bundle/chunks/chunk-LEPJJ6QC.js +0 -2
  234. package/dist/cli-bundle/chunks/chunk-ME2JJ4LA.js +0 -3
  235. package/dist/cli-bundle/chunks/chunk-NE5VRDAI.js +0 -2
  236. package/dist/cli-bundle/chunks/chunk-NFLJ3FHD.js +0 -2
  237. package/dist/cli-bundle/chunks/chunk-NG6OXIBR.js +0 -19
  238. package/dist/cli-bundle/chunks/chunk-NYIGHWQY.js +0 -8
  239. package/dist/cli-bundle/chunks/chunk-NZ75GNSA.js +0 -2
  240. package/dist/cli-bundle/chunks/chunk-PCJWJNC2.js +0 -2
  241. package/dist/cli-bundle/chunks/chunk-PD3225AM.js +0 -2
  242. package/dist/cli-bundle/chunks/chunk-PDEGKG7P.js +0 -2
  243. package/dist/cli-bundle/chunks/chunk-PIE5HBNA.js +0 -2
  244. package/dist/cli-bundle/chunks/chunk-PW2H7YJR.js +0 -56
  245. package/dist/cli-bundle/chunks/chunk-RSIC5OPE.js +0 -2
  246. package/dist/cli-bundle/chunks/chunk-TPKN3S7S.js +0 -2
  247. package/dist/cli-bundle/chunks/chunk-TPXAXTCO.js +0 -2
  248. package/dist/cli-bundle/chunks/chunk-UFWUJO4V.js +0 -2
  249. package/dist/cli-bundle/chunks/chunk-UQLZQVFW.js +0 -55
  250. package/dist/cli-bundle/chunks/chunk-VT3Z5G7D.js +0 -2
  251. package/dist/cli-bundle/chunks/chunk-WOD3WWUN.js +0 -2
  252. package/dist/cli-bundle/chunks/chunk-WSJEIGJF.js +0 -3
  253. package/dist/cli-bundle/chunks/chunk-WYNUU7ZW.js +0 -2008
  254. package/dist/cli-bundle/chunks/chunk-YGPNCCXZ.js +0 -2
  255. package/dist/cli-bundle/chunks/close-CMY3BAUG.js +0 -2
  256. package/dist/cli-bundle/chunks/close-many-SA4XZCTK.js +0 -2
  257. package/dist/cli-bundle/chunks/comments-EZ556ZD3.js +0 -2
  258. package/dist/cli-bundle/chunks/copy-ZSGPA52X.js +0 -2
  259. package/dist/cli-bundle/chunks/create-I5DVV4YG.js +0 -2
  260. package/dist/cli-bundle/chunks/delete-RL3JACSW.js +0 -2
  261. package/dist/cli-bundle/chunks/deps-S7UBCECS.js +0 -2
  262. package/dist/cli-bundle/chunks/docs-ZZNVBBYO.js +0 -2
  263. package/dist/cli-bundle/chunks/files-27C337VT.js +0 -2
  264. package/dist/cli-bundle/chunks/focus-5Z2SG7LU.js +0 -2
  265. package/dist/cli-bundle/chunks/history-compact-HJQK67CZ.js +0 -2
  266. package/dist/cli-bundle/chunks/history-redact-PWC6PDWA.js +0 -2
  267. package/dist/cli-bundle/chunks/history-repair-N3CY4WBF.js +0 -2
  268. package/dist/cli-bundle/chunks/learnings-4FH23XDT.js +0 -2
  269. package/dist/cli-bundle/chunks/profile-5Y5XXH5N.js +0 -2
  270. package/dist/cli-bundle/chunks/register-mutation-YGYPW3BL.js +0 -20
  271. package/dist/cli-bundle/chunks/register-operations-WMDSUMQF.js +0 -2
  272. package/dist/cli-bundle/chunks/register-setup-DL7FFABC.js +0 -2
  273. package/dist/cli-bundle/chunks/restore-6KYBV5BY.js +0 -2
  274. package/dist/cli-bundle/chunks/schema-EQGKBYXJ.js +0 -2
  275. package/dist/cli-bundle/chunks/update-QVTYOD6I.js +0 -2
  276. package/dist/cli-bundle/chunks/update-many-DJSBU525.js +0 -2
  277. package/dist/cli-bundle/focused-chunks/chunk-2ECLECMK.js +0 -12
  278. package/dist/cli-bundle/focused-chunks/chunk-3K4XV2BF.js +0 -16
  279. package/dist/cli-bundle/focused-chunks/chunk-4EX25PXM.js +0 -8
  280. package/dist/cli-bundle/focused-chunks/chunk-CIXVQPB7.js +0 -5
  281. package/dist/cli-bundle/focused-chunks/chunk-DLTS3IHM.js +0 -2
  282. package/dist/cli-bundle/focused-chunks/chunk-DQ6FKGL3.js +0 -14
  283. package/dist/cli-bundle/focused-chunks/chunk-JLG2C4EQ.js +0 -2
  284. package/dist/cli-bundle/focused-chunks/chunk-MHMTKV5V.js +0 -2
  285. package/dist/cli-bundle/focused-chunks/chunk-MOTJFQ3F.js +0 -153
  286. package/dist/cli-bundle/focused-chunks/chunk-RW5IYD4J.js +0 -4
  287. package/dist/cli-bundle/focused-chunks/chunk-VZFU2R4M.js +0 -2
  288. package/dist/cli-bundle/focused-chunks/chunk-ZJIMJHDB.js +0 -2
@@ -1,2 +0,0 @@
1
- import{o,p as s}from"./chunk-WSJEIGJF.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]="c4c82f8f-7890-5ed2-8f0f-a82ba42cf807")}catch{}})();async function f(e,t,n){let d=await o(e,t,n,{metadataKey:"docs",op:"docs_add",bareNoun:"doc",supportsAppendStable:!1});return s(d,"docs")}export{f as a};
2
- //# sourceMappingURL=chunk-KL6IEBV2.js.map
@@ -1,2 +0,0 @@
1
- import{ga as N,ha as T,ia as v}from"./chunk-NG6OXIBR.js";import{A as u,C as f,Da as m,Hf as F,La as I,Nf as p,Oa as b,Yf as g,Zf as y,b as h,cg as E,lc as w}from"./chunk-D4FPS43D.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="d51ebf7a-d759-5a6b-9a4f-810139a1688c")}catch{}})();async function D(e){if(!await h(b(e)))throw new f(`Tracker is not initialized at ${e}. Run pm init first.`,u.NOT_FOUND)}async function O(e,a,i){let t=I(process.cwd(),i.path);if(await D(t),a.clear===!0){if(e!==void 0)throw new f("pm focus --clear does not take an item id. Use 'pm focus --clear' to clear focus or 'pm focus <id>' to set it.",u.USAGE);return await v(t),{action:"clear",focused_item:null,title:null,message:"Focus cleared. New items will not inherit a default parent."}}if(e===void 0){let n=await N(t);if(n===void 0)return{action:"show",focused_item:null,title:null,message:"No focus set. Use 'pm focus <id>' to set a default parent for new items."};let l=await R(t,n);return{action:"show",focused_item:n,title:l,message:`Focused on ${n}${l?` (${l})`:""}. New items default --parent to it.`}}let o=await p(t),_=m(o,w()),r=await g(t,e,o.id_prefix,o.item_format,_.type_to_folder);if(!r)throw await E(t,e,o.id_prefix,_.type_to_folder);let c=F(r.id,o.id_prefix),$=await y(r,{schema:o.schema}),d=x($.document.metadata.title);return await T(t,c),{action:"set",focused_item:c,title:d,message:`Focused on ${c}${d?` (${d})`:""}. New items default --parent to it (override with --parent or clear via 'pm focus --clear').`}}async function R(e,a){let i=await p(e),t=m(i,w()),s=await g(e,a,i.id_prefix,i.item_format,t.type_to_folder);if(!s)return null;let o=await y(s,{schema:i.schema});return x(o.document.metadata.title)}function x(e){return e.trim().length>0?e:null}export{O as a};
2
- //# sourceMappingURL=chunk-KWQZDZSS.js.map
@@ -1,3 +0,0 @@
1
- import{Ba as m,Ca as c,aa as l}from"./chunk-D4FPS43D.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]="989b570c-112e-5ee3-8731-ab34f215ba45")}catch{}})();var A=new Map(l.map(e=>[e.toLowerCase(),e])),b=/^[A-Za-z][A-Za-z0-9_-]*$/;function p(e,t){if(!b.test(e))throw new Error(`${t} "${e}" is not a valid identifier. Use a single letter-led token of letters, digits, hyphen, or underscore with no spaces or punctuation (e.g. "Spike" or "code-review").`)}function u(e){return A.get(e.trim().toLowerCase())}function g(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function T(e){return e.replace(/[\\"`$]/g,t=>`\\${t}`)}function h(e){let t=new Map;for(let i of e){let n=i.trim();if(n.length===0)continue;let o=n.toLowerCase();t.has(o)||t.set(o,n)}return[...t.values()].sort((i,n)=>i.localeCompare(n))}function E(e){let t=(e.name??"").trim();if(t.length===0)throw new Error("Type name must not be empty.");p(t,"Type name");let i=u(t);if(i)throw new Error(`Cannot redefine built-in item type "${i}". Built-in types are reserved: ${l.join(", ")}.`);let n=e.description?.trim(),o=e.defaultStatus?.trim(),r=e.folder?.trim(),a=r&&r.length>0?c(r):void 0,s=h(e.aliases??[]);for(let f of s){p(f,"Alias");let d=u(f);if(d)throw new Error(`Alias "${f}" collides with built-in item type "${d}". Built-in types are reserved: ${l.join(", ")}.`)}return{name:t,description:n&&n.length>0?n:void 0,defaultStatus:o&&o.length>0?o:void 0,folder:a,aliases:s}}function v(e,t){let i=e.name.toLowerCase(),n=new Map;for(let r of t.definitions){if(typeof r.name!="string")continue;let a=r.name.trim();if(!(a.length===0||a.toLowerCase()===i)){n.set(a.toLowerCase(),a);for(let s of g(r.aliases))s.trim().length>0&&n.set(s.trim().toLowerCase(),a)}}let o=n.get(i);if(o)throw new Error(`Type name "${e.name}" collides with an alias of existing item type "${o}".`);for(let r of e.aliases){let a=n.get(r.toLowerCase());if(a)throw new Error(`Alias "${r}" already maps to existing item type "${a}".`)}}function y(e,t){return typeof t=="string"&&t.trim().length>0?c(t).toLowerCase():m(e).toLowerCase()}function N(e,t,i){let n=e.name.toLowerCase(),o=y(e.name,e.folder),r=s=>{throw new Error(`Item type "${e.name}" would store items in folder "${o}", which already belongs to existing item type "${s}". Pass a distinct --folder to keep their storage separate.`)};for(let s of t.definitions){if(typeof s.name!="string")continue;let f=s.name.trim();f.length===0||f.toLowerCase()===n||y(f,s.folder)===o&&r(f)}let a=i?.get(o);a!==void 0&&a.toLowerCase()!==n&&r(a)}function _(e){if(e==null||e.trim().length===0)return{definitions:[]};let t;try{t=JSON.parse(e)}catch{throw new Error("schema/types.json contains invalid JSON.")}return{definitions:$(t)}}function $(e){let t=x(e);if(!t)return[];let i=[];for(let n of t){if(typeof n!="object"||n===null||Array.isArray(n))continue;let o=n;typeof o.name!="string"||o.name.trim().length===0||i.push(o)}return i}function x(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let i=t.item_types;if(Array.isArray(i.definitions))return i.definitions}}function j(e,t){let i=t.name.toLowerCase(),n=e.definitions.slice(),o=n.findIndex(f=>typeof f.name=="string"&&f.name.trim().toLowerCase()===i),r=o>=0?n[o]:void 0,a=h([...g(r?.aliases),...t.aliases]),s={...r,name:t.name};return t.folder!==void 0&&(s.folder=t.folder),a.length>0?s.aliases=a:s.aliases!==void 0&&delete s.aliases,w(s,"description",t.description),w(s,"default_status",t.defaultStatus),o>=0?n[o]=s:n.push(s),n.sort((f,d)=>f.name.localeCompare(d.name)),{file:{definitions:n},definition:s,replaced:o>=0,...r&&typeof r.name=="string"?{previousName:r.name}:{}}}function F(e,t){let i=(t??"").trim();if(i.length===0)throw new Error("Type name must not be empty.");let n=u(i);if(n)throw new Error(`Cannot remove built-in item type "${n}". Built-in types are reserved: ${l.join(", ")}.`);let o=i.toLowerCase(),r=e.definitions.slice(),a=r.findIndex(f=>typeof f.name=="string"&&f.name.trim().toLowerCase()===o);if(a<0)return{file:{definitions:r},removed:!1};let[s]=r.splice(a,1);return{file:{definitions:r},removed:!0,definition:s}}function w(e,t,i){let n=e;i!==void 0&&(n[t]=i)}function S(e){return`${JSON.stringify({definitions:e.definitions},null,2)}
2
- `}function L(e,t){let i=e.trim().length>0?e.trim():e,n=t?.trim()||".agents/pm/schema/types.json";return`To register a custom type, run: pm schema add-type "${T(i)}" (writes ${n}).`}function D(e,t,i){return`Invalid type value "${e}". Allowed: ${t.join(", ")}. ${L(e,i)}`}export{u as a,T as b,E as c,v as d,N as e,_ as f,j as g,F as h,S as i,L as j,D as k};
3
- //# sourceMappingURL=chunk-KZ4X3DGU.js.map
@@ -1,13 +0,0 @@
1
- import{a as U,b as Ut,c as Pt,u as Z}from"./chunk-NZ75GNSA.js";import{a as jt,b as Be,c as Bt,d as zt}from"./chunk-H5Y5YE6A.js";import{wa as Lt}from"./chunk-WOD3WWUN.js";import{v as Rt,w as Ft}from"./chunk-NG6OXIBR.js";import{a as Mt}from"./chunk-K4KGEEBT.js";import{$f as ge,A as f,Ad as Et,Bb as fe,Bd as xt,C as m,Cc as Ct,Cd as je,Da as le,La as I,Md as Tt,Nc as V,Nf as D,Oa as X,Pc as St,R,Rd as It,Sd as $t,T as k,Td as Dt,Ub as kt,V as H,Vf as pe,Wd as Nt,ad as v,b as W,bb as bt,bd as C,cd as Pe,d as yt,lc as me,od as Y,ra as q,wa as Ue,wc as vt,xa as ue,xf as At,yf as Ot,z as wt,zd as J}from"./chunk-D4FPS43D.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]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var he={version:1,aliases:{}};function _e(e=[]){let t=new Set(Y),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 Gt(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 ze(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 Ge(e,t=Y){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 m(`Provenance predicate must use dimension=value; received "${i.trim()}".`,f.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),d=i.slice(s+1).trim();if(!n.has(a))throw new m(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,f.USAGE,{code:"unknown_provenance_dimension"});if(d.length===0)throw new m(`Provenance predicate must use dimension=value; received "${i.trim()}".`,f.USAGE,{code:"invalid_provenance_predicate"});let c=r.get(a)??new Set;c.add(d),r.set(a,c)}return r}function ye(e,t=he,n={}){let r=ze(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 ra(e,t,n=he,r=Y){return We(t,n,r)(e)}function We(e,t=he,n=Y){let r=Gt(e.harness),o=Gt(e.agentInstance),i=Ge(e,n);return s=>{let d=ze(s,t).agent_harness;if(r&&(!d||!r.has(d))||o&&!o.has(s.agent_instance??""))return!1;for(let[c,u]of i){let l=s.agent_provenance?.[c];if(!l||!u.has(l.value))return!1}return!0}}function we(e,t=he,n=Y){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let d of Object.keys(s.agent_provenance??{}))r.add(d);ze(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,d=0;for(let c of e){let u=c.agent_provenance?.[s];u===null?d+=1:u!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:d,legacy_missing:e.length-a-d}})}}import Zn from"node:fs/promises";import Ht from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a7efa5e0-5610-51ca-8288-4f5410dbcf51")}catch{}})();var Qn=20,er=5;function He(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new m(`${t} must not be empty`,f.USAGE);return n}function Wt(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new m("Activity time bounds must not be empty",f.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return H(o,new Date(t),n)}function tr(e,t,n){return!(e.ts.length===0&&(t||n)||t&&k(e.ts,t)<0||n&&k(e.ts,n)>=0)}function nr(e,t){return t===void 0?e:e.slice(0,t)}function Q(e,t=""){return typeof e=="string"?e:t}function rr(e,t){return{...t,id:e,ts:Q(t.ts),author:Q(t.author,"unknown"),op:Q(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Q(t.before_hash),after_hash:Q(t.after_hash)}}function or(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 ir(e){try{return(await Zn.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(t.code==="ENOENT")return[];throw t}}function sr(e){let t=R(),n=Wt(e.from,t,"--from"),r=Wt(e.to,t,"--to");if(n&&r&&k(n,r)>=0)throw new m("Activity --from must be before --to",f.USAGE);let o=Mt(e.limit);if(e.unbounded===!0&&o!==void 0)throw new m("Activity --unbounded cannot be combined with --limit",f.USAGE);return{id:He(e.id,"Activity --id"),op:He(e.op,"Activity --op"),author:He(e.author,"Activity --author"),from:n,to:r,limit:e.unbounded===!0?void 0:o??(e.compact===!0?Qn:er),limitSource:e.unbounded===!0||o!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function ar(e){let t=I(process.cwd(),e.path);if(!await W(X(t)))throw new m(`Tracker is not initialized at ${t}. Run pm init first.`,f.NOT_FOUND);return{pmRoot:t,settings:await D(t)}}async function cr(e){let t=le(e.settings,me()),n=await ge(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await At({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Ht.join(e.pmRoot,"history");return await vt({path:r,scope:"project"}),r}function dr(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:tr(t,n.from,n.to)}async function ur(e,t){let n=[];for(let r of await ir(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Et(Ht.join(e,r),o);for(let s of i){let a=rr(o,s);dr(s,a,t)&&n.push(a)}}return n}function lr(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}async function qt(e,t){let n=await ar(t),r=sr(e),o=await cr(n),i=_e(n.settings.agent_identity.harness_signals),s=n.settings.agent_identity.identity_vocabulary,a=We({harness:r.harness,agentInstance:r.agentInstance,provenance:r.provenance},s,i),d=or(await ur(o,r)).filter(a),c=nr(d,r.limit),u=e.compact===!0,l=u?lr(c):void 0,g=e.provenance===!0?c.map(S=>ye(S,s,{itemId:S.id})):void 0,h=d.length-c.length,p=e.provenance===!0?"provenance":u?"compact":"full";return{...{compact:{compact_activity:l},provenance:{provenance_activity:g},full:{activity:c}}[p],compact:u,projection:{mode:p,row_key:p==="compact"?"compact_activity":p==="provenance"?"provenance_activity":"activity"},omission_receipt:Tt("activity",p),count:c.length,total_count:d.length,limit:r.limit??null,omitted_count:h,has_more:h>0,...e.provenanceSummary===!0?{provenance_summary:we(d,s,i)}:{},applied_bound:{kind:r.limit===void 0?"unbounded":"limit",source:r.limitSource,value:r.limit??null}}}import{encode as fr}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f1677c6e-872e-5c42-ae3d-f73f4ec73616")}catch{}})();var qe=["agenda","day","week","month"],Xe=["markdown","toon","json"],mr=["sun","mon","tue","wed","thu","fri","sat"],pr=365,gr=365,Yt=28,hr=1e3;function Ve(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new m(`${t} must be a non-negative integer`,f.USAGE);return n}function _r(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 m("Calendar include filter must not be empty",f.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 m("Calendar include filter must be deadlines|reminders|events|scheduled|all",f.USAGE)}return r}function Kt(e,t){let n;for(let r of t){let o=bt(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function yr(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!qe.includes(t)){let n=Kt(t,qe);throw new m(`Calendar view must be one of ${qe.join("|")}${n?`. Did you mean "${n}"?`:"."}`,f.USAGE)}return t}function wr(e){if(!e)return;let t=e.trim().toLowerCase();if(!Xe.includes(t)){let n=Kt(t,Xe);throw new m(`Calendar format must be one of ${Xe.join("|")}${n?`. Did you mean "${n}"?`:"."}`,f.USAGE)}return t}function _a(e,t){let n=wr(e.format);if(t.json&&n&&n!=="json")throw new m("Cannot combine --json with --format markdown|toon",f.USAGE);return t.json?"json":n??"markdown"}function br(e,t){if(e===void 0)return;let n=v(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new m(`Calendar status filter must be one of ${r.join("|")}`,f.USAGE)}return n}function kr(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new m("Calendar assignee filter must be one of assigned|unassigned",f.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new m(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,f.USAGE);return t}function be(e){return new Date(e).toISOString().slice(0,10)}function Jt(e,t){if(!t||t==="UTC")return be(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 be(e)}function Ze(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function M(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Zt(e){let t=new Date(Ze(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return M(t.toISOString(),r)}function vr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Cr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Sr(e,t){return k(e,t)>=0?e:t}function Xt(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function Vt(e,t){e.set(t,(e.get(t)??0)+1)}function Er(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)=>q(r)-q(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 Qt(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 en(e){return mr[new Date(e).getUTCDay()]}function xr(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Tr(e){let t=new Set;for(let n of e??[]){let r=xr(n);r&&t.add(r)}return t}function Ir(e,t,n,r,o){let i=e??M(n,-(r??gr)),s=t??M(e??n,o??pr);return{start:i,end:k(s,i)>0?s:M(i,1)}}function $r(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[en(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??hr,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Tr(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)=>q(s)-q(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function ke(e,t){return k(t,e.startAt)<0?"continue":e.until&&k(t,e.until)>0||k(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,k(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function ve(e,t){let n=en(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Dr(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(ve(e,t)&&ke(e,t)==="stop");n+=1)t=M(t,e.interval);return e.occurrences}function Nr(e,t,n){let r=q(n),o=M(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 Ar(e){let t=Zt(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=M(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Nr(e,r,o);if(ve(e,i)&&ke(e,i)==="stop")return e.occurrences}}return e.occurrences}function Or(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=Qt(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!ve(e,s))&&ke(e,s)==="stop")return e.occurrences}}return e.occurrences}function Mr(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=Qt(o,n,i,e.startDate);if(!(!s||!ve(e,s))&&ke(e,s)==="stop")return e.occurrences}}return e.occurrences}function Rr(e,t,n,r){let o=$r(e,t,n,r);return t.freq==="daily"?Dr(o):t.freq==="weekly"?Ar(o):t.freq==="monthly"?Or(o):Mr(o)}function tn(e){return[...e].sort((t,n)=>{let r=k(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 Qe(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 Fr(e){return e.deadline?{at:e.deadline,date:be(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,...Qe(e),item_deadline:e.deadline}:null}function Lr(e){return(e.reminders??[]).map(t=>({at:t.at,date:be(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,...Qe(e)}))}function Ur(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Pr(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function jr(e,t,n,r){let o=Er(t.recurrence),i=Ur(t.start_at,t.end_at);return(t.recurrence?Rr(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Jt(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Pr(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,...Qe(e)}))}function Br(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Fr(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Lr(i));for(let a of n.has("events")?i.events??[]:[])o.push(...jr(i,a,t,r))}return tn(o)}function zr(e,t,n,r,o){let i=Pt(t.type,n),s=t.tag?.trim().toLowerCase(),a=Ut(t.priority),d=br(t.status,r),c=t.assignee?.trim(),u=kr(t.assigneeFilter),l=t.sprint?.trim(),g=t.release?.trim();if(c&&(c.toLowerCase()==="none"||c.toLowerCase()==="null"))throw new m('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',f.USAGE);if(c!==void 0&&u==="unassigned")throw new m("Cannot combine --assignee with --assignee-filter unassigned",f.USAGE);return e.filter(h=>Gr(h,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:u,sprintFilter:l,releaseFilter:g,runtimeFieldFilters:o}))}function Gr(e,t){return Wr(e,t)&&Hr(e,t)&&Ft(e,t.runtimeFieldFilters)}function Wr(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 Hr(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 qr(e,t,n){return!(t&&k(e.at,t)<0||n&&k(e.at,n)>=0)}function Ye(e,t,n){return e.trim().toLowerCase()==="today"?Ze(t):H(e,new Date(t),n)}function Xr(e,t,n){let r=t.date?Ye(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?Ye(t.from,n,"--from"):void 0,a=t.to?Ye(t.to,n,"--to"):void 0;if(s&&a&&k(s,a)>=0)throw new m("Calendar --from must be before --to",f.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new m("--from and --to are only supported for --view agenda",f.USAGE);if(e==="agenda")return Vr(r,t,n,o,i,s,a);if(e==="day"){let c=Ze(r);return Ke(r,n,o,i,c,M(c,1))}if(e==="week"){let c=Zt(r);return Ke(r,n,o,i,c,M(c,7))}let d=vr(r);return Ke(r,n,o,i,d,Cr(r))}function Vr(e,t,n,r,o,i,s){if(o)throw new m("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",f.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function Ke(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:Sr(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function Yr(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:tn(r)}))}function Kr(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let d of e)t.add(d.item_id),Vt(n,d.item_type),Vt(r,d.item_status),d.kind==="deadline"?o+=1:d.kind==="reminder"?i+=1:(s+=1,d.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:Xt(n),by_status:Xt(r),recurring_events:a}}function Jr(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function nn(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 Je(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Zr(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Jt(e.event_end,e.event_timezone)?nn(e.event_end,e.event_timezone):e.event_end:null}function Qr(e){let t=`${nn(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=Zr(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 ya(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Jr(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: ${Je(e.summary.by_kind)}`),t.push(`- by-type: ${Je(e.summary.by_type)}`),t.push(`- by-status: ${Je(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(`- ${Qr(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 eo(t.join(`
3
- `))}function wa(e){return fr(e)}function eo(e){let t=e.length;for(;t>0&&e[t-1]===`
4
- `;)t-=1;return e.slice(0,t)}function to(e){let t=R(),n=yr(e.view),r=Xr(n,e,t),o=U(e.limit),i=_r(e.include),s=Ve(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Ve(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=Ve(e.occurrenceLimit,"Calendar occurrence limit");if(d!==void 0&&d<1)throw new m("Calendar occurrence limit must be >= 1",f.USAGE);let c=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),u=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,l=c&&!u;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:d,recurrenceLookaheadDays:l?Yt:s,recurrenceLookbackWindowDays:l&&a===void 0?0:a,eventsOnlyCapApplied:l}}function no(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Yt}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function ro(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 oo(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 rn(e,t){let n=I(process.cwd(),t.path);if(!await W(X(n)))throw new m(`Tracker is not initialized at ${n}. Run pm init first.`,f.NOT_FOUND);let r=to(e),o=await D(n),i=V(o.schema),s=St(o.schema),a=Rt(e,s,"calendar"),d=le(o,me()),c=[];no(c,r.eventsOnlyCapApplied);let u=await ge(n,o.item_format,d.type_to_folder,c,o.schema),l=zr(u,e,d,i,a),g=Ir(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=Br(l,g,r.includeSources,r.occurrenceLimit).filter(b=>qr(b,r.rangeBounds.start,r.rangeBounds.end)),_=r.limit===void 0?p:p.slice(0,r.limit),S=Yr(_),w=[...new Set(c)].sort((b,E)=>b.localeCompare(E));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:oo(e,r.rangeBounds),filters:ro(e,a),summary:Kr(_),events:_,days:S,...w.length>0?{warnings: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]="1f898377-b606-5bfd-932d-6ce5f2f9c717")}catch{}})();var et=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],io=Symbol("no-context-author"),so=Symbol("no-item-assignee");function on(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function ao(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 co(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 uo(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 Ce(e,t,n){return e?.[t]??n}function Se(e,t){let n=c=>{if(typeof c!="string")return"";try{return H(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,u)=>{let l=n(c.updated_at),g=n(u.updated_at);return k(g,l)||c.id.localeCompare(u.id)}),o=new Map(r.map((c,u)=>[c.id,u])),i=Math.max(e.length-1,1),s=on(t.author,io),a=v("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let u=on(c.assignee,so)===s,l=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signals:{recency:e.length===1?1:1-o.get(c.id)/i,activity_density:t.activityDensity?.[c.id],graph_proximity:Ce(t.graphProximity,c.id,c.parent?.3:0),claim_focus:Ce(t.claimFocus,c.id,C(c.status,t.statusRegistry)===a?1:u?.75:0),priority_pressure:ao(c.priority,4),risk_pressure:uo(c.risk),deadline_pressure:co(c.deadline,d),knowledge_density:Ce(t.knowledgeDensity,c.id,Math.min(l/5,1)),author_affinity:Ce(t.authorAffinity,c.id,u?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var lo="context_relevance",fo={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},mo=new TextEncoder;function po(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"||!et.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 go(e){let t={...fo};for(let[n,r]of Object.entries(e??{}))r!==void 0&&et.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 an(e,t={}){po(e);let n=go(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[d,c]of Object.entries(a.signals??{}))c!==void 0&&o.add(d);let i=et.filter(a=>o.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},u={},l=0,g=0;for(let h of i){let p=c[h];if(p===void 0)continue;let _=p*n[h];u[h]=_,l+=_,g+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:g===0?0:l/g,contributions:u}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function ho(e,t={}){let n=an(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 Ee(e,t,n={}){let r=an(t,n),o=await Ct(lo,{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 ho(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 _o=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function sn(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function yo(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(c=>Math.max(0,t[c]??0)),r=Object.values(t).map(c=>Math.max(0,c)).sort((c,u)=>u-c).slice(0,n.length||1),o=c=>c.reduce((u,l,g)=>u+(2**l-1)/Math.log2(g+2),0),i=o(r),s=n.findIndex(c=>c>0),a=new Set(e.ranked_ids),d=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:sn(e.required_ids??[],a),continuity_coverage:sn(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function wo(e){return Math.ceil(mo.encode(JSON.stringify(e)).byteLength/4)}function bo(e){return Math.round(e*1e4)/1e4}function ko(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 vo(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0}):await t.next({...e.options,explainRanking:!0}),{rankedIds:r,attribution:o}=ko(n,e.surface),i={...n,ranking:void 0},s=wo(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:yo({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 Co(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=_o;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,bo(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 Sa(e,t,n){let r=[];for(let o of e)r.push(await vo(o,t));return Co(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 So={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Eo=["identity","summary","full"];function xo(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=Eo.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 To(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=So[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 Io(e){let t=new Set;for(let n of e){if(xo(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 $o(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 d=e[a];if(d.token_costs.identity>t)continue;s+=1;let c=i<0?void 0:e[i],u=n(d)/d.token_costs.identity,l=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(u>l||u===l&&c!==void 0&&(d.rank<c.rank||d.rank===c.rank&&d.id.localeCompare(c.id)<0))&&(i=a)}return{index:i,evaluated:s,timedOut:!1}}function Do(e){let t=new Set,n=[],r=e.tokenBudget,o=c=>{let u=c.lineage??c.cluster,l=u&&t.has(u)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*l)},i=c=>{let u=c.token_costs.identity;n.push({...c,projection:"identity",tokens:u,marginal_value:o(c)}),r-=u;let l=c.lineage??c.cluster;l&&t.add(l)};for(let c of e.ordered.filter(u=>u.required))c.token_costs.identity<=r&&i(c);let s=e.ordered.filter(c=>!c.required),a=!0,d=0;for(;s.length>0;){let c=$o(s,r,o,e.deadline,e.readClock);if(d+=c.evaluated,c.timedOut&&(a=!1),c.index<0||c.timedOut)break;i(s.splice(c.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:d}}function No(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let d=s.token_costs[r]-s.token_costs[o],c=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(c,1)-s.marginal_value/Math.max(d,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of 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 cn(e,t){let n=To(t),r=Io(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Do({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,d=No(a,s.remaining);a.sort((u,l)=>u.rank-l.rank||u.id.localeCompare(l.id));let c=new Set(a.map(u=>u.id));return{included:a,omitted_ids:r.filter(u=>!c.has(u.id)).map(u=>u.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(u=>u.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as Ao}from"node:crypto";import{appendFile as Oo,mkdir as Mo,readFile as Ro,rename as Fo,stat as Lo,writeFile as Uo}from"node:fs/promises";import dn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var un=2048,ln=30,fn=864e5,Po=262144,jo="context-usage-ledger",N=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function mn(e){return dn.join(e,"runtime","context-usage.jsonl")}function ee(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new N("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function pn(e){try{let n=(await Ro(mn(e.pmRoot),"utf8")).split(`
5
- `).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??un,o=e.retentionDays??ln,i=ee(e).ms-o*fn;return n.filter(s=>Date.parse(s.at)>=i).slice(-r)}catch{return[]}}async function gn(e,t){let n=e.maxEvents??un,r=e.retentionDays??ln;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new N("Context usage retention requires positive maxEvents and retentionDays");let o=mn(e.pmRoot),i=dn.dirname(o),s=await Ot(e.pmRoot,jo,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await Mo(i,{recursive:!0}),await Oo(o,t.map(u=>`${JSON.stringify(u)}
6
- `).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await Lo(o)).size<=Po)return;let d=await pn(e),c=`${o}.${process.pid}.${Ao()}.tmp`;await Uo(c,`${d.map(u=>JSON.stringify(u)).join(`
7
- `)}
8
- `,"utf8"),await Fo(c,o)}finally{await s()}}async function hn(e,t){await gn(e,[t])}async function xe(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new N("Context usage serving requires an author and valid ranked rows");await hn(e,{kind:"serve",at:ee(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Na(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new N("Context usage touch requires author, itemId, and intent");await hn(e,{kind:"touch",at:ee(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function Aa(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new N("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new N("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new N("Context usage touch requires non-empty itemId");r.add(a)}let o=ee(e).iso,i=[...r].map(s=>({kind:"touch",at:o,author:t,item_id:s,intent:n}));await gn(e,i)}function Bo(e,t,n,r){return e.find(({entry:o,time:i})=>o.item_id===t&&i>=n&&i-n<=r)?.time}async function Te(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await pn(e),n=ee(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new N("Context usage horizonHours must be positive");let o=e.author.trim(),i=t.filter(l=>l.kind==="touch"&&l.author===o).map(l=>({entry:l,time:Date.parse(l.at)})),s=new Map,a=0,d=0;for(let l of t){if(l.kind!=="serve"||l.author!==o)continue;a+=1;let g=Date.parse(l.at);for(let h of l.rows){if(!h.included)continue;let p=Bo(i,h.id,g,r);if(p===void 0)continue;d+=1;let _=Math.max(0,(n-p)/fn);s.set(h.id,(s.get(h.id)??0)+Math.exp(-_/14))}}let c=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([l,g])=>[l,.05+.95*(c>0?g/c:0)])),positive_judgments:d,serving_events:a}}import te from"node:fs/promises";import ne from"node:path";import{createHash as zo,randomUUID as Go}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a502be8f-57da-53c2-8de0-118a15688d93")}catch{}})();var tt=1,nt=1,_n=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"];function Ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Wo(e){let t={};for(let n of _n){let r=e[n];if(r!==void 0){if(!yn(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Ho(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 qo(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 Xo(e,t){return{...t,activityDensity:t.activityDensity??Ho(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??qo(e)}}function Vo(e){if(!Ie(e)||typeof e.id!="string"||!Ie(e.signals))return null;let t={},n=new Set(_n);for(let[r,o]of Object.entries(e.signals)){if(!n.has(r)||!yn(o))return null;t[r]=o}return{id:e.id,signals:t}}function Yo(e){if(!Ie(e)||e.format_version!==tt||e.signal_set_version!==nt||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=e.items.map(Vo);if(t.some(r=>r===null))return null;let n=t;return new Set(n.map(r=>r.id)).size!==n.length||n.some(r=>r.id.trim().length===0)?null:{format_version:tt,signal_set_version:nt,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,o)=>r.id.localeCompare(o.id))}}function Ko(e,t){if(typeof t.sourceCursor!="string"||t.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(t.source!=="derived_index"&&t.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback");let n=Se(e,Xo(e,t)).map(({id:r,signals:o})=>({id:r,signals:Wo(o)})).sort((r,o)=>r.id.localeCompare(o.id));return Object.freeze({format_version:tt,signal_set_version:nt,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var rt=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=ne.resolve(t)}async read(){try{return JSON.parse(await te.readFile(this.filePath,"utf8"))}catch(t){if(Ie(t)&&t.code==="ENOENT")return null;throw t}}async write(t){let n=ne.dirname(this.filePath);await te.mkdir(n,{recursive:!0});let r=ne.join(n,`.${ne.basename(this.filePath)}.${Go()}.tmp`);try{await te.writeFile(r,`${JSON.stringify(t)}
9
- `,{encoding:"utf8",flag:"wx"}),await te.rename(r,this.filePath)}finally{try{await te.rm(r,{force:!0})}catch{}}}},ot=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],o=null;try{let l=await this.adapter.read();o=Yo(l),l!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(l=>l.id).sort((l,g)=>l.localeCompare(g)),s=o?.items.map(l=>l.id)??[],a=o!==null&&o.source_cursor===n.sourceCursor&&o.source===n.source&&s.length===i.length&&s.every((l,g)=>l===i[g]),d;if(a&&o!==null)d=o;else{o!==null&&r.push("context_signal_store_stale"),d=Ko(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(l=>[l.id,l.signals])),u=Se(t,n);return{snapshot:d,candidates:u.map(l=>({...l,signals:{...l.signals,...c.get(l.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r}}};function Jo(e){let t=zo("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 $e(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 pe(t.pmRoot),i=t.sourceCursor??o?.source_cursor??Jo(e),s=t.source??(o===null?"scan_fallback":"derived_index");return new ot(new rt(ne.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:i,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Zo(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 Qo(e,t,n){let r,o;for(let i of t){let s=Zo(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 wn(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 ja(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=Qo(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import ei from"node:path";import{createHash as ti}from"node:crypto";import ni from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2e225010-1b53-59e9-8188-dcbe4a4f7eb7")}catch{}})();var bn=1,ri=1e4,kn=12;function oi(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function ii(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 si(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 ai(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=wn(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,d=oi(a.timestamp),c=`epoch:${d}`,u=o.get(c)??{kind:"epoch",key:d,label:d,items:[]};u.items.push(i),o.set(c,u);let l=ii(s,r);if(l){let g=`epic:${l.id}`,h=o.get(g)??{kind:"epic",key:l.id,label:l.title,items:[]};h.items.push(i),o.set(g,h)}}return{format_version:bn,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(si).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function ci(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 di(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(ci)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function ui(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==bn||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(di)?t:null}function li(e){return`scan:${ti("sha256").update(fe(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function fi(e,t,n){return n!==void 0?n:(await pe(t))?.source_cursor??li(e)}async function mi(e){try{let t=ui(JSON.parse(await ni.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&t.code==="ENOENT")}}}async function vn(e,t){let n=Math.max(1,Math.floor(t.minimumItems??ri));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await fi(e,t.pmRoot,t.sourceCursor),o=ei.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await mi(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 d=ai(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await yt(o,`${JSON.stringify(d)}
10
- `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:i}}function pi(e,t,n=kn){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 Cn(e,t,n=kn){if(e.snapshot===null)return;let r=pi(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 gi(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 Ka(e,t,n=5){let r=gi(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dbcd4e0e-3fa0-5ce9-8bbc-6de05779d729")}catch{}})();var hi=["markdown","toon","json","ndjson"],oe=new Set(["Epic","Feature"]),$n=10,Dn=1e4,Nn=["hierarchy","activity","progress","recently_created","unparented","workload"],_i=[...Nn,"blockers","files","staleness","tests"],yi=/^(\d{4})-(\d{2})-(\d{2})/,wi=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,bi=/^(\d{4})(\d{2})(\d{2})$/,ki=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function vi(e){if(!e)return;let t=e.trim().toLowerCase();if(!hi.includes(t))throw new m("Context format must be one of markdown|toon|json|ndjson",f.USAGE);return t}var Sn=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 Ci(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Sn.has(r))throw new m(`Context --fields value not projectable: ${r} (valid: ${[...Sn].join(", ")})`,f.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new m("Context --fields requires at least one field name",f.USAGE);return t}function re(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function fc(e,t){let n=vi(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new m("Cannot combine --json with --format markdown|toon",f.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Si(e,t){return U(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:$n)}function at(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new m("--token-budget must be a positive integer",f.USAGE);return n}function Ei(e,t){return t>=Dn&&e===Number.MAX_SAFE_INTEGER?$n:e}function xi(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Ue.includes(n))throw new m(`Context --depth must be one of ${Ue.join("|")}`,f.USAGE);return n}function Ti(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!ue.includes(s))throw new m(`Context --section must be one of ${ue.join("|")}`,f.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...ue]:(t==="deep"?_i:Nn).filter(o=>n.sections[o])}function Ii(e,t){return e?U(e,"--activity-limit")??t.activity_limit:t.activity_limit}function $i(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new m("--stale-threshold must be a number of days (e.g. 7 or 7d)",f.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new m("--stale-threshold must be positive",f.USAGE);return o}function En(e,t){let n=C(e,t),r=v("in_progress",t),o=v("open",t),i=v("blocked",t),s=v("draft",t);return r&&n===r?0:o&&n===o?1:i&&n===i?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function ie(e,t){let n=v("closed",t);return C(e,t)===n}function ct(e,t){let n=v("in_progress",t);return C(e,t)===n}function An(e,t){let n=v("open",t);return C(e,t)===n}function Di(e,t){return t.blocked_statuses.has(C(e,t))}var Ni=["compact","brief","fields","includeBody","include_body","parent"];function Ai(e){let t={...e};for(let n of Ni)delete t[n];return t}function dt(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=K(e),i=se(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Oi(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new m("Context --parent requires an item id",f.USAGE);return t}function Mi(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Ri(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:k(n,r)}function Fi(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Li(e){let t=yi.exec(e)??wi.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<=Fi(n,r-1)}function Ui(e){let t=bi.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=ki.exec(e);if(n){let[,r,o,i,s,a,d,c]=n,u=d?`:${d}`:"",l=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${o}-${i}T${s}:${a}${u}${l}`}return e}function On(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Li(t))return Number.NaN;let n=Date.parse(Ui(t));return Number.isFinite(n)?n:Number.NaN}function st(e){let t=On(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Pi(e){let t=On(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function ut(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function P(e,t,n){let r=En(e.status,n)-En(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Mi(e.order,t.order);if(i!==0)return i;let s=Ri(e.deadline,t.deadline);if(s!==0)return s;let a=k(st(t.updated_at),st(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function it(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function lt(e,t,n=new Set,r="context"){return cn(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:it({id:o.id,title:o.item.title}),summary:it({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:it(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function ft(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function mt(e,t){return{model:e.model,available_signals:e.available_signals,items:e.ranked.map(n=>({id:n.id,rank:n.rank,baseline_rank:n.baseline_rank,score:n.score,contributions:n.contributions})),...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Mn(e,t){return t>0?Math.round(e/t*100):0}function K(e){let t=new Map;for(let n of e){let r=ut(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function ae(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:ut(e.parent)};if(t&&n){let o=se(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>ie(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=Mn(s,i)}}return r}function ji(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 De(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Bi(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function zi(e,t,n,r){let o=new Map;for(let d of e)o.set(d.id,d);let i=K(e),s=new Set(t.filter(d=>oe.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=o.get(d);if(!c)continue;let u=se(d,i),l=i.get(d)??[],g=0,h=0,p=0,_=0;for(let w of u)ie(w.status,n)?g++:ct(w.status,n)?p++:Di(w.status,n)?_++:An(w.status,n)&&h++;let S=l.sort((w,b)=>P(w,b,n)).slice(0,r).map(w=>{let b=se(w.id,i),E=b.filter(A=>ie(A.status,n)).length;return{id:w.id,title:w.title,type:w.type,status:w.status,children_total:b.length,children_closed:E}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:u.length,children_closed:g,children_open:h,children_in_progress:p,children_blocked:_,children:S})}return a.sort((d,c)=>{let u=o.get(d.id),l=o.get(c.id);return P(u,l,n)}).slice(0,r)}function se(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 Gi(e,t){return(await qt({compact:!0,limit:String(e)},t)).compact_activity??[]}function Wi(e,t,n,r,o){let i=new Map;for(let d of e){if(!d.parent)continue;let c=i.get(d.parent)??[];c.push(d),i.set(d.parent,c)}let s=t.filter(d=>oe.has(d.type)),a=[];for(let d of s){let c=se(d.id,i),u=c.length;if(u===0)continue;let l=0,g=0,h=0,p=0;for(let _ of c)ie(_.status,r)?l++:n.has(_.id.trim().toLowerCase())?p++:ct(_.status,r)?h++:An(_.status,r)&&g++;a.push({id:d.id,title:d.title,type:d.type,total:u,closed:l,open:g,in_progress:h,blocked:p,completion_pct:Mn(l,u)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,o)}function Hi(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=Be(i,o,n),a=s.find(c=>!c.resolved)?.id??s[0]?.id??null,d=a?o.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:d?.title??null,blocked_by_status:d?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function qi(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 Xi(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=>ct(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function Vi(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 Yi(e,t,n,r){return e.map(o=>({item:o,sortKey:st(o.created_at)})).sort((o,i)=>{let s=k(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...ae(o,t,n),created_at:o.created_at}))}function Ki(e,t,n,r){return e.filter(o=>!ut(o.parent)&&!oe.has(o.type)).sort((o,i)=>P(o,i,t)).slice(0,r).map(o=>ae(o,t,n))}function Ji(e){let t=0,n=0,r=0,o=0,i=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let d=a.test_runs??[];if(d.length>0){n++;let c=!1;for(let u of d)r+=u.passed??0,o+=u.failed??0,i+=u.skipped??0,(u.failed??0)>0&&(c=!0);c&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function xn(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Rn(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 Zi(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Qi(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`${xn(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${xn(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 Tn(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 es(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 ts(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(`- ${Qi(n)}`);e.push("")}function ns(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 rs(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 os(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)}`:`- ${Pi(o.created_at)} ${Rn(o)}`);e.push("")}}function is(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 ss(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 as(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 cs(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 ds(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 us(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 ls(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 fs(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 mc(e){let t=[],n=e.focus_fields,r=i=>n?Zi(i,n):Rn(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(""),Tn(t,"High-level focus",e.high_level,"No high-level active items.",r),Tn(t,"Low-level focus",e.low_level,"No low-level active items.",r),es(t,e,r),ts(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 ns(t,e),rs(t,e),os(t,e,n,r),is(t,e,r),ss(t,e),as(t,e),cs(t,e),ds(t,e),us(t,e),ls(t,e),fs(t,e),t.join(`
11
- `)}async function ms(e,t){let n=I(process.cwd(),t.path),r=await D(n),o=r.context??wt.context,i=V(r.schema),s=xi(e.depth,o),a=Si(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:Ti(e.section,s,o),activityLimit:Ii(e.activityLimit,o),staleThresholdDays:$i(e.staleThreshold,o),parentScope:Oi(e.parent),focusFields:Ci(e.fields),baseListOptions:Ai(e)}}function pt(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function ps(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function gs(e,t){let n=pt(t.sectionsIncluded),r=await Z(void 0,ps(t.baseListOptions,{excludeTerminal:!1}),e),o=r.items,i=o.filter(d=>!Pe(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?o:i,a=hs(t.parentScope,o);return a&&(i=i.filter(d=>a.has(d.id.trim().toLowerCase())),s=s.filter(d=>a.has(d.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:i,allItems:s,fullCorpus:o,subtreeIds:a}}function hs(e,t){if(e===void 0)return;let n=dt(t,e);if(!n.found)throw new m(`Context --parent item not found: ${e}`,f.NOT_FOUND);return n.ids}async function _s(e,t,n,r,o,i,s,a,d,c,u,l,g,h){let p=[...e].sort((y,G)=>P(y,G,o)),_=await Te({pmRoot:g,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),S=await $e(p,{pmRoot:g,storeKey:"context",statusRegistry:o,now:a,author:d,usageAffinity:_.affinity}),w=await Ee("context",S.candidates),b=w.ranked.map(y=>y.item),E=o.active_statuses,A=b.filter(y=>E.has(C(y.status,o))),j=l?Nt(A,c,u,y=>y.id):0,x=l?A.slice(j,j+s):A,ce=l&&x.length>0&&j+x.length<A.length,de=ce&&x.length>0?Dt(u,x[x.length-1].id,j+x.length-1):void 0,Oe=b.filter(y=>r.has(y.id.trim().toLowerCase())),Me=new Set([...x.map(y=>y.id),...Oe.slice(0,s).map(y=>y.id)]),F=lt({...w,ranked:w.ranked.filter(y=>Me.has(y.id))},h),B=F.included.map(y=>y.item),L=B.filter(y=>E.has(C(y.status,o))),z=B.filter(y=>r.has(y.id.trim().toLowerCase())),Re=K(t),Fe=pt(i)?Re:void 0,O=new Map(n.map(y=>[y.id.trim().toLowerCase(),y])),T=y=>{let G=ae(y,o,Fe);return r.has(y.id.trim().toLowerCase())&&(G.blocked=!0,G.blocker_ids=Be(y,O,o).filter(Le=>!Le.resolved).map(Le=>Le.id)),G},Kn=L.filter(y=>oe.has(y.type)).slice(0,l?x.length:s).map(T),Jn=L.filter(y=>!oe.has(y.type)).slice(0,l?x.length:s).map(T),_t=A.length===0;return{activeItems:L,blockedItems:z,highLevel:Kn,lowLevel:Jn,blockedFallback:_t?z.slice(0,s).map(T):[],blockedFallbackUsed:_t,ranking:w,packing:F,featureStore:S,pageExtras:{...l?{applied_limit:s}:{},...ce?{has_more:!0,truncated:!0}:{},...de?{next_cursor:de}:{}}}}function ys(e){return $t("context",It(e,Lt))}function ws(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Dn}async function bs(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await rn(o,e),s=n===void 0?i.events:i.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Bi(s,t.statusRegistry).slice(0,t.limit),d=a.map(c=>r.has(c.item_id)?{at:c.at,date:c.date,kind:c.kind,item_id:c.item_id,reference_only:!0,...c.kind==="reminder"?{reminder_text:c.reminder_text}:{},...c.kind==="event"?{event_title:c.event_title,event_recurring:c.event_recurring}:{}}:c);return{agenda:i,agendaEvents:d,agendaSummary:ji(a)}}function In(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function ks(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,d=K(n),c=n.filter(l=>!Pe(l.status,t.statusRegistry)),u=l=>t.sectionsIncluded.includes(l);return{hierarchy:u("hierarchy")?zi(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:u("activity")?await Gi(t.activityLimit,a):void 0,progress:u("progress")?Wi(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:u("blockers")?Hi(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:u("recently_created")?Yi(c,t.statusRegistry,d,t.limit):void 0,unparented:u("unparented")?Ki(c,t.statusRegistry,d,t.limit):void 0,filesSection:u("files")?qi(i.activeItems,t.limit):void 0,workload:u("workload")?Xi(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:u("staleness")?Vi(c,t.staleThresholdDays,s,t.limit):void 0,tests:u("tests")?Ji(i.activeItems):void 0}}function vs(e,t,n){if(!e)return{};let r=v("canceled",n);return{total_items:t.length,closed:t.filter(o=>ie(o.status,n)).length,canceled:t.filter(o=>C(o.status,n)===r).length}}function Cs(e,t){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests)}function Ss(e,t){t&&(e.focus_fields=t,e.high_level=re(e.high_level,t),e.low_level=re(e.low_level,t),e.blocked_fallback=re(e.blocked_fallback,t),e.recently_created&&(e.recently_created=re(e.recently_created,t)),e.unparented&&(e.unparented=re(e.unparented,t)))}function Es(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 xs(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 Ts(e,t,n,r){try{let o=new Set(t.packing.included.map(i=>i.id));await xe({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:o.has(i.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=De(e.warnings,["context_usage_feedback_write_failed"])}}async function Is(e,t,n){if(e)return{};let o=(await kt({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 pc(e,t){let n=I(process.cwd(),t.path),r=await ms(e,t),o=await gs(t,r),i=Ei(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:at(e.tokenBudget,Math.max(256,i*160))},a=J(void 0,s.settings.author_default),d=Is(e.noExtensionHealth===!0,n,s.settings),c=Bt(o.fullCorpus,s.statusRegistry),u=await _s(o.listedItemMetadata,o.allItems,o.fullCorpus,c,s.statusRegistry,s.sectionsIncluded,s.limit,R(),a,e.after,ys(e),ws(e,o.fullCorpus.length),n,s.tokenBudget),l=await bs(t,s,o.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),g=await vn(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:l.agenda.now}),h=De(o.listed.warnings,l.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],g.warnings),p=In(u.activeItems,v("in_progress",s.statusRegistry),s.statusRegistry),_=In(u.activeItems,v("open",s.statusRegistry),s.statusRegistry),S=await ks({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:c,focusGroups:u,now:l.agenda.now,global:t}),w=vs(pt(s.sectionsIncluded),o.allItems,s.statusRegistry),b={output_default:"toon",now:l.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:l.agenda.anchor,start:l.agenda.range.start,end:l.agenda.range.end,past:l.agenda.range.past,from:l.agenda.range.from,to:l.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??l.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:p,open:_,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:l.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:l.agendaSummary,events:l.agendaEvents},...u.pageExtras};return b.workspace_memory=Cn(g,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(b,await d),Cs(b,S),Es(b,e.noTags===!0),e.explainRanking===!0&&(b.ranking=mt(u.ranking,u.featureStore),b.packing=ft(u.packing)),Ss(b,s.focusFields),h.length>0&&(b.warnings=h),xs(b,u.activeItems,u.blockedItems),await Ts(b,u,n,a),b}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var $s=["markdown","toon","json"],Ds=5,Ns=1440*60*1e3;function As(e){if(!e)return;let t=e.trim().toLowerCase();if(!$s.includes(t))throw new m("Next format must be one of markdown|toon|json",f.USAGE);return t}function Ec(e,t){let n=As(e.format);if(t.json&&n&&n!=="json")throw new m("Cannot combine --json with --format markdown|toon",f.USAGE);return t.json?"json":n??"toon"}function Fn(e,t,n){let r=U(e,t);return r===void 0||r<=0?n:r}function gt(e,t,n,r){return{...ae(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status})),unblocks:e.unblocks,rank:r}}function Os(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(Rs(o.deadline,n)),i.push(jt(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),i}function Un(e,t,n){let r=J(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 xc={partitionCallerOwnedReady:Un,resolveNextCallerAuthor:(e,t)=>Pn(e,t)};function Ms(e,t){let n=e.filter(r=>r.item.type.trim().toLowerCase()==="decision");return{agent:t?e:e.filter(r=>r.item.type.trim().toLowerCase()!=="decision"),decisions:t?[]:n}}function Rs(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))/Ns);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Fs(e,t){let n=v("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function ht(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Ls(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 Ln(e,t,n){return[...e].sort((r,o)=>{let i=ht(r.item,t),s=ht(o.item,t);return i!==s?Number(i)-Number(s):P(r.item,o.item,n)})}function Us(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Os(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Ps(e,t){if(e===null){if(t.length>0){let n=t.find(r=>r.blockers.length>0);return[n?`${t.length} item(s) are blocked; unblock the top one by closing ${n.blockers.map(r=>r.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return['pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}}function js(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 Bs(e){try{let t=new Set(e.packing.included.map(n=>n.id));await xe({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:e.ranking.ranked.map(n=>({id:n.id,rank:n.rank,included:t.has(n.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.result.warnings=De(e.result.warnings,["context_usage_feedback_write_failed"])}}async function zs(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=mt(e.readyRanking,e.featureStore),e.result.packing=ft(e.packing)),e.result.suggestions=Ps(e.recommended,e.blockedRows),await Bs({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Gs(e,t,n){if(!n)return e;let r=dt(t,n);if(!r.found)throw new m(`Next --parent item not found: ${n}`,f.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Ws(e,t,n,r,o,i,s){let a=e.filter(_=>!ht(_.item,t)),d=a.length>0?a:e,c=await Te({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await $e(d.map(_=>_.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:c.affinity}),l=await Ee("next",u.candidates),g=lt(l,s,new Set,"next"),h=new Map(d.map(_=>[_.item.id,_]));return{projectedReady:l.ranked.map(_=>h.get(_.id)).filter(_=>_!==void 0),ranking:l,completedContainer:a.length===0,packing:g,featureStore:u}}function Pn(e,t){let n=e.assignee?.trim();return J(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function Tc(e,t){let n=I(process.cwd(),t.path),r=await D(n),o=Pn(e,r.author_default),i=V(r.schema),s=R(),a=Fn(e.limit,"--limit",Ds),d=at(e.tokenBudget,Math.max(192,a*128)),c=Fn(e.blockedLimit,"--blocked-limit",a),u=e.readyOnly===!0,l=typeof e.parent=="string"?e.parent.trim():"",g=await Z(void 0,Ls(e,{excludeTerminal:!0}),t),h=await Z(void 0,{excludeTerminal:!1,noTruncate:!0},t),p=Gs(g.items,h.items,l),_=h.items,S=zt(p,_,i),w=K(_),b=Ms(S.ready,e.includeDecisions===!0),E=Un(b.agent,r.author_default,o),A=Ln(E.available,w,i),j=[...S.blocked].sort((O,T)=>P(O.item,T.item,i)),{projectedReady:x,ranking:ce,completedContainer:de,packing:Oe,featureStore:Me}=await Ws(A,w,i,s,o,n,d),F=x.map((O,T)=>gt(O,i,w,T+1)),B=j.map((O,T)=>gt(O,i,w,T+1)),L=Ln(b.decisions,w,i).map((O,T)=>gt(O,i,w,T+1)),z=Us({projectedReady:x,readyRows:F,statusRegistry:i,now:s,completedContainer:de}),Re=js(L.length,E.held.length,a),Fe={output_default:"toon",now:s,recommended:z,ready:F.slice(1,a+1),decision_needed:L.slice(0,a),blocked:u?[]:B.slice(0,c),held_by_others:E.held.slice(0,a),summary:{recommended:z!==null,ready:F.length,blocked:B.length,in_progress:Fs(F,i),candidates:S.active_count,containers:S.container_count,decision_needed:L.length,held_by_others:E.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:l.length>0?l:null,limit:a,blocked_limit:c,ready_only:u,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:Re};return zs({result:Fe,recommended:z,blockedRows:B,candidatesWarnings:g.warnings,corpusWarnings:h.warnings,readyRanking:ce,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:Oe,featureStore:Me})}function Ic(e){let t=["# pm next","",...Hs(e)];if(t.push(...Ne("Recommended",qs(e.recommended),"No ready work.")),t.push(...Ne("Decision needed",(e.decision_needed??[]).map(n=>`- ${Ae(n)}`),"No human-gated decisions.")),t.push(...Ne("Ready",e.ready.map(n=>`- ${Ae(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Ne("Blocked",e.blocked.map(n=>`- ${Xs(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
12
- `).trimEnd()}function Hs(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 qs(e){return e?[`- ${Ae(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Ne(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Xs(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Ae(e)} blocked_by:${t}`}function Ae(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 Vs}from"node:crypto";import{setTimeout as Ys}from"node:timers/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f9853cc-0719-544f-8726-3cfd6063b59e")}catch{}})();var Bn=1,zn=/^[A-Za-z0-9_-]+$/,Ks=100,jn=1e3,Js=250;function $(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 Gn(e){return Vs("sha256").update(fe({type:$(e.type),author:$(e.author),item:$(e.item),harness:$(e.harness),agent_instance:$(e.agentInstance),provenance:$(e.provenanceFilter)})).digest("hex").slice(0,24)}function Wn(e,t){let n={version:Bn,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 Hn(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===Bn,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 qn(e,t){let n=e.trim();if(n.length===0||n.length>4096||!zn.test(n))throw new m("Invalid mutation event cursor.",f.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new m("Invalid mutation event cursor.",f.USAGE,{code:"invalid_event_cursor"})}if(!Hn(r,t))throw new m("Mutation event cursor does not match this query.",f.USAGE,{code:"event_cursor_query_mismatch"});return r}function Xn(e){let t=e??Ks;if(!Number.isSafeInteger(t)||t<0||t>jn)throw new m(`Mutation event limit must be an integer from 0 to ${jn}.`,f.USAGE,{code:"invalid_event_limit"});return t}function Vn(e){return e instanceof Error&&e.name==="AbortError"}function Yn(e,t){let n=e?.trim();if(!n)return{};if(zn.test(n))return{cursor:qn(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new m("Mutation event --since must be an event cursor or ISO timestamp.",f.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Zs(e,t){let n=await je(e,t);if(n===null){if(!await xt(e))throw new m("Mutation events require a runtime with node:sqlite DatabaseSync support.",f.GENERIC_FAILURE,{code:"event_index_unavailable"});n=await je(e,t)}if(n===null)throw new m("Mutation event index could not be opened after rebuild.",f.GENERIC_FAILURE,{code:"event_index_unavailable"});return n}async function Qs(e={}){let t=I(e.cwd??process.cwd(),e.pmRoot);if(!await W(X(t)))throw new m(`Tracker is not initialized at ${t}. Run pm init first.`,f.NOT_FOUND);let n=Xn(e.limit);if(e.full===!0&&e.provenance===!0)throw new m("Mutation event projections are mutually exclusive. Use --provenance or --full.",f.USAGE);let r=await D(t),o=r.agent_identity.identity_vocabulary,i=_e(r.agent_identity.harness_signals),s=Ge({provenance:e.provenanceFilter},i),a=$(e.harness),d=Gn(e),{cursor:c,sinceTimestamp:u}=Yn(e.since,d),l={...c?{after_ts:c.ts,after_stream_id:c.stream_id,after_stream_offset:c.stream_offset}:u?{since_ts:u}:{},ops:$(e.type),authors:$(e.author),harnesses:a,harness_alias_authors:a?Object.entries(o.aliases).filter(([,p])=>a.includes(p)).map(([p])=>p):void 0,agent_instances:$(e.agentInstance),provenance:[...s].map(([p,_])=>({dimension:p,values:[..._]})),stream_ids:$(e.item),limit:n},g=await Zs(t,l),h=g.events.map(p=>({cursor:Wn(p,d),item_id:p.stream_id,version:p.stream_offset+1,ts:p.entry.ts,author:p.entry.author,type:p.entry.op,...p.entry.message===void 0?{}:{message:p.entry.message},patch_count:p.entry.patch.length,...e.full===!0?{entry:p.entry}:{},...e.provenance===!0?{provenance:ye(p.entry,o,{itemId:p.stream_id,version:p.stream_offset+1})}:{}}));return{events:h,count:h.length,has_more:g.has_more,...h.length===0?{}:{next_cursor:h[h.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:we(g.events.map(p=>p.entry),o,i)}:{}}}async function*jc(e={}){let t=e.intervalMs??Js;if(!Number.isSafeInteger(t)||t<10)throw new m("Mutation event follow interval must be an integer of at least 10ms.",f.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Qs({...e,since:n});if(r.events.length>0){for(let o of r.events)yield o;n=r.next_cursor;continue}try{await Ys(t,void 0,{signal:e.signal})}catch(o){if(Vn(o))return;throw o}}}var Bc={decodeMutationEventCursor:qn,encodeMutationEventCursor:Wn,eventQueryFingerprint:Gn,isAbortError:Vn,isMutationEventCursorEnvelope:Hn,parseMutationEventLimit:Xn,resolveMutationEventStart:Yn};(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 Gc(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{he as a,_e as b,Ge as c,ye as d,ra as e,We as f,we as g,qt as h,_a as i,ya as j,wa as k,rn as l,et as m,Se as n,lo as o,an as p,ho as q,Ee as r,_o as s,yo as t,vo as u,Co as v,Sa as w,So as x,cn as y,N as z,xe as A,Na as B,Aa as C,Te as D,tt as E,nt as F,Yo as G,Ko as H,rt as I,ot as J,$e as K,wn as L,ja as M,ri as N,ai as O,vn as P,pi as Q,Cn as R,gi as S,Ka as T,hi as U,Ci as V,re as W,fc as X,at as Y,xi as Z,Ti as _,dt as $,P as aa,lt as ba,ft as ca,mt as da,K as ea,ae as fa,De as ga,mc as ha,Es as ia,pc as ja,$s as ka,Ec as la,xc as ma,Ms as na,Tc as oa,Ic as pa,Gc as qa,Qs as ra,jc as sa,Bc as ta};
13
- //# sourceMappingURL=chunk-LD77HJMQ.js.map
@@ -1,2 +0,0 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="ee0370cd-694d-5a2b-9685-f541e9cdfab2")}catch{}})();
2
- //# sourceMappingURL=chunk-LEPJJ6QC.js.map
@@ -1,3 +0,0 @@
1
- import{F as it,G as lt,H as ot,I as ct,J as Y,K as F,L as ut,M as ft,N as pt,O as yt,a as qe,b as He,c as Xe,d as Ze,e as Je,f as Qe,g as xe,h as K,i as et,j as R,k as tt,l as at,m as nt,n as rt,o as st,p as dt}from"./chunk-7MXHZHSQ.js";import{d as z,e as W}from"./chunk-TPKN3S7S.js";import{c as Ye}from"./chunk-2AXF3VSK.js";import{j as Se,l as Ee,m as Te,n as Le,p as Pe}from"./chunk-NG6OXIBR.js";import{b as Ge,c as Be,d as Ve}from"./chunk-RSIC5OPE.js";import{a as ke,b as Ie,c as Ue,d as De,e as Fe,f as G,g as Oe,h as B,i as Me,j as Ce,k as Ne}from"./chunk-NYIGHWQY.js";import{k as $e}from"./chunk-KZ4X3DGU.js";import{$f as ze,A as o,Aa as _,C as c,Cb as U,Da as ce,Ea as I,Ec as ge,Fa as ue,Fc as he,Ga as fe,Gc as we,Ha as $,Hf as D,La as pe,Lc as _e,Nc as ve,Nf as je,Oa as ye,Pc as Ae,V as N,Vc as be,Yf as b,Zf as V,ad as g,b as de,cd as Ke,cg as j,dg as We,ga as L,ia as ie,ja as le,lc as me,ya as P,za as oe,zd as Re}from"./chunk-D4FPS43D.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]="ada579bd-134d-5201-9221-6ce39d282a37")}catch{}})();var Q=[...it,{canonical:"close-reason",aliases:["close_reason","close-reason"],optionKey:"closeReason",metadataKey:"close_reason"},...lt,...ot],zt=(()=>{let e=new Map;for(let t of Q)for(let r of t.aliases)e.set(r,{optionKey:t.optionKey,metadataKey:t.metadataKey});return e})(),O=new Map(Q.map(e=>[e.optionKey,e.canonical])),Wt=Q.map(e=>e.canonical).sort((e,t)=>e.localeCompare(t)).join(", "),Yt=new Set(["close_reason","assignee","parent","blocked_by","blocked_reason","unblock_note","dependencies","comments","notes","learnings","files","tests","docs","reminders","events"]),qt=Je({depDisableFlagKey:"replaceDeps",fileDisableFlagKey:"replaceFiles",testDisableFlagKey:"replaceTests",docDisableFlagKey:"replaceDocs"});function At(e){let t={...e,unset:e.unset?[...e.unset]:void 0},r=a=>{let n=t.unset?[...t.unset]:[];n.includes(a)||n.push(a),t.unset=n},s=new Set([...O.keys(),"rank"]);for(let a of s){let n=t[a];if(typeof n!="string"||!Qe(n))continue;let i=a==="rank"?"order":O.get(a)??a;r(i),t[a]=void 0}return et(t,qt)}function x(e,t,r=[]){return ct({raw:e,supportedFields:Wt,resolveDefinition:s=>{let a=r.find(i=>{let l=i.toLowerCase();return l===s||l.replaceAll("_","-")===s||l.replaceAll("-","_")===s});return zt.get(s)??Y(s,"update",t)??(a?{optionKey:"field",metadataKey:a}:void 0)}})}var mt=new Map([["--comment",e=>`pm comments ${e} --add "<text>" --force`],["--file",e=>`pm files ${e} --add "path=<path>,scope=<scope>,note=<note>" --force`],["--doc",e=>`pm docs ${e} --add "path=<path>,scope=<scope>,note=<note>" --force`]]);function X(e){let t=e.disallowedFlags.flatMap(s=>{let a=mt.get(s);return a?[a(e.id)]:[]}),r=e.disallowedFlags.flatMap(s=>{let a=mt.get(s);return a?[`Replace ${s} with: ${a(e.id)}`]:[]});return new c(e.message,o.USAGE,{code:e.code,required:e.required,why:e.why,...t.length>0?{examples:t}:{},nextSteps:[`Re-run without: ${e.disallowedFlags.join(", ")}`,...r]})}function bt(e,t,r){let s=t.ownershipMetadataBypass===!0,a=t.ownershipDependencyBypass===!0;if(!s&&!a)return;if(s&&a)throw new c("Choose only one package-provided ownership bypass mode.",o.USAGE);let n=(d,u,p)=>{d&&p.push(u)};if(a){let d=[];if(n(t.title!==void 0,"--title",d),n(t.description!==void 0,"--description",d),n(t.body!==void 0,"--body",d),n(t.status!==void 0,"--status",d),n(t.closeReason!==void 0,"--close-reason",d),n(t.priority!==void 0,"--priority",d),n(t.type!==void 0,"--type",d),n(t.tags!==void 0,"--tags",d),n(Array.isArray(t.addTags)&&t.addTags.length>0,"--add-tags",d),n(Array.isArray(t.removeTags)&&t.removeTags.length>0,"--remove-tags",d),n(t.deadline!==void 0,"--deadline",d),n(t.estimatedMinutes!==void 0,"--estimate",d),n(t.acceptanceCriteria!==void 0,"--acceptance-criteria",d),n(Array.isArray(t.addAc)&&t.addAc.length>0,"--add-ac",d),n(Array.isArray(t.removeAc)&&t.removeAc.length>0,"--remove-ac",d),n(t.definitionOfReady!==void 0,"--definition-of-ready",d),n(t.order!==void 0||t.rank!==void 0,"--order/--rank",d),n(t.goal!==void 0,"--goal",d),n(t.objective!==void 0,"--objective",d),n(t.value!==void 0,"--value",d),n(t.impact!==void 0,"--impact",d),n(t.outcome!==void 0,"--outcome",d),n(t.whyNow!==void 0,"--why-now",d),n(t.assignee!==void 0,"--assignee",d),n(t.parent!==void 0,"--parent",d),n(t.reviewer!==void 0,"--reviewer",d),n(t.risk!==void 0,"--risk",d),n(t.confidence!==void 0,"--confidence",d),n(t.sprint!==void 0,"--sprint",d),n(t.release!==void 0,"--release",d),n(t.blockedBy!==void 0,"--blocked-by",d),n(t.blockedReason!==void 0,"--blocked-reason",d),n(t.unblockNote!==void 0,"--unblock-note",d),n(t.reporter!==void 0,"--reporter",d),n(t.severity!==void 0,"--severity",d),n(t.environment!==void 0,"--environment",d),n(t.reproSteps!==void 0,"--repro-steps",d),n(t.resolution!==void 0,"--resolution",d),n(t.expectedResult!==void 0,"--expected-result",d),n(t.actualResult!==void 0,"--actual-result",d),n(t.affectedVersion!==void 0,"--affected-version",d),n(t.fixedVersion!==void 0,"--fixed-version",d),n(t.component!==void 0,"--component",d),n(t.regression!==void 0,"--regression",d),n(t.customerImpact!==void 0,"--customer-impact",d),n(t.depRemove!==void 0,"--dep-remove",d),n(t.replaceDeps===!0,"--replace-deps",d),n(t.replaceTests===!0,"--replace-tests",d),n(t.replaceFiles===!0,"--replace-files",d),n(t.replaceDocs===!0,"--replace-docs",d),n(t.comment!==void 0,"--comment",d),n(t.note!==void 0,"--note",d),n(t.learning!==void 0,"--learning",d),n(t.file!==void 0,"--file",d),n(t.test!==void 0,"--test",d),n(t.doc!==void 0,"--doc",d),n(t.reminder!==void 0,"--reminder",d),n(t.event!==void 0,"--event",d),n(t.typeOption!==void 0,"--type-option",d),n(t.clearDeps===!0,"--clear-deps",d),n(t.clearComments===!0,"--clear-comments",d),n(t.clearNotes===!0,"--clear-notes",d),n(t.clearLearnings===!0,"--clear-learnings",d),n(t.clearFiles===!0,"--clear-files",d),n(t.clearTests===!0,"--clear-tests",d),n(t.clearDocs===!0,"--clear-docs",d),n(t.clearReminders===!0,"--clear-reminders",d),n(t.clearEvents===!0,"--clear-events",d),n(t.clearTypeOptions===!0,"--clear-type-options",d),n(t.force===!0,"--force",d),n(r.size>0,"--unset",d),t.dep===void 0||t.dep.length===0)throw new c("The dependency ownership bypass requires at least one --dep value",o.USAGE);if(d.length>0)throw X({id:e,code:"ownership_dependency_bypass_restricted_options",message:`The dependency ownership bypass supports append-only dependency additions via --dep. Remove restricted options: ${d.join(", ")}`,required:"Pass only --dep additions (plus --message/--author) with the dependency ownership bypass.",why:"the dependency ownership bypass is a narrow non-owner override scoped to append-only dependency additions; every other mutation keeps its normal ownership rules.",disallowedFlags:d});return}let i=[];n(t.status!==void 0,"--status",i),n(t.closeReason!==void 0,"--close-reason",i),n(t.assignee!==void 0,"--assignee",i),n(t.parent!==void 0,"--parent",i),n(t.blockedBy!==void 0,"--blocked-by",i),n(t.blockedReason!==void 0,"--blocked-reason",i),n(t.unblockNote!==void 0,"--unblock-note",i),n(t.dep!==void 0,"--dep",i),n(t.depRemove!==void 0,"--dep-remove",i),n(t.replaceDeps===!0,"--replace-deps",i),n(t.replaceTests===!0,"--replace-tests",i),n(t.replaceFiles===!0,"--replace-files",i),n(t.replaceDocs===!0,"--replace-docs",i),n(t.note!==void 0,"--note",i),n(t.learning!==void 0,"--learning",i),n(t.test!==void 0,"--test",i),n(t.reminder!==void 0,"--reminder",i),n(t.event!==void 0,"--event",i),n(t.clearDeps===!0,"--clear-deps",i),n(t.clearComments===!0,"--clear-comments",i),n(t.clearNotes===!0,"--clear-notes",i),n(t.clearLearnings===!0,"--clear-learnings",i),n(t.clearFiles===!0,"--clear-files",i),n(t.clearTests===!0,"--clear-tests",i),n(t.clearDocs===!0,"--clear-docs",i),n(t.clearReminders===!0,"--clear-reminders",i),n(t.clearEvents===!0,"--clear-events",i);let l=[...r].filter(d=>Yt.has(d)).sort((d,u)=>d.localeCompare(u)).map(d=>`--unset ${d.replaceAll("_","-")}`);if(i.push(...l),i.length>0)throw X({id:e,code:"ownership_metadata_bypass_restricted_options",message:`The metadata ownership bypass only supports non-lifecycle metadata fields and evidence appends. Remove restricted options: ${i.join(", ")}`,required:"Limit the metadata ownership bypass to non-lifecycle metadata fields plus append-only --comment/--file/--doc evidence; route restricted appends and lifecycle changes through their dedicated commands.",why:"the metadata ownership bypass is a non-owner override scoped to metadata maintenance and append-only evidence; lifecycle, ownership, dependency mutations, restricted append fields, and clear/replace operations keep their normal ownership rules.",disallowedFlags:i})}function Ht(e,t){let r=g(e,t);if(!r){let s=t.definitions.map(a=>a.id);throw new c(`Invalid --status value "${e}". Allowed: ${s.join(", ")}`,o.USAGE)}return r}function Kt(e){if(e.enforcement==="off"||e.typeWorkflows.length===0)return;let t=Be({typeName:e.typeName,fromStatus:e.fromStatus,toStatus:e.toStatus,typeWorkflows:e.typeWorkflows,statusRegistry:e.statusRegistry});if(!t.hasRule||t.allowed)return;let r=g(e.fromStatus,e.statusRegistry)??e.fromStatus,s=g(e.toStatus,e.statusRegistry)??e.toStatus,a=`Disallowed transition for type "${e.typeName}": ${r} -> ${s}. Allowed transitions: ${Ve(t.allowedTransitions)}.`;if(e.enforcement==="strict")throw new c(a,o.USAGE);return`workflow_transition_not_allowed: ${a}`}function Xt(e,t){if(!e||e.trim()===""||e.trim().toLowerCase()==="now")return t;let r=Date.parse(e);if(!Number.isFinite(r))throw new c(`Invalid dependency created_at timestamp "${e}"`,o.USAGE);return new Date(r).toISOString()}function M(e){if(e===void 0)return;let t=e.trim();return t.length>0?t:void 0}var Zt=["id","kind","type","author","created_at","source_kind"],Jt=["id","kind","type","source_kind"];function Qt(e){return e.startsWith("```")||e.includes(`
2
- `)||/^(?:[-*+]\s+)?(?:id|kind|type|author|created_at|source_kind)\s*[:=]/i.test(e)?!0:Oe(e)}var xt={"blocked-by":"blocked_by",depends_on:"blocked_by","depends-on":"blocked_by"};function Rt(e){if(typeof e!="string")return e;let t=e.trim();return xt[t.toLowerCase()]??t}function St(e,t,r,s){return e?(K(e,"--dep","Use --clear-deps to clear dependencies."),{additions:e.map(n=>{let i=n.trim(),l=Qt(i);rt(i,l);let d=l?G(n,"--dep"):{id:i,kind:"related"};l&&B(d,"--dep",Zt);let u=d.id?.trim(),p=Rt((d.kind??d.type)?.trim());if(!u||!p)throw new c("--dep requires id and kind, or a bare item id to add a related dependency",o.USAGE);if(u.toLowerCase()==="undefined")throw new c(`--dep id must not use placeholder token "${u}". Use --clear-deps to clear dependencies.`,o.USAGE);let f=z(M(d.source_kind)),S=M(d.author);return{id:W(u,t,f),kind:R(p,L,"dependency kind"),created_at:Xt(d.created_at,r),author:S??s,source_kind:f??"cli:update:dep",author_source:S?"asserted":"detected"}})}):{additions:[]}}function Et(e,t){return e?(K(e,"--dep-remove"),e.map(r=>{let s=r.trim();if(!s)throw new c("--dep-remove requires id or key/value selectors",o.USAGE);if(s.includes("=")||/^(?:[-*+]\s+)?(?:id|kind|type|source_kind)\s*[:=]/i.test(s)||s.startsWith("```")){let a=G(s,"--dep-remove");B(a,"--dep-remove",Jt);let n=a.id?.trim();if(!n)throw new c("--dep-remove key/value form requires id=<value>",o.USAGE);if(n.toLowerCase()==="undefined")throw new c(`--dep-remove id must not use placeholder token "${n}"`,o.USAGE);let i=Rt(M(a.kind??a.type)),l=z(M(a.source_kind));return{id:W(n,t,l),kind:i?R(i,L,"dependency kind"):void 0,source_kind:l}}if(s.toLowerCase()==="undefined")throw new c(`--dep-remove id must not use placeholder token "${s}"`,o.USAGE);return{id:D(s,t)}})):[]}function gt(e){let t=e.source_kind?.trim().toLowerCase()??"";return`${e.id.trim().toLowerCase()}::${e.kind}::${t}`}function Tt(e,t,r,s){let a=[...e??[]],n=!1;if(t===void 0){let i=a.filter(l=>l.kind!=="blocked_by");return i.length!==a.length&&(a=i,n=!0),n?{dependencies:a.length>0?a:void 0,changed:!0}:{dependencies:e,changed:!1}}return a.some(i=>i.kind==="blocked_by"&&i.id===t)||(a.push({id:t,kind:"blocked_by",created_at:r,author:s,source_kind:"cli:update:blocked_by",author_source:"detected"}),n=!0),n?{dependencies:a.length>0?a:void 0,changed:!0}:{dependencies:e,changed:!1}}async function ea(e,t,r,s,a,n){if(e===void 0||t)return{};let i=e.trim();if(i.length===0)return{};let l=await b(r,D(i,s),s,a,n);return l?{id:l.id}:{unresolved:i}}function ta(e,t,r,s,a){let n=Tt(e.dependencies,t,r,s);n.changed&&(n.dependencies===void 0?delete e.dependencies:e.dependencies=n.dependencies,a.includes("dependencies")||a.push("dependencies"))}function aa(e){return`${e.path}::${e.scope}`}function na(e){return`${e.path}::${e.scope}`}function ra(e){return`${e.command}::${e.path??""}::${e.scope}::${e.pm_context_mode??""}`}function kt(e,t){return!(e.id.trim().toLowerCase()!==t.id.trim().toLowerCase()||t.kind&&e.kind!==t.kind||t.source_kind!==void 0&&e.source_kind?.trim().toLowerCase()!==t.source_kind.trim().toLowerCase())}function sa(e){return Le(e)}function Z(e,t){let r=oe("update",e);if(!r)throw new c(`Unsupported command_option_policies option "${e}" for update command on type "${t}"`,o.CONFLICT);return r}function It(e,t,r){let s=new Set,a=(n,i)=>{i&&s.add(n)};if(a("title",e.title!==void 0),a("description",e.description!==void 0),a("body",e.body!==void 0),a("status",e.status!==void 0),a("closeReason",e.closeReason!==void 0),a("priority",e.priority!==void 0),a("type",e.type!==void 0),a("tags",e.tags!==void 0||Array.isArray(e.addTags)&&e.addTags.length>0||Array.isArray(e.removeTags)&&e.removeTags.length>0),a("deadline",e.deadline!==void 0),a("estimatedMinutes",e.estimatedMinutes!==void 0),a("acceptanceCriteria",e.acceptanceCriteria!==void 0||Array.isArray(e.addAc)&&e.addAc.length>0||Array.isArray(e.removeAc)&&e.removeAc.length>0),a("definitionOfReady",e.definitionOfReady!==void 0),a("order",e.order!==void 0||e.rank!==void 0),a("goal",e.goal!==void 0),a("objective",e.objective!==void 0),a("value",e.value!==void 0),a("impact",e.impact!==void 0),a("outcome",e.outcome!==void 0),a("whyNow",e.whyNow!==void 0),a("author",e.author!==void 0),a("message",e.message!==void 0),a("assignee",e.assignee!==void 0),a("parent",e.parent!==void 0),a("reviewer",e.reviewer!==void 0),a("risk",e.risk!==void 0),a("confidence",e.confidence!==void 0),a("sprint",e.sprint!==void 0),a("release",e.release!==void 0),a("blockedBy",e.blockedBy!==void 0),a("blockedReason",e.blockedReason!==void 0),a("unblockNote",e.unblockNote!==void 0),a("reporter",e.reporter!==void 0),a("severity",e.severity!==void 0),a("environment",e.environment!==void 0),a("reproSteps",e.reproSteps!==void 0),a("resolution",e.resolution!==void 0),a("expectedResult",e.expectedResult!==void 0),a("actualResult",e.actualResult!==void 0),a("affectedVersion",e.affectedVersion!==void 0),a("fixedVersion",e.fixedVersion!==void 0),a("component",e.component!==void 0),a("regression",e.regression!==void 0),a("customerImpact",e.customerImpact!==void 0),a("dep",e.dep!==void 0),a("depRemove",e.depRemove!==void 0),a("dep",e.replaceDeps===!0),a("comment",e.comment!==void 0),a("note",e.note!==void 0),a("learning",e.learning!==void 0),a("file",e.file!==void 0),a("test",e.test!==void 0),a("test",e.replaceTests===!0),a("file",e.replaceFiles===!0),a("doc",e.replaceDocs===!0),a("doc",e.doc!==void 0),a("reminder",e.reminder!==void 0),a("event",e.event!==void 0),a("typeOption",e.typeOption!==void 0),a("field",e.field!==void 0),a("force",e.force===!0),a("ownershipMetadataBypass",e.ownershipMetadataBypass===!0),a("ownershipDependencyBypass",e.ownershipDependencyBypass===!0),a("dep",e.clearDeps===!0),a("comment",e.clearComments===!0),a("note",e.clearNotes===!0),a("learning",e.clearLearnings===!0),a("file",e.clearFiles===!0),a("test",e.clearTests===!0),a("doc",e.clearDocs===!0),a("reminder",e.clearReminders===!0),a("event",e.clearEvents===!0),a("typeOption",e.clearTypeOptions===!0),e.unset&&e.unset.length>0){let n=x(e.unset,t,r);for(let i of n.optionKeys)a(i,!0)}return s}function da(e,t,r,s,a){let n=ue(e,r);if(!n)throw new c(`Invalid type value "${e}"`,o.USAGE);let i=fe(n,"update",[]);if(i.errors.length>0)throw new c(i.errors.join("; "),o.CONFLICT);let l=It(t,s,a);for(let d of i.disabled)if(l.has(Z(d,e)))throw new c(`Option ${_("update",d)} is disabled for type "${e}" by command_option_policies`,o.USAGE);for(let d of i.required)if(!l.has(Z(d,e)))throw new c(`Missing required option ${_("update",d)} for type "${e}"`,o.USAGE)}var ia=new Set(["order","rank"]),la=P.filter(e=>!ia.has(e)),Ut=["tags","closeReason",...la],oa=["title","description","body","status","closeReason","completedAt","priority","type",...P,"dep","depRemove","comment","note","learning","file","test","doc","reminder","event","typeOption","field"],ca=[{optionKey:"deadline",metadataKey:"deadline",transform:(e,t)=>N(e,t.nowValue,"deadline")},{optionKey:"estimatedMinutes",metadataKey:"estimated_minutes",transform:e=>Ne(e,"estimated-minutes")},{optionKey:"acceptanceCriteria",metadataKey:"acceptance_criteria",transform:e=>e},{optionKey:"definitionOfReady",metadataKey:"definition_of_ready"},{optionKey:"goal",metadataKey:"goal"},{optionKey:"objective",metadataKey:"objective"},{optionKey:"value",metadataKey:"value"},{optionKey:"impact",metadataKey:"impact"},{optionKey:"outcome",metadataKey:"outcome"},{optionKey:"whyNow",metadataKey:"why_now"}],ua=[{optionKey:"reviewer",metadataKey:"reviewer"},{optionKey:"risk",metadataKey:"risk",transform:e=>R(qe(e),ie,"risk")},{optionKey:"confidence",metadataKey:"confidence",transform:e=>Xe(e)}],fa=[{optionKey:"blockedReason",metadataKey:"blocked_reason"},{optionKey:"unblockNote",metadataKey:"unblock_note"},{optionKey:"reporter",metadataKey:"reporter"},{optionKey:"severity",metadataKey:"severity",transform:e=>R(He(e),le,"severity")},{optionKey:"environment",metadataKey:"environment"},{optionKey:"reproSteps",metadataKey:"repro_steps"},{optionKey:"resolution",metadataKey:"resolution"},{optionKey:"expectedResult",metadataKey:"expected_result"},{optionKey:"actualResult",metadataKey:"actual_result"},{optionKey:"affectedVersion",metadataKey:"affected_version"},{optionKey:"fixedVersion",metadataKey:"fixed_version"},{optionKey:"component",metadataKey:"component"},{optionKey:"regression",metadataKey:"regression",transform:e=>Ze(e)},{optionKey:"customerImpact",metadataKey:"customer_impact"}];function J(e,t,r){for(let s of e){let a=t[s.optionKey],n=r.clearItemMetadataKeys.has(s.metadataKey);if(!(a===void 0&&!n)){if(n){delete r.metadataRecord[s.metadataKey],r.changedFields.push(s.metadataKey);continue}if(typeof a!="string")throw new c(`${_("update",String(s.optionKey))} must be a string value`,o.USAGE);r.metadataRecord[s.metadataKey]=s.transform?s.transform(a,r):a.trim(),r.changedFields.push(s.metadataKey)}}}async function pa(e){let t=Me();return At({...e,body:await t.resolveValue(e.body,"--body"),dep:await t.resolveList(e.dep,"--dep"),depRemove:await t.resolveList(e.depRemove,"--dep-remove"),comment:await t.resolveList(e.comment,"--comment"),note:await t.resolveList(e.note,"--note"),learning:await t.resolveList(e.learning,"--learning"),file:await t.resolveList(e.file,"--file"),test:await t.resolveList(e.test,"--test"),doc:await t.resolveList(e.doc,"--doc"),reminder:await t.resolveList(e.reminder,"--reminder"),event:await t.resolveList(e.event,"--event"),typeOption:await t.resolveList(e.typeOption,"--type-option"),field:await t.resolveList(e.field,"--field")})}function ya(e){return[{enabled:e.clearDeps||e.replaceDeps,optionKey:"dep",clearFlag:"--clear-deps",valueFlag:"--dep",values:e.dep,metadataKey:"dependencies"},{enabled:e.clearComments,optionKey:"comment",clearFlag:"--clear-comments",valueFlag:"--comment",values:e.comment,metadataKey:"comments"},{enabled:e.clearNotes,optionKey:"note",clearFlag:"--clear-notes",valueFlag:"--note",values:e.note,metadataKey:"notes"},{enabled:e.clearLearnings,optionKey:"learning",clearFlag:"--clear-learnings",valueFlag:"--learning",values:e.learning,metadataKey:"learnings"},{enabled:e.clearFiles||e.replaceFiles,optionKey:"file",clearFlag:"--clear-files",valueFlag:"--file",values:e.file,metadataKey:"files"},{enabled:e.clearTests||e.replaceTests,optionKey:"test",clearFlag:"--clear-tests",valueFlag:"--test",values:e.test,metadataKey:"tests"},{enabled:e.clearDocs||e.replaceDocs,optionKey:"doc",clearFlag:"--clear-docs",valueFlag:"--doc",values:e.doc,metadataKey:"docs"},{enabled:e.clearReminders,optionKey:"reminder",clearFlag:"--clear-reminders",valueFlag:"--reminder",values:e.reminder,metadataKey:"reminders"},{enabled:e.clearEvents,optionKey:"event",clearFlag:"--clear-events",valueFlag:"--event",values:e.event,metadataKey:"events"},{enabled:e.clearTypeOptions,optionKey:"typeOption",clearFlag:"--clear-type-options",valueFlag:"--type-option",values:e.typeOption,metadataKey:"type_options"}]}function q(e){if(e.enabled&&(!e.values||e.values.length===0))throw new c(`${e.replaceFlag} requires at least one ${e.valueFlag} entry`,o.USAGE);if(e.enabled&&e.clearEnabled)throw new c(`${e.replaceFlag} cannot be combined with ${e.clearFlag}`,o.USAGE)}function ma(e){if(e.replaceDeps===!0&&(e.dep===void 0||e.dep.length===0))throw new c("--replace-deps requires at least one --dep entry",o.USAGE);if(e.replaceDeps===!0&&e.depRemove!==void 0&&e.depRemove.length>0)throw new c("--replace-deps cannot be combined with --dep-remove",o.USAGE);q({enabled:e.replaceTests===!0,values:e.test,replaceFlag:"--replace-tests",clearEnabled:e.clearTests===!0,clearFlag:"--clear-tests",valueFlag:"--test"}),q({enabled:e.replaceFiles===!0,values:e.file,replaceFlag:"--replace-files",clearEnabled:e.clearFiles===!0,clearFlag:"--clear-files",valueFlag:"--file"}),q({enabled:e.replaceDocs===!0,values:e.doc,replaceFlag:"--replace-docs",clearEnabled:e.clearDocs===!0,clearFlag:"--clear-docs",valueFlag:"--doc"})}function ga(e){for(let t of e.definitions){if(!t.enabled)continue;let r=t.optionKey==="dep"&&e.options.replaceDeps===!0||t.optionKey==="test"&&e.options.replaceTests===!0||t.optionKey==="file"&&e.options.replaceFiles===!0||t.optionKey==="doc"&&e.options.replaceDocs===!0;if(t.values&&t.values.length>0&&!r)throw new c(`Cannot combine ${t.clearFlag} with ${t.valueFlag}`,o.USAGE);e.clearOptionKeys.add(t.optionKey),e.clearItemMetadataKeys.add(t.metadataKey)}}function ha(e){let t={};for(let r of Ut)t[String(r)]=e[r]!==void 0;return t.order=e.order!==void 0||e.rank!==void 0,t}function wa(e,t){let r=ha(e);for(let[s,a]of Object.entries(r)){if(!a||!t.optionKeys.has(s))continue;let n=O.get(s)??s;throw new c(`Cannot combine --unset ${n} with ${_("update",s)}`,o.USAGE)}if(t.metadataKeys.has("acceptance_criteria")){if(Array.isArray(e.addAc)&&e.addAc.length>0)throw new c("Cannot combine --unset acceptance-criteria with --add-ac",o.USAGE);if(Array.isArray(e.removeAc)&&e.removeAc.length>0)throw new c("Cannot combine --unset acceptance-criteria with --remove-ac",o.USAGE)}if(t.metadataKeys.has("tags")){if(Array.isArray(e.addTags)&&e.addTags.length>0)throw new c("Cannot combine --unset tags with --add-tags",o.USAGE);if(Array.isArray(e.removeTags)&&e.removeTags.length>0)throw new c("Cannot combine --unset tags with --remove-tags",o.USAGE)}}function _a(e){let t=(r,s)=>{let a=O.get(s),n=a?`Use --unset ${a} to clear this field.`:void 0;xe(r,_("update",s),n)};for(let r of Ut)t(e[r],String(r));t(e.order??e.rank,"order"),K(e.reminder,"--reminder","Use --clear-reminders to clear reminders."),K(e.event,"--event","Use --clear-events to clear linked events.")}function va(e,t){let r={};for(let s of oa)r[String(s)]=e[s]!==void 0;return r.tags=e.tags!==void 0,r.addTags=Array.isArray(e.addTags)&&e.addTags.length>0,r.removeTags=Array.isArray(e.removeTags)&&e.removeTags.length>0,r.addAc=Array.isArray(e.addAc)&&e.addAc.length>0,r.removeAc=Array.isArray(e.removeAc)&&e.removeAc.length>0,r.order=e.order!==void 0,r.rank=e.rank!==void 0,r.replaceDeps=e.replaceDeps===!0,r.replaceTests=e.replaceTests===!0,r.replaceFiles=e.replaceFiles===!0,r.replaceDocs=e.replaceDocs===!0,r.unset=e.unset!==void 0&&e.unset.length>0,r.clearDeps=e.clearDeps===!0,r.clearComments=e.clearComments===!0,r.clearNotes=e.clearNotes===!0,r.clearLearnings=e.clearLearnings===!0,r.clearFiles=e.clearFiles===!0,r.clearTests=e.clearTests===!0,r.clearDocs=e.clearDocs===!0,r.clearReminders=e.clearReminders===!0,r.clearEvents=e.clearEvents===!0,r.clearTypeOptions=e.clearTypeOptions===!0,r.runtimeFields=Object.keys(t).length>0,r}async function Aa(e){let t=await b(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder);if(!t)throw await j(e.pmRoot,e.id,e.settings.id_prefix,e.typeRegistry.type_to_folder);let{document:r}=await V(t,{schema:e.settings.schema});return{item:r.metadata,changed_fields:[],warnings:["noop_no_update_fields"]}}async function ba(e){if(!await de(ye(e)))throw new c(`Tracker is not initialized at ${e}. Run pm init first.`,o.NOT_FOUND)}function Ka(e){if(e.order!==void 0&&e.rank!==void 0&&e.order!==e.rank)throw new c("--order and --rank must match when both are provided",o.USAGE)}async function Ra(e){if(e.options.parent===void 0||e.unsetTargets.metadataKeys.has("parent"))return{resolvedParentValue:void 0,warnings:[]};let t=Se(e.options.parent);if(Te(e.id,t,e.settings.id_prefix),await b(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder))return{resolvedParentValue:t,warnings:[]};let s=D(t,e.settings.id_prefix);return{resolvedParentValue:t,warnings:Ee(s,e.parentReferencePolicy).warnings}}function Sa(e){return e.unresolved===void 0?[]:[`blocked_by_unresolved:${e.unresolved}`]}async function Ea(e){if(e.workflowEnforcement==="off"||e.typeWorkflows.length===0||!e.fieldFlags.status||e.options.status===void 0)return[];let t=await b(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder);if(!t)throw await j(e.pmRoot,e.id,e.settings.id_prefix,e.typeRegistry.type_to_folder);let{document:r}=await V(t,{schema:e.settings.schema}),s=e.options.type!==void 0?I(e.options.type,e.typeRegistry)??e.options.type:r.metadata?.type??"",a=Kt({enforcement:e.workflowEnforcement,typeWorkflows:e.typeWorkflows,statusRegistry:e.statusRegistry,typeName:s,fromStatus:r.metadata?.status??"",toStatus:e.options.status});return a?[a]:[]}async function Ta(e){if(!e.fieldFlags.status||g(e.options.status,e.statusRegistry)!==e.statusRegistry.close_status)return;let r=Object.entries(e.fieldFlags).filter(([l,d])=>d&&l!=="status"&&l!=="closeReason"&&l!=="completedAt").map(([l])=>l),s=[],a=[];if(r.length>0){let l=await Ha(e.id,{...e.options,status:void 0,closeReason:void 0,message:void 0},e.global);a=l.changed_fields,s.push(...l.warnings)}let n=await Ye(e.id,e.options.closeReason,{author:e.options.author,message:e.options.message,force:e.options.force,completedAt:e.options.completedAt},e.global),i=[...e.workflowTransitionWarnings,...s,...n.warnings,"auto_routed_from_update_to_close"];return{item:n.item,changed_fields:[...a,...n.changed_fields],warnings:i}}function ka(e,t,r,s){return t.title!==void 0&&(e.metadata.title=yt(t.title,"--title"),s.push("title")),t.description!==void 0&&(e.metadata.description=t.description,s.push("description")),t.body!==void 0&&(e.body=t.body,s.push("body")),g(e.metadata.status,r)??e.metadata.status}function Ia(e,t,r,s,a){let n=Ht(r,t.statusRegistry);if(e.metadata.status=n,a.push("status"),n===t.statusRegistry.close_status&&(e.metadata.closed_at===void 0||e.metadata.closed_at===null)){e.metadata.closed_at=t.nowIso,e.metadata.completed_at=t.nowIso,a.push("closed_at","completed_at");return}n!==t.statusRegistry.close_status&&s===t.statusRegistry.close_status&&e.metadata.closed_at!==void 0&&(delete e.metadata.closed_at,a.push("closed_at"),e.metadata.completed_at!==void 0&&(delete e.metadata.completed_at,a.push("completed_at")))}function Ua(e,t,r,s){if(t.options.status!==void 0&&Ia(e,t,t.options.status,r,s),t.options.completedAt!==void 0){if(!Ke(e.metadata.status,t.statusRegistry))throw new c("--completed-at can only be set on a terminal item",o.USAGE);e.metadata.completed_at=N(t.options.completedAt,new Date(t.nowIso),"completed-at"),s.push("completed_at")}}function Da(e,t,r,s){if(t.options.closeReason!==void 0||t.clearItemMetadataKeys.has("close_reason")){if(t.clearItemMetadataKeys.has("close_reason"))delete e.metadata.close_reason;else{let a=t.options.closeReason?.trim()??"";if(a.length===0)throw new c("--close-reason must not be empty",o.USAGE);e.metadata.close_reason=a}s.push("close_reason");return}t.options.status!==void 0&&r===t.statusRegistry.close_status&&e.metadata.status!==t.statusRegistry.canceled_status&&e.metadata.close_reason!==void 0&&(delete e.metadata.close_reason,s.push("close_reason"))}function Dt(e,t,r,s){Ua(e,t,r,s),Da(e,t,r,s)}function Fa(e,t,r){let s=I(e.metadata.type,t.typeRegistry)??e.metadata.type;if(t.options.priority!==void 0&&(e.metadata.priority=sa(t.options.priority),r.push("priority")),t.options.type!==void 0){let a=I(t.options.type,t.typeRegistry);if(!a)throw new c($e(t.options.type,t.typeRegistry.types,_e(t.pmRoot,t.settings.schema)),o.USAGE);e.metadata.type=a,s=a,r.push("type")}return da(s,t.options,t.typeRegistry,t.runtimeFieldRegistry,t.extensionFieldNames),Oa(e,t,s,r),s}function Oa(e,t,r,s){if(t.options.typeOption!==void 0||t.clearItemMetadataKeys.has("type_options")){if(t.clearItemMetadataKeys.has("type_options"))delete e.metadata.type_options;else{let n=nt(t.options.typeOption??[]),i=$(r,n,t.typeRegistry);if(i.errors.length>0)throw new c(i.errors.join("; "),o.USAGE);e.metadata.type_options=i.normalized}s.push("type_options");return}if(t.options.type===void 0||e.metadata.type_options===void 0)return;let a=$(r,e.metadata.type_options,t.typeRegistry);if(a.errors.length>0)throw new c(`Current type options are incompatible with type "${r}". ${a.errors.join("; ")}. Use --clear-type-options to clear them.`,o.USAGE);e.metadata.type_options=a.normalized}function Ma(e,t,r){if(t.options.dep===void 0&&t.options.depRemove===void 0&&!t.clearItemMetadataKeys.has("dependencies"))return;let s=t.clearItemMetadataKeys.has("dependencies")?[]:[...e.metadata.dependencies??[]];if(t.dependencyUpdates.additions.length>0){let a=new Set(s.map(n=>gt(n)));for(let n of t.dependencyUpdates.additions){let i=gt(n);a.has(i)||(s.push(n),a.add(i))}}t.dependencyRemovals.length>0&&(s=s.filter(a=>!t.dependencyRemovals.some(n=>kt(a,n)))),s.length===0?delete e.metadata.dependencies:e.metadata.dependencies=s,r.push("dependencies")}function Ca(e,t,r){H(e,"comments",t.options.comment,t.commentUpdates.values,t.clearItemMetadataKeys,r),H(e,"notes",t.options.note,t.noteUpdates.values,t.clearItemMetadataKeys,r),H(e,"learnings",t.options.learning,t.learningUpdates.values,t.clearItemMetadataKeys,r)}function H(e,t,r,s,a,n){r===void 0&&!a.has(t)||(a.has(t)||!s||s.length===0?delete e.metadata[t]:e.metadata[t]=[...e.metadata[t]??[],...s],n.push(t))}function Na(e,t,r){ht(e,"files",t.options.file,t.fileUpdates.values,aa,t.options.replaceFiles===!0,t.clearItemMetadataKeys,r),La(e,t,r),ht(e,"docs",t.options.doc,t.docUpdates.values,na,t.options.replaceDocs===!0,t.clearItemMetadataKeys,r)}function ht(e,t,r,s,a,n,i,l){if(!(r===void 0&&!i.has(t))){if(n)e.metadata[t]=s;else if(i.has(t)||!s||s.length===0)delete e.metadata[t];else{let d=[...e.metadata[t]??[]],u=new Set(d.map(p=>a(p)));for(let p of s){let f=a(p);u.has(f)||(d.push(p),u.add(f))}e.metadata[t]=d}l.push(t)}}function La(e,t,r){t.options.test===void 0&&!t.clearItemMetadataKeys.has("tests")||(t.clearItemMetadataKeys.has("tests")&&t.options.replaceTests===!0?e.metadata.tests=wt(t.testUpdates.values)??[]:t.clearItemMetadataKeys.has("tests")||!t.testUpdates.values||t.testUpdates.values.length===0?delete e.metadata.tests:e.metadata.tests=wt([...e.metadata.tests??[],...t.testUpdates.values]),e.metadata.tests!==void 0&&e.metadata.tests.length===0&&delete e.metadata.tests,r.push("tests"))}function wt(e){if(!e||e.length===0)return;let t=[],r=new Set;for(let s of e){let a=ra(s);r.has(a)||(t.push(s),r.add(a))}return t}function Pa(e,t,r){let s=t.options.addTags,a=t.options.removeTags,n=Array.isArray(s)&&s.length>0||Array.isArray(a)&&a.length>0;if(t.options.tags!==void 0||t.clearItemMetadataKeys.has("tags")||n){let i=t.clearItemMetadataKeys.has("tags")?[]:t.options.tags!==void 0?ke(t.options.tags):Array.isArray(e.metadata.tags)?[...e.metadata.tags]:[];e.metadata.tags=Fe(De(i,s),a),r.changedFields.push("tags")}J(ca,t.options,r),Ga(e,t,r.changedFields)}function $a(e,t,r,s){let a=t.options.addAc,n=t.options.removeAc;if(!(Array.isArray(a)&&a.length>0)&&!(Array.isArray(n)&&n.length>0))return;let i=Ue(Ie(e.metadata.acceptance_criteria),a,n);for(let d of i.unmatchedRemovals)s.push(`remove_ac_unmatched:${d}`);let l=i.criteria.join("; ");e.metadata.acceptance_criteria!==l&&(l===""&&e.metadata.acceptance_criteria===void 0||(e.metadata.acceptance_criteria=l,r.changedFields.includes("acceptance_criteria")||r.changedFields.push("acceptance_criteria")))}function Ga(e,t,r){let s=t.options.order??t.options.rank;if(!(s===void 0&&!t.clearItemMetadataKeys.has("order"))){if(t.clearItemMetadataKeys.has("order"))delete e.metadata.order;else{let a=Ce(s??"","order");if(!Number.isInteger(a))throw new c("Order must be an integer",o.USAGE);e.metadata.order=a}r.push("order")}}function Ba(e,t,r,s){Va(e,t,r.changedFields),ja(e,t,r.changedFields),J(ua,t.options,r),_t(e,t,"sprint",s,r.changedFields),_t(e,t,"release",s,r.changedFields),za(e,t,r.changedFields),J(fa,t.options,r)}function Va(e,t,r){if(!(t.options.assignee===void 0&&!t.clearItemMetadataKeys.has("assignee"))){if(t.clearItemMetadataKeys.has("assignee"))delete e.metadata.assignee;else{let s=t.options.assignee?.trim()??"";if(s==="")throw new c("--assignee must not be empty. Use --unset assignee to clear it.",o.USAGE);e.metadata.assignee=s}r.push("assignee")}}function ja(e,t,r){t.options.parent===void 0&&!t.clearItemMetadataKeys.has("parent")||(t.clearItemMetadataKeys.has("parent")?delete e.metadata.parent:e.metadata.parent=t.resolvedParentValue??"",r.push("parent"))}function _t(e,t,r,s,a){if(!(t.options[r]===void 0&&!t.clearItemMetadataKeys.has(r))){if(t.clearItemMetadataKeys.has(r))delete e.metadata[r];else{let n=Pe(r,t.options[r]??"",t.settings.validation.sprint_release_format);e.metadata[r]=n.value,s.push(...n.warnings)}a.push(r)}}function za(e,t,r){t.options.blockedBy===void 0&&!t.clearItemMetadataKeys.has("blocked_by")||(t.clearItemMetadataKeys.has("blocked_by")?delete e.metadata.blocked_by:e.metadata.blocked_by=t.options.blockedBy?.trim()??"",r.push("blocked_by"),(t.clearItemMetadataKeys.has("blocked_by")||t.resolvedBlockedByDependencyId!==void 0)&&ta(e.metadata,t.resolvedBlockedByDependencyId,t.nowIso,t.author,r))}function Wa(e,t,r){(t.options.reminder!==void 0||t.clearItemMetadataKeys.has("reminders"))&&(t.clearItemMetadataKeys.has("reminders")?delete e.metadata.reminders:e.metadata.reminders=tt(t.options.reminder??[],t.nowValue,{valueMode:"trimmed"}),r.push("reminders")),(t.options.event!==void 0||t.clearItemMetadataKeys.has("events"))&&(t.clearItemMetadataKeys.has("events")?delete e.metadata.events:e.metadata.events=at(t.options.event??[],t.nowValue,{allDayEmptyGuard:"truthy",recurrenceEmptyNumericGuard:"truthy"}),r.push("events"))}function Ya(e,t,r){vt(e,t.runtimeFieldRegistry.definitions.map(a=>a.metadata_key),t.clearItemMetadataKeys,r),vt(e,t.extensionFieldNames,t.clearItemMetadataKeys,r);for(let[a,n]of Object.entries(t.runtimeFieldUpdates)){if(t.clearItemMetadataKeys.has(a)){let i=a.replaceAll("_","-"),d=t.runtimeFieldRegistry.definitions.find(u=>u.metadata_key===a)?.cli_flag??i;throw new c(`Cannot combine --unset ${i} with --${d}`,o.USAGE)}U(e[a],n)||(e[a]=n,r.push(a))}let s=he(t.options.field,t.extensionRegistrations);for(let a of Object.keys(s))if(t.clearItemMetadataKeys.has(a))throw new c(`Cannot combine --unset ${a.replaceAll("_","-")} with --field ${a}=...`,o.USAGE);for(let[a,n]of Object.entries(s))U(e[a],n)||(e[a]=n,r.push(a))}function vt(e,t,r,s){for(let a of t)!r.has(a)||e[a]===void 0||(delete e[a],s.push(a))}function qa(e,t){let r=structuredClone(e.metadata),s=e.body,a=[],n=[],i=ka(e,t.options,t.statusRegistry,a),l=e.metadata,d={metadataRecord:l,clearItemMetadataKeys:t.clearItemMetadataKeys,changedFields:a,nowValue:t.nowValue};Dt(e,t,i,a),Fa(e,t,a),Ma(e,t,a),Ca(e,t,a),Na(e,t,a),Pa(e,t,d),$a(e,t,d,n),Ba(e,t,d,n),(t.options.dep!==void 0||t.options.depRemove!==void 0||t.options.blockedBy!==void 0||t.clearItemMetadataKeys.has("dependencies")||t.clearItemMetadataKeys.has("blocked_by"))&&st(e.metadata.id,e.metadata.dependencies),g(e.metadata.status,t.statusRegistry)===t.statusRegistry.canceled_status&&e.metadata.assignee!==void 0&&(delete e.metadata.assignee,a.includes("assignee")||a.push("assignee")),Wa(e,t,a),Ya(l,t,a);try{we(l,t.extensionRegistrations,{skipDefaultFields:t.clearItemMetadataKeys})}catch(f){throw new c(f instanceof Error?f.message:"Invalid extension item field values",o.USAGE)}let u=e.metadata;return{changedFields:[...new Set(a)].filter(f=>f==="body"?e.body!==s:!U(r[f],u[f])),warnings:n}}async function Ha(e,t,r){t=await pa(t);let s=pe(process.cwd(),r.path);await ba(s);let a=await je(s),n=ve(a.schema),i=Ae(a.schema),l=me(),d=ge(l),u=ce(a,l),p=a.governance.workflow_enforcement??"off",f=p==="off"?[]:Ge(a.schema),S=[{strict_error:"strict_error",warn:"warn",off:"off"},{strict_error:"warn",warn:"warn",off:"off"}][+(t.allowMissingParent===!0)][a.validation.parent_reference],E=x(t.unset,i,d),Ft=new Set(E.optionKeys),T=new Set(E.metadataKeys);ma(t),ga({definitions:ya(t),options:t,clearOptionKeys:Ft,clearItemMetadataKeys:T}),bt(e,t,T),wa(t,E),_a(t);let m=Re(t.author,a.author_default),ee=new Date,v=ee.toISOString(),Ot=St(t.dep,a.id_prefix,v,m),Mt=Et(t.depRemove,a.id_prefix),k=F("--comment",t.comment,v,m),Ct=t.ownershipMetadataBypass===!0&&k.values?{...k,values:k.values.map(y=>({...y,author:m}))}:k,Nt=F("--note",t.note,v,m),Lt=F("--learning",t.learning,v,m),Pt=ut(t.file),$t=ft(t.test),Gt=pt(t.doc),C=[],te=await Ra({id:e,options:t,unsetTargets:E,pmRoot:s,settings:a,typeRegistry:u,parentReferencePolicy:S}),ae=await ea(t.blockedBy,T.has("blocked_by"),s,a.id_prefix,a.item_format,u.type_to_folder),Bt=ae.id,Vt=[...te.warnings,...Sa(ae)],ne=be(t,i,t.runtimeFieldCommands),h=va(t,ne);if(!Object.values(h).some(Boolean))return Aa({pmRoot:s,id:e,settings:a,typeRegistry:u});C.push(...await Ea({options:t,fieldFlags:h,workflowEnforcement:p,typeWorkflows:f,statusRegistry:n,typeRegistry:u,pmRoot:s,id:e,settings:a}));let re=await Ta({options:t,fieldFlags:h,statusRegistry:n,workflowTransitionWarnings:C,global:r,id:e});if(re)return re;Ka(t);let A=h.dep||h.depRemove||h.blockedBy?await ze(s,a.item_format,u.type_to_folder,void 0,a.schema):void 0,w=await We({pmRoot:s,settings:a,typeToFolder:u.type_to_folder,id:e,op:t.ownershipMetadataBypass===!0||t.ownershipDependencyBypass===!0?"update_ownership_bypass":"update",author:m,message:t.message,force:t.force,bypassAssigneeConflict:t.ownershipMetadataBypass===!0||t.ownershipDependencyBypass===!0,extensionFieldNames:d,skipNoop:!0,mutate(y){return A=A?.map(se=>se.id===y.metadata.id?structuredClone(y.metadata):se),qa(y,{options:t,settings:a,typeRegistry:u,statusRegistry:n,runtimeFieldRegistry:i,extensionRegistrations:l,extensionFieldNames:d,clearItemMetadataKeys:T,dependencyUpdates:Ot,dependencyRemovals:Mt,commentUpdates:Ct,noteUpdates:Nt,learningUpdates:Lt,fileUpdates:Pt,testUpdates:$t,docUpdates:Gt,resolvedParentValue:te.resolvedParentValue,resolvedBlockedByDependencyId:Bt,runtimeFieldUpdates:ne,nowValue:ee,nowIso:v,author:m,pmRoot:s})}}),jt=A?dt(A,A.map(y=>y.id===w.item.id?w.item:y),w.item.id):[];return{item:w.item,changed_fields:w.changedFields,warnings:[...C,...Vt,...jt,...w.warnings]}}var cn={applyStatusAndCloseReasonMutations:Dt,collectProvidedUpdatePolicyOptions:It,buildOwnershipBypassRestrictedOptionsError:X,enforceOwnershipBypassScope:bt,enforceTypeWorkflowTransition:Kt,matchesDependencySelector:kt,normalizeLegacyNoneUpdateOptions:At,normalizeUpdatePolicyOptionKey:Z,parseDependencyAdditions:St,parseDependencyRemovals:Et,parseUpdateUnsetTargets:x,reconcileBlockedByDependency:Tt,resolveRuntimeUnsetDefinition:(e,t)=>Y(e,"update",t)};export{Ha as a,cn as b};
3
- //# sourceMappingURL=chunk-ME2JJ4LA.js.map
@@ -1,2 +0,0 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var M=5,L=1e4,P=8;function v(e,n){if(!Number.isFinite(n)||!Number.isInteger(n)||n<0)throw new TypeError(`Invalid path ${e} bound: ${String(n)}`)}function m(e,n){return n.hierarchyDirection==="target_parent"?e.target:e.source}function h(e,n){return(n.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function we(e,n){let s=h(e,n);return{predecessor:s,successor:s===e.source?e.target:e.source}}function R(e,n,s){if(n===void 0)return;let o=e.registry(),i=new Set;for(let t of n){let r=o.require(t);if(!r[s])throw new TypeError(`Relationship kind ${r.kind} is not a ${s} kind`);i.add(r.kind)}return i}function j(e,n,s,o,i){let t=e.registry(),r=e.neighborEdges(n,{direction:"both",...s===void 0?{}:{kinds:[...s]}}),d=[],c=new Set;for(let a of r.value){let u=t.require(a.edge.kind);u[o]&&i(a,u,n)&&(c.has(a.id)||(c.add(a.id),d.push(a.id)))}return{neighbors:d,inspectedEdges:r.meta.inspectedEdges}}function F(e,n,s,o,i,t){if(n>=s)return e.neighbors.some(r=>!t.seen.has(r))&&(t.truncated=!0),!1;for(let r of e.neighbors)if(!t.seen.has(r)){if(t.seen.add(r),t.queue.push({id:r,depth:n+1}),!t.resumed){r===i&&(t.resumed=!0);continue}if(t.value.length>=o)return t.truncated=!0,!0;t.value.push(r)}return!1}function y(e,n,s,o,i){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`);let t=R(e,s.kinds,o),r=s.limit??Number.POSITIVE_INFINITY,d=s.maxDepth??Number.POSITIVE_INFINITY,c=s.after,a={seen:new Set([n]),value:[],queue:[{id:n,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<a.queue.length;f+=1){s.signal?.throwIfAborted();let g=a.queue[f];u+=1;let T=j(e,g.id,t,o,i);if(l+=T.inspectedEdges,F(T,g.depth,d,r,c,a))break}if(!a.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:a.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:a.truncated,nextCursor:a.value.at(-1)}}}function D(e,n){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`)}function A(e,n,s,o,i){let t=e.neighborEdges(n.nodes.at(-1),{direction:o,...s.kinds===void 0?{}:{kinds:s.kinds}});return i.inspectedEdges+=t.meta.inspectedEdges,t.value.filter(r=>!n.nodeSet.has(r.id))}function O(e,n,s,o,i,t,r){for(let d of A(e,n,o,i,r)){let c=[...n.nodes,d.id],a=new Set(n.nodeSet).add(d.id),u=[...n.edges,d.edge];if(d.id===s){if(r.value.push({nodes:c,edges:u,length:u.length}),r.value.length>=t)return!0}else r.queue.push({nodes:c,nodeSet:a,edges:u})}return!1}function ve(e,n,s={}){return y(e,n,s,"hierarchy",(o,i)=>m(o.edge,i)===o.id)}function ke(e,n,s={}){return y(e,n,s,"hierarchy",(o,i,t)=>m(o.edge,i)===t)}function xe(e,n,s={}){return y(e,n,s,"ordering",(o,i)=>h(o.edge,i)===o.id)}function Ee(e,n,s={}){return y(e,n,s,"ordering",(o,i,t)=>h(o.edge,i)===t)}function B(e,n,s,o,i,t,r,d){let c={value:[],queue:[{nodes:[n],nodeSet:new Set([n]),edges:[]}],inspectedEdges:0},a=0,u=!1,l=i+1;for(let f=0;f<c.queue.length;f+=1){if(o.signal?.throwIfAborted(),c.value.length>=l||a>=t){u=!0;break}let g=c.queue[f];if(a+=1,g.edges.length>=r){A(e,g,o,d,c).length>0&&(u=!0);continue}if(O(e,g,s,o,d,l,c)){u=!0;break}}return{value:c.value.slice(0,i),meta:{visitedNodes:a,inspectedEdges:c.inspectedEdges,truncated:u}}}function Ie(e,n,s,o={}){D(e,n),D(e,s);let i=o.maxPaths??M,t=o.maxVisitedPaths??L,r=o.maxDepth??P;v("maxPaths",i),v("maxVisitedPaths",t),v("maxDepth",r);let d=o.direction??"outgoing";o.signal?.throwIfAborted();for(let c of o.kinds??[])e.registry().require(c);return n===s?i===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[n],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:B(e,n,s,o,i,t,r,d)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var U=16,K=2,V=8;function b(e,n){if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(n)}`)}function Y(e,n,s){let o=e.registry(),i=n===void 0?void 0:new Set(n.map(t=>o.require(t).kind));for(let t of e.edges()){if(t.source===t.target)continue;let r=o.require(t.kind);i!==void 0&&!(i.has(r.kind)||r.inverse!==void 0&&i.has(r.inverse))||s(t,r)}}function X(e,n){let s=new Map;Y(e,n,o=>{N(s,o.source,o.target),N(s,o.target,o.source)});for(let o of s.values())o.sort();return s}function N(e,n,s){let o=e.get(n);o===void 0?e.set(n,[s]):o.push(s)}function H(e,n){let s=new Map;for(let t of e){let r=n.get(t);s.set(r,(s.get(r)??0)+1)}let o,i=0;for(let[t,r]of s)(r>i||r===i&&t<o)&&(o=t,i=r);return o}function W(e,n){let s=new Map;for(let[i,t]of e){let r=s.get(t);r===void 0?s.set(t,[i]):r.push(i)}let o=[];for(let i of s.values())i.length<n||(i.sort(),o.push({representative:i[0],size:i.length,members:i}));return o.sort((i,t)=>t.size-i.size||i.representative.localeCompare(t.representative))}function Ae(e,n={}){let s=n.maxIterations??U,o=n.minSize??K;b("maxIterations",s),b("minSize",o);let i=X(e,n.kinds),t=e.nodes(),r=new Map(t.map(l=>[l,l])),d=0,c=!1,a=0,u=0;for(;d<s&&!c;){n.signal?.throwIfAborted(),d+=1,c=!0;for(let l of t){a+=1;let f=i.get(l);if(f===void 0)continue;u+=f.length;let g=H(f,r);g!==r.get(l)&&(r.set(l,g),c=!1)}}return{value:{communities:W(r,o),iterations:d,converged:c},meta:{visitedNodes:a,inspectedEdges:u,truncated:!c}}}function _(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function w(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function k(e,n){return(n.hierarchy?m(e,n):e.source===h(e,n)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function G(e,n){if(n===void 0)return;let s=e.registry(),o=new Set;for(let i of n){let t=s.require(i);if(!_(t))throw new TypeError(`Relationship kind ${t.kind} is not a directed ordering or hierarchy kind`);o.add(w(t))}return o}function Z(e,n){let s=e.registry(),o=new Map;for(let i of e.edges()){let t=s.require(i.kind);if(!_(t))continue;let r=w(t);if(n!==void 0&&!n.has(r))continue;let d=k(i,t);if(d.from===d.to)continue;let c=o.get(r);c===void 0&&(c={adjacency:new Map,records:[]},o.set(r,c));let a=c.adjacency.get(d.from);a===void 0?c.adjacency.set(d.from,new Set([d.to])):a.add(d.to),c.records.push({...d,edge:i})}return o}function z(e){let n=new Map;for(let[s,o]of e.adjacency)n.set(s,[...o].sort());return n}function J(e,n,s,o){let i=[o];for(let t=s;t!==n;t=e.get(t))i.push(t);return i.push(n),i.reverse()}function Q(e,n,s,o,i,t){for(let r of e.get(s.id)??[])if(t.inspectedEdges+=1,!(s.depth===0&&r===n.to)&&!o.has(r)){if(o.set(r,s.id),r===n.to)return J(o,n.from,s.id,r);i.push({id:r,depth:s.depth+1})}}function ee(e,n,s,o){let i=new Map([[n.from,n.from]]),t=[{id:n.from,depth:0}];for(let r=0;r<t.length;r+=1){let d=t[r];if(o.visitedNodes+=1,d.depth>=s)continue;let c=Q(e,n,d,i,t,o);if(c!==void 0)return c}}function Ne(e,n={}){let s=n.maxDepth??V;b("maxDepth",s),n.limit!==void 0&&b("limit",n.limit);let o=n.limit??Number.POSITIVE_INFINITY,i=G(e,n.kinds),t=Z(e,i),r=[],d={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let a of[...t.keys()].sort()){let u=t.get(a),l=z(u);for(let f of u.records){n.signal?.throwIfAborted();let g=ee(l,f,s,d);if(g!==void 0){if(r.length>=o){c=!0;break e}r.push({edge:f.edge,witness:g})}}}return{value:r,meta:{visitedNodes:d.visitedNodes,inspectedEdges:d.inspectedEdges,truncated:c}}}function ne(e,n,s,o,i){let t=new Set,r=[];for(let d of s){if(d.id===e||t.has(d.id))continue;if(!i.seen.has(d.id)){if(n>=o){i.truncated=!0;continue}i.seen.add(d.id),i.queue.push({id:d.id,depth:n+1})}t.add(d.id),r.push(d.id);let c=i.predecessors.get(d.id);c===void 0&&(c=new Set,i.predecessors.set(d.id,c)),c.add(e)}return r}function te(e,n,s){let o=s.direction??"outgoing",i=s.maxDepth??Number.POSITIVE_INFINITY,t=[],r=new Map,d={seen:new Set([n]),queue:[{id:n,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let a=0;a<d.queue.length;a+=1){s.signal?.throwIfAborted();let{id:u,depth:l}=d.queue[a];t.push(u);let f=e.neighborEdges(u,{direction:o,...s.kinds===void 0?{}:{kinds:s.kinds}});c+=f.meta.inspectedEdges,r.set(u,ne(u,l,f.value,i,d))}return{order:t,successors:r,predecessors:d.predecessors,inspectedEdges:c,truncated:d.truncated}}function oe(e,n){let s=[],o=new Set([n]),i=[{id:n,index:0}];for(;i.length>0;){let t=i.at(-1),r=e.successors.get(t.id);if(t.index<r.length){let d=r[t.index];t.index+=1,o.has(d)||(o.add(d),i.push({id:d,index:0}))}else s.push(t.id),i.pop()}return s.reverse()}function ie(e,n,s,o){let i=e,t=n;for(;i!==t;){for(;o.get(i)>o.get(t);)i=s.get(i);for(;o.get(t)>o.get(i);)t=s.get(t)}return i}function se(e,n,s){let o;for(let i of[...e].sort())n.has(i)&&(o=o===void 0?i:ie(o,i,n,s));return o}function re(e,n,s,o,i){let t=new Map([[n,n]]),r=!0;for(;r;){r=!1;for(let d of s){if(i?.throwIfAborted(),d===n)continue;let c=se(e.predecessors.get(d),t,o);c!==void 0&&t.get(d)!==c&&(t.set(d,c),r=!0)}}return t}function Se(e,n,s={}){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`);if(s.maxDepth!==void 0&&(!Number.isInteger(s.maxDepth)||s.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(s.maxDepth)}`);let o=te(e,n,s),i=oe(o,n),t=new Map(i.map((a,u)=>[a,u])),r=re(o,n,i,t,s.signal),d=new Map(i.map(a=>[a,1]));for(let a=i.length-1;a>=0;a-=1){let u=i[a];if(u===n)continue;let l=r.get(u);d.set(l,d.get(l)+d.get(u))}let c=i.filter(a=>a!==n).map(a=>({id:a,idom:r.get(a),dominatedCount:d.get(a)-1})).sort((a,u)=>u.dominatedCount-a.dominatedCount||a.id.localeCompare(u.id));return{value:{root:n,reachableCount:o.order.length,rows:c},meta:{visitedNodes:o.order.length,inspectedEdges:o.inspectedEdges,truncated:o.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="76fa19c7-a421-5026-8de8-450285987c4e")}catch{}})();var de=25,S={error:0,warning:1,info:2};function E(e,n,s,o,i,t,r){let d=[...i].sort((c,a)=>c.localeCompare(a));return{code:e,severity:n,policy:s,message:o(d.length),count:d.length,sample:d.slice(0,t),sample_truncated:d.length>t,remediation:r}}function ce(e){let n=e.graph.registry(),s=new Map;for(let o of e.graph.edges()){let i=n.require(o.kind);if(!i.ordering)continue;let[t,r]=(i.precedence??"source_before_target")==="target_before_source"?[o.target,o.source]:[o.source,o.target],d=s.get(t);d?d.push(r):s.set(t,[r])}for(let o of s.values())o.sort((i,t)=>i.localeCompare(t));return s}function q(e,n){n.indexes.set(e,n.nextIndex),n.lowLinks.set(e,n.nextIndex),n.nextIndex+=1,n.stack.push(e),n.onStack.add(e)}function ae(e,n,s,o){let i=s.get(e.node)??[];if(e.neighborIndex>=i.length)return!1;let t=i[e.neighborIndex];return e.neighborIndex+=1,o.indexes.has(t)?o.onStack.has(t)&&o.lowLinks.set(e.node,Math.min(o.lowLinks.get(e.node),o.indexes.get(t))):(q(t,o),n.push({node:t,neighborIndex:0})),!0}function ue(e,n,s,o){n.pop();let i=n.at(-1);if(i&&o.lowLinks.set(i.node,Math.min(o.lowLinks.get(i.node),o.lowLinks.get(e.node))),o.lowLinks.get(e.node)!==o.indexes.get(e.node))return;let t=[];for(;;){let r=o.stack.pop();if(o.onStack.delete(r),t.push(r),r===e.node)break}(t.length>1||t.length===1&&s.get(t[0])?.includes(t[0]))&&o.components.push(t.sort((r,d)=>r.localeCompare(d)))}function le(e){let n={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},s=[...e.keys()].sort((o,i)=>o.localeCompare(i));for(let o of s){if(n.indexes.has(o))continue;let i=[{node:o,neighborIndex:0}];for(q(o,n);i.length>0;){let t=i.at(-1);ae(t,i,e,n)||ue(t,i,e,n)}}return n.components.sort((o,i)=>o[0].localeCompare(i[0]))}function x(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function p(e,n,s,o,i,t,r,d){n.length!==0&&e.push(E(o,i,t,r,n,s,d))}function fe(e,n,s){let o=[],i=[...e.dangling.active,...e.dangling.legacy_terminal].filter(t=>!t.no_active_blocker_sentinel);return p(o,i.filter(t=>!n(t.holder_status)).map(x),s,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",t=>`${t} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),p(o,i.filter(t=>n(t.holder_status)).map(x),s,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",t=>`${t} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),p(o,e.dangling.no_active_blocker_sentinels.map(x),s,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",t=>`${t} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),o}function I(e,n){let s=n.get(e);return s?!s.terminal:!0}function ge(e,n,s,o){let i=[],t=ce(e);for(let c of le(t)){let a=c.some(u=>I(u,n));i.push(a?E("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",u=>`execution-order cycle across ${u} item(s)`,c,o,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear."):E("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",u=>`terminal-only execution-order cycle across ${u} item(s)`,c,o,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc."))}let r=new Map;for(let[c,a]of t)for(let u of a){let l=r.get(u);l?l.push(c):r.set(u,[c])}let d=[...n.values()].filter(c=>!c.missing&&!c.terminal&&s(c.status)&&!(r.get(c.id)??[]).some(a=>{let u=n.get(a);return u===void 0||!u.terminal})).map(c=>c.id);return p(i,d,o,"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.'),i}function pe(e){let n=e.edges.map(s=>s.kind).sort((s,o)=>s.localeCompare(o));return`${e.from} -> ${e.to} (${n.join(" + ")})`}function he(e){let n=e.graph.registry(),s=new Map;for(let i of e.graph.edges()){let t=n.require(i.kind);if(!_(t))continue;let r=k(i,t);if(r.from===r.to)continue;let d=`${w(t)}::${r.from}::${r.to}`,c=s.get(d);c?c.edges.push(i):s.set(d,{...r,edges:[i]})}let o=[...s.values()].filter(i=>i.edges.length>=2);for(let i of o)i.edges.sort((t,r)=>t.kind.localeCompare(r.kind));return o.sort((i,t)=>i.from.localeCompare(t.from)||i.to.localeCompare(t.to))}function me(e,n,s){let o=[],i=[];for(let r of he(e))(I(r.from,n)||I(r.to,n)?o:i).push(pe(r));let t=[];return p(t,o,s,"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.",r=>`${r} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),p(t,i,s,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",r=>`${r} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),t}function ye(e,n){let s=[],o=[];for(let t of e.duplicateRows??[])(t.legacy_terminal?o:s).push(`${t.holder_id} -> ${t.target_id} (${t.kind} x${t.occurrences})`);let i=[];return p(i,s,n,"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.",t=>`${t} 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."),p(i,o,n,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",t=>`${t} 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."),i}function be(e,n,s,o,i){e.active+=1;let t=n.type??"(untyped)",r=e.byType.get(t);r||(r={active:0,isolated:0,degree_leq_one:0},e.byType.set(t,r)),r.active+=1,!(s>1)&&(e.degreeLeqOne+=1,r.degree_leq_one+=1,s===0&&(e.isolated+=1,r.isolated+=1),!(o.has(n.id.toLowerCase())||i.has(t.toLowerCase()))&&(s===0?e.isolates.push(n.id):e.sparse.push(n.id)))}function _e(e,n,s,o,i,t){let r={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let u of e.graph.nodes()){let l=n.get(u);if(l){if(l.missing){r.missing+=1;continue}l.terminal||be(r,l,e.graph.incidentEdges(u).length,s,o)}}let{isolates:d,sparse:c}=r,a=[];return p(a,d,i,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",u=>`${u} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),p(a,c,i,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",u=>`${u} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one."),{findings:a,profile:{nodes:e.graph.nodes().length,edges:e.graph.edges().length,edge_basis:"deduplicated_directed",edges_by_kind:Object.fromEntries(Object.entries(t).sort(([u],[l])=>u.localeCompare(l))),active_nodes:r.active,missing_nodes:r.missing,isolated_active_nodes:r.isolated,degree_leq_one_active_nodes:r.degreeLeqOne,coverage_by_type:Object.fromEntries([...r.byType.entries()].sort(([u],[l])=>u<l?-1:1))}}}function qe(e,n={}){let s=n.isTerminal??(l=>l==="closed"||l==="canceled"),o=n.isBlocked??(l=>l==="blocked"),i=n.maxSampleSize??de;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(n.maxSampleSize)}`);let t=new Set((n.exemptIsolates??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),r=new Set((n.isolateExemptTypes??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),d=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:s(l.status),...l.type===void 0?{}:{type:l.type}}]));n.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let a=fe(e,s,i);n.signal?.throwIfAborted(),a.push(...ge(e,d,o,i)),n.signal?.throwIfAborted(),a.push(...me(e,d,i),...ye(e,i)),n.signal?.throwIfAborted();let u=_e(e,d,t,r,i,c);return a.push(...u.findings),a.sort((l,f)=>S[l.severity]-S[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:a,profile:u.profile}}function C(e,n){let s=[...new Set([...Object.keys(e),...Object.keys(n)])].sort(),o={};for(let i of s){let t=(n[i]??0)-(e[i]??0);t!==0&&(o[i]=t)}return o}function $(e){return e.profile.coverage_by_type??{}}function Me(e,n){let s={},o=$(e),i=$(n),t=[...new Set([...Object.keys(o),...Object.keys(i)])].sort();for(let r of t){let d=o[r],c=i[r],a={active:(c?.active??0)-(d?.active??0),isolated:(c?.isolated??0)-(d?.isolated??0),degree_leq_one:(c?.degree_leq_one??0)-(d?.degree_leq_one??0)};Object.values(a).some(u=>u!==0)&&(s[r]=a)}return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===n.fingerprint,affected_subjects_by_code:C(e.affected_subjects_by_code,n.affected_subjects_by_code),profile:{nodes:n.profile.nodes-e.profile.nodes,edges:n.profile.edges-e.profile.edges,active_nodes:n.profile.active_nodes-e.profile.active_nodes,missing_nodes:n.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:n.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:n.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:C(e.profile.edges_by_kind,n.profile.edges_by_kind),coverage_by_type:s}}}export{we as a,ve as b,ke as c,xe as d,Ee as e,Ie as f,Y as g,Ae as h,Ne as i,Se as j,le as k,pe as l,he as m,qe as n,Me as o};
2
- //# sourceMappingURL=chunk-NE5VRDAI.js.map