vibedoc 1.8.0 → 1.9.0

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 (602) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +13 -13
  5. package/.next/routes-manifest.json +36 -0
  6. package/.next/server/app/(app)/activity/page.js +2 -2
  7. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  8. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(app)/board/page.js +2 -2
  10. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/chat/page.js +2 -2
  13. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  14. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(app)/docs/page.js +2 -2
  16. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(app)/explorer/page.js +2 -2
  19. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/manual-tests/page.js +2 -2
  22. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -1
  23. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/(app)/memory/page.js +2 -2
  25. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/roadmap/page.js +2 -2
  28. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  29. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(app)/settings/page.js +2 -2
  31. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(app)/setup/page.js +2 -2
  34. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  35. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/_global-error/page.js +2 -2
  37. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  38. package/.next/server/app/_global-error.html +1 -1
  39. package/.next/server/app/_global-error.rsc +1 -1
  40. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  41. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  42. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  43. package/.next/server/app/_not-found/page.js +2 -2
  44. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  45. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/_not-found.html +1 -1
  47. package/.next/server/app/_not-found.rsc +2 -2
  48. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  49. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  50. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  51. package/.next/server/app/activity.html +1 -1
  52. package/.next/server/app/activity.rsc +22 -23
  53. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +11 -9
  54. package/.next/server/app/activity.segments/_full.segment.rsc +22 -23
  55. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  56. package/.next/server/app/api/activity/route.js +2 -2
  57. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  58. package/.next/server/app/api/backlinks/route.js +2 -2
  59. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  60. package/.next/server/app/api/chat/route.js +3 -3
  61. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  62. package/.next/server/app/api/context/route.js +2 -2
  63. package/.next/server/app/api/context/route.js.nft.json +1 -1
  64. package/.next/server/app/api/conversations/route.js +3 -3
  65. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  66. package/.next/server/app/api/decisions/route.js +2 -2
  67. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  68. package/.next/server/app/api/docs/route.js +3 -3
  69. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  70. package/.next/server/app/api/explorer/route.js +3 -3
  71. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  72. package/.next/server/app/api/mcp/route.js +3 -3
  73. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  74. package/.next/server/app/api/memory/entries/delete/route/app-paths-manifest.json +3 -0
  75. package/.next/server/app/api/memory/entries/delete/route/build-manifest.json +12 -0
  76. package/.next/server/app/api/memory/entries/delete/route/server-reference-manifest.json +4 -0
  77. package/.next/server/app/api/memory/entries/delete/route.js +9 -0
  78. package/.next/server/app/api/memory/entries/delete/route.js.map +5 -0
  79. package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -0
  80. package/.next/server/app/api/memory/entries/delete/route_client-reference-manifest.js +3 -0
  81. package/.next/server/app/api/memory/entries/restore/route/app-paths-manifest.json +3 -0
  82. package/.next/server/app/api/memory/entries/restore/route/build-manifest.json +12 -0
  83. package/.next/server/app/api/memory/entries/restore/route/server-reference-manifest.json +4 -0
  84. package/.next/server/app/api/memory/entries/restore/route.js +9 -0
  85. package/.next/server/app/api/memory/entries/restore/route.js.map +5 -0
  86. package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -0
  87. package/.next/server/app/api/memory/entries/restore/route_client-reference-manifest.js +3 -0
  88. package/.next/server/app/api/memory/entries/route/app-paths-manifest.json +3 -0
  89. package/.next/server/app/api/memory/entries/route/build-manifest.json +12 -0
  90. package/.next/server/app/api/memory/entries/route/server-reference-manifest.json +4 -0
  91. package/.next/server/app/api/memory/entries/route.js +8 -0
  92. package/.next/server/app/api/memory/entries/route.js.map +5 -0
  93. package/.next/server/app/api/memory/entries/route.js.nft.json +1 -0
  94. package/.next/server/app/api/memory/entries/route_client-reference-manifest.js +3 -0
  95. package/.next/server/app/api/memory/entries/save/route/app-paths-manifest.json +3 -0
  96. package/.next/server/app/api/memory/entries/save/route/build-manifest.json +12 -0
  97. package/.next/server/app/api/memory/entries/save/route/server-reference-manifest.json +4 -0
  98. package/.next/server/app/api/memory/entries/save/route.js +9 -0
  99. package/.next/server/app/api/memory/entries/save/route.js.map +5 -0
  100. package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -0
  101. package/.next/server/app/api/memory/entries/save/route_client-reference-manifest.js +3 -0
  102. package/.next/server/app/api/memory/graph/route/app-paths-manifest.json +3 -0
  103. package/.next/server/app/api/memory/graph/route/build-manifest.json +12 -0
  104. package/.next/server/app/api/memory/graph/route/server-reference-manifest.json +4 -0
  105. package/.next/server/app/api/memory/graph/route.js +9 -0
  106. package/.next/server/app/api/memory/graph/route.js.map +5 -0
  107. package/.next/server/app/api/memory/graph/route.js.nft.json +1 -0
  108. package/.next/server/app/api/memory/graph/route_client-reference-manifest.js +3 -0
  109. package/.next/server/app/api/memory/history/route/app-paths-manifest.json +3 -0
  110. package/.next/server/app/api/memory/history/route/build-manifest.json +12 -0
  111. package/.next/server/app/api/memory/history/route/server-reference-manifest.json +4 -0
  112. package/.next/server/app/api/memory/history/route.js +9 -0
  113. package/.next/server/app/api/memory/history/route.js.map +5 -0
  114. package/.next/server/app/api/memory/history/route.js.nft.json +1 -0
  115. package/.next/server/app/api/memory/history/route_client-reference-manifest.js +3 -0
  116. package/.next/server/app/api/memory/route.js +2 -2
  117. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  118. package/.next/server/app/api/plan/apply/route.js +3 -3
  119. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  120. package/.next/server/app/api/projects/route.js +2 -2
  121. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  122. package/.next/server/app/api/registry/route.js +2 -2
  123. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  124. package/.next/server/app/api/roadmap/create/route.js +3 -3
  125. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  126. package/.next/server/app/api/roadmap/delete/route.js +3 -3
  127. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  128. package/.next/server/app/api/roadmap/generate/route.js +3 -3
  129. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  130. package/.next/server/app/api/roadmap/layout/route.js +3 -3
  131. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  132. package/.next/server/app/api/roadmap/restore/route.js +3 -3
  133. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -1
  134. package/.next/server/app/api/roadmap/route.js +2 -2
  135. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  136. package/.next/server/app/api/roadmap/update/route.js +3 -3
  137. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  138. package/.next/server/app/api/sessions/route.js +2 -2
  139. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  140. package/.next/server/app/api/settings/route.js +2 -2
  141. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  142. package/.next/server/app/api/setup/generate/route.js +4 -4
  143. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  144. package/.next/server/app/api/setup/write/route.js +2 -2
  145. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  146. package/.next/server/app/api/summary/route.js +2 -2
  147. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  148. package/.next/server/app/api/tasks/bulk/route.js +3 -3
  149. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -1
  150. package/.next/server/app/api/tasks/create/route.js +2 -2
  151. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/delete/route.js +3 -3
  153. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -1
  154. package/.next/server/app/api/tasks/manual-tests/route.js +2 -2
  155. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -1
  156. package/.next/server/app/api/tasks/restore/route.js +3 -3
  157. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -1
  158. package/.next/server/app/api/tasks/review/route.js +3 -3
  159. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -1
  160. package/.next/server/app/api/tasks/route.js +2 -2
  161. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  162. package/.next/server/app/api/tasks/update/route.js +3 -3
  163. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -1
  164. package/.next/server/app/api/views/route.js +3 -3
  165. package/.next/server/app/api/views/route.js.nft.json +1 -1
  166. package/.next/server/app/board.html +1 -1
  167. package/.next/server/app/board.rsc +22 -23
  168. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +6 -6
  169. package/.next/server/app/board.segments/_full.segment.rsc +22 -23
  170. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  171. package/.next/server/app/chat.html +1 -1
  172. package/.next/server/app/chat.rsc +22 -23
  173. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +9 -11
  174. package/.next/server/app/chat.segments/_full.segment.rsc +22 -23
  175. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  176. package/.next/server/app/docs.html +1 -1
  177. package/.next/server/app/docs.rsc +22 -23
  178. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -6
  179. package/.next/server/app/docs.segments/_full.segment.rsc +22 -23
  180. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  181. package/.next/server/app/explorer.html +1 -1
  182. package/.next/server/app/explorer.rsc +22 -23
  183. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +5 -5
  184. package/.next/server/app/explorer.segments/_full.segment.rsc +22 -23
  185. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  186. package/.next/server/app/index.html +1 -1
  187. package/.next/server/app/index.rsc +2 -2
  188. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  189. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  190. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  191. package/.next/server/app/manual-tests.html +1 -1
  192. package/.next/server/app/manual-tests.rsc +22 -23
  193. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +5 -5
  194. package/.next/server/app/manual-tests.segments/_full.segment.rsc +22 -23
  195. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +2 -2
  196. package/.next/server/app/memory.html +1 -1
  197. package/.next/server/app/memory.rsc +23 -23
  198. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +12 -10
  199. package/.next/server/app/memory.segments/_full.segment.rsc +23 -23
  200. package/.next/server/app/memory.segments/_tree.segment.rsc +3 -2
  201. package/.next/server/app/page.js +2 -2
  202. package/.next/server/app/page.js.nft.json +1 -1
  203. package/.next/server/app/page_client-reference-manifest.js +1 -1
  204. package/.next/server/app/roadmap.html +1 -1
  205. package/.next/server/app/roadmap.rsc +22 -23
  206. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +6 -6
  207. package/.next/server/app/roadmap.segments/_full.segment.rsc +22 -23
  208. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  209. package/.next/server/app/settings.html +1 -1
  210. package/.next/server/app/settings.rsc +22 -23
  211. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +10 -9
  212. package/.next/server/app/settings.segments/_full.segment.rsc +22 -23
  213. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  214. package/.next/server/app/setup.html +1 -1
  215. package/.next/server/app/setup.rsc +22 -23
  216. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +5 -5
  217. package/.next/server/app/setup.segments/_full.segment.rsc +22 -23
  218. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  219. package/.next/server/app-paths-manifest.json +6 -0
  220. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00p3fu1._.js → 11mp_@anthropic-ai_sdk_0-_cqh8._.js} +1 -1
  221. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01jjl08._.js → 11mp_@anthropic-ai_sdk_00o5o78._.js} +1 -1
  222. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01amtux._.js → 11mp_@anthropic-ai_sdk_03cp17a._.js} +1 -1
  223. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_071zfm8._.js → 11mp_@anthropic-ai_sdk_07dk2er._.js} +1 -1
  224. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_e9zpr._.js +3 -0
  225. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_xx_qf._.js +3 -0
  226. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0aer9lc._.js +3 -0
  227. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ax30pe._.js +3 -0
  228. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gn7vgs._.js +3 -0
  229. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hye94a._.js +3 -0
  230. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ir5cgk._.js +3 -0
  231. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0je0_pa._.js +3 -0
  232. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0jfgh0o._.js +3 -0
  233. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0mha4x1._.js +3 -0
  234. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0n__boa._.js +3 -0
  235. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0sqv26_._.js +3 -0
  236. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wnc6g-._.js +3 -0
  237. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0xh0g59._.js +3 -0
  238. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-5wyhj._.js +3 -0
  239. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13ahm3n._.js +3 -0
  240. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13e6aq4._.js +3 -0
  241. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14eg0ld._.js +3 -0
  242. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15md1n2._.js +3 -0
  243. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16av8b9._.js +3 -0
  244. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16hjhv1._.js +3 -0
  245. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16txvf7._.js +3 -0
  246. package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js +3 -0
  247. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js +3 -0
  248. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js +3 -0
  249. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js +3 -0
  250. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js +3 -0
  251. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js +3 -0
  252. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js +3 -0
  253. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js +3 -0
  254. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js +3 -0
  255. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js.map +1 -0
  256. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js +3 -0
  257. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js.map +1 -0
  258. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js +3 -0
  259. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js.map +1 -0
  260. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js +3 -0
  261. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js.map +1 -0
  262. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js +3 -0
  263. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js.map +1 -0
  264. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js +3 -0
  265. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js.map +1 -0
  266. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js +3 -0
  267. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js +3 -0
  268. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js +3 -0
  269. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js +3 -0
  270. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js +3 -0
  271. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js +3 -0
  272. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js +3 -0
  273. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js +3 -0
  274. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js +3 -0
  275. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js +3 -0
  276. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js +3 -0
  277. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js +3 -0
  278. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js +3 -0
  279. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js +3 -0
  280. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js +3 -0
  281. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js +3 -0
  282. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js +3 -0
  283. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js +3 -0
  284. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js.map +1 -0
  285. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js +3 -0
  286. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js.map +1 -0
  287. package/.next/server/chunks/[root-of-the-server]__008focd._.js +3 -0
  288. package/.next/server/chunks/{[root-of-the-server]__1vh9g2o._.js.map → [root-of-the-server]__008focd._.js.map} +1 -1
  289. package/.next/server/chunks/[root-of-the-server]__01xmabe._.js +3 -0
  290. package/.next/server/chunks/{[root-of-the-server]__1-e3i_5._.js.map → [root-of-the-server]__01xmabe._.js.map} +1 -1
  291. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js +3 -0
  292. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js.map +1 -0
  293. package/.next/server/chunks/[root-of-the-server]__05us508._.js +3 -0
  294. package/.next/server/chunks/{[root-of-the-server]__0vcsqzd._.js.map → [root-of-the-server]__05us508._.js.map} +1 -1
  295. package/.next/server/chunks/[root-of-the-server]__08yaps5._.js +3 -0
  296. package/.next/server/chunks/{[root-of-the-server]__1ezzeji._.js.map → [root-of-the-server]__08yaps5._.js.map} +1 -1
  297. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js → [root-of-the-server]__09oyvwa._.js} +2 -2
  298. package/.next/server/chunks/{[root-of-the-server]__1wr0m-s._.js.map → [root-of-the-server]__09oyvwa._.js.map} +1 -1
  299. package/.next/server/chunks/[root-of-the-server]__0axugex._.js +3 -0
  300. package/.next/server/chunks/{[root-of-the-server]__0-pmfg2._.js.map → [root-of-the-server]__0axugex._.js.map} +1 -1
  301. package/.next/server/chunks/[root-of-the-server]__0b2488c._.js +3 -0
  302. package/.next/server/chunks/{[root-of-the-server]__0b5pwze._.js.map → [root-of-the-server]__0b2488c._.js.map} +1 -1
  303. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js +3 -0
  304. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js.map +1 -0
  305. package/.next/server/chunks/{[root-of-the-server]__04tibmn._.js → [root-of-the-server]__0cbh1s-._.js} +2 -2
  306. package/.next/server/chunks/{[root-of-the-server]__02co2yq._.js.map → [root-of-the-server]__0cbh1s-._.js.map} +1 -1
  307. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js +3 -0
  308. package/.next/server/chunks/{[root-of-the-server]__1qusy4g._.js.map → [root-of-the-server]__0exzf-v._.js.map} +1 -1
  309. package/.next/server/chunks/[root-of-the-server]__0gnil0m._.js +3 -0
  310. package/.next/server/chunks/{[root-of-the-server]__18kxo4a._.js.map → [root-of-the-server]__0gnil0m._.js.map} +1 -1
  311. package/.next/server/chunks/{[root-of-the-server]__1mrmaf9._.js → [root-of-the-server]__0hfyuhq._.js} +2 -2
  312. package/.next/server/chunks/[root-of-the-server]__0hfyuhq._.js.map +1 -0
  313. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js +3 -0
  314. package/.next/server/chunks/{[root-of-the-server]__0q3-t8a._.js.map → [root-of-the-server]__0hg1r2b._.js.map} +1 -1
  315. package/.next/server/chunks/[root-of-the-server]__0ikbk15._.js +3 -0
  316. package/.next/server/chunks/{[root-of-the-server]__19k8t87._.js.map → [root-of-the-server]__0ikbk15._.js.map} +1 -1
  317. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js +110 -0
  318. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js.map +1 -0
  319. package/.next/server/chunks/[root-of-the-server]__0khz7sy._.js +3 -0
  320. package/.next/server/chunks/{[root-of-the-server]__1jxu2x9._.js.map → [root-of-the-server]__0khz7sy._.js.map} +1 -1
  321. package/.next/server/chunks/[root-of-the-server]__0lf11mz._.js +3 -0
  322. package/.next/server/chunks/{[root-of-the-server]__1lj_2cv._.js.map → [root-of-the-server]__0lf11mz._.js.map} +1 -1
  323. package/.next/server/chunks/[root-of-the-server]__0m8hmg0._.js +3 -0
  324. package/.next/server/chunks/{[root-of-the-server]__1umrorf._.js.map → [root-of-the-server]__0m8hmg0._.js.map} +1 -1
  325. package/.next/server/chunks/[root-of-the-server]__0qij7wy._.js +3 -0
  326. package/.next/server/chunks/{[root-of-the-server]__1vq38ov._.js.map → [root-of-the-server]__0qij7wy._.js.map} +1 -1
  327. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js +3 -0
  328. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js.map +1 -0
  329. package/.next/server/chunks/[root-of-the-server]__0x8wtot._.js +3 -0
  330. package/.next/server/chunks/{[root-of-the-server]__05g5cgo._.js.map → [root-of-the-server]__0x8wtot._.js.map} +1 -1
  331. package/.next/server/chunks/[root-of-the-server]__0y5usoz._.js +3 -0
  332. package/.next/server/chunks/{[root-of-the-server]__1-ic3af._.js.map → [root-of-the-server]__0y5usoz._.js.map} +1 -1
  333. package/.next/server/chunks/[root-of-the-server]__15c5snv._.js +3 -0
  334. package/.next/server/chunks/{[root-of-the-server]__05l6129._.js.map → [root-of-the-server]__15c5snv._.js.map} +1 -1
  335. package/.next/server/chunks/[root-of-the-server]__16u25oa._.js +3 -0
  336. package/.next/server/chunks/{[root-of-the-server]__0druay_._.js.map → [root-of-the-server]__16u25oa._.js.map} +1 -1
  337. package/.next/server/chunks/[root-of-the-server]__18dt3sr._.js +3 -0
  338. package/.next/server/chunks/{[root-of-the-server]__14aeqoi._.js.map → [root-of-the-server]__18dt3sr._.js.map} +1 -1
  339. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js +110 -0
  340. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js.map +1 -0
  341. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js +3 -0
  342. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js.map +1 -0
  343. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js +3 -0
  344. package/.next/server/chunks/{[root-of-the-server]__11a4ptn._.js.map → [root-of-the-server]__1a7d63a._.js.map} +1 -1
  345. package/.next/server/chunks/[root-of-the-server]__1b448u7._.js +3 -0
  346. package/.next/server/chunks/{[root-of-the-server]__197vw9g._.js.map → [root-of-the-server]__1b448u7._.js.map} +1 -1
  347. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js +3 -0
  348. package/.next/server/chunks/{[root-of-the-server]__15ck1wv._.js.map → [root-of-the-server]__1e68zmx._.js.map} +1 -1
  349. package/.next/server/chunks/[root-of-the-server]__1gvv2xp._.js +3 -0
  350. package/.next/server/chunks/{[root-of-the-server]__04tibmn._.js.map → [root-of-the-server]__1gvv2xp._.js.map} +1 -1
  351. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js +3 -0
  352. package/.next/server/chunks/{[root-of-the-server]__12nzy_6._.js.map → [root-of-the-server]__1jel07j._.js.map} +1 -1
  353. package/.next/server/chunks/[root-of-the-server]__1jz98vb._.js +3 -0
  354. package/.next/server/chunks/{[root-of-the-server]__0p6ja6l._.js.map → [root-of-the-server]__1jz98vb._.js.map} +1 -1
  355. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js +3 -0
  356. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js.map +1 -0
  357. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js +3 -0
  358. package/.next/server/chunks/{[root-of-the-server]__1xb0fmp._.js.map → [root-of-the-server]__1p6-0l0._.js.map} +1 -1
  359. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js +110 -0
  360. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js.map +1 -0
  361. package/.next/server/chunks/[root-of-the-server]__1r_0uma._.js +3 -0
  362. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js.map → [root-of-the-server]__1r_0uma._.js.map} +1 -1
  363. package/.next/server/chunks/[root-of-the-server]__1ssunti._.js +3 -0
  364. package/.next/server/chunks/{[root-of-the-server]__1mrmaf9._.js.map → [root-of-the-server]__1ssunti._.js.map} +1 -1
  365. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js +3 -0
  366. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js.map +1 -0
  367. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js +3 -0
  368. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js.map +1 -0
  369. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js +3 -0
  370. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js.map +1 -0
  371. package/.next/server/chunks/[root-of-the-server]__1z3tswg._.js +3 -0
  372. package/.next/server/chunks/{[root-of-the-server]__1n68akx._.js.map → [root-of-the-server]__1z3tswg._.js.map} +1 -1
  373. package/.next/server/chunks/_04byth9._.js +33 -23
  374. package/.next/server/chunks/_04byth9._.js.map +1 -1
  375. package/.next/server/chunks/_0safx0g._.js +10 -0
  376. package/.next/server/chunks/_0safx0g._.js.map +1 -0
  377. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js +3 -0
  378. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js.map +1 -0
  379. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js +3 -0
  380. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js.map +1 -0
  381. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js +3 -0
  382. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js.map +1 -0
  383. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js +3 -0
  384. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js.map +1 -0
  385. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js +3 -0
  386. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js.map +1 -0
  387. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js +3 -0
  388. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js.map +1 -0
  389. package/.next/server/chunks/ssr/[root-of-the-server]__0opgo3t._.js +14 -0
  390. package/.next/server/chunks/ssr/{[root-of-the-server]__0noc5ay._.js.map → [root-of-the-server]__0opgo3t._.js.map} +1 -1
  391. package/.next/server/chunks/ssr/[root-of-the-server]__1jv5ug1._.js +3 -0
  392. package/.next/server/chunks/ssr/{[root-of-the-server]__1pk-w2i._.js.map → [root-of-the-server]__1jv5ug1._.js.map} +1 -1
  393. package/.next/server/chunks/ssr/_0i75x-o._.js +3 -0
  394. package/.next/server/chunks/ssr/_0i75x-o._.js.map +1 -0
  395. package/.next/server/chunks/ssr/_15qpb4z._.js +3 -0
  396. package/.next/server/chunks/ssr/_15qpb4z._.js.map +1 -0
  397. package/.next/server/chunks/ssr/_1fg0usp._.js +3 -0
  398. package/.next/server/chunks/ssr/_1fg0usp._.js.map +1 -0
  399. package/.next/server/chunks/ssr/_1h0wfpz._.js +3 -0
  400. package/.next/server/chunks/ssr/_1h0wfpz._.js.map +1 -0
  401. package/.next/server/chunks/ssr/_1ocnpth._.js +3 -0
  402. package/.next/server/chunks/ssr/_1ocnpth._.js.map +1 -0
  403. package/.next/server/chunks/ssr/{_14emfpq._.js → _1uno162._.js} +2 -2
  404. package/.next/server/chunks/ssr/_1uno162._.js.map +1 -0
  405. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js +3 -0
  406. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js.map +1 -0
  407. package/.next/server/chunks/ssr/{_1ftruw6._.js → node_modules__pnpm_0aoa6rg._.js} +2 -2
  408. package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js.map +1 -0
  409. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +13 -0
  410. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -0
  411. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +1 -1
  412. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
  413. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js +3 -0
  414. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js.map +1 -0
  415. package/.next/server/chunks/ssr/src_components_1s861m8._.js +3 -0
  416. package/.next/server/chunks/ssr/src_components_1s861m8._.js.map +1 -0
  417. package/.next/server/middleware-build-manifest.js +3 -3
  418. package/.next/server/pages/404.html +1 -1
  419. package/.next/server/pages/500.html +1 -1
  420. package/.next/server/server-reference-manifest.js +1 -1
  421. package/.next/server/server-reference-manifest.json +1 -1
  422. package/.next/static/chunks/0b547y6rqct9z.js +1 -0
  423. package/.next/static/chunks/0e3ha56i_0j05.css +1 -0
  424. package/.next/static/chunks/0f32hudp0yir7.js +2 -0
  425. package/.next/static/chunks/0rsmz1jgro1kj.js +1 -0
  426. package/.next/static/chunks/0wnq_kh8-6wc1.js +2 -0
  427. package/.next/static/chunks/1acpfyut6j4e2.js +1 -0
  428. package/.next/static/chunks/{1xyepk9227yej.js → 1l_dys0-y5-r7.js} +6 -6
  429. package/.next/static/chunks/1rko_88i85yqb.js +21 -0
  430. package/.next/static/chunks/20mdcup14_0yi.js +11 -0
  431. package/.next/static/chunks/24u_rc2tbkhai.js +3 -0
  432. package/.next/static/chunks/2p-pkveutoh75.js +1 -0
  433. package/.next/static/chunks/{41oxcdcw-pcwt.js → 329sozud9-tvr.js} +1 -1
  434. package/.next/static/chunks/3qqvn9vv6i0gy.js +68 -0
  435. package/.next/static/chunks/{2_xpm7qhr69n8.js → 3xqcluqa32mjv.js} +2 -2
  436. package/README.md +11 -4
  437. package/package.json +1 -1
  438. package/.next/server/chunks/11mp_@anthropic-ai_sdk_07v3boe._.js +0 -3
  439. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09iva72._.js +0 -3
  440. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0bom1b1._.js +0 -3
  441. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dvji7p._.js +0 -3
  442. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dzo8jn._.js +0 -3
  443. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hvqsqq._.js +0 -3
  444. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i7i-jw._.js +0 -3
  445. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k0iop5._.js +0 -3
  446. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l3-6aq._.js +0 -3
  447. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0oegm3y._.js +0 -3
  448. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0p5cyes._.js +0 -3
  449. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qw8i6_._.js +0 -3
  450. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yk-a7v._.js +0 -3
  451. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11fsqvb._.js +0 -3
  452. package/.next/server/chunks/11mp_@anthropic-ai_sdk_143_7ez._.js +0 -3
  453. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14a4-64._.js +0 -3
  454. package/.next/server/chunks/11mp_@anthropic-ai_sdk_17d_oma._.js +0 -3
  455. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18qwuyb._.js +0 -3
  456. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19au8y6._.js +0 -3
  457. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ak_hy5._.js +0 -3
  458. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cqa0nq._.js +0 -3
  459. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i-x_q0._.js +0 -3
  460. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js +0 -3
  461. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js +0 -3
  462. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js +0 -3
  463. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js +0 -3
  464. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js +0 -3
  465. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js +0 -3
  466. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js +0 -3
  467. package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js +0 -3
  468. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js +0 -3
  469. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js +0 -3
  470. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js +0 -3
  471. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js +0 -3
  472. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js +0 -3
  473. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js +0 -3
  474. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js +0 -3
  475. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js +0 -3
  476. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js +0 -3
  477. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js +0 -3
  478. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js +0 -3
  479. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js +0 -3
  480. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js +0 -3
  481. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js +0 -3
  482. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js +0 -3
  483. package/.next/server/chunks/[root-of-the-server]__0-pmfg2._.js +0 -3
  484. package/.next/server/chunks/[root-of-the-server]__02co2yq._.js +0 -3
  485. package/.next/server/chunks/[root-of-the-server]__05g5cgo._.js +0 -3
  486. package/.next/server/chunks/[root-of-the-server]__05l6129._.js +0 -3
  487. package/.next/server/chunks/[root-of-the-server]__0b5pwze._.js +0 -3
  488. package/.next/server/chunks/[root-of-the-server]__0druay_._.js +0 -3
  489. package/.next/server/chunks/[root-of-the-server]__0p6ja6l._.js +0 -3
  490. package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js +0 -3
  491. package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js +0 -3
  492. package/.next/server/chunks/[root-of-the-server]__1-e3i_5._.js +0 -3
  493. package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js +0 -3
  494. package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js +0 -3
  495. package/.next/server/chunks/[root-of-the-server]__11c8641._.js +0 -3
  496. package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js +0 -3
  497. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js +0 -3
  498. package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js +0 -3
  499. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +0 -99
  500. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +0 -1
  501. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js +0 -10
  502. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js.map +0 -1
  503. package/.next/server/chunks/[root-of-the-server]__18kxo4a._.js +0 -3
  504. package/.next/server/chunks/[root-of-the-server]__197vw9g._.js +0 -3
  505. package/.next/server/chunks/[root-of-the-server]__19k8t87._.js +0 -3
  506. package/.next/server/chunks/[root-of-the-server]__1ezzeji._.js +0 -3
  507. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +0 -3
  508. package/.next/server/chunks/[root-of-the-server]__1lj_2cv._.js +0 -3
  509. package/.next/server/chunks/[root-of-the-server]__1n68akx._.js +0 -3
  510. package/.next/server/chunks/[root-of-the-server]__1npya5q._.js +0 -3
  511. package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js +0 -3
  512. package/.next/server/chunks/[root-of-the-server]__1umrorf._.js +0 -3
  513. package/.next/server/chunks/[root-of-the-server]__1vh9g2o._.js +0 -3
  514. package/.next/server/chunks/[root-of-the-server]__1vq38ov._.js +0 -3
  515. package/.next/server/chunks/[root-of-the-server]__1wr0m-s._.js +0 -3
  516. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +0 -3
  517. package/.next/server/chunks/ssr/[root-of-the-server]__0noc5ay._.js +0 -14
  518. package/.next/server/chunks/ssr/[root-of-the-server]__1pk-w2i._.js +0 -3
  519. package/.next/server/chunks/ssr/_09b02z-._.js +0 -3
  520. package/.next/server/chunks/ssr/_09b02z-._.js.map +0 -1
  521. package/.next/server/chunks/ssr/_0d0f1s1._.js +0 -3
  522. package/.next/server/chunks/ssr/_0d0f1s1._.js.map +0 -1
  523. package/.next/server/chunks/ssr/_0lnt_va._.js +0 -4
  524. package/.next/server/chunks/ssr/_0lnt_va._.js.map +0 -1
  525. package/.next/server/chunks/ssr/_0qlymco._.js +0 -3
  526. package/.next/server/chunks/ssr/_0qlymco._.js.map +0 -1
  527. package/.next/server/chunks/ssr/_0sg1oeq._.js +0 -3
  528. package/.next/server/chunks/ssr/_0sg1oeq._.js.map +0 -1
  529. package/.next/server/chunks/ssr/_14emfpq._.js.map +0 -1
  530. package/.next/server/chunks/ssr/_1ftruw6._.js.map +0 -1
  531. package/.next/server/chunks/ssr/_1x7ggg5._.js +0 -4
  532. package/.next/server/chunks/ssr/_1x7ggg5._.js.map +0 -1
  533. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js +0 -3
  534. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js.map +0 -1
  535. package/.next/server/chunks/ssr/src_1lkod9y._.js +0 -8
  536. package/.next/server/chunks/ssr/src_1lkod9y._.js.map +0 -1
  537. package/.next/static/chunks/0p1-hkgnm2ll2.js +0 -1
  538. package/.next/static/chunks/0pgu5q5vodev6.js +0 -1
  539. package/.next/static/chunks/0rqzvayflendx.js +0 -2
  540. package/.next/static/chunks/0vcfs7dii85tw.js +0 -21
  541. package/.next/static/chunks/150y5rwg6gwvx.css +0 -1
  542. package/.next/static/chunks/1fd43t9y42wd3.js +0 -1
  543. package/.next/static/chunks/1q50zh5z-fq2k.js +0 -2
  544. package/.next/static/chunks/2ls_yp4-qgb42.js +0 -1
  545. package/.next/static/chunks/2zz0ip2l_29c3.js +0 -3
  546. package/.next/static/chunks/3h4ehgq7i44wb.js +0 -6
  547. package/.next/static/chunks/3vf5nnd4xjo5_.js +0 -1
  548. package/.next/static/chunks/40jaenrnspnlh.js +0 -68
  549. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00p3fu1._.js.map → 11mp_@anthropic-ai_sdk_0-_cqh8._.js.map} +0 -0
  550. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01amtux._.js.map → 11mp_@anthropic-ai_sdk_00o5o78._.js.map} +0 -0
  551. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01jjl08._.js.map → 11mp_@anthropic-ai_sdk_03cp17a._.js.map} +0 -0
  552. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_071zfm8._.js.map → 11mp_@anthropic-ai_sdk_07dk2er._.js.map} +0 -0
  553. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07v3boe._.js.map → 11mp_@anthropic-ai_sdk_0_e9zpr._.js.map} +0 -0
  554. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_09iva72._.js.map → 11mp_@anthropic-ai_sdk_0_xx_qf._.js.map} +0 -0
  555. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0bom1b1._.js.map → 11mp_@anthropic-ai_sdk_0aer9lc._.js.map} +0 -0
  556. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0dvji7p._.js.map → 11mp_@anthropic-ai_sdk_0ax30pe._.js.map} +0 -0
  557. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0dzo8jn._.js.map → 11mp_@anthropic-ai_sdk_0gn7vgs._.js.map} +0 -0
  558. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0hvqsqq._.js.map → 11mp_@anthropic-ai_sdk_0hye94a._.js.map} +0 -0
  559. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0i7i-jw._.js.map → 11mp_@anthropic-ai_sdk_0ir5cgk._.js.map} +0 -0
  560. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k0iop5._.js.map → 11mp_@anthropic-ai_sdk_0je0_pa._.js.map} +0 -0
  561. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0l3-6aq._.js.map → 11mp_@anthropic-ai_sdk_0jfgh0o._.js.map} +0 -0
  562. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0oegm3y._.js.map → 11mp_@anthropic-ai_sdk_0mha4x1._.js.map} +0 -0
  563. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0p5cyes._.js.map → 11mp_@anthropic-ai_sdk_0n__boa._.js.map} +0 -0
  564. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qw8i6_._.js.map → 11mp_@anthropic-ai_sdk_0sqv26_._.js.map} +0 -0
  565. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0yk-a7v._.js.map → 11mp_@anthropic-ai_sdk_0wnc6g-._.js.map} +0 -0
  566. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11fsqvb._.js.map → 11mp_@anthropic-ai_sdk_0xh0g59._.js.map} +0 -0
  567. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_143_7ez._.js.map → 11mp_@anthropic-ai_sdk_1-5wyhj._.js.map} +0 -0
  568. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_14a4-64._.js.map → 11mp_@anthropic-ai_sdk_13ahm3n._.js.map} +0 -0
  569. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_17d_oma._.js.map → 11mp_@anthropic-ai_sdk_13e6aq4._.js.map} +0 -0
  570. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_18qwuyb._.js.map → 11mp_@anthropic-ai_sdk_14eg0ld._.js.map} +0 -0
  571. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_19au8y6._.js.map → 11mp_@anthropic-ai_sdk_15md1n2._.js.map} +0 -0
  572. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ak_hy5._.js.map → 11mp_@anthropic-ai_sdk_16av8b9._.js.map} +0 -0
  573. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1cqa0nq._.js.map → 11mp_@anthropic-ai_sdk_16hjhv1._.js.map} +0 -0
  574. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1i-x_q0._.js.map → 11mp_@anthropic-ai_sdk_16txvf7._.js.map} +0 -0
  575. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1jmtliz._.js.map → 11mp_@anthropic-ai_sdk_198yu7d._.js.map} +0 -0
  576. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1jouwlj._.js.map → 11mp_@anthropic-ai_sdk_1_9tfq3._.js.map} +0 -0
  577. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1r_q5um._.js.map → 11mp_@anthropic-ai_sdk_1_izr2o._.js.map} +0 -0
  578. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1t959xd._.js.map → 11mp_@anthropic-ai_sdk_1fljcyg._.js.map} +0 -0
  579. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1vkprw9._.js.map → 11mp_@anthropic-ai_sdk_1lrt6ul._.js.map} +0 -0
  580. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1y95ax9._.js.map → 11mp_@anthropic-ai_sdk_1nev_ee._.js.map} +0 -0
  581. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1y9misr._.js.map → 11mp_@anthropic-ai_sdk_1pgoe2i._.js.map} +0 -0
  582. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_21b8wwy._.js.map → 11mp_@anthropic-ai_sdk_1rgl7mu._.js.map} +0 -0
  583. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js.map} +0 -0
  584. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js.map} +0 -0
  585. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js.map} +0 -0
  586. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js.map} +0 -0
  587. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js.map} +0 -0
  588. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js.map} +0 -0
  589. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js.map} +0 -0
  590. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js.map} +0 -0
  591. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js.map} +0 -0
  592. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js.map} +0 -0
  593. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js.map} +0 -0
  594. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js.map} +0 -0
  595. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js.map} +0 -0
  596. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js.map} +0 -0
  597. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js.map} +0 -0
  598. /package/.next/server/chunks/{[root-of-the-server]__11c8641._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js.map} +0 -0
  599. /package/.next/server/chunks/{[root-of-the-server]__1npya5q._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js.map} +0 -0
  600. /package/.next/static/{fGPda81_8-K4GmaNUE6KA → Q29Tn_NjyVms0d3pKn4Yx}/_buildManifest.js +0 -0
  601. /package/.next/static/{fGPda81_8-K4GmaNUE6KA → Q29Tn_NjyVms0d3pKn4Yx}/_clientMiddlewareManifest.js +0 -0
  602. /package/.next/static/{fGPda81_8-K4GmaNUE6KA → Q29Tn_NjyVms0d3pKn4Yx}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/glob%4013.0.6/node_modules/glob/dist/esm/index.min.js","../../../src/lib/diff.ts","../../../src/lib/owner.ts","../../../src/lib/sessions.ts","../../../src/lib/auto-dates.ts","../../../src/lib/statuses.ts","../../../src/lib/review.ts","../../../src/lib/manual-tests.ts","../../../src/lib/work-queue.ts","../../../src/lib/roadmap-import.ts","../../../src/lib/plan.ts","../../../src/lib/roadmap-health.ts","../../../src/lib/core.ts","../../../src/lib/entries.ts","../../../src/lib/recall.ts","../../../src/lib/memory-graph.ts"],"sourcesContent":["var Gt=(n,t,e)=>{let s=n instanceof RegExp?ce(n,e):n,i=t instanceof RegExp?ce(t,e):t,r=s!==null&&i!=null&&ss(s,i,e);return r&&{start:r[0],end:r[1],pre:e.slice(0,r[0]),body:e.slice(r[0]+s.length,r[1]),post:e.slice(r[1]+i.length)}},ce=(n,t)=>{let e=t.match(n);return e?e[0]:null},ss=(n,t,e)=>{let s,i,r,o,h,a=e.indexOf(n),l=e.indexOf(t,a+1),u=a;if(a>=0&&l>0){if(n===t)return[a,l];for(s=[],r=e.length;u>=0&&!h;){if(u===a)s.push(u),a=e.indexOf(n,u+1);else if(s.length===1){let c=s.pop();c!==void 0&&(h=[c,l])}else i=s.pop(),i!==void 0&&i<r&&(r=i,o=l),l=e.indexOf(t,u+1);u=a<l&&a>=0?a:l}s.length&&o!==void 0&&(h=[r,o])}return h};var fe=\"\\0SLASH\"+Math.random()+\"\\0\",ue=\"\\0OPEN\"+Math.random()+\"\\0\",qt=\"\\0CLOSE\"+Math.random()+\"\\0\",de=\"\\0COMMA\"+Math.random()+\"\\0\",pe=\"\\0PERIOD\"+Math.random()+\"\\0\",is=new RegExp(fe,\"g\"),rs=new RegExp(ue,\"g\"),ns=new RegExp(qt,\"g\"),os=new RegExp(de,\"g\"),hs=new RegExp(pe,\"g\"),as=/\\\\\\\\/g,ls=/\\\\{/g,cs=/\\\\}/g,fs=/\\\\,/g,us=/\\\\./g,ds=1e5;function Ht(n){return isNaN(n)?n.charCodeAt(0):parseInt(n,10)}function ps(n){return n.replace(as,fe).replace(ls,ue).replace(cs,qt).replace(fs,de).replace(us,pe)}function ms(n){return n.replace(is,\"\\\\\").replace(rs,\"{\").replace(ns,\"}\").replace(os,\",\").replace(hs,\".\")}function me(n){if(!n)return[\"\"];let t=[],e=Gt(\"{\",\"}\",n);if(!e)return n.split(\",\");let{pre:s,body:i,post:r}=e,o=s.split(\",\");o[o.length-1]+=\"{\"+i+\"}\";let h=me(r);return r.length&&(o[o.length-1]+=h.shift(),o.push.apply(o,h)),t.push.apply(t,o),t}function ge(n,t={}){if(!n)return[];let{max:e=ds}=t;return n.slice(0,2)===\"{}\"&&(n=\"\\\\{\\\\}\"+n.slice(2)),ht(ps(n),e,!0).map(ms)}function gs(n){return\"{\"+n+\"}\"}function ws(n){return/^-?0\\d/.test(n)}function ys(n,t){return n<=t}function bs(n,t){return n>=t}function ht(n,t,e){let s=[],i=Gt(\"{\",\"}\",n);if(!i)return[n];let r=i.pre,o=i.post.length?ht(i.post,t,!1):[\"\"];if(/\\$$/.test(i.pre))for(let h=0;h<o.length&&h<t;h++){let a=r+\"{\"+i.body+\"}\"+o[h];s.push(a)}else{let h=/^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(i.body),a=/^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(i.body),l=h||a,u=i.body.indexOf(\",\")>=0;if(!l&&!u)return i.post.match(/,(?!,).*\\}/)?(n=i.pre+\"{\"+i.body+qt+i.post,ht(n,t,!0)):[n];let c;if(l)c=i.body.split(/\\.\\./);else if(c=me(i.body),c.length===1&&c[0]!==void 0&&(c=ht(c[0],t,!1).map(gs),c.length===1))return o.map(f=>i.pre+c[0]+f);let d;if(l&&c[0]!==void 0&&c[1]!==void 0){let f=Ht(c[0]),m=Ht(c[1]),p=Math.max(c[0].length,c[1].length),w=c.length===3&&c[2]!==void 0?Math.abs(Ht(c[2])):1,g=ys;m<f&&(w*=-1,g=bs);let E=c.some(ws);d=[];for(let y=f;g(y,m);y+=w){let b;if(a)b=String.fromCharCode(y),b===\"\\\\\"&&(b=\"\");else if(b=String(y),E){let z=p-b.length;if(z>0){let $=new Array(z+1).join(\"0\");y<0?b=\"-\"+$+b.slice(1):b=$+b}}d.push(b)}}else{d=[];for(let f=0;f<c.length;f++)d.push.apply(d,ht(c[f],t,!1))}for(let f=0;f<d.length;f++)for(let m=0;m<o.length&&s.length<t;m++){let p=r+d[f]+o[m];(!e||l||p)&&s.push(p)}}return s}var at=n=>{if(typeof n!=\"string\")throw new TypeError(\"invalid pattern\");if(n.length>65536)throw new TypeError(\"pattern is too long\")};var Ss={\"[:alnum:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\",!0],\"[:alpha:]\":[\"\\\\p{L}\\\\p{Nl}\",!0],\"[:ascii:]\":[\"\\\\x00-\\\\x7f\",!1],\"[:blank:]\":[\"\\\\p{Zs}\\\\t\",!0],\"[:cntrl:]\":[\"\\\\p{Cc}\",!0],\"[:digit:]\":[\"\\\\p{Nd}\",!0],\"[:graph:]\":[\"\\\\p{Z}\\\\p{C}\",!0,!0],\"[:lower:]\":[\"\\\\p{Ll}\",!0],\"[:print:]\":[\"\\\\p{C}\",!0],\"[:punct:]\":[\"\\\\p{P}\",!0],\"[:space:]\":[\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\",!0],\"[:upper:]\":[\"\\\\p{Lu}\",!0],\"[:word:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\",!0],\"[:xdigit:]\":[\"A-Fa-f0-9\",!1]},lt=n=>n.replace(/[[\\]\\\\-]/g,\"\\\\$&\"),Es=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),we=n=>n.join(\"\"),ye=(n,t)=>{let e=t;if(n.charAt(e)!==\"[\")throw new Error(\"not in a brace expression\");let s=[],i=[],r=e+1,o=!1,h=!1,a=!1,l=!1,u=e,c=\"\";t:for(;r<n.length;){let p=n.charAt(r);if((p===\"!\"||p===\"^\")&&r===e+1){l=!0,r++;continue}if(p===\"]\"&&o&&!a){u=r+1;break}if(o=!0,p===\"\\\\\"&&!a){a=!0,r++;continue}if(p===\"[\"&&!a){for(let[w,[g,S,E]]of Object.entries(Ss))if(n.startsWith(w,r)){if(c)return[\"$.\",!1,n.length-e,!0];r+=w.length,E?i.push(g):s.push(g),h=h||S;continue t}}if(a=!1,c){p>c?s.push(lt(c)+\"-\"+lt(p)):p===c&&s.push(lt(p)),c=\"\",r++;continue}if(n.startsWith(\"-]\",r+1)){s.push(lt(p+\"-\")),r+=2;continue}if(n.startsWith(\"-\",r+1)){c=p,r+=2;continue}s.push(lt(p)),r++}if(u<r)return[\"\",!1,0,!1];if(!s.length&&!i.length)return[\"$.\",!1,n.length-e,!0];if(i.length===0&&s.length===1&&/^\\\\?.$/.test(s[0])&&!l){let p=s[0].length===2?s[0].slice(-1):s[0];return[Es(p),!1,u-e,!1]}let d=\"[\"+(l?\"^\":\"\")+we(s)+\"]\",f=\"[\"+(l?\"\":\"^\")+we(i)+\"]\";return[s.length&&i.length?\"(\"+d+\"|\"+f+\")\":s.length?d:f,h,u-e,!0]};var W=(n,{windowsPathsNoEscape:t=!1,magicalBraces:e=!0}={})=>e?t?n.replace(/\\[([^\\/\\\\])\\]/g,\"$1\"):n.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g,\"$1$2\").replace(/\\\\([^\\/])/g,\"$1\"):t?n.replace(/\\[([^\\/\\\\{}])\\]/g,\"$1\"):n.replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g,\"$1$2\").replace(/\\\\([^\\/{}])/g,\"$1\");var xs=new Set([\"!\",\"?\",\"+\",\"*\",\"@\"]),be=n=>xs.has(n),vs=\"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\",Ct=\"(?!\\\\.)\",Cs=new Set([\"[\",\".\"]),Ts=new Set([\"..\",\".\"]),As=new Set(\"().*{}+?[]^$\\\\!\"),ks=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),Kt=\"[^/]\",Se=Kt+\"*?\",Ee=Kt+\"+?\",Q=class n{type;#t;#s;#n=!1;#r=[];#o;#S;#w;#c=!1;#h;#u;#f=!1;constructor(t,e,s={}){this.type=t,t&&(this.#s=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#h=this.#t===this?s:this.#t.#h,this.#w=this.#t===this?[]:this.#t.#w,t===\"!\"&&!this.#t.#c&&this.#w.push(this),this.#S=this.#o?this.#o.#r.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#r)if(typeof t!=\"string\"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+\"(\"+this.#r.map(t=>String(t)).join(\"|\")+\")\":this.#u=this.#r.map(t=>String(t)).join(\"\")}#a(){if(this!==this.#t)throw new Error(\"should only call on root\");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#w.pop();){if(t.type!==\"!\")continue;let e=t,s=e.#o;for(;s;){for(let i=e.#S+1;!s.type&&i<s.#r.length;i++)for(let r of t.#r){if(typeof r==\"string\")throw new Error(\"string part in extglob AST??\");r.copyIn(s.#r[i])}e=s,s=e.#o}}return this}push(...t){for(let e of t)if(e!==\"\"){if(typeof e!=\"string\"&&!(e instanceof n&&e.#o===this))throw new Error(\"invalid part: \"+e);this.#r.push(e)}}toJSON(){let t=this.type===null?this.#r.slice().map(e=>typeof e==\"string\"?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#c&&this.#o?.type===\"!\")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(this.#S===0)return!0;let t=this.#o;for(let e=0;e<this.#S;e++){let s=t.#r[e];if(!(s instanceof n&&s.type===\"!\"))return!1}return!0}isEnd(){if(this.#t===this||this.#o?.type===\"!\")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#r.length:0;return this.#S===t-1}copyIn(t){typeof t==\"string\"?this.push(t):this.push(t.clone(this))}clone(t){let e=new n(this.type,t);for(let s of this.#r)e.copyIn(s);return e}static#i(t,e,s,i){let r=!1,o=!1,h=-1,a=!1;if(e.type===null){let f=s,m=\"\";for(;f<t.length;){let p=t.charAt(f++);if(r||p===\"\\\\\"){r=!r,m+=p;continue}if(o){f===h+1?(p===\"^\"||p===\"!\")&&(a=!0):p===\"]\"&&!(f===h+2&&a)&&(o=!1),m+=p;continue}else if(p===\"[\"){o=!0,h=f,a=!1,m+=p;continue}if(!i.noext&&be(p)&&t.charAt(f)===\"(\"){e.push(m),m=\"\";let w=new n(p,e);f=n.#i(t,w,f,i),e.push(w);continue}m+=p}return e.push(m),f}let l=s+1,u=new n(null,e),c=[],d=\"\";for(;l<t.length;){let f=t.charAt(l++);if(r||f===\"\\\\\"){r=!r,d+=f;continue}if(o){l===h+1?(f===\"^\"||f===\"!\")&&(a=!0):f===\"]\"&&!(l===h+2&&a)&&(o=!1),d+=f;continue}else if(f===\"[\"){o=!0,h=l,a=!1,d+=f;continue}if(be(f)&&t.charAt(l)===\"(\"){u.push(d),d=\"\";let m=new n(f,u);u.push(m),l=n.#i(t,m,l,i);continue}if(f===\"|\"){u.push(d),d=\"\",c.push(u),u=new n(null,e);continue}if(f===\")\")return d===\"\"&&e.#r.length===0&&(e.#f=!0),u.push(d),d=\"\",e.push(...c,u),l;d+=f}return e.type=null,e.#s=void 0,e.#r=[t.substring(s-1)],l}static fromGlob(t,e={}){let s=new n(null,void 0,e);return n.#i(t,s,0,e),s}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();let t=this.toString(),[e,s,i,r]=this.toRegExpSource();if(!(i||this.#s||this.#h.nocase&&!this.#h.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let h=(this.#h.nocase?\"i\":\"\")+(r?\"u\":\"\");return Object.assign(new RegExp(`^${e}$`,h),{_src:e,_glob:t})}get options(){return this.#h}toRegExpSource(t){let e=t??!!this.#h.dot;if(this.#t===this&&this.#a(),!this.type){let a=this.isStart()&&this.isEnd()&&!this.#r.some(f=>typeof f!=\"string\"),l=this.#r.map(f=>{let[m,p,w,g]=typeof f==\"string\"?n.#E(f,this.#s,a):f.toRegExpSource(t);return this.#s=this.#s||w,this.#n=this.#n||g,m}).join(\"\"),u=\"\";if(this.isStart()&&typeof this.#r[0]==\"string\"&&!(this.#r.length===1&&Ts.has(this.#r[0]))){let m=Cs,p=e&&m.has(l.charAt(0))||l.startsWith(\"\\\\.\")&&m.has(l.charAt(2))||l.startsWith(\"\\\\.\\\\.\")&&m.has(l.charAt(4)),w=!e&&!t&&m.has(l.charAt(0));u=p?vs:w?Ct:\"\"}let c=\"\";return this.isEnd()&&this.#t.#c&&this.#o?.type===\"!\"&&(c=\"(?:$|\\\\/)\"),[u+l+c,W(l),this.#s=!!this.#s,this.#n]}let s=this.type===\"*\"||this.type===\"+\",i=this.type===\"!\"?\"(?:(?!(?:\":\"(?:\",r=this.#d(e);if(this.isStart()&&this.isEnd()&&!r&&this.type!==\"!\"){let a=this.toString();return this.#r=[a],this.type=null,this.#s=void 0,[a,W(this.toString()),!1,!1]}let o=!s||t||e||!Ct?\"\":this.#d(!0);o===r&&(o=\"\"),o&&(r=`(?:${r})(?:${o})*?`);let h=\"\";if(this.type===\"!\"&&this.#f)h=(this.isStart()&&!e?Ct:\"\")+Ee;else{let a=this.type===\"!\"?\"))\"+(this.isStart()&&!e&&!t?Ct:\"\")+Se+\")\":this.type===\"@\"?\")\":this.type===\"?\"?\")?\":this.type===\"+\"&&o?\")\":this.type===\"*\"&&o?\")?\":`)${this.type}`;h=i+r+a}return[h,W(r),this.#s=!!this.#s,this.#n]}#d(t){return this.#r.map(e=>{if(typeof e==\"string\")throw new Error(\"string type in extglob ast??\");let[s,i,r,o]=e.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(\"|\")}static#E(t,e,s=!1){let i=!1,r=\"\",o=!1,h=!1;for(let a=0;a<t.length;a++){let l=t.charAt(a);if(i){i=!1,r+=(As.has(l)?\"\\\\\":\"\")+l;continue}if(l===\"*\"){if(h)continue;h=!0,r+=s&&/^[*]+$/.test(t)?Ee:Se,e=!0;continue}else h=!1;if(l===\"\\\\\"){a===t.length-1?r+=\"\\\\\\\\\":i=!0;continue}if(l===\"[\"){let[u,c,d,f]=ye(t,a);if(d){r+=u,o=o||c,a+=d-1,e=e||f;continue}}if(l===\"?\"){r+=Kt,e=!0;continue}r+=ks(l)}return[r,W(t),!!e,o]}};var tt=(n,{windowsPathsNoEscape:t=!1,magicalBraces:e=!1}={})=>e?t?n.replace(/[?*()[\\]{}]/g,\"[$&]\"):n.replace(/[?*()[\\]\\\\{}]/g,\"\\\\$&\"):t?n.replace(/[?*()[\\]]/g,\"[$&]\"):n.replace(/[?*()[\\]\\\\]/g,\"\\\\$&\");var O=(n,t,e={})=>(at(t),!e.nocomment&&t.charAt(0)===\"#\"?!1:new D(t,e).match(n)),Rs=/^\\*+([^+@!?\\*\\[\\(]*)$/,Os=n=>t=>!t.startsWith(\".\")&&t.endsWith(n),Fs=n=>t=>t.endsWith(n),Ds=n=>(n=n.toLowerCase(),t=>!t.startsWith(\".\")&&t.toLowerCase().endsWith(n)),Ms=n=>(n=n.toLowerCase(),t=>t.toLowerCase().endsWith(n)),Ns=/^\\*+\\.\\*+$/,_s=n=>!n.startsWith(\".\")&&n.includes(\".\"),Ls=n=>n!==\".\"&&n!==\"..\"&&n.includes(\".\"),Ws=/^\\.\\*+$/,Ps=n=>n!==\".\"&&n!==\"..\"&&n.startsWith(\".\"),js=/^\\*+$/,Is=n=>n.length!==0&&!n.startsWith(\".\"),zs=n=>n.length!==0&&n!==\".\"&&n!==\"..\",Bs=/^\\?+([^+@!?\\*\\[\\(]*)?$/,Us=([n,t=\"\"])=>{let e=Ce([n]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},$s=([n,t=\"\"])=>{let e=Te([n]);return t?(t=t.toLowerCase(),s=>e(s)&&s.toLowerCase().endsWith(t)):e},Gs=([n,t=\"\"])=>{let e=Te([n]);return t?s=>e(s)&&s.endsWith(t):e},Hs=([n,t=\"\"])=>{let e=Ce([n]);return t?s=>e(s)&&s.endsWith(t):e},Ce=([n])=>{let t=n.length;return e=>e.length===t&&!e.startsWith(\".\")},Te=([n])=>{let t=n.length;return e=>e.length===t&&e!==\".\"&&e!==\"..\"},Ae=typeof process==\"object\"&&process?typeof process.env==\"object\"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:\"posix\",xe={win32:{sep:\"\\\\\"},posix:{sep:\"/\"}},qs=Ae===\"win32\"?xe.win32.sep:xe.posix.sep;O.sep=qs;var A=Symbol(\"globstar **\");O.GLOBSTAR=A;var Ks=\"[^/]\",Vs=Ks+\"*?\",Ys=\"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\",Xs=\"(?:(?!(?:\\\\/|^)\\\\.).)*?\",Js=(n,t={})=>e=>O(e,n,t);O.filter=Js;var N=(n,t={})=>Object.assign({},n,t),Zs=n=>{if(!n||typeof n!=\"object\"||!Object.keys(n).length)return O;let t=O;return Object.assign((s,i,r={})=>t(s,i,N(n,r)),{Minimatch:class extends t.Minimatch{constructor(i,r={}){super(i,N(n,r))}static defaults(i){return t.defaults(N(n,i)).Minimatch}},AST:class extends t.AST{constructor(i,r,o={}){super(i,r,N(n,o))}static fromGlob(i,r={}){return t.AST.fromGlob(i,N(n,r))}},unescape:(s,i={})=>t.unescape(s,N(n,i)),escape:(s,i={})=>t.escape(s,N(n,i)),filter:(s,i={})=>t.filter(s,N(n,i)),defaults:s=>t.defaults(N(n,s)),makeRe:(s,i={})=>t.makeRe(s,N(n,i)),braceExpand:(s,i={})=>t.braceExpand(s,N(n,i)),match:(s,i,r={})=>t.match(s,i,N(n,r)),sep:t.sep,GLOBSTAR:A})};O.defaults=Zs;var ke=(n,t={})=>(at(n),t.nobrace||!/\\{(?:(?!\\{).)*\\}/.test(n)?[n]:ge(n,{max:t.braceExpandMax}));O.braceExpand=ke;var Qs=(n,t={})=>new D(n,t).makeRe();O.makeRe=Qs;var ti=(n,t,e={})=>{let s=new D(t,e);return n=n.filter(i=>s.match(i)),s.options.nonull&&!n.length&&n.push(t),n};O.match=ti;var ve=/[?*]|[+@!]\\(.*?\\)|\\[|\\]/,ei=n=>n.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),D=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){at(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Ae,this.isWindows=this.platform===\"win32\";let s=\"allowWindowsEscape\";this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e[s]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\\\/g,\"/\")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let e of t)if(typeof e!=\"string\")return!0;return!1}debug(...t){}make(){let t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)===\"#\"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(r=>this.slashSplit(r));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((r,o,h)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=r[0]===\"\"&&r[1]===\"\"&&(r[2]===\"?\"||!ve.test(r[2]))&&!ve.test(r[3]),l=/^[a-z]:/i.test(r[0]);if(a)return[...r.slice(0,4),...r.slice(4).map(u=>this.parse(u))];if(l)return[r[0],...r.slice(1).map(u=>this.parse(u))]}return r.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r<this.set.length;r++){let o=this.set[r];o[0]===\"\"&&o[1]===\"\"&&this.globParts[r][2]===\"?\"&&typeof o[3]==\"string\"&&/^[a-z]:$/i.test(o[3])&&(o[2]=\"?\")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let s=0;s<t.length;s++)for(let i=0;i<t[s].length;i++)t[s][i]===\"**\"&&(t[s][i]=\"*\");let{optimizationLevel:e=1}=this.options;return e>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):e>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(e=>{let s=-1;for(;(s=e.indexOf(\"**\",s+1))!==-1;){let i=s;for(;e[i+1]===\"**\";)i++;i!==s&&e.splice(s,i-s)}return e})}levelOneOptimize(t){return t.map(e=>(e=e.reduce((s,i)=>{let r=s[s.length-1];return i===\"**\"&&r===\"**\"?s:i===\"..\"&&r&&r!==\"..\"&&r!==\".\"&&r!==\"**\"?(s.pop(),s):(s.push(i),s)},[]),e.length===0?[\"\"]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let i=1;i<t.length-1;i++){let r=t[i];i===1&&r===\"\"&&t[0]===\"\"||(r===\".\"||r===\"\")&&(e=!0,t.splice(i,1),i--)}t[0]===\".\"&&t.length===2&&(t[1]===\".\"||t[1]===\"\")&&(e=!0,t.pop())}let s=0;for(;(s=t.indexOf(\"..\",s+1))!==-1;){let i=t[s-1];i&&i!==\".\"&&i!==\"..\"&&i!==\"**\"&&(e=!0,t.splice(s-1,2),s-=2)}}while(e);return t.length===0?[\"\"]:t}firstPhasePreProcess(t){let e=!1;do{e=!1;for(let s of t){let i=-1;for(;(i=s.indexOf(\"**\",i+1))!==-1;){let o=i;for(;s[o+1]===\"**\";)o++;o>i&&s.splice(i+1,o-i);let h=s[i+1],a=s[i+2],l=s[i+3];if(h!==\"..\"||!a||a===\".\"||a===\"..\"||!l||l===\".\"||l===\"..\")continue;e=!0,s.splice(i,1);let u=s.slice(0);u[i]=\"**\",t.push(u),i--}if(!this.preserveMultipleSlashes){for(let o=1;o<s.length-1;o++){let h=s[o];o===1&&h===\"\"&&s[0]===\"\"||(h===\".\"||h===\"\")&&(e=!0,s.splice(o,1),o--)}s[0]===\".\"&&s.length===2&&(s[1]===\".\"||s[1]===\"\")&&(e=!0,s.pop())}let r=0;for(;(r=s.indexOf(\"..\",r+1))!==-1;){let o=s[r-1];if(o&&o!==\".\"&&o!==\"..\"&&o!==\"**\"){e=!0;let a=r===1&&s[r+1]===\"**\"?[\".\"]:[];s.splice(r-1,2,...a),s.length===0&&s.push(\"\"),r-=2}}}}while(e);return t}secondPhasePreProcess(t){for(let e=0;e<t.length-1;e++)for(let s=e+1;s<t.length;s++){let i=this.partsMatch(t[e],t[s],!this.preserveMultipleSlashes);if(i){t[e]=[],t[s]=i;break}}return t.filter(e=>e.length)}partsMatch(t,e,s=!1){let i=0,r=0,o=[],h=\"\";for(;i<t.length&&r<e.length;)if(t[i]===e[r])o.push(h===\"b\"?e[r]:t[i]),i++,r++;else if(s&&t[i]===\"**\"&&e[r]===t[i+1])o.push(t[i]),i++;else if(s&&e[r]===\"**\"&&t[i]===e[r+1])o.push(e[r]),r++;else if(t[i]===\"*\"&&e[r]&&(this.options.dot||!e[r].startsWith(\".\"))&&e[r]!==\"**\"){if(h===\"b\")return!1;h=\"a\",o.push(t[i]),i++,r++}else if(e[r]===\"*\"&&t[i]&&(this.options.dot||!t[i].startsWith(\".\"))&&t[i]!==\"**\"){if(h===\"a\")return!1;h=\"b\",o.push(e[r]),i++,r++}else return!1;return t.length===e.length&&o}parseNegate(){if(this.nonegate)return;let t=this.pattern,e=!1,s=0;for(let i=0;i<t.length&&t.charAt(i)===\"!\";i++)e=!e,s++;s&&(this.pattern=t.slice(s)),this.negate=e}matchOne(t,e,s=!1){let i=this.options;if(this.isWindows){let p=typeof t[0]==\"string\"&&/^[a-z]:$/i.test(t[0]),w=!p&&t[0]===\"\"&&t[1]===\"\"&&t[2]===\"?\"&&/^[a-z]:$/i.test(t[3]),g=typeof e[0]==\"string\"&&/^[a-z]:$/i.test(e[0]),S=!g&&e[0]===\"\"&&e[1]===\"\"&&e[2]===\"?\"&&typeof e[3]==\"string\"&&/^[a-z]:$/i.test(e[3]),E=w?3:p?0:void 0,y=S?3:g?0:void 0;if(typeof E==\"number\"&&typeof y==\"number\"){let[b,z]=[t[E],e[y]];b.toLowerCase()===z.toLowerCase()&&(e[y]=b,y>E?e=e.slice(y):E>y&&(t=t.slice(E)))}}let{optimizationLevel:r=1}=this.options;r>=2&&(t=this.levelTwoFileOptimize(t)),this.debug(\"matchOne\",this,{file:t,pattern:e}),this.debug(\"matchOne\",t.length,e.length);for(var o=0,h=0,a=t.length,l=e.length;o<a&&h<l;o++,h++){this.debug(\"matchOne loop\");var u=e[h],c=t[o];if(this.debug(e,u,c),u===!1)return!1;if(u===A){this.debug(\"GLOBSTAR\",[e,u,c]);var d=o,f=h+1;if(f===l){for(this.debug(\"** at the end\");o<a;o++)if(t[o]===\".\"||t[o]===\"..\"||!i.dot&&t[o].charAt(0)===\".\")return!1;return!0}for(;d<a;){var m=t[d];if(this.debug(`\nglobstar while`,t,d,e,f,m),this.matchOne(t.slice(d),e.slice(f),s))return this.debug(\"globstar found match!\",d,a,m),!0;if(m===\".\"||m===\"..\"||!i.dot&&m.charAt(0)===\".\"){this.debug(\"dot detected!\",t,d,e,f);break}this.debug(\"globstar swallow a segment, and continue\"),d++}return!!(s&&(this.debug(`\n>>> no match, partial?`,t,d,e,f),d===a))}let p;if(typeof u==\"string\"?(p=c===u,this.debug(\"string match\",u,c,p)):(p=u.test(c),this.debug(\"pattern match\",u,c,p)),!p)return!1}if(o===a&&h===l)return!0;if(o===a)return s;if(h===l)return o===a-1&&t[o]===\"\";throw new Error(\"wtf?\")}braceExpand(){return ke(this.pattern,this.options)}parse(t){at(t);let e=this.options;if(t===\"**\")return A;if(t===\"\")return\"\";let s,i=null;(s=t.match(js))?i=e.dot?zs:Is:(s=t.match(Rs))?i=(e.nocase?e.dot?Ms:Ds:e.dot?Fs:Os)(s[1]):(s=t.match(Bs))?i=(e.nocase?e.dot?$s:Us:e.dot?Gs:Hs)(s):(s=t.match(Ns))?i=e.dot?Ls:_s:(s=t.match(Ws))&&(i=Ps);let r=Q.fromGlob(t,this.options).toMMPattern();return i&&typeof r==\"object\"&&Reflect.defineProperty(r,\"test\",{value:i}),r}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let e=this.options,s=e.noglobstar?Vs:e.dot?Ys:Xs,i=new Set(e.nocase?[\"i\"]:[]),r=t.map(a=>{let l=a.map(c=>{if(c instanceof RegExp)for(let d of c.flags.split(\"\"))i.add(d);return typeof c==\"string\"?ei(c):c===A?A:c._src});l.forEach((c,d)=>{let f=l[d+1],m=l[d-1];c!==A||m===A||(m===void 0?f!==void 0&&f!==A?l[d+1]=\"(?:\\\\/|\"+s+\"\\\\/)?\"+f:l[d]=s:f===void 0?l[d-1]=m+\"(?:\\\\/|\\\\/\"+s+\")?\":f!==A&&(l[d-1]=m+\"(?:\\\\/|\\\\/\"+s+\"\\\\/)\"+f,l[d+1]=A))});let u=l.filter(c=>c!==A);if(this.partial&&u.length>=1){let c=[];for(let d=1;d<=u.length;d++)c.push(u.slice(0,d).join(\"/\"));return\"(?:\"+c.join(\"|\")+\")\"}return u.join(\"/\")}).join(\"|\"),[o,h]=t.length>1?[\"(?:\",\")\"]:[\"\",\"\"];r=\"^\"+o+r+h+\"$\",this.partial&&(r=\"^(?:\\\\/|\"+o+r.slice(1,-1)+h+\")$\"),this.negate&&(r=\"^(?!\"+r+\").+$\");try{this.regexp=new RegExp(r,[...i].join(\"\"))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split(\"/\"):this.isWindows&&/^\\/\\/[^\\/]+/.test(t)?[\"\",...t.split(/\\/+/)]:t.split(/\\/+/)}match(t,e=this.partial){if(this.debug(\"match\",t,this.pattern),this.comment)return!1;if(this.empty)return t===\"\";if(t===\"/\"&&e)return!0;let s=this.options;this.isWindows&&(t=t.split(\"\\\\\").join(\"/\"));let i=this.slashSplit(t);this.debug(this.pattern,\"split\",i);let r=this.set;this.debug(this.pattern,\"set\",r);let o=i[i.length-1];if(!o)for(let h=i.length-2;!o&&h>=0;h--)o=i[h];for(let h=0;h<r.length;h++){let a=r[h],l=i;if(s.matchBase&&a.length===1&&(l=[o]),this.matchOne(l,a,e))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(t){return O.defaults(t).Minimatch}};O.AST=Q;O.Minimatch=D;O.escape=tt;O.unescape=W;import{fileURLToPath as Wi}from\"node:url\";var si=typeof performance==\"object\"&&performance&&typeof performance.now==\"function\"?performance:Date,Oe=new Set,Vt=typeof process==\"object\"&&process?process:{},Fe=(n,t,e,s)=>{typeof Vt.emitWarning==\"function\"?Vt.emitWarning(n,t,e,s):console.error(`[${e}] ${t}: ${n}`)},At=globalThis.AbortController,Re=globalThis.AbortSignal;if(typeof At>\"u\"){Re=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(e,s){this._onabort.push(s)}},At=class{constructor(){t()}signal=new Re;abort(e){if(!this.signal.aborted){this.signal.reason=e,this.signal.aborted=!0;for(let s of this.signal._onabort)s(e);this.signal.onabort?.(e)}}};let n=Vt.env?.LRU_CACHE_IGNORE_AC_WARNING!==\"1\",t=()=>{n&&(n=!1,Fe(\"AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.\",\"NO_ABORT_CONTROLLER\",\"ENOTSUP\",t))}}var ii=n=>!Oe.has(n);var q=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),De=n=>q(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Tt:null:null,Tt=class extends Array{constructor(n){super(n),this.fill(0)}},ri=class ct{heap;length;static#t=!1;static create(t){let e=De(t);if(!e)return[];ct.#t=!0;let s=new ct(t,e);return ct.#t=!1,s}constructor(t,e){if(!ct.#t)throw new TypeError(\"instantiate Stack using Stack.create(n)\");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},ft=class Me{#t;#s;#n;#r;#o;#S;#w;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#h;#u;#f;#a;#i;#d;#E;#b;#p;#R;#m;#C;#T;#g;#y;#x;#A;#e;#_;static unsafeExposeInternals(t){return{starts:t.#T,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#C,keyMap:t.#f,keyList:t.#a,valList:t.#i,next:t.#d,prev:t.#E,get head(){return t.#b},get tail(){return t.#p},free:t.#R,isBackgroundFetch:e=>t.#l(e),backgroundFetch:(e,s,i,r)=>t.#U(e,s,i,r),moveToTail:e=>t.#W(e),indexes:e=>t.#F(e),rindexes:e=>t.#D(e),isStale:e=>t.#v(e)}}get max(){return this.#t}get maxSize(){return this.#s}get calculatedSize(){return this.#u}get size(){return this.#h}get fetchMethod(){return this.#S}get memoMethod(){return this.#w}get dispose(){return this.#n}get onInsert(){return this.#r}get disposeAfter(){return this.#o}constructor(t){let{max:e=0,ttl:s,ttlResolution:i=1,ttlAutopurge:r,updateAgeOnGet:o,updateAgeOnHas:h,allowStale:a,dispose:l,onInsert:u,disposeAfter:c,noDisposeOnSet:d,noUpdateTTL:f,maxSize:m=0,maxEntrySize:p=0,sizeCalculation:w,fetchMethod:g,memoMethod:S,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:y,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:z,ignoreFetchAbort:$,perf:J}=t;if(J!==void 0&&typeof J?.now!=\"function\")throw new TypeError(\"perf option must have a now() method if specified\");if(this.#c=J??si,e!==0&&!q(e))throw new TypeError(\"max option must be a nonnegative integer\");let Z=e?De(e):Array;if(!Z)throw new Error(\"invalid max value: \"+e);if(this.#t=e,this.#s=m,this.maxEntrySize=p||this.#s,this.sizeCalculation=w,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError(\"cannot set sizeCalculation without setting maxSize or maxEntrySize\");if(typeof this.sizeCalculation!=\"function\")throw new TypeError(\"sizeCalculation set to non-function\")}if(S!==void 0&&typeof S!=\"function\")throw new TypeError(\"memoMethod must be a function if defined\");if(this.#w=S,g!==void 0&&typeof g!=\"function\")throw new TypeError(\"fetchMethod must be a function if specified\");if(this.#S=g,this.#A=!!g,this.#f=new Map,this.#a=new Array(e).fill(void 0),this.#i=new Array(e).fill(void 0),this.#d=new Z(e),this.#E=new Z(e),this.#b=0,this.#p=0,this.#R=ri.create(e),this.#h=0,this.#u=0,typeof l==\"function\"&&(this.#n=l),typeof u==\"function\"&&(this.#r=u),typeof c==\"function\"?(this.#o=c,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#x=!!this.#n,this.#_=!!this.#r,this.#e=!!this.#o,this.noDisposeOnSet=!!d,this.noUpdateTTL=!!f,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!z,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#s!==0&&!q(this.#s))throw new TypeError(\"maxSize must be a positive integer if specified\");if(!q(this.maxEntrySize))throw new TypeError(\"maxEntrySize must be a positive integer if specified\");this.#G()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!y,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!h,this.ttlResolution=q(i)||i===0?i:1,this.ttlAutopurge=!!r,this.ttl=s||0,this.ttl){if(!q(this.ttl))throw new TypeError(\"ttl must be a positive integer if specified\");this.#M()}if(this.#t===0&&this.ttl===0&&this.#s===0)throw new TypeError(\"At least one of max, maxSize, or ttl is required\");if(!this.ttlAutopurge&&!this.#t&&!this.#s){let $t=\"LRU_CACHE_UNBOUNDED\";ii($t)&&(Oe.add($t),Fe(\"TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.\",\"UnboundedCacheWarning\",$t,Me))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#M(){let t=new Tt(this.#t),e=new Tt(this.#t);this.#g=t,this.#T=e;let s=this.ttlAutopurge?new Array(this.#t):void 0;this.#y=s,this.#j=(o,h,a=this.#c.now())=>{if(e[o]=h!==0?a:0,t[o]=h,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),h!==0&&s){let l=setTimeout(()=>{this.#v(o)&&this.#O(this.#a[o],\"expire\")},h+1);l.unref&&l.unref(),s[o]=l}},this.#k=o=>{e[o]=t[o]!==0?this.#c.now():0},this.#N=(o,h)=>{if(t[h]){let a=t[h],l=e[h];if(!a||!l)return;o.ttl=a,o.start=l,o.now=i||r();let u=o.now-l;o.remainingTTL=a-u}};let i=0,r=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let h=setTimeout(()=>i=0,this.ttlResolution);h.unref&&h.unref()}return o};this.getRemainingTTL=o=>{let h=this.#f.get(o);if(h===void 0)return 0;let a=t[h],l=e[h];if(!a||!l)return 1/0;let u=(i||r())-l;return a-u},this.#v=o=>{let h=e[o],a=t[o];return!!a&&!!h&&(i||r())-h>a}}#k=()=>{};#N=()=>{};#j=()=>{};#v=()=>!1;#G(){let t=new Tt(this.#t);this.#u=0,this.#C=t,this.#P=e=>{this.#u-=t[e],t[e]=0},this.#I=(e,s,i,r)=>{if(this.#l(s))return 0;if(!q(i))if(r){if(typeof r!=\"function\")throw new TypeError(\"sizeCalculation must be a function\");if(i=r(s,e),!q(i))throw new TypeError(\"sizeCalculation return invalid (expect positive integer)\")}else throw new TypeError(\"invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.\");return i},this.#L=(e,s,i)=>{if(t[e]=s,this.#s){let r=this.#s-t[e];for(;this.#u>r;)this.#B(!0)}this.#u+=t[e],i&&(i.entrySize=s,i.totalCalculatedSize=this.#u)}}#P=t=>{};#L=(t,e,s)=>{};#I=(t,e,s,i)=>{if(s||i)throw new TypeError(\"cannot set size without setting maxSize or maxEntrySize on cache\");return 0};*#F({allowStale:t=this.allowStale}={}){if(this.#h)for(let e=this.#p;!(!this.#z(e)||((t||!this.#v(e))&&(yield e),e===this.#b));)e=this.#E[e]}*#D({allowStale:t=this.allowStale}={}){if(this.#h)for(let e=this.#b;!(!this.#z(e)||((t||!this.#v(e))&&(yield e),e===this.#p));)e=this.#d[e]}#z(t){return t!==void 0&&this.#f.get(this.#a[t])===t}*entries(){for(let t of this.#F())this.#i[t]!==void 0&&this.#a[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#a[t],this.#i[t]])}*rentries(){for(let t of this.#D())this.#i[t]!==void 0&&this.#a[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#a[t],this.#i[t]])}*keys(){for(let t of this.#F()){let e=this.#a[t];e!==void 0&&!this.#l(this.#i[t])&&(yield e)}}*rkeys(){for(let t of this.#D()){let e=this.#a[t];e!==void 0&&!this.#l(this.#i[t])&&(yield e)}}*values(){for(let t of this.#F())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}*rvalues(){for(let t of this.#D())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]=\"LRUCache\";find(t,e={}){for(let s of this.#F()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;if(r!==void 0&&t(r,this.#a[s],this))return this.get(this.#a[s],e)}}forEach(t,e=this){for(let s of this.#F()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&t.call(e,r,this.#a[s],this)}}rforEach(t,e=this){for(let s of this.#D()){let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&t.call(e,r,this.#a[s],this)}}purgeStale(){let t=!1;for(let e of this.#D({allowStale:!0}))this.#v(e)&&(this.#O(this.#a[e],\"expire\"),t=!0);return t}info(t){let e=this.#f.get(t);if(e===void 0)return;let s=this.#i[e],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let r={value:i};if(this.#g&&this.#T){let o=this.#g[e],h=this.#T[e];if(o&&h){let a=o-(this.#c.now()-h);r.ttl=a,r.start=Date.now()}}return this.#C&&(r.size=this.#C[e]),r}dump(){let t=[];for(let e of this.#F({allowStale:!0})){let s=this.#a[e],i=this.#i[e],r=this.#l(i)?i.__staleWhileFetching:i;if(r===void 0||s===void 0)continue;let o={value:r};if(this.#g&&this.#T){o.ttl=this.#g[e];let h=this.#c.now()-this.#T[e];o.start=Math.floor(Date.now()-h)}this.#C&&(o.size=this.#C[e]),t.unshift([s,o])}return t}load(t){this.clear();for(let[e,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(e,s.value,s)}}set(t,e,s={}){if(e===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:r,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:h=this.sizeCalculation,status:a}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,u=this.#I(t,e,s.size||0,h);if(this.maxEntrySize&&u>this.maxEntrySize)return a&&(a.set=\"miss\",a.maxEntrySizeExceeded=!0),this.#O(t,\"set\"),this;let c=this.#h===0?void 0:this.#f.get(t);if(c===void 0)c=this.#h===0?this.#p:this.#R.length!==0?this.#R.pop():this.#h===this.#t?this.#B(!1):this.#h,this.#a[c]=t,this.#i[c]=e,this.#f.set(t,c),this.#d[this.#p]=c,this.#E[c]=this.#p,this.#p=c,this.#h++,this.#L(c,u,a),a&&(a.set=\"add\"),l=!1,this.#_&&this.#r?.(e,t,\"add\");else{this.#W(c);let d=this.#i[c];if(e!==d){if(this.#A&&this.#l(d)){d.__abortController.abort(new Error(\"replaced\"));let{__staleWhileFetching:f}=d;f!==void 0&&!o&&(this.#x&&this.#n?.(f,t,\"set\"),this.#e&&this.#m?.push([f,t,\"set\"]))}else o||(this.#x&&this.#n?.(d,t,\"set\"),this.#e&&this.#m?.push([d,t,\"set\"]));if(this.#P(c),this.#L(c,u,a),this.#i[c]=e,a){a.set=\"replace\";let f=d&&this.#l(d)?d.__staleWhileFetching:d;f!==void 0&&(a.oldValue=f)}}else a&&(a.set=\"update\");this.#_&&this.onInsert?.(e,t,e===d?\"update\":\"replace\")}if(i!==0&&!this.#g&&this.#M(),this.#g&&(l||this.#j(c,i,r),a&&this.#N(a,c)),!o&&this.#e&&this.#m){let d=this.#m,f;for(;f=d?.shift();)this.#o?.(...f)}return this}pop(){try{for(;this.#h;){let t=this.#i[this.#b];if(this.#B(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#e&&this.#m){let t=this.#m,e;for(;e=t?.shift();)this.#o?.(...e)}}}#B(t){let e=this.#b,s=this.#a[e],i=this.#i[e];return this.#A&&this.#l(i)?i.__abortController.abort(new Error(\"evicted\")):(this.#x||this.#e)&&(this.#x&&this.#n?.(i,s,\"evict\"),this.#e&&this.#m?.push([i,s,\"evict\"])),this.#P(e),this.#y?.[e]&&(clearTimeout(this.#y[e]),this.#y[e]=void 0),t&&(this.#a[e]=void 0,this.#i[e]=void 0,this.#R.push(e)),this.#h===1?(this.#b=this.#p=0,this.#R.length=0):this.#b=this.#d[e],this.#f.delete(s),this.#h--,e}has(t,e={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=e,r=this.#f.get(t);if(r!==void 0){let o=this.#i[r];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#v(r))i&&(i.has=\"stale\",this.#N(i,r));else return s&&this.#k(r),i&&(i.has=\"hit\",this.#N(i,r)),!0}else i&&(i.has=\"miss\");return!1}peek(t,e={}){let{allowStale:s=this.allowStale}=e,i=this.#f.get(t);if(i===void 0||!s&&this.#v(i))return;let r=this.#i[i];return this.#l(r)?r.__staleWhileFetching:r}#U(t,e,s,i){let r=e===void 0?void 0:this.#i[e];if(this.#l(r))return r;let o=new At,{signal:h}=s;h?.addEventListener(\"abort\",()=>o.abort(h.reason),{signal:o.signal});let a={signal:o.signal,options:s,context:i},l=(p,w=!1)=>{let{aborted:g}=o.signal,S=s.ignoreFetchAbort&&p!==void 0,E=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&p!==void 0);if(s.status&&(g&&!w?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,S&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),g&&!S&&!w)return c(o.signal.reason,E);let y=f,b=this.#i[e];return(b===f||S&&w&&b===void 0)&&(p===void 0?y.__staleWhileFetching!==void 0?this.#i[e]=y.__staleWhileFetching:this.#O(t,\"fetch\"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,p,a.options))),p},u=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),c(p,!1)),c=(p,w)=>{let{aborted:g}=o.signal,S=g&&s.allowStaleOnFetchAbort,E=S||s.allowStaleOnFetchRejection,y=E||s.noDeleteOnFetchRejection,b=f;if(this.#i[e]===f&&(!y||!w&&b.__staleWhileFetching===void 0?this.#O(t,\"fetch\"):S||(this.#i[e]=b.__staleWhileFetching)),E)return s.status&&b.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),b.__staleWhileFetching;if(b.__returned===b)throw p},d=(p,w)=>{let g=this.#S?.(t,r,a);g&&g instanceof Promise&&g.then(S=>p(S===void 0?void 0:S),w),o.signal.addEventListener(\"abort\",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=S=>l(S,!0)))})};s.status&&(s.status.fetchDispatched=!0);let f=new Promise(d).then(l,u),m=Object.assign(f,{__abortController:o,__staleWhileFetching:r,__returned:void 0});return e===void 0?(this.set(t,m,{...a.options,status:void 0}),e=this.#f.get(t)):this.#i[e]=m,m}#l(t){if(!this.#A)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty(\"__staleWhileFetching\")&&e.__abortController instanceof At}async fetch(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:h=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:c=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:d=this.allowStaleOnFetchRejection,ignoreFetchAbort:f=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:p,forceRefresh:w=!1,status:g,signal:S}=e;if(!this.#A)return g&&(g.fetch=\"get\"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,status:g});let E={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,ttl:o,noDisposeOnSet:h,size:a,sizeCalculation:l,noUpdateTTL:u,noDeleteOnFetchRejection:c,allowStaleOnFetchRejection:d,allowStaleOnFetchAbort:m,ignoreFetchAbort:f,status:g,signal:S},y=this.#f.get(t);if(y===void 0){g&&(g.fetch=\"miss\");let b=this.#U(t,y,E,p);return b.__returned=b}else{let b=this.#i[y];if(this.#l(b)){let Z=s&&b.__staleWhileFetching!==void 0;return g&&(g.fetch=\"inflight\",Z&&(g.returnedStale=!0)),Z?b.__staleWhileFetching:b.__returned=b}let z=this.#v(y);if(!w&&!z)return g&&(g.fetch=\"hit\"),this.#W(y),i&&this.#k(y),g&&this.#N(g,y),b;let $=this.#U(t,y,E,p),J=$.__staleWhileFetching!==void 0&&s;return g&&(g.fetch=z?\"stale\":\"refresh\",J&&z&&(g.returnedStale=!0)),J?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,e={}){let s=await this.fetch(t,e);if(s===void 0)throw new Error(\"fetch() returned undefined\");return s}memo(t,e={}){let s=this.#w;if(!s)throw new Error(\"no memoMethod provided to constructor\");let{context:i,forceRefresh:r,...o}=e,h=this.get(t,o);if(!r&&h!==void 0)return h;let a=s(t,h,{options:o,context:i});return this.set(t,a,o),a}get(t,e={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:o}=e,h=this.#f.get(t);if(h!==void 0){let a=this.#i[h],l=this.#l(a);return o&&this.#N(o,h),this.#v(h)?(o&&(o.get=\"stale\"),l?(o&&s&&a.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?a.__staleWhileFetching:void 0):(r||this.#O(t,\"expire\"),o&&s&&(o.returnedStale=!0),s?a:void 0)):(o&&(o.get=\"hit\"),l?a.__staleWhileFetching:(this.#W(h),i&&this.#k(h),a))}else o&&(o.get=\"miss\")}#$(t,e){this.#E[e]=t,this.#d[t]=e}#W(t){t!==this.#p&&(t===this.#b?this.#b=this.#d[t]:this.#$(this.#E[t],this.#d[t]),this.#$(this.#p,t),this.#p=t)}delete(t){return this.#O(t,\"delete\")}#O(t,e){let s=!1;if(this.#h!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#h===1)this.#H(e);else{this.#P(i);let r=this.#i[i];if(this.#l(r)?r.__abortController.abort(new Error(\"deleted\")):(this.#x||this.#e)&&(this.#x&&this.#n?.(r,t,e),this.#e&&this.#m?.push([r,t,e])),this.#f.delete(t),this.#a[i]=void 0,this.#i[i]=void 0,i===this.#p)this.#p=this.#E[i];else if(i===this.#b)this.#b=this.#d[i];else{let o=this.#E[i];this.#d[o]=this.#d[i];let h=this.#d[i];this.#E[h]=this.#E[i]}this.#h--,this.#R.push(i)}}if(this.#e&&this.#m?.length){let i=this.#m,r;for(;r=i?.shift();)this.#o?.(...r)}return s}clear(){return this.#H(\"delete\")}#H(t){for(let e of this.#D({allowStale:!0})){let s=this.#i[e];if(this.#l(s))s.__abortController.abort(new Error(\"deleted\"));else{let i=this.#a[e];this.#x&&this.#n?.(s,i,t),this.#e&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#i.fill(void 0),this.#a.fill(void 0),this.#g&&this.#T){this.#g.fill(0),this.#T.fill(0);for(let e of this.#y??[])e!==void 0&&clearTimeout(e);this.#y?.fill(void 0)}if(this.#C&&this.#C.fill(0),this.#b=0,this.#p=0,this.#R.length=0,this.#u=0,this.#h=0,this.#e&&this.#m){let e=this.#m,s;for(;s=e?.shift();)this.#o?.(...s)}}};import{posix as mi,win32 as re}from\"node:path\";import{fileURLToPath as gi}from\"node:url\";import{lstatSync as wi,readdir as yi,readdirSync as bi,readlinkSync as Si,realpathSync as Ei}from\"fs\";import*as xi from\"node:fs\";import{lstat as Ci,readdir as Ti,readlink as Ai,realpath as ki}from\"node:fs/promises\";import{EventEmitter as ee}from\"node:events\";import Pe from\"node:stream\";import{StringDecoder as ni}from\"node:string_decoder\";var Ne=typeof process==\"object\"&&process?process:{stdout:null,stderr:null},oi=n=>!!n&&typeof n==\"object\"&&(n instanceof V||n instanceof Pe||hi(n)||ai(n)),hi=n=>!!n&&typeof n==\"object\"&&n instanceof ee&&typeof n.pipe==\"function\"&&n.pipe!==Pe.Writable.prototype.pipe,ai=n=>!!n&&typeof n==\"object\"&&n instanceof ee&&typeof n.write==\"function\"&&typeof n.end==\"function\",G=Symbol(\"EOF\"),H=Symbol(\"maybeEmitEnd\"),K=Symbol(\"emittedEnd\"),kt=Symbol(\"emittingEnd\"),ut=Symbol(\"emittedError\"),Rt=Symbol(\"closed\"),_e=Symbol(\"read\"),Ot=Symbol(\"flush\"),Le=Symbol(\"flushChunk\"),P=Symbol(\"encoding\"),et=Symbol(\"decoder\"),v=Symbol(\"flowing\"),dt=Symbol(\"paused\"),st=Symbol(\"resume\"),C=Symbol(\"buffer\"),F=Symbol(\"pipes\"),T=Symbol(\"bufferLength\"),Yt=Symbol(\"bufferPush\"),Ft=Symbol(\"bufferShift\"),k=Symbol(\"objectMode\"),x=Symbol(\"destroyed\"),Xt=Symbol(\"error\"),Jt=Symbol(\"emitData\"),We=Symbol(\"emitEnd\"),Zt=Symbol(\"emitEnd2\"),B=Symbol(\"async\"),Qt=Symbol(\"abort\"),Dt=Symbol(\"aborted\"),pt=Symbol(\"signal\"),Y=Symbol(\"dataListeners\"),M=Symbol(\"discarded\"),mt=n=>Promise.resolve().then(n),li=n=>n(),ci=n=>n===\"end\"||n===\"finish\"||n===\"prefinish\",fi=n=>n instanceof ArrayBuffer||!!n&&typeof n==\"object\"&&n.constructor&&n.constructor.name===\"ArrayBuffer\"&&n.byteLength>=0,ui=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),Mt=class{src;dest;opts;ondrain;constructor(t,e,s){this.src=t,this.dest=e,this.opts=s,this.ondrain=()=>t[st](),this.dest.on(\"drain\",this.ondrain)}unpipe(){this.dest.removeListener(\"drain\",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},te=class extends Mt{unpipe(){this.src.removeListener(\"error\",this.proxyErrors),super.unpipe()}constructor(t,e,s){super(t,e,s),this.proxyErrors=i=>this.dest.emit(\"error\",i),t.on(\"error\",this.proxyErrors)}},di=n=>!!n.objectMode,pi=n=>!n.objectMode&&!!n.encoding&&n.encoding!==\"buffer\",V=class extends ee{[v]=!1;[dt]=!1;[F]=[];[C]=[];[k];[P];[B];[et];[G]=!1;[K]=!1;[kt]=!1;[Rt]=!1;[ut]=null;[T]=0;[x]=!1;[pt];[Dt]=!1;[Y]=0;[M]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding==\"string\")throw new TypeError(\"Encoding and objectMode may not be used together\");di(e)?(this[k]=!0,this[P]=null):pi(e)?(this[P]=e.encoding,this[k]=!1):(this[k]=!1,this[P]=null),this[B]=!!e.async,this[et]=this[P]?new ni(this[P]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,\"buffer\",{get:()=>this[C]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,\"pipes\",{get:()=>this[F]});let{signal:s}=e;s&&(this[pt]=s,s.aborted?this[Qt]():s.addEventListener(\"abort\",()=>this[Qt]()))}get bufferLength(){return this[T]}get encoding(){return this[P]}set encoding(t){throw new Error(\"Encoding must be set at instantiation time\")}setEncoding(t){throw new Error(\"Encoding must be set at instantiation time\")}get objectMode(){return this[k]}set objectMode(t){throw new Error(\"objectMode must be set at instantiation time\")}get async(){return this[B]}set async(t){this[B]=this[B]||!!t}[Qt](){this[Dt]=!0,this.emit(\"abort\",this[pt]?.reason),this.destroy(this[pt]?.reason)}get aborted(){return this[Dt]}set aborted(t){}write(t,e,s){if(this[Dt])return!1;if(this[G])throw new Error(\"write after end\");if(this[x])return this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0;typeof e==\"function\"&&(s=e,e=\"utf8\"),e||(e=\"utf8\");let i=this[B]?mt:li;if(!this[k]&&!Buffer.isBuffer(t)){if(ui(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(fi(t))t=Buffer.from(t);else if(typeof t!=\"string\")throw new Error(\"Non-contiguous data written to non-objectMode stream\")}return this[k]?(this[v]&&this[T]!==0&&this[Ot](!0),this[v]?this.emit(\"data\",t):this[Yt](t),this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v]):t.length?(typeof t==\"string\"&&!(e===this[P]&&!this[et]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[P]&&(t=this[et].write(t)),this[v]&&this[T]!==0&&this[Ot](!0),this[v]?this.emit(\"data\",t):this[Yt](t),this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v]):(this[T]!==0&&this.emit(\"readable\"),s&&i(s),this[v])}read(t){if(this[x])return null;if(this[M]=!1,this[T]===0||t===0||t&&t>this[T])return this[H](),null;this[k]&&(t=null),this[C].length>1&&!this[k]&&(this[C]=[this[P]?this[C].join(\"\"):Buffer.concat(this[C],this[T])]);let e=this[_e](t||null,this[C][0]);return this[H](),e}[_e](t,e){if(this[k])this[Ft]();else{let s=e;t===s.length||t===null?this[Ft]():typeof s==\"string\"?(this[C][0]=s.slice(t),e=s.slice(0,t),this[T]-=t):(this[C][0]=s.subarray(t),e=s.subarray(0,t),this[T]-=t)}return this.emit(\"data\",e),!this[C].length&&!this[G]&&this.emit(\"drain\"),e}end(t,e,s){return typeof t==\"function\"&&(s=t,t=void 0),typeof e==\"function\"&&(s=e,e=\"utf8\"),t!==void 0&&this.write(t,e),s&&this.once(\"end\",s),this[G]=!0,this.writable=!1,(this[v]||!this[dt])&&this[H](),this}[st](){this[x]||(!this[Y]&&!this[F].length&&(this[M]=!0),this[dt]=!1,this[v]=!0,this.emit(\"resume\"),this[C].length?this[Ot]():this[G]?this[H]():this.emit(\"drain\"))}resume(){return this[st]()}pause(){this[v]=!1,this[dt]=!0,this[M]=!1}get destroyed(){return this[x]}get flowing(){return this[v]}get paused(){return this[dt]}[Yt](t){this[k]?this[T]+=1:this[T]+=t.length,this[C].push(t)}[Ft](){return this[k]?this[T]-=1:this[T]-=this[C][0].length,this[C].shift()}[Ot](t=!1){do;while(this[Le](this[Ft]())&&this[C].length);!t&&!this[C].length&&!this[G]&&this.emit(\"drain\")}[Le](t){return this.emit(\"data\",t),this[v]}pipe(t,e){if(this[x])return t;this[M]=!1;let s=this[K];return e=e||{},t===Ne.stdout||t===Ne.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,s?e.end&&t.end():(this[F].push(e.proxyErrors?new te(this,t,e):new Mt(this,t,e)),this[B]?mt(()=>this[st]()):this[st]()),t}unpipe(t){let e=this[F].find(s=>s.dest===t);e&&(this[F].length===1?(this[v]&&this[Y]===0&&(this[v]=!1),this[F]=[]):this[F].splice(this[F].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let s=super.on(t,e);if(t===\"data\")this[M]=!1,this[Y]++,!this[F].length&&!this[v]&&this[st]();else if(t===\"readable\"&&this[T]!==0)super.emit(\"readable\");else if(ci(t)&&this[K])super.emit(t),this.removeAllListeners(t);else if(t===\"error\"&&this[ut]){let i=e;this[B]?mt(()=>i.call(this,this[ut])):i.call(this,this[ut])}return s}removeListener(t,e){return this.off(t,e)}off(t,e){let s=super.off(t,e);return t===\"data\"&&(this[Y]=this.listeners(\"data\").length,this[Y]===0&&!this[M]&&!this[F].length&&(this[v]=!1)),s}removeAllListeners(t){let e=super.removeAllListeners(t);return(t===\"data\"||t===void 0)&&(this[Y]=0,!this[M]&&!this[F].length&&(this[v]=!1)),e}get emittedEnd(){return this[K]}[H](){!this[kt]&&!this[K]&&!this[x]&&this[C].length===0&&this[G]&&(this[kt]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[Rt]&&this.emit(\"close\"),this[kt]=!1)}emit(t,...e){let s=e[0];if(t!==\"error\"&&t!==\"close\"&&t!==x&&this[x])return!1;if(t===\"data\")return!this[k]&&!s?!1:this[B]?(mt(()=>this[Jt](s)),!0):this[Jt](s);if(t===\"end\")return this[We]();if(t===\"close\"){if(this[Rt]=!0,!this[K]&&!this[x])return!1;let r=super.emit(\"close\");return this.removeAllListeners(\"close\"),r}else if(t===\"error\"){this[ut]=s,super.emit(Xt,s);let r=!this[pt]||this.listeners(\"error\").length?super.emit(\"error\",s):!1;return this[H](),r}else if(t===\"resume\"){let r=super.emit(\"resume\");return this[H](),r}else if(t===\"finish\"||t===\"prefinish\"){let r=super.emit(t);return this.removeAllListeners(t),r}let i=super.emit(t,...e);return this[H](),i}[Jt](t){for(let s of this[F])s.dest.write(t)===!1&&this.pause();let e=this[M]?!1:super.emit(\"data\",t);return this[H](),e}[We](){return this[K]?!1:(this[K]=!0,this.readable=!1,this[B]?(mt(()=>this[Zt]()),!0):this[Zt]())}[Zt](){if(this[et]){let e=this[et].end();if(e){for(let s of this[F])s.dest.write(e);this[M]||super.emit(\"data\",e)}}for(let e of this[F])e.end();let t=super.emit(\"end\");return this.removeAllListeners(\"end\"),t}async collect(){let t=Object.assign([],{dataLength:0});this[k]||(t.dataLength=0);let e=this.promise();return this.on(\"data\",s=>{t.push(s),this[k]||(t.dataLength+=s.length)}),await e,t}async concat(){if(this[k])throw new Error(\"cannot concat in objectMode\");let t=await this.collect();return this[P]?t.join(\"\"):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(x,()=>e(new Error(\"stream destroyed\"))),this.on(\"error\",s=>e(s)),this.on(\"end\",()=>t())})}[Symbol.asyncIterator](){this[M]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[G])return e();let r,o,h=c=>{this.off(\"data\",a),this.off(\"end\",l),this.off(x,u),e(),o(c)},a=c=>{this.off(\"error\",h),this.off(\"end\",l),this.off(x,u),this.pause(),r({value:c,done:!!this[G]})},l=()=>{this.off(\"error\",h),this.off(\"data\",a),this.off(x,u),e(),r({done:!0,value:void 0})},u=()=>h(new Error(\"stream destroyed\"));return new Promise((c,d)=>{o=d,r=c,this.once(x,u),this.once(\"error\",h),this.once(\"end\",l),this.once(\"data\",a)})},throw:e,return:e,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[M]=!1;let t=!1,e=()=>(this.pause(),this.off(Xt,e),this.off(x,e),this.off(\"end\",e),t=!0,{done:!0,value:void 0}),s=()=>{if(t)return e();let i=this.read();return i===null?e():{done:!1,value:i}};return this.once(\"end\",e),this.once(Xt,e),this.once(x,e),{next:s,throw:e,return:e,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(t){if(this[x])return t?this.emit(\"error\",t):this.emit(x),this;this[x]=!0,this[M]=!0,this[C].length=0,this[T]=0;let e=this;return typeof e.close==\"function\"&&!this[Rt]&&e.close(),t?this.emit(\"error\",t):this.emit(x),this}static get isStream(){return oi}};var vi=Ei.native,wt={lstatSync:wi,readdir:yi,readdirSync:bi,readlinkSync:Si,realpathSync:vi,promises:{lstat:Ci,readdir:Ti,readlink:Ai,realpath:ki}},Ue=n=>!n||n===wt||n===xi?wt:{...wt,...n,promises:{...wt.promises,...n.promises||{}}},$e=/^\\\\\\\\\\?\\\\([a-z]:)\\\\?$/i,Ri=n=>n.replace(/\\//g,\"\\\\\").replace($e,\"$1\\\\\"),Oi=/[\\\\\\/]/,L=0,Ge=1,He=2,U=4,qe=6,Ke=8,X=10,Ve=12,_=15,gt=~_,se=16,je=32,yt=64,j=128,Nt=256,Lt=512,Ie=yt|j|Lt,Fi=1023,ie=n=>n.isFile()?Ke:n.isDirectory()?U:n.isSymbolicLink()?X:n.isCharacterDevice()?He:n.isBlockDevice()?qe:n.isSocket()?Ve:n.isFIFO()?Ge:L,ze=new ft({max:2**12}),bt=n=>{let t=ze.get(n);if(t)return t;let e=n.normalize(\"NFKD\");return ze.set(n,e),e},Be=new ft({max:2**12}),_t=n=>{let t=Be.get(n);if(t)return t;let e=bt(n.toLowerCase());return Be.set(n,e),e},Wt=class extends ft{constructor(){super({max:256})}},ne=class extends ft{constructor(t=16*1024){super({maxSize:t,sizeCalculation:e=>e.length+1})}},Ye=Symbol(\"PathScurry setAsCwd\"),R=class{name;root;roots;parent;nocase;isCWD=!1;#t;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#o;get uid(){return this.#o}#S;get gid(){return this.#S}#w;get rdev(){return this.#w}#c;get blksize(){return this.#c}#h;get ino(){return this.#h}#u;get size(){return this.#u}#f;get blocks(){return this.#f}#a;get atimeMs(){return this.#a}#i;get mtimeMs(){return this.#i}#d;get ctimeMs(){return this.#d}#E;get birthtimeMs(){return this.#E}#b;get atime(){return this.#b}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#C;#T;#g;#y;#x;#A;#e;#_;#M;#k;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,e=L,s,i,r,o,h){this.name=t,this.#C=r?_t(t):bt(t),this.#e=e&Fi,this.nocase=r,this.roots=i,this.root=s||this,this.#_=o,this.#g=h.fullpath,this.#x=h.relative,this.#A=h.relativePosix,this.parent=h.parent,this.parent?this.#t=this.parent.#t:this.#t=Ue(h.fs)}depth(){return this.#T!==void 0?this.#T:this.parent?this.#T=this.parent.depth()+1:this.#T=0}childrenCache(){return this.#_}resolve(t){if(!t)return this;let e=this.getRootString(t),i=t.substring(e.length).split(this.splitSep);return e?this.getRoot(e).#N(i):this.#N(i)}#N(t){let e=this;for(let s of t)e=e.child(s);return e}children(){let t=this.#_.get(this);if(t)return t;let e=Object.assign([],{provisional:0});return this.#_.set(this,e),this.#e&=~se,e}child(t,e){if(t===\"\"||t===\".\")return this;if(t===\"..\")return this.parent||this;let s=this.children(),i=this.nocase?_t(t):bt(t);for(let a of s)if(a.#C===i)return a;let r=this.parent?this.sep:\"\",o=this.#g?this.#g+r+t:void 0,h=this.newChild(t,L,{...e,parent:this,fullpath:o});return this.canReaddir()||(h.#e|=j),s.push(h),h}relative(){if(this.isCWD)return\"\";if(this.#x!==void 0)return this.#x;let t=this.name,e=this.parent;if(!e)return this.#x=this.name;let s=e.relative();return s+(!s||!e.parent?\"\":this.sep)+t}relativePosix(){if(this.sep===\"/\")return this.relative();if(this.isCWD)return\"\";if(this.#A!==void 0)return this.#A;let t=this.name,e=this.parent;if(!e)return this.#A=this.fullpathPosix();let s=e.relativePosix();return s+(!s||!e.parent?\"\":\"/\")+t}fullpath(){if(this.#g!==void 0)return this.#g;let t=this.name,e=this.parent;if(!e)return this.#g=this.name;let i=e.fullpath()+(e.parent?this.sep:\"\")+t;return this.#g=i}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep===\"/\")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\\\/g,\"/\");return/^[a-z]:\\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let t=this.parent,e=t.fullpathPosix(),s=e+(!e||!t.parent?\"\":\"/\")+this.name;return this.#y=s}isUnknown(){return(this.#e&_)===L}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?\"Unknown\":this.isDirectory()?\"Directory\":this.isFile()?\"File\":this.isSymbolicLink()?\"SymbolicLink\":this.isFIFO()?\"FIFO\":this.isCharacterDevice()?\"CharacterDevice\":this.isBlockDevice()?\"BlockDevice\":this.isSocket()?\"Socket\":\"Unknown\"}isFile(){return(this.#e&_)===Ke}isDirectory(){return(this.#e&_)===U}isCharacterDevice(){return(this.#e&_)===He}isBlockDevice(){return(this.#e&_)===qe}isFIFO(){return(this.#e&_)===Ge}isSocket(){return(this.#e&_)===Ve}isSymbolicLink(){return(this.#e&X)===X}lstatCached(){return this.#e&je?this:void 0}readlinkCached(){return this.#M}realpathCached(){return this.#k}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#M)return!0;if(!this.parent)return!1;let t=this.#e&_;return!(t!==L&&t!==X||this.#e&Nt||this.#e&j)}calledReaddir(){return!!(this.#e&se)}isENOENT(){return!!(this.#e&j)}isNamed(t){return this.nocase?this.#C===_t(t):this.#C===bt(t)}async readlink(){let t=this.#M;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=await this.#t.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(e);if(s)return this.#M=s}catch(e){this.#D(e.code);return}}readlinkSync(){let t=this.#M;if(t)return t;if(this.canReadlink()&&this.parent)try{let e=this.#t.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(e);if(s)return this.#M=s}catch(e){this.#D(e.code);return}}#j(t){this.#e|=se;for(let e=t.provisional;e<t.length;e++){let s=t[e];s&&s.#v()}}#v(){this.#e&j||(this.#e=(this.#e|j)&gt,this.#G())}#G(){let t=this.children();t.provisional=0;for(let e of t)e.#v()}#P(){this.#e|=Lt,this.#L()}#L(){if(this.#e&yt)return;let t=this.#e;(t&_)===U&&(t&=gt),this.#e=t|yt,this.#G()}#I(t=\"\"){t===\"ENOTDIR\"||t===\"EPERM\"?this.#L():t===\"ENOENT\"?this.#v():this.children().provisional=0}#F(t=\"\"){t===\"ENOTDIR\"?this.parent.#L():t===\"ENOENT\"&&this.#v()}#D(t=\"\"){let e=this.#e;e|=Nt,t===\"ENOENT\"&&(e|=j),(t===\"EINVAL\"||t===\"UNKNOWN\")&&(e&=gt),this.#e=e,t===\"ENOTDIR\"&&this.parent&&this.parent.#L()}#z(t,e){return this.#U(t,e)||this.#B(t,e)}#B(t,e){let s=ie(t),i=this.newChild(t.name,s,{parent:this}),r=i.#e&_;return r!==U&&r!==X&&r!==L&&(i.#e|=yt),e.unshift(i),e.provisional++,i}#U(t,e){for(let s=e.provisional;s<e.length;s++){let i=e[s];if((this.nocase?_t(t.name):bt(t.name))===i.#C)return this.#l(t,i,s,e)}}#l(t,e,s,i){let r=e.name;return e.#e=e.#e&gt|ie(t),r!==t.name&&(e.name=t.name),s!==i.provisional&&(s===i.length-1?i.pop():i.splice(s,1),i.unshift(e)),i.provisional++,e}async lstat(){if((this.#e&j)===0)try{return this.#$(await this.#t.promises.lstat(this.fullpath())),this}catch(t){this.#F(t.code)}}lstatSync(){if((this.#e&j)===0)try{return this.#$(this.#t.lstatSync(this.fullpath())),this}catch(t){this.#F(t.code)}}#$(t){let{atime:e,atimeMs:s,birthtime:i,birthtimeMs:r,blksize:o,blocks:h,ctime:a,ctimeMs:l,dev:u,gid:c,ino:d,mode:f,mtime:m,mtimeMs:p,nlink:w,rdev:g,size:S,uid:E}=t;this.#b=e,this.#a=s,this.#m=i,this.#E=r,this.#c=o,this.#f=h,this.#R=a,this.#d=l,this.#s=u,this.#S=c,this.#h=d,this.#n=f,this.#p=m,this.#i=p,this.#r=w,this.#w=g,this.#u=S,this.#o=E;let y=ie(t);this.#e=this.#e&gt|y|je,y!==L&&y!==U&&y!==X&&(this.#e|=yt)}#W=[];#O=!1;#H(t){this.#O=!1;let e=this.#W.slice();this.#W.length=0,e.forEach(s=>s(null,t))}readdirCB(t,e=!1){if(!this.canReaddir()){e?t(null,[]):queueMicrotask(()=>t(null,[]));return}let s=this.children();if(this.calledReaddir()){let r=s.slice(0,s.provisional);e?t(null,r):queueMicrotask(()=>t(null,r));return}if(this.#W.push(t),this.#O)return;this.#O=!0;let i=this.fullpath();this.#t.readdir(i,{withFileTypes:!0},(r,o)=>{if(r)this.#I(r.code),s.provisional=0;else{for(let h of o)this.#z(h,s);this.#j(s)}this.#H(s.slice(0,s.provisional))})}#q;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();if(this.#q)await this.#q;else{let s=()=>{};this.#q=new Promise(i=>s=i);try{for(let i of await this.#t.promises.readdir(e,{withFileTypes:!0}))this.#z(i,t);this.#j(t)}catch(i){this.#I(i.code),t.provisional=0}this.#q=void 0,s()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let e=this.fullpath();try{for(let s of this.#t.readdirSync(e,{withFileTypes:!0}))this.#z(s,t);this.#j(t)}catch(s){this.#I(s.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#e&Ie)return!1;let t=_&this.#e;return t===L||t===U||t===X}shouldWalk(t,e){return(this.#e&U)===U&&!(this.#e&Ie)&&!t.has(this)&&(!e||e(this))}async realpath(){if(this.#k)return this.#k;if(!((Lt|Nt|j)&this.#e))try{let t=await this.#t.promises.realpath(this.fullpath());return this.#k=this.resolve(t)}catch{this.#P()}}realpathSync(){if(this.#k)return this.#k;if(!((Lt|Nt|j)&this.#e))try{let t=this.#t.realpathSync(this.fullpath());return this.#k=this.resolve(t)}catch{this.#P()}}[Ye](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let e=new Set([]),s=[],i=this;for(;i&&i.parent;)e.add(i),i.#x=s.join(this.sep),i.#A=s.join(\"/\"),i=i.parent,s.push(\"..\");for(i=t;i&&i.parent&&!e.has(i);)i.#x=void 0,i.#A=void 0,i=i.parent}},Pt=class n extends R{sep=\"\\\\\";splitSep=Oi;constructor(t,e=L,s,i,r,o,h){super(t,e,s,i,r,o,h)}newChild(t,e=L,s={}){return new n(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return re.parse(t).root}getRoot(t){if(t=Ri(t.toUpperCase()),t===this.root.name)return this.root;for(let[e,s]of Object.entries(this.roots))if(this.sameRoot(t,e))return this.roots[t]=s;return this.roots[t]=new it(t,this).root}sameRoot(t,e=this.root.name){return t=t.toUpperCase().replace(/\\//g,\"\\\\\").replace($e,\"$1\\\\\"),t===e}},jt=class n extends R{splitSep=\"/\";sep=\"/\";constructor(t,e=L,s,i,r,o,h){super(t,e,s,i,r,o,h)}getRootString(t){return t.startsWith(\"/\")?\"/\":\"\"}getRoot(t){return this.root}newChild(t,e=L,s={}){return new n(t,e,this.root,this.roots,this.nocase,this.childrenCache(),s)}},It=class{root;rootPath;roots;cwd;#t;#s;#n;nocase;#r;constructor(t=process.cwd(),e,s,{nocase:i,childrenCacheSize:r=16*1024,fs:o=wt}={}){this.#r=Ue(o),(t instanceof URL||t.startsWith(\"file://\"))&&(t=gi(t));let h=e.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(h),this.#t=new Wt,this.#s=new Wt,this.#n=new ne(r);let a=h.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError(\"must provide nocase setting to PathScurryBase ctor\");this.nocase=i,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let l=this.root,u=a.length-1,c=e.sep,d=this.rootPath,f=!1;for(let m of a){let p=u--;l=l.child(m,{relative:new Array(p).fill(\"..\").join(c),relativePosix:new Array(p).fill(\"..\").join(\"/\"),fullpath:d+=(f?\"\":c)+m}),f=!0}this.cwd=l}depth(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let e=\"\";for(let r=t.length-1;r>=0;r--){let o=t[r];if(!(!o||o===\".\")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#t.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpath();return this.#t.set(e,i),i}resolvePosix(...t){let e=\"\";for(let r=t.length-1;r>=0;r--){let o=t[r];if(!(!o||o===\".\")&&(e=e?`${o}/${e}`:o,this.isAbsolute(o)))break}let s=this.#s.get(e);if(s!==void 0)return s;let i=this.cwd.resolve(e).fullpathPosix();return this.#s.set(e,i),i}relative(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,e={withFileTypes:!0}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s}=e;if(t.canReaddir()){let i=await t.readdir();return s?i:i.map(r=>r.name)}else return[]}readdirSync(t=this.cwd,e={withFileTypes:!0}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0}=e;return t.canReaddir()?s?t.readdirSync():t.readdirSync().map(i=>i.name):[]}async lstat(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t==\"string\"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=await t.readlink();return e?s:s?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=t.readlinkSync();return e?s:s?.fullpath()}async realpath(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=await t.realpath();return e?s:s?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:e}={withFileTypes:!1}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t.withFileTypes,t=this.cwd);let s=t.realpathSync();return e?s:s?.fullpath()}async walk(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=[];(!r||r(t))&&h.push(s?t:t.fullpath());let a=new Set,l=(c,d)=>{a.add(c),c.readdirCB((f,m)=>{if(f)return d(f);let p=m.length;if(!p)return d();let w=()=>{--p===0&&d()};for(let g of m)(!r||r(g))&&h.push(s?g:g.fullpath()),i&&g.isSymbolicLink()?g.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(a,o)?l(S,w):w()):g.shouldWalk(a,o)?l(g,w):w()},!0)},u=t;return new Promise((c,d)=>{l(u,f=>{if(f)return d(f);c(h)})})}walkSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=[];(!r||r(t))&&h.push(s?t:t.fullpath());let a=new Set([t]);for(let l of a){let u=l.readdirSync();for(let c of u){(!r||r(c))&&h.push(s?c:c.fullpath());let d=c;if(c.isSymbolicLink()){if(!(i&&(d=c.realpathSync())))continue;d.isUnknown()&&d.lstatSync()}d.shouldWalk(a,o)&&a.add(d)}}return h}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,e={}){return typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd),this.stream(t,e)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e;(!r||r(t))&&(yield s?t:t.fullpath());let h=new Set([t]);for(let a of h){let l=a.readdirSync();for(let u of l){(!r||r(u))&&(yield s?u:u.fullpath());let c=u;if(u.isSymbolicLink()){if(!(i&&(c=u.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(h,o)&&h.add(c)}}}stream(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=new V({objectMode:!0});(!r||r(t))&&h.write(s?t:t.fullpath());let a=new Set,l=[t],u=0,c=()=>{let d=!1;for(;!d;){let f=l.shift();if(!f){u===0&&h.end();return}u++,a.add(f);let m=(w,g,S=!1)=>{if(w)return h.emit(\"error\",w);if(i&&!S){let E=[];for(let y of g)y.isSymbolicLink()&&E.push(y.realpath().then(b=>b?.isUnknown()?b.lstat():b));if(E.length){Promise.all(E).then(()=>m(null,g,!0));return}}for(let E of g)E&&(!r||r(E))&&(h.write(s?E:E.fullpath())||(d=!0));u--;for(let E of g){let y=E.realpathCached()||E;y.shouldWalk(a,o)&&l.push(y)}d&&!h.flowing?h.once(\"drain\",c):p||c()},p=!0;f.readdirCB(m,!0),p=!1}};return c(),h}streamSync(t=this.cwd,e={}){typeof t==\"string\"?t=this.cwd.resolve(t):t instanceof R||(e=t,t=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=e,h=new V({objectMode:!0}),a=new Set;(!r||r(t))&&h.write(s?t:t.fullpath());let l=[t],u=0,c=()=>{let d=!1;for(;!d;){let f=l.shift();if(!f){u===0&&h.end();return}u++,a.add(f);let m=f.readdirSync();for(let p of m)(!r||r(p))&&(h.write(s?p:p.fullpath())||(d=!0));u--;for(let p of m){let w=p;if(p.isSymbolicLink()){if(!(i&&(w=p.realpathSync())))continue;w.isUnknown()&&w.lstatSync()}w.shouldWalk(a,o)&&l.push(w)}}d&&!h.flowing&&h.once(\"drain\",c)};return c(),h}chdir(t=this.cwd){let e=this.cwd;this.cwd=typeof t==\"string\"?this.cwd.resolve(t):t,this.cwd[Ye](e)}},it=class extends It{sep=\"\\\\\";constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,re,\"\\\\\",{...e,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(t){return re.parse(t).root.toUpperCase()}newRoot(t){return new Pt(this.rootPath,U,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith(\"/\")||t.startsWith(\"\\\\\")||/^[a-z]:(\\/|\\\\)/i.test(t)}},rt=class extends It{sep=\"/\";constructor(t=process.cwd(),e={}){let{nocase:s=!1}=e;super(t,mi,\"/\",{...e,nocase:s}),this.nocase=s}parseRootPath(t){return\"/\"}newRoot(t){return new jt(this.rootPath,U,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith(\"/\")}},St=class extends rt{constructor(t=process.cwd(),e={}){let{nocase:s=!0}=e;super(t,{...e,nocase:s})}},Cr=process.platform===\"win32\"?Pt:jt,Xe=process.platform===\"win32\"?it:process.platform===\"darwin\"?St:rt;var Di=n=>n.length>=1,Mi=n=>n.length>=1,Ni=Symbol.for(\"nodejs.util.inspect.custom\"),nt=class n{#t;#s;#n;length;#r;#o;#S;#w;#c;#h;#u=!0;constructor(t,e,s,i){if(!Di(t))throw new TypeError(\"empty pattern list\");if(!Mi(e))throw new TypeError(\"empty glob list\");if(e.length!==t.length)throw new TypeError(\"mismatched pattern list and glob list lengths\");if(this.length=t.length,s<0||s>=this.length)throw new TypeError(\"index out of range\");if(this.#t=t,this.#s=e,this.#n=s,this.#r=i,this.#n===0){if(this.isUNC()){let[r,o,h,a,...l]=this.#t,[u,c,d,f,...m]=this.#s;l[0]===\"\"&&(l.shift(),m.shift());let p=[r,o,h,a,\"\"].join(\"/\"),w=[u,c,d,f,\"\"].join(\"/\");this.#t=[p,...l],this.#s=[w,...m],this.length=this.#t.length}else if(this.isDrive()||this.isAbsolute()){let[r,...o]=this.#t,[h,...a]=this.#s;o[0]===\"\"&&(o.shift(),a.shift());let l=r+\"/\",u=h+\"/\";this.#t=[l,...o],this.#s=[u,...a],this.length=this.#t.length}}}[Ni](){return\"Pattern <\"+this.#s.slice(this.#n).join(\"/\")+\">\"}pattern(){return this.#t[this.#n]}isString(){return typeof this.#t[this.#n]==\"string\"}isGlobstar(){return this.#t[this.#n]===A}isRegExp(){return this.#t[this.#n]instanceof RegExp}globString(){return this.#S=this.#S||(this.#n===0?this.isAbsolute()?this.#s[0]+this.#s.slice(1).join(\"/\"):this.#s.join(\"/\"):this.#s.slice(this.#n).join(\"/\"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new n(this.#t,this.#s,this.#n+1,this.#r),this.#o.#h=this.#h,this.#o.#c=this.#c,this.#o.#w=this.#w,this.#o):this.#o=null}isUNC(){let t=this.#t;return this.#c!==void 0?this.#c:this.#c=this.#r===\"win32\"&&this.#n===0&&t[0]===\"\"&&t[1]===\"\"&&typeof t[2]==\"string\"&&!!t[2]&&typeof t[3]==\"string\"&&!!t[3]}isDrive(){let t=this.#t;return this.#w!==void 0?this.#w:this.#w=this.#r===\"win32\"&&this.#n===0&&this.length>1&&typeof t[0]==\"string\"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#t;return this.#h!==void 0?this.#h:this.#h=t[0]===\"\"&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#t[0];return typeof t==\"string\"&&this.isAbsolute()&&this.#n===0?t:\"\"}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};var _i=typeof process==\"object\"&&process&&typeof process.platform==\"string\"?process.platform:\"linux\",ot=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:e,nocase:s,noext:i,noglobstar:r,platform:o=_i}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:e,nocase:s,noext:i,noglobstar:r,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let h of t)this.add(h)}add(t){let e=new D(t,this.mmopts);for(let s=0;s<e.set.length;s++){let i=e.set[s],r=e.globParts[s];if(!i||!r)throw new Error(\"invalid pattern object\");for(;i[0]===\".\"&&r[0]===\".\";)i.shift(),r.shift();let o=new nt(i,r,0,this.platform),h=new D(o.globString(),this.mmopts),a=r[r.length-1]===\"**\",l=o.isAbsolute();l?this.absolute.push(h):this.relative.push(h),a&&(l?this.absoluteChildren.push(h):this.relativeChildren.push(h))}}ignored(t){let e=t.fullpath(),s=`${e}/`,i=t.relative()||\".\",r=`${i}/`;for(let o of this.relative)if(o.match(i)||o.match(r))return!0;for(let o of this.absolute)if(o.match(e)||o.match(s))return!0;return!1}childrenIgnored(t){let e=t.fullpath()+\"/\",s=(t.relative()||\".\")+\"/\";for(let i of this.relativeChildren)if(i.match(s))return!0;for(let i of this.absoluteChildren)if(i.match(e))return!0;return!1}};var oe=class n{store;constructor(t=new Map){this.store=t}copy(){return new n(new Map(this.store))}hasWalked(t,e){return this.store.get(t.fullpath())?.has(e.globString())}storeWalked(t,e){let s=t.fullpath(),i=this.store.get(s);i?i.add(e.globString()):this.store.set(s,new Set([e.globString()]))}},he=class{store=new Map;add(t,e,s){let i=(e?2:0)|(s?1:0),r=this.store.get(t);this.store.set(t,r===void 0?i:i&r)}entries(){return[...this.store.entries()].map(([t,e])=>[t,!!(e&2),!!(e&1)])}},ae=class{store=new Map;add(t,e){if(!t.canReaddir())return;let s=this.store.get(t);s?s.find(i=>i.globString()===e.globString())||s.push(e):this.store.set(t,[e])}get(t){let e=this.store.get(t);if(!e)throw new Error(\"attempting to walk unknown path\");return e}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}},Et=class n{hasWalkedCache;matches=new he;subwalks=new ae;patterns;follow;dot;opts;constructor(t,e){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=e?e.copy():new oe}processPatterns(t,e){this.patterns=e;let s=e.map(i=>[t,i]);for(let[i,r]of s){this.hasWalkedCache.storeWalked(i,r);let o=r.root(),h=r.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o===\"/\"&&this.opts.root!==void 0?this.opts.root:o);let c=r.rest();if(c)r=c;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let a,l,u=!1;for(;typeof(a=r.pattern())==\"string\"&&(l=r.rest());)i=i.resolve(a),r=l,u=!0;if(a=r.pattern(),l=r.rest(),u){if(this.hasWalkedCache.hasWalked(i,r))continue;this.hasWalkedCache.storeWalked(i,r)}if(typeof a==\"string\"){let c=a===\"..\"||a===\"\"||a===\".\";this.matches.add(i.resolve(a),h,c);continue}else if(a===A){(!i.isSymbolicLink()||this.follow||r.checkFollowGlobstar())&&this.subwalks.add(i,r);let c=l?.pattern(),d=l?.rest();if(!l||(c===\"\"||c===\".\")&&!d)this.matches.add(i,h,c===\"\"||c===\".\");else if(c===\"..\"){let f=i.parent||i;d?this.hasWalkedCache.hasWalked(f,d)||this.subwalks.add(f,d):this.matches.add(f,h,!0)}}else a instanceof RegExp&&this.subwalks.add(i,r)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new n(this.opts,this.hasWalkedCache)}filterEntries(t,e){let s=this.subwalks.get(t),i=this.child();for(let r of e)for(let o of s){let h=o.isAbsolute(),a=o.pattern(),l=o.rest();a===A?i.testGlobstar(r,o,l,h):a instanceof RegExp?i.testRegExp(r,a,l,h):i.testString(r,a,l,h)}return i}testGlobstar(t,e,s,i){if((this.dot||!t.name.startsWith(\".\"))&&(e.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,e):t.isSymbolicLink()&&(s&&e.checkFollowGlobstar()?this.subwalks.add(t,s):e.markFollowGlobstar()&&this.subwalks.add(t,e)))),s){let r=s.pattern();if(typeof r==\"string\"&&r!==\"..\"&&r!==\"\"&&r!==\".\")this.testString(t,r,s.rest(),i);else if(r===\"..\"){let o=t.parent||t;this.subwalks.add(o,s)}else r instanceof RegExp&&this.testRegExp(t,r,s.rest(),i)}}testRegExp(t,e,s,i){e.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,e,s,i){t.isNamed(e)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}};var Li=(n,t)=>typeof n==\"string\"?new ot([n],t):Array.isArray(n)?new ot(n,t):n,zt=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#t=[];#s;#n;signal;maxDepth;includeChildMatches;constructor(t,e,s){if(this.patterns=t,this.path=e,this.opts=s,this.#n=!s.posix&&s.platform===\"win32\"?\"\\\\\":\"/\",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#s=Li(s.ignore??[],s),!this.includeChildMatches&&typeof this.#s.add!=\"function\")){let i=\"cannot ignore child matches, ignore lacks add() method.\";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener(\"abort\",()=>{this.#t.length=0}))}#r(t){return this.seen.has(t)||!!this.#s?.ignored?.(t)}#o(t){return!!this.#s?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#t.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#t.push(t):t())}async matchCheck(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||await t.realpath(),!s)return;t=s}let r=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=await r.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(r,e)}matchCheckTest(t,e){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!e||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,e){if(e&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=t.realpathCached()||t.realpathSync(),!s)return;t=s}let r=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=r.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(r,e)}matchFinish(t,e){if(this.#r(t))return;if(!this.includeChildMatches&&this.#s?.add){let r=`${t.relativePosix()}/**`;this.#s.add(r)}let s=this.opts.absolute===void 0?e:this.opts.absolute;this.seen.add(t);let i=this.opts.mark&&t.isDirectory()?this.#n:\"\";if(this.opts.withFileTypes)this.matchEmit(t);else if(s){let r=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(r+i)}else{let r=this.opts.posix?t.relativePosix():t.relative(),o=this.opts.dotRelative&&!r.startsWith(\"..\"+this.#n)?\".\"+this.#n:\"\";this.matchEmit(r?o+r+i:\".\"+i)}}async match(t,e,s){let i=await this.matchCheck(t,s);i&&this.matchFinish(i,e)}matchSync(t,e,s){let i=this.matchCheckSync(t,s);i&&this.matchFinish(i,e)}walkCB(t,e,s){this.signal?.aborted&&s(),this.walkCB2(t,e,new Et(this.opts),s)}walkCB2(t,e,s,i){if(this.#o(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(t,e,s,i));return}s.processPatterns(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||(r++,this.match(h,a,l).then(()=>o()));for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;r++;let a=h.readdirCached();h.calledReaddir()?this.walkCB3(h,a,s,o):h.readdirCB((l,u)=>this.walkCB3(h,u,s,o),!0)}o()}walkCB3(t,e,s,i){s=s.filterEntries(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||(r++,this.match(h,a,l).then(()=>o()));for(let[h,a]of s.subwalks.entries())r++,this.walkCB2(h,a,s.child(),o);o()}walkCBSync(t,e,s){this.signal?.aborted&&s(),this.walkCB2Sync(t,e,new Et(this.opts),s)}walkCB2Sync(t,e,s,i){if(this.#o(t))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(t,e,s,i));return}s.processPatterns(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||this.matchSync(h,a,l);for(let h of s.subwalkTargets()){if(this.maxDepth!==1/0&&h.depth()>=this.maxDepth)continue;r++;let a=h.readdirSync();this.walkCB3Sync(h,a,s,o)}o()}walkCB3Sync(t,e,s,i){s=s.filterEntries(t,e);let r=1,o=()=>{--r===0&&i()};for(let[h,a,l]of s.matches.entries())this.#r(h)||this.matchSync(h,a,l);for(let[h,a]of s.subwalks.entries())r++,this.walkCB2Sync(h,a,s.child(),o);o()}},xt=class extends zt{matches=new Set;constructor(t,e,s){super(t,e,s)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,e)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?e(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},vt=class extends zt{results;constructor(t,e,s){super(t,e,s),this.results=new V({signal:this.signal,objectMode:!0}),this.results.on(\"drain\",()=>this.resume()),this.results.on(\"resume\",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var Pi=typeof process==\"object\"&&process&&typeof process.platform==\"string\"?process.platform:\"linux\",I=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,e){if(!e)throw new TypeError(\"glob options required\");if(this.withFileTypes=!!e.withFileTypes,this.signal=e.signal,this.follow=!!e.follow,this.dot=!!e.dot,this.dotRelative=!!e.dotRelative,this.nodir=!!e.nodir,this.mark=!!e.mark,e.cwd?(e.cwd instanceof URL||e.cwd.startsWith(\"file://\"))&&(e.cwd=Wi(e.cwd)):this.cwd=\"\",this.cwd=e.cwd||\"\",this.root=e.root,this.magicalBraces=!!e.magicalBraces,this.nobrace=!!e.nobrace,this.noext=!!e.noext,this.realpath=!!e.realpath,this.absolute=e.absolute,this.includeChildMatches=e.includeChildMatches!==!1,this.noglobstar=!!e.noglobstar,this.matchBase=!!e.matchBase,this.maxDepth=typeof e.maxDepth==\"number\"?e.maxDepth:1/0,this.stat=!!e.stat,this.ignore=e.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error(\"cannot set absolute and withFileTypes:true\");if(typeof t==\"string\"&&(t=[t]),this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(a=>a.replace(/\\\\/g,\"/\"))),this.matchBase){if(e.noglobstar)throw new TypeError(\"base matching requires globstar\");t=t.map(a=>a.includes(\"/\")?a:`./**/${a}`)}if(this.pattern=t,this.platform=e.platform||Pi,this.opts={...e,platform:this.platform},e.scurry){if(this.scurry=e.scurry,e.nocase!==void 0&&e.nocase!==e.scurry.nocase)throw new Error(\"nocase option contradicts provided scurry option\")}else{let a=e.platform===\"win32\"?it:e.platform===\"darwin\"?St:e.platform?rt:Xe;this.scurry=new a(this.cwd,{nocase:e.nocase,fs:e.fs})}this.nocase=this.scurry.nocase;let s=this.platform===\"darwin\"||this.platform===\"win32\",i={braceExpandMax:1e4,...e,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},r=this.pattern.map(a=>new D(a,i)),[o,h]=r.reduce((a,l)=>(a[0].push(...l.set),a[1].push(...l.globParts),a),[[],[]]);this.patterns=o.map((a,l)=>{let u=h[l];if(!u)throw new Error(\"invalid pattern object\");return new nt(a,u,0,this.platform)})}async walk(){return[...await new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new xt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new vt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new vt(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var le=(n,t={})=>{Array.isArray(n)||(n=[n]);for(let e of n)if(new D(e,t).hasMagic())return!0;return!1};function Bt(n,t={}){return new I(n,t).streamSync()}function Qe(n,t={}){return new I(n,t).stream()}function ts(n,t={}){return new I(n,t).walkSync()}async function Je(n,t={}){return new I(n,t).walk()}function Ut(n,t={}){return new I(n,t).iterateSync()}function es(n,t={}){return new I(n,t).iterate()}var ji=Bt,Ii=Object.assign(Qe,{sync:Bt}),zi=Ut,Bi=Object.assign(es,{sync:Ut}),Ui=Object.assign(ts,{stream:Bt,iterate:Ut}),Ze=Object.assign(Je,{glob:Je,globSync:ts,sync:Ui,globStream:Qe,stream:Ii,globStreamSync:Bt,streamSync:ji,globIterate:es,iterate:Bi,globIterateSync:Ut,iterateSync:zi,Glob:I,hasMagic:le,escape:tt,unescape:W});Ze.glob=Ze;export{I as Glob,ot as Ignore,tt as escape,Ze as glob,es as globIterate,Ut as globIterateSync,Qe as globStream,Bt as globStreamSync,ts as globSync,le as hasMagic,Bi as iterate,zi as iterateSync,Ii as stream,ji as streamSync,Ui as sync,W as unescape};\n//# sourceMappingURL=index.min.js.map\n","export type DiffLine = { op: \" \" | \"+\" | \"-\"; text: string }\n\n// ponytail: O(n·m) LCS on the changed middle; fine for docs, swap for Myers if huge files show up.\nexport function lineDiff(before: string, after: string): DiffLine[] {\n const a = before.split(\"\\n\")\n const b = after.split(\"\\n\")\n let start = 0\n while (start < a.length && start < b.length && a[start] === b[start]) start++\n let endA = a.length\n let endB = b.length\n while (endA > start && endB > start && a[endA - 1] === b[endB - 1]) { endA--; endB-- }\n\n const x = a.slice(start, endA)\n const y = b.slice(start, endB)\n // lcs[i][j] = LCS length of x[i..] and y[j..]\n const lcs = Array.from({ length: x.length + 1 }, () => new Array<number>(y.length + 1).fill(0))\n for (let i = x.length - 1; i >= 0; i--) {\n for (let j = y.length - 1; j >= 0; j--) {\n lcs[i][j] = x[i] === y[j] ? lcs[i + 1][j + 1] + 1 : Math.max(lcs[i + 1][j], lcs[i][j + 1])\n }\n }\n\n const middle: DiffLine[] = []\n let i = 0\n let j = 0\n while (i < x.length || j < y.length) {\n if (i < x.length && j < y.length && x[i] === y[j]) { middle.push({ op: \" \", text: x[i] }); i++; j++ }\n else if (i < x.length && (j === y.length || lcs[i + 1][j] >= lcs[i][j + 1])) { middle.push({ op: \"-\", text: x[i] }); i++ }\n else { middle.push({ op: \"+\", text: y[j] }); j++ }\n }\n\n return [\n ...a.slice(0, start).map((text) => ({ op: \" \" as const, text })),\n ...middle,\n ...a.slice(endA).map((text) => ({ op: \" \" as const, text })),\n ]\n}\n\nexport type TextEdit = { old_string: string; new_string: string }\n\n// Same contract as Claude Code's Edit tool: each old_string must match exactly once, applied in order.\n// An empty old_string is only allowed on an empty/new file (write the first content).\nexport function applyEdits(text: string, edits: TextEdit[]): { content: string } | { error: string } {\n let content = text\n for (const [i, e] of edits.entries()) {\n if (typeof e?.old_string !== \"string\" || typeof e?.new_string !== \"string\") {\n return { error: `Edit ${i + 1}: old_string and new_string must be strings` }\n }\n if (e.old_string === \"\") {\n if (content !== \"\") return { error: `Edit ${i + 1}: empty old_string is only allowed for a new, empty doc` }\n content = e.new_string\n continue\n }\n const at = content.indexOf(e.old_string)\n if (at === -1) return { error: `Edit ${i + 1}: old_string not found in the doc` }\n if (content.indexOf(e.old_string, at + 1) !== -1) {\n return { error: `Edit ${i + 1}: old_string matches more than once; include more surrounding text` }\n }\n content = content.slice(0, at) + e.new_string + content.slice(at + e.old_string.length)\n }\n return { content }\n}\n","// Who is in charge of a task / epic (R055): `**Owner:** human` or `**Owner:** ai:<agent>`.\n// Pure (no React, no fs). Self-check: `node src/lib/owner.check.mts`.\n\nexport type OwnerKind = \"human\" | \"ai\" | \"none\"\n\nconst KNOWN_AGENTS = [\"claude\", \"cursor\", \"codex\", \"copilot\", \"gemini\", \"windsurf\", \"cline\", \"opencode\"]\n\n/** \"human\" | \"ai:<agent>\" (lowercase), or null for empty / \"—\" / anything else. A bare \"ai\" becomes \"ai:agent\". */\nexport function parseOwner(raw: string | null | undefined): string | null {\n const v = (raw ?? \"\").trim().toLowerCase()\n if (v === \"human\") return \"human\"\n const m = v.match(/^ai(?::\\s*([a-z0-9._-]+))?$/)\n return m ? `ai:${m[1] ?? \"agent\"}` : null\n}\n\nexport function ownerKind(owner: string | null): OwnerKind {\n return owner === \"human\" ? \"human\" : owner?.startsWith(\"ai:\") ? \"ai\" : \"none\"\n}\n\n/** \"Human\", \"claude\", \"No owner\". */\nexport function ownerLabel(owner: string | null): string {\n return owner === \"human\" ? \"Human\" : owner?.startsWith(\"ai:\") ? owner.slice(3) : \"No owner\"\n}\n\n/** Agent name from an MCP client's User-Agent (\"claude-code/2.1\" → \"claude\"); \"agent\" when unknown. */\nexport function agentFromUserAgent(ua: string | null | undefined): string {\n const s = (ua ?? \"\").toLowerCase()\n return KNOWN_AGENTS.find((a) => s.includes(a)) ?? \"agent\"\n}\n","/**\n * src/lib/sessions.ts\n * Pure grouping of the activity log into agent/human sessions (no fs). Used by /api/sessions and /api/mcp.\n * Stamped events group by `sessionId`; legacy events (no sessionId) split on a per-actor idle gap or `session_start`.\n */\nimport type { ActivityEvent, TaskStatus } from './core'\n\nexport const SESSION_GAP_MS = 30 * 60 * 1000\n\nexport interface Session {\n id: string\n actor: ActivityEvent['actor']\n start: string\n end: string\n eventCount: number\n eventIds: string[]\n tasks: { id: string; lastStatus: TaskStatus }[]\n docs: string[]\n decisions: string[]\n memoryUpdated: boolean\n headline: string\n}\n\n// Doc path a change event carries; null for events that don't change a doc (doc_read included).\nfunction changedDoc(e: ActivityEvent): string | null {\n switch (e.type) {\n case 'doc_created': return e.detail ?? e.title.replace(/^Created: /, '')\n case 'doc_deleted': return e.title.replace(/^Deleted /, '')\n case 'doc_renamed': return e.title.split(' → ')[1] ?? null\n default: return null\n }\n}\n\nconst plural = (n: number, word: string) => `${n} ${word}${n === 1 ? '' : 's'}`\n\nfunction summarize(id: string, events: ActivityEvent[]): Session {\n const tasks = new Map<string, TaskStatus>()\n const docs = new Set<string>()\n const decisions: string[] = []\n let memoryUpdated = false\n let roadmapEdits = 0\n for (const e of events) {\n if (e.type === 'task_updated' && e.taskId && e.taskStatus) tasks.set(e.taskId, e.taskStatus)\n const doc = changedDoc(e)\n if (doc) docs.add(doc)\n if (e.type === 'decision_logged') decisions.push(e.title)\n if (e.type === 'memory_updated') memoryUpdated = true\n if (e.type === 'roadmap_updated') roadmapEdits++\n }\n const taskList = [...tasks].map(([tid, lastStatus]) => ({ id: tid, lastStatus }))\n const done = taskList.filter(t => t.lastStatus === 'done').length\n const parts = [\n taskList.length ? `${plural(taskList.length, 'task')} moved${done ? ` (${done} done)` : ''}` : '',\n docs.size ? `${plural(docs.size, 'doc')} changed` : '',\n decisions.length ? plural(decisions.length, 'ADR') : '',\n roadmapEdits ? plural(roadmapEdits, 'roadmap edit') : '',\n memoryUpdated ? 'memory updated' : '',\n ].filter(Boolean)\n return {\n id,\n actor: events[0].actor,\n start: events[0].timestamp,\n end: events[events.length - 1].timestamp,\n eventCount: events.length,\n eventIds: events.map(e => e.id),\n tasks: taskList,\n docs: [...docs],\n decisions,\n memoryUpdated,\n headline: parts.join(' · ') || plural(events.length, 'event'),\n }\n}\n\n/** Events may come in any order (the log is newest-first). Returns sessions newest first. */\nexport function groupSessions(events: ActivityEvent[], opts: { gapMs?: number } = {}): Session[] {\n const gapMs = opts.gapMs ?? SESSION_GAP_MS\n const chrono = [...events].sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n const groups = new Map<string, ActivityEvent[]>()\n const legacy = new Map<string, { id: string; lastAt: number }>() // per actor\n for (const e of chrono) {\n let id = e.sessionId\n if (!id) {\n const at = Date.parse(e.timestamp)\n let cur = legacy.get(e.actor)\n if (!cur || e.type === 'session_start' || at - cur.lastAt > gapMs) {\n cur = { id: `legacy_${e.id}`, lastAt: at }\n legacy.set(e.actor, cur)\n }\n cur.lastAt = at\n id = cur.id\n }\n const g = groups.get(id)\n if (g) g.push(e)\n else groups.set(id, [e])\n }\n return [...groups]\n .map(([id, evs]) => summarize(id, evs))\n .sort((a, b) => b.start.localeCompare(a.start))\n}\n\nexport function sessionDuration(s: Pick<Session, 'start' | 'end'>): string {\n const min = Math.round((Date.parse(s.end) - Date.parse(s.start)) / 60_000)\n if (min < 1) return '<1m'\n return min < 60 ? `${min}m` : `${Math.floor(min / 60)}h ${min % 60}m`\n}\n\n/** A session still receiving events (last one within `windowMs`). */\nexport function isLive(s: Pick<Session, 'end'>, now = Date.now(), windowMs = 5 * 60 * 1000): boolean {\n return now - Date.parse(s.end) < windowMs\n}\n\n/** Totals for the \"catch up\" strip: sessions that ended at or after `sinceMs`. */\nexport function catchUp(sessions: Session[], sinceMs: number) {\n const recent = sessions.filter(s => Date.parse(s.end) >= sinceMs)\n return {\n sessions: recent.length,\n tasksDone: new Set(recent.flatMap(s => s.tasks.filter(t => t.lastStatus === 'done').map(t => t.id))).size,\n docs: new Set(recent.flatMap(s => s.docs)).size,\n decisions: recent.reduce((n, s) => n + s.decisions.length, 0),\n }\n}\n\nexport function sessionsForTask(sessions: Session[], taskId: string): Session[] {\n return sessions.filter(s => s.tasks.some(t => t.id === taskId))\n}\n","// Automatic task dates (R055): due filled from the epic or the size, Started / Done stamped on moves.\n// Pure (no React, no fs). Dates are local calendar strings \"YYYY-MM-DD\", never instants.\n// Self-check: `node src/lib/auto-dates.check.mts`.\n\nexport type SizeDays = Record<string, number>\n\n/** Calendar days of work per size letter; override with `tasks.sizeDays` in .vibedoc/settings.json. */\nexport const DEFAULT_SIZE_DAYS: SizeDays = { XS: 1, S: 1, M: 3, L: 7, XL: 14 }\n\n/** \"2026-10-01\" + 3 → \"2026-10-04\" (calendar math, no time zone involved). */\nexport function addDays(date: string, days: number): string {\n const [y, m, d] = date.split(\"-\").map(Number)\n return new Date(Date.UTC(y, m - 1, d + days)).toISOString().slice(0, 10)\n}\n\n/** \"M (2–3 hrs)\" → \"M\"; \"—\" / \"\" → null. */\nexport function sizeLetter(size: string): string | null {\n return size.trim().match(/^(XS|XL|S|M|L)\\b/i)?.[1].toUpperCase() ?? null\n}\n\nexport interface TaskDates {\n due: string | null\n started: string | null\n done: string | null\n}\n\n/**\n * Dates after a move to `status` on `today`. Only fills what is empty, so a hand-set due always wins:\n * - in-progress: Started = today (first start only); no due yet → Started + the size's days\n * - done: Done = today\n * - back to anything else from done: Done is cleared (Started stays)\n */\nexport function datesOnMove(\n status: string, current: TaskDates, size: string, today: string, sizeDays: SizeDays = DEFAULT_SIZE_DAYS,\n): TaskDates {\n const next = { ...current }\n if (status === \"in-progress\") {\n next.started ??= today\n const days = sizeDays[sizeLetter(size) ?? \"\"]\n if (!next.due && typeof days === \"number\" && days >= 0) next.due = addDays(next.started, days)\n }\n if (status === \"done\") next.done = today\n else if (next.done) next.done = null\n return next\n}\n","// Task statuses (R055): the seven built-ins plus a project's own, each mapped onto a built-in category.\n// Logic (queue, health, dependencies, board buckets) reads the category; the UI reads label and color.\n// Files store the status id (`**Status:** 👀 Qa`), so renaming a label never touches task files.\n// Pure (no React, no fs). Self-check: `node src/lib/statuses.check.mts`.\n\nimport type { TaskStatus } from \"./core\"\n\nexport const BUILTIN_STATUSES: TaskStatus[] = [\"todo\", \"in-progress\", \"review\", \"blocked\", \"paused\", \"done\", \"cancelled\"]\n\nexport const STATUS_ICONS: Record<TaskStatus, string> = {\n todo: \"📋\",\n \"in-progress\": \"🔨\",\n review: \"👀\",\n blocked: \"🚫\",\n paused: \"⏸️\",\n done: \"✅\",\n cancelled: \"❌\",\n}\n\nexport const STATUS_ALIASES: Record<string, TaskStatus> = {\n ready: \"todo\", planned: \"todo\", \"not started\": \"todo\",\n wip: \"in-progress\", doing: \"in-progress\", active: \"in-progress\", start: \"in-progress\", started: \"in-progress\",\n complete: \"done\", completed: \"done\", finished: \"done\", finish: \"done\",\n block: \"blocked\",\n \"on hold\": \"paused\", \"on-hold\": \"paused\", pause: \"paused\", hold: \"paused\",\n \"in review\": \"review\", reviewing: \"review\", \"needs review\": \"review\",\n cancel: \"cancelled\", skip: \"cancelled\",\n}\n\n/** Named colors only: Tailwind generates classes it sees literally, so the UI maps these names to fixed classes. */\nexport const STATUS_COLORS = [\"gray\", \"amber\", \"accent\", \"red\", \"slate\", \"teal\", \"blue\", \"pink\", \"green\", \"orange\"] as const\nexport type StatusColor = (typeof STATUS_COLORS)[number]\n\nexport interface StatusDef {\n /** Built-in id, or a custom slug ([a-z0-9-]) */\n id: string\n label: string\n color: StatusColor\n category: TaskStatus\n}\n\nexport const DEFAULT_STATUSES: StatusDef[] = [\n { id: \"todo\", label: \"Todo\", color: \"gray\", category: \"todo\" },\n { id: \"in-progress\", label: \"In progress\", color: \"amber\", category: \"in-progress\" },\n { id: \"review\", label: \"Review\", color: \"accent\", category: \"review\" },\n { id: \"blocked\", label: \"Blocked\", color: \"red\", category: \"blocked\" },\n { id: \"paused\", label: \"Paused\", color: \"slate\", category: \"paused\" },\n { id: \"done\", label: \"Done\", color: \"teal\", category: \"done\" },\n { id: \"cancelled\", label: \"Cancelled\", color: \"gray\", category: \"cancelled\" },\n]\n\nconst isBuiltin = (s: string): s is TaskStatus => (BUILTIN_STATUSES as string[]).includes(s)\n\n/** Why an id can't be a custom status, or null when it can. */\nexport function invalidStatusId(id: string): string | null {\n if (!/^[a-z0-9][a-z0-9-]{0,39}$/.test(id)) return \"use lowercase letters, digits and dashes\"\n if (isBuiltin(id) || id in STATUS_ALIASES || id.replace(/-/g, \" \") in STATUS_ALIASES) return `\"${id}\" already means a built-in status`\n return null\n}\n\n/**\n * The project's statuses: every built-in once (its label / color / position may be customised, its category\n * can't), plus valid custom ones. Anything malformed in settings is dropped, never thrown.\n */\nexport function statusDefs(fromSettings: unknown): StatusDef[] {\n if (!Array.isArray(fromSettings)) return DEFAULT_STATUSES\n const out: StatusDef[] = []\n for (const raw of fromSettings) {\n const r = raw as Partial<StatusDef> | null\n const id = typeof r?.id === \"string\" ? r.id.trim().toLowerCase() : \"\"\n if (!id || out.some((d) => d.id === id)) continue\n const builtin = isBuiltin(id)\n const category = builtin ? id : r?.category\n if (!category || !isBuiltin(category) || (!builtin && invalidStatusId(id))) continue\n const base = DEFAULT_STATUSES.find((d) => d.id === (builtin ? id : category))\n out.push({\n id,\n label: typeof r?.label === \"string\" && r.label.trim() ? r.label.trim() : base?.label ?? id,\n color: STATUS_COLORS.includes(r?.color as StatusColor) ? (r?.color as StatusColor) : base?.color ?? \"gray\",\n category,\n })\n }\n // built-ins that settings left out keep their default place at the end\n for (const d of DEFAULT_STATUSES) if (!out.some((o) => o.id === d.id)) out.push(d)\n return out\n}\n\nexport interface ResolvedStatus {\n status: TaskStatus\n /** Set only for a custom status */\n customStatus?: string\n /** The raw value matched nothing (read as todo) */\n unknown?: boolean\n}\n\n/** A `**Status:**` value (\"👀 Qa\", \"In review\", \"done\") → category + custom id. */\nexport function resolveStatus(raw: string, defs: StatusDef[] = DEFAULT_STATUSES): ResolvedStatus {\n const s = raw.toLowerCase().replace(/[📋🔨👀✅🚫❌⏸️]/g, \"\").trim()\n const key: string = STATUS_ALIASES[s] ?? s\n if (isBuiltin(key)) return { status: key }\n const custom = defs.find((d) => d.id === key || d.id === key.replace(/\\s+/g, \"-\"))\n if (custom && !isBuiltin(custom.id)) return { status: custom.category, customStatus: custom.id }\n return { status: \"todo\", unknown: true }\n}\n\n/** What goes after `**Status:** ` for a status key: built-ins exactly as always (\"🔨 In-progress\"), custom ids alike (\"👀 Qa\"). */\nexport function statusLine(key: string, defs: StatusDef[] = DEFAULT_STATUSES): string {\n const { status, customStatus } = resolveStatus(key, defs)\n const id = customStatus ?? status\n return `${STATUS_ICONS[status]} ${id.charAt(0).toUpperCase()}${id.slice(1)}`\n}\n\n/** The key a task shows under: its custom status, else its category. */\nexport const displayStatus = (t: { status: TaskStatus; customStatus?: string }) => t.customStatus ?? t.status\n","// Review history on a task (R043): a `## Review` section at the end of the task file, one `### ` entry per outcome.\n// Pure (no fs): core.ts writes the file; `node src/lib/review.check.mts` runs the self-check.\n//\n// ## Review\n// ### 2026-10-01T11:00:00Z — changes requested\n// The plan card doesn't scroll when there are 10+ tasks.\n// ### 2026-10-02T09:30:00Z — approved\n\nexport const REVIEW_HEADING = \"## Review\"\n\nexport type ReviewOutcome = \"approved\" | \"changes requested\"\n\nexport interface ReviewEntry {\n at: string\n outcome: ReviewOutcome\n note: string\n}\n\nconst ENTRY = /^###\\s+(\\S+)\\s+—\\s+(approved|changes requested)\\s*$/\n\n/** Lines inside ``` fences, so a quoted example is never taken for the real section. */\nfunction fenced(lines: string[]): boolean[] {\n let inFence = false\n return lines.map((l) => {\n if (/^\\s*```/.test(l)) { inFence = !inFence; return true }\n return inFence\n })\n}\n\nfunction sectionRange(lines: string[]): [number, number] | null {\n const code = fenced(lines)\n const start = lines.findIndex((l, i) => !code[i] && l.trim() === REVIEW_HEADING)\n if (start < 0) return null\n const next = lines.findIndex((l, i) => i > start && !code[i] && /^##\\s/.test(l))\n return [start, next < 0 ? lines.length : next]\n}\n\n/** Every review entry, oldest first. */\nexport function reviewHistory(raw: string): ReviewEntry[] {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return []\n const entries: ReviewEntry[] = []\n for (const line of lines.slice(range[0] + 1, range[1])) {\n const m = line.match(ENTRY)\n if (m) entries.push({ at: m[1], outcome: m[2] as ReviewOutcome, note: \"\" })\n else if (entries.length) {\n const last = entries[entries.length - 1]\n last.note = last.note ? `${last.note}\\n${line}` : line\n }\n }\n return entries.map((e) => ({ ...e, note: e.note.trim() }))\n}\n\nexport function latestReview(raw: string): ReviewEntry | null {\n const all = reviewHistory(raw)\n return all[all.length - 1] ?? null\n}\n\n/**\n * Add an entry to the `## Review` section (created at the end of the file if missing; an existing one keeps its\n * place and grows). A note is required for \"changes requested\".\n */\nexport function appendReviewEntry(raw: string, outcome: ReviewOutcome, note: string, at: string): string {\n const text = note.trim()\n if (outcome === \"changes requested\" && !text) throw new Error(\"A note is required to send a task back\")\n // \"## \" at the start of a note line would end the section early\n const body = text.split(\"\\n\").map((l) => (/^#{1,3}\\s/.test(l) ? `\\\\${l}` : l)).join(\"\\n\")\n const entry = [`### ${at} — ${outcome}`, ...(body ? [body] : [])]\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return `${raw.replace(/\\s+$/, \"\")}\\n\\n${REVIEW_HEADING}\\n${entry.join(\"\\n\")}\\n`\n // Insert after the section's last non-empty line, before the blank lines that separate it from what follows\n let end = range[1]\n while (end > range[0] + 1 && !lines[end - 1].trim()) end--\n const out = [...lines.slice(0, end), ...entry, ...lines.slice(end)]\n const joined = out.join(\"\\n\")\n return range[1] === lines.length ? `${joined.replace(/\\s+$/, \"\")}\\n` : joined\n}\n","// Manual test report on a task (R043): a `## Manual tests` checklist section at the end of the task file.\n// Pure (no fs): core.ts reads/writes the file; `node src/lib/manual-tests.check.mts` runs the self-check.\n//\n// ## Manual tests\n// _2026-10-01 — ai_\n// ### Steps\n// - [ ] Open /roadmap, click \"Break down\" on R043 → a chat opens titled with the epic\n// ### Regression risk\n// - [ ] Dragging a card between columns still works\n\nexport const MANUAL_TESTS_HEADING = \"## Manual tests\"\n\nexport type ManualTestGroup = \"steps\" | \"regression\"\n\nexport interface ManualTestItem {\n text: string\n checked: boolean\n group: ManualTestGroup\n /** Position among all checklist items in the section (T061 toggles by this) */\n index: number\n}\n\nexport interface ManualTests {\n items: ManualTestItem[]\n total: number\n done: number\n /** From the `_YYYY-MM-DD — actor_` line; null if missing */\n date: string | null\n}\n\nconst ITEM = /^\\s*[-*]\\s+\\[( |x|X)\\]\\s+(.*)$/\nconst BULLET = /^\\s*[-*]\\s+(.*)$/\n\n/** Lines inside ``` fences, so an example section quoted in a task's spec is never taken for the real one. */\nfunction fenced(lines: string[]): boolean[] {\n let inFence = false\n return lines.map((l) => {\n if (/^\\s*```/.test(l)) { inFence = !inFence; return true }\n return inFence\n })\n}\n\n/** [start, end) line range of the section: its heading up to the next `## ` heading or the end of the file. */\nfunction sectionRange(lines: string[]): [number, number] | null {\n const code = fenced(lines)\n const start = lines.findIndex((l, i) => !code[i] && l.trim() === MANUAL_TESTS_HEADING)\n if (start < 0) return null\n const next = lines.findIndex((l, i) => i > start && !code[i] && /^##\\s/.test(l))\n return [start, next < 0 ? lines.length : next]\n}\n\n/**\n * The report body as a checklist: `### ` group headings kept, every other non-empty line becomes `- [ ] …`\n * (plain text and plain bullets alike). Items before any heading go under `### Steps`.\n */\nexport function normalizeReport(report: string): string {\n const out: string[] = []\n for (const raw of report.replace(/\\r\\n/g, \"\\n\").split(\"\\n\")) {\n const line = raw.trimEnd()\n if (!line.trim()) continue\n if (/^\\s*###\\s/.test(line)) { out.push(line.trim()); continue }\n if (/^\\s*##?\\s/.test(line)) continue // a stray \"## Manual tests\" or H1 from the agent\n const item = line.match(ITEM)\n const text = item ? item[2] : (line.match(BULLET)?.[1] ?? line.trim())\n if (!out.some((l) => l.startsWith(\"### \"))) out.push(\"### Steps\")\n out.push(`- [${item && item[1] !== \" \" ? \"x\" : \" \"}] ${text.trim()}`)\n }\n return out.join(\"\\n\")\n}\n\n/** Write the report as the task's `## Manual tests` section, replacing an older one (old ticks no longer apply). */\nexport function setManualTests(raw: string, report: string, actor: \"ai\" | \"human\", date: string): string {\n const body = normalizeReport(report)\n if (!body) throw new Error(\"manualTests is empty: give at least one checklist item\")\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n const rest = range ? [...lines.slice(0, range[0]), ...lines.slice(range[1])] : lines\n const kept = rest.join(\"\\n\").replace(/\\s+$/, \"\")\n return `${kept}\\n\\n${MANUAL_TESTS_HEADING}\\n_${date} — ${actor}_\\n${body}\\n`\n}\n\n/** The checklist in a task file, or null when it has no `## Manual tests` section (or the section has no items). */\nexport function parseManualTests(raw: string): ManualTests | null {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) return null\n const items: ManualTestItem[] = []\n let group: ManualTestGroup = \"steps\"\n let date: string | null = null\n for (const line of lines.slice(range[0] + 1, range[1])) {\n const stamp = line.match(/^_(\\d{4}-\\d{2}-\\d{2})\\b/)\n if (stamp && !date && !items.length) { date = stamp[1]; continue }\n if (/^\\s*###\\s/.test(line)) { group = /^\\s*###\\s+regression/i.test(line) ? \"regression\" : \"steps\"; continue }\n const m = line.match(ITEM)\n if (m) items.push({ text: m[2].trim(), checked: m[1] !== \" \", group, index: items.length })\n }\n if (!items.length) return null\n return { items, total: items.length, done: items.filter((i) => i.checked).length, date }\n}\n\n/** Tick or untick the `index`th checklist item of the `## Manual tests` section (file order), nothing else. */\nexport function toggleManualTest(raw: string, index: number, checked: boolean): string {\n const lines = raw.split(\"\\n\")\n const range = sectionRange(lines)\n if (!range) throw new RangeError(\"This task has no manual tests\")\n let n = 0\n for (let i = range[0] + 1; i < range[1]; i++) {\n if (!ITEM.test(lines[i])) continue\n if (n++ === index) {\n lines[i] = lines[i].replace(/\\[( |x|X)\\]/, checked ? \"[x]\" : \"[ ]\")\n return lines.join(\"\\n\")\n }\n }\n throw new RangeError(`No manual test item ${index} (the task has ${n})`)\n}\n","// Pure next-task picker for an epic's work queue (no fs). Self-check: node src/lib/work-queue.check.mts\nimport type { RoadmapItem, Task } from './core'\n\nexport type QueueTask = Pick<Task, 'id' | 'status' | 'dependsOn'>\nexport type QueueResult =\n | { kind: 'ready'; taskId: string }\n | { kind: 'finished' }\n // needsHuman: no remaining task can move without someone unblocking or creating a task\n | { kind: 'waiting'; waiting: { taskId: string; reason: string }[]; needsHuman: boolean }\n\n/** Every `T\\d+` in a free-text \"Depends on\" line: \"T008, T009 (x)\" → [\"T008\",\"T009\"]. */\nexport function depIds(dependsOn: string): string[] {\n return [...new Set((dependsOn.match(/\\bT\\d+\\b/gi) ?? []).map(d => d.toUpperCase()))]\n}\n\nconst settled = (s: Task['status']) => s === 'done' || s === 'cancelled'\n\nexport function pickNextTask(epic: RoadmapItem, tasks: QueueTask[]): QueueResult {\n const byId = new Map(tasks.map(t => [t.id, t]))\n const linked = epic.tasks.map(id => byId.get(id)).filter((t): t is QueueTask => !!t)\n const unmet = (t: QueueTask) => depIds(t.dependsOn).filter(d => {\n const dep = byId.get(d)\n return !dep || !settled(dep.status)\n })\n\n for (const t of linked) {\n if (t.status === 'todo' && !unmet(t).length) return { kind: 'ready', taskId: t.id }\n }\n if (linked.every(t => settled(t.status))) return { kind: 'finished' }\n\n // Can this task still move without a human? in-progress/settled yes; blocked/paused/review/missing no\n // (review waits for someone to approve or send it back, R043);\n // todo only if it's in this epic (the queue never hands out outside tasks) and every unmet dep can.\n // Cycles count as stuck.\n const inEpic = new Set(epic.tasks)\n const memo = new Map<string, boolean>()\n const canMove = (id: string): boolean => {\n if (memo.has(id)) return memo.get(id) ?? false\n memo.set(id, false)\n const t = byId.get(id)\n const ok = !!t && t.status !== 'blocked' && t.status !== 'paused' && t.status !== 'review' && (t.status !== 'todo' || (inEpic.has(id) && unmet(t).every(canMove)))\n memo.set(id, ok)\n return ok\n }\n\n const waiting: { taskId: string; reason: string }[] = []\n for (const id of epic.tasks) {\n const t = byId.get(id)\n if (!t) waiting.push({ taskId: id, reason: `${id} has no task file` })\n else if (t.status === 'in-progress') waiting.push({ taskId: id, reason: `${id} is in progress (claimed)` })\n else if (t.status === 'blocked') waiting.push({ taskId: id, reason: `${id} is blocked` })\n else if (t.status === 'paused') waiting.push({ taskId: id, reason: `${id} is paused — needs a human to resume it` })\n else if (t.status === 'review') waiting.push({ taskId: id, reason: `${id} in review — needs a human` })\n else if (t.status === 'todo') {\n const deps = unmet(t).map(d => `${d} (${byId.get(d)?.status ?? 'missing'})`)\n waiting.push({ taskId: id, reason: `${id} waits on ${deps.join(', ')}` })\n }\n }\n return { kind: 'waiting', waiting, needsHuman: waiting.every(w => !canMove(w.taskId)) }\n}\n","/**\n * src/lib/roadmap-import.ts\n * Pure (no fs): draft a roadmap for a project that has none, from ROADMAP.md, from its tasks, or a starter.\n * core.ts `generateRoadmap()` assigns ids and writes the files.\n */\n\nimport type { RoadmapStatus, Task } from './core'\n\nexport interface RoadmapDraft {\n key: string\n title: string\n parent: string | null // key of the parent draft; null = horizon\n status: RoadmapStatus\n tasks: string[]\n body: string\n}\n\nexport type RoadmapSource = 'roadmap-md' | 'tasks' | 'starter'\n\nconst SHIPPED = /\\b(shipped|done|released|complete[d]?)\\b/i\nconst MAX_TITLE = 80\n\nfunction plain(s: string): string {\n return s\n .replace(/\\[([^\\]]+)\\]\\([^)]*\\)/g, '$1') // links\n .replace(/[*_`]/g, '')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n\nfunction clip(s: string): string {\n return s.length > MAX_TITLE ? `${s.slice(0, MAX_TITLE - 1).trimEnd()}…` : s\n}\n\nfunction rollUp(statuses: RoadmapStatus[]): RoadmapStatus {\n if (statuses.length && statuses.every(s => s === 'done')) return 'done'\n if (statuses.some(s => s !== 'planned')) return 'in-progress'\n return 'planned'\n}\n\n/** `## Section` with top-level bullets → horizon + features. Sections without bullets are skipped. */\nexport function roadmapFromMarkdown(md: string): RoadmapDraft[] {\n const out: RoadmapDraft[] = []\n let horizon: RoadmapDraft | null = null\n let intro: string[] = []\n let feature: RoadmapDraft | null = null\n let kids = 0\n\n const closeHorizon = () => {\n if (horizon && kids > 0) {\n horizon.body = intro.join(' ').trim()\n const own = out.filter(d => d.parent === horizon?.key).map(d => d.status)\n if (horizon.status !== 'done') horizon.status = rollUp(own)\n } else if (horizon) {\n // no bullets: drop the heading\n out.splice(out.indexOf(horizon), 1)\n }\n horizon = null\n feature = null\n intro = []\n kids = 0\n }\n\n for (const line of md.split('\\n')) {\n const h2 = line.match(/^##\\s+(.+?)\\s*#*\\s*$/)\n if (h2) {\n closeHorizon()\n const title = clip(plain(h2[1]))\n horizon = { key: `h${out.length}`, title, parent: null, status: SHIPPED.test(title) ? 'done' : 'planned', tasks: [], body: '' }\n out.push(horizon)\n continue\n }\n if (!horizon) continue\n if (/^#/.test(line)) { closeHorizon(); continue } // H1 / H3+ ends the section\n\n const bullet = line.match(/^[-*]\\s+(?:\\[([ xX])\\]\\s+)?(.*)$/)\n if (bullet) {\n const text = bullet[2]\n const named = text.match(/^\\*\\*(.+?)\\*\\*\\s*(?:[—–:-]\\s*)?(.*)$/)\n const title = clip(plain(named ? named[1] : text))\n if (!title) continue\n const status: RoadmapStatus = bullet[1]\n ? (bullet[1].toLowerCase() === 'x' ? 'done' : 'planned')\n : horizon.status === 'done' ? 'done' : 'planned'\n feature = { key: `f${out.length}`, title, parent: horizon.key, status, tasks: [], body: named ? named[2].trim() : '' }\n out.push(feature)\n kids++\n continue\n }\n\n const cont = line.match(/^\\s+(\\S.*)$/)\n if (feature && cont) {\n feature.body = [feature.body, cont[1].replace(/^[-*]\\s+/, '- ')].filter(Boolean).join('\\n')\n } else if (!feature && line.trim() && !/^-{3,}$/.test(line.trim())) {\n intro.push(line.trim())\n }\n }\n closeHorizon()\n return out\n}\n\nconst phaseRank = (p: string) => {\n const n = parseFloat(p)\n return Number.isFinite(n) ? n : Infinity\n}\n\n/** One horizon per task phase, one feature per (non-cancelled) task. */\nexport function roadmapFromTasks(tasks: Pick<Task, 'id' | 'title' | 'status' | 'phase'>[]): RoadmapDraft[] {\n const groups = new Map<string, typeof tasks>()\n for (const t of tasks) {\n if (t.status === 'cancelled') continue\n const phase = plain(t.phase || '').replace(/^—$/, '') || 'Unphased'\n groups.set(phase, [...(groups.get(phase) ?? []), t])\n }\n const phases = [...groups.keys()].sort((a, b) => phaseRank(a) - phaseRank(b) || a.localeCompare(b))\n\n const out: RoadmapDraft[] = []\n for (const phase of phases) {\n const key = `h${out.length}`\n const features = (groups.get(phase) ?? []).map((t): RoadmapDraft => ({\n key: `f${t.id}`,\n title: clip(t.title),\n parent: key,\n status: t.status === 'done' ? 'done' : t.status === 'in-progress' ? 'in-progress' : 'planned',\n tasks: [t.id],\n body: '',\n }))\n out.push({ key, title: clip(phase), parent: null, status: rollUp(features.map(f => f.status)), tasks: [], body: '' }, ...features)\n }\n return out\n}\n\nexport function starterRoadmap(): RoadmapDraft[] {\n const h = (key: string, title: string, status: RoadmapStatus, body: string): RoadmapDraft =>\n ({ key, title, parent: null, status, tasks: [], body })\n return [\n h('shipped', 'Shipped', 'done', 'What is already live.'),\n h('now', 'Now', 'planned', 'What we are building right now.'),\n h('next', 'Next', 'planned', 'Planned once the current work ships.'),\n h('later', 'Later', 'planned', 'Ideas — not committed.'),\n ]\n}\n","// Pure plan model for \"plan from the chat\": the agent proposes, the user reviews, the server applies.\n// No fs here; core.applyPlan() does the writing. Self-check: node src/lib/plan.check.mts\nimport type { RoadmapItem, RoadmapStatus } from './core'\n\nexport interface PlanTask {\n key: string // stable within the plan, e.g. \"t1\"; becomes a T id on apply\n title: string\n size?: string // \"S (~1 hr)\" | \"M (2–3 hrs)\" | \"L (half day)\"\n dependsOn?: string[] // keys in this plan, or existing task ids (\"T030\")\n due?: string // YYYY-MM-DD\n body: string // full markdown below the meta block: Goal, Context, Scope, Files, …\n}\nexport interface PlanHorizon { key: string; title: string; body?: string }\nexport interface PlanEpic { key: string; title: string; parent: string; status?: RoadmapStatus; body: string } // parent: existing horizon id or a horizon key\nexport interface PlanNewEpic { title: string; parent: string; body: string } // parent: existing horizon id\n/** breakdown: exactly one of `epic` (existing) or `newEpic`, or neither (loose tasks, no Phase). */\nexport type Plan =\n | { kind: 'breakdown'; epic?: string; newEpic?: PlanNewEpic; tasks: PlanTask[] }\n | { kind: 'roadmap'; horizons: PlanHorizon[]; epics: PlanEpic[] }\n\nexport interface PlanContext { roadmap: RoadmapItem[]; taskIds: string[] }\n\n/** A real calendar date \"YYYY-MM-DD\" (rejects 2026-02-30), else null. Same rule as core's parseDue. */\nfunction isDate(raw: string): boolean {\n const m = raw.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/)\n if (!m) return false\n return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3])).toISOString().slice(0, 10) === raw\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => !!v && typeof v === 'object' && !Array.isArray(v)\nconst str = (v: unknown) => (typeof v === 'string' ? v.trim() : '')\n\n/** Where a breakdown's tasks go, for one-line summaries: \"R002\", `new epic \"X\"`, or \"no epic\". */\nexport function planTarget(plan: Extract<Plan, { kind: 'breakdown' }>): string {\n if (str(plan.epic)) return str(plan.epic).toUpperCase()\n return plan.newEpic ? `new epic \"${str(plan.newEpic.title)}\"` : 'no epic'\n}\n\n/** An existing roadmap item that can parent an epic (a horizon), else the reason it can't. */\nfunction resolveHorizon(parent: string, roadmap: RoadmapItem[], missing = 'is not an existing roadmap item'): { id: string } | { error: string } {\n const p = roadmap.find(r => r.id === parent.toUpperCase())\n if (!p) return { error: `parent \"${parent}\" ${missing}` }\n if (p.parent !== null) return { error: `parent ${p.id} is an epic, not a horizon (max depth is 2)` }\n return { id: p.id }\n}\n\n/** Id of an existing item with this title under `parent` ('' = horizon level), case-insensitive. */\nconst titleTaken = (roadmap: RoadmapItem[], parent: string, title: string) =>\n roadmap.find(i => (i.parent ?? '') === parent && i.title.trim().toLowerCase() === title.toLowerCase())?.id\n\n/**\n * Just enough shape for the chat UI to render a proposal before the server has validated it\n * (the tool_use streams in before its tool_result). Returns null for anything a card can't draw.\n */\nexport function asRenderablePlan(p: unknown): Plan | null {\n if (!isObj(p)) return null\n const items = (v: unknown, need: string[]) => Array.isArray(v) && v.every(x =>\n isObj(x) && need.every(k => typeof x[k] === 'string') && (x.dependsOn === undefined || Array.isArray(x.dependsOn)))\n if (p.kind === 'breakdown') {\n const target = p.epic === undefined || typeof p.epic === 'string'\n const newEpic = p.newEpic === undefined || (isObj(p.newEpic) && typeof p.newEpic.title === 'string' && typeof p.newEpic.parent === 'string')\n return target && newEpic && items(p.tasks, ['key', 'title']) && (p.tasks as unknown[]).length > 0\n ? (p as unknown as Plan) : null\n }\n if (p.kind === 'roadmap') {\n const horizons = p.horizons ?? [], epics = p.epics ?? []\n return items(horizons, ['key', 'title']) && items(epics, ['key', 'title', 'parent'])\n ? ({ kind: 'roadmap', horizons, epics } as Plan) : null\n }\n return null\n}\n\n/** Every problem with the plan against the current files; [] = valid. */\nexport function validatePlan(plan: unknown, ctx: PlanContext): string[] {\n if (!isObj(plan)) return ['plan must be an object']\n if (plan.kind === 'roadmap') return validateRoadmapPlan(plan, ctx)\n if (plan.kind !== 'breakdown') return [`plan.kind must be \"breakdown\" or \"roadmap\" (got ${JSON.stringify(plan.kind)})`]\n\n const errors: string[] = []\n const epicId = str(plan.epic).toUpperCase()\n if (plan.epic !== undefined && typeof plan.epic !== 'string') errors.push('epic must be a string (an epic id)')\n else if (epicId && plan.newEpic !== undefined) errors.push('pass either epic (an existing epic) or newEpic, not both')\n else if (epicId) {\n const epic = ctx.roadmap.find(i => i.id === epicId)\n if (!epic) errors.push(`Epic ${JSON.stringify(plan.epic)} not found`)\n else if (!epic.parent) errors.push(`${epic.id} is a horizon, not an epic; pass an epic id`)\n } else if (plan.newEpic !== undefined) {\n const e = plan.newEpic\n if (!isObj(e)) errors.push('newEpic must be an object { title, parent, body }')\n else {\n const title = str(e.title), parent = str(e.parent)\n if (!title) errors.push('newEpic: title is required')\n if (typeof e.body !== 'string') errors.push('newEpic: body must be a markdown string')\n if (!parent) errors.push('newEpic: parent is required (an existing horizon id)')\n else {\n const h = resolveHorizon(parent, ctx.roadmap)\n if ('error' in h) errors.push(`newEpic: ${h.error}`)\n else if (title) {\n const other = titleTaken(ctx.roadmap, h.id, title)\n if (other) errors.push(`newEpic: \"${title}\" already exists under ${h.id} (${other})`)\n }\n }\n }\n }\n\n if (!Array.isArray(plan.tasks) || plan.tasks.length === 0) {\n errors.push('tasks must be a non-empty array')\n return errors\n }\n const tasks = plan.tasks as unknown[]\n const existing = new Set(ctx.taskIds.map(t => t.toUpperCase()))\n\n const index = new Map<string, number>()\n tasks.forEach((t, i) => {\n const key = isObj(t) ? str(t.key) : ''\n if (!key) errors.push(`task #${i + 1}: key is required`)\n else if (index.has(key)) errors.push(`duplicate key \"${key}\"`)\n else index.set(key, i)\n })\n\n const deps = new Map<string, string[]>() // key → plan keys it depends on\n tasks.forEach((t, i) => {\n if (!isObj(t)) { errors.push(`task #${i + 1} must be an object`); return }\n const label = str(t.key) || `task #${i + 1}`\n if (!str(t.title)) errors.push(`${label}: title is required`)\n if (typeof t.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n if (t.size !== undefined && typeof t.size !== 'string') errors.push(`${label}: size must be a string`)\n if (t.due !== undefined && !(typeof t.due === 'string' && isDate(t.due))) {\n errors.push(`${label}: due must be a date YYYY-MM-DD (got ${JSON.stringify(t.due)})`)\n }\n if (t.dependsOn === undefined) return\n if (!Array.isArray(t.dependsOn)) { errors.push(`${label}: dependsOn must be an array`); return }\n const own: string[] = []\n for (const d of t.dependsOn) {\n const dep = str(d)\n if (index.has(dep)) own.push(dep)\n else if (!existing.has(dep.toUpperCase())) {\n errors.push(`${label}: dependsOn \"${String(d)}\" is neither a key in this plan nor an existing task`)\n }\n }\n if (str(t.key)) deps.set(str(t.key), own)\n })\n\n // Cycles (DFS, report each once), then forward references: apply creates in order,\n // so a dependency must come earlier in the list to already have its T id.\n const state = new Map<string, 'open' | 'done'>()\n const cyclic = new Set<string>()\n const visit = (k: string, stack: string[]) => {\n if (state.get(k) === 'done') return\n if (state.get(k) === 'open') {\n const cycle = [...stack.slice(stack.indexOf(k)), k]\n if (!cycle.some(c => cyclic.has(c))) errors.push(`dependency cycle: ${cycle.join(' → ')}`)\n cycle.forEach(c => cyclic.add(c))\n return\n }\n state.set(k, 'open')\n for (const d of deps.get(k) ?? []) visit(d, [...stack, k])\n state.set(k, 'done')\n }\n for (const k of deps.keys()) visit(k, [])\n for (const [k, ds] of deps) {\n if (cyclic.has(k)) continue\n for (const d of ds) {\n if ((index.get(d) ?? 0) > (index.get(k) ?? 0)) errors.push(`${k} depends on ${d}, which comes later; list ${d} first`)\n }\n }\n return errors\n}\n\nconst STATUSES = ['planned', 'in-progress', 'done']\n\nfunction validateRoadmapPlan(plan: Record<string, unknown>, ctx: PlanContext): string[] {\n const errors: string[] = []\n const horizons = plan.horizons ?? []\n const epics = plan.epics ?? []\n if (!Array.isArray(horizons)) errors.push('horizons must be an array')\n if (!Array.isArray(epics)) errors.push('epics must be an array')\n if (errors.length > 0) return errors\n const hs = horizons as unknown[]\n const es = epics as unknown[]\n if (hs.length + es.length === 0) return ['a roadmap plan needs at least one horizon or epic']\n\n const keys = new Set<string>()\n const horizonKeys = new Set<string>()\n const checkKey = (v: unknown, label: string, isHorizon: boolean) => {\n const key = isObj(v) ? str(v.key) : ''\n if (!key) errors.push(`${label}: key is required`)\n else if (keys.has(key)) errors.push(`duplicate key \"${key}\"`)\n else { keys.add(key); if (isHorizon) horizonKeys.add(key) }\n }\n hs.forEach((h, i) => checkKey(h, `horizon #${i + 1}`, true))\n es.forEach((e, i) => checkKey(e, `epic #${i + 1}`, false))\n\n // Titles are unique per level (spine, or one horizon), against existing items and within the plan.\n const seen = new Map<string, string>() // \"parent\\0title\" → who in this plan has it\n const claimTitle = (parent: string, title: string, label: string) => {\n const k = `${parent}\\0${title.toLowerCase()}`\n const other = titleTaken(ctx.roadmap, parent, title) ?? seen.get(k)\n if (other) errors.push(`${label}: \"${title}\" already exists ${parent ? `under ${parent}` : 'as a horizon'} (${other})`)\n else seen.set(k, label)\n }\n\n hs.forEach((h, i) => {\n if (!isObj(h)) { errors.push(`horizon #${i + 1} must be an object`); return }\n const label = str(h.key) || `horizon #${i + 1}`\n const title = str(h.title)\n if (!title) errors.push(`${label}: title is required`)\n else claimTitle('', title, label)\n if (h.body !== undefined && typeof h.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n })\n\n es.forEach((e, i) => {\n if (!isObj(e)) { errors.push(`epic #${i + 1} must be an object`); return }\n const label = str(e.key) || `epic #${i + 1}`\n const title = str(e.title)\n if (!title) errors.push(`${label}: title is required`)\n if (typeof e.body !== 'string') errors.push(`${label}: body must be a markdown string`)\n if (e.status !== undefined && !STATUSES.includes(e.status as string)) {\n errors.push(`${label}: status must be one of ${STATUSES.join(', ')} (got ${JSON.stringify(e.status)})`)\n }\n const parent = str(e.parent)\n let parentId = ''\n if (!parent) errors.push(`${label}: parent is required (an existing horizon id or a horizon key in this plan)`)\n else if (horizonKeys.has(parent)) parentId = parent\n else if (keys.has(parent)) errors.push(`${label}: parent \"${parent}\" is an epic in this plan; an epic's parent must be a horizon`)\n else {\n const h = resolveHorizon(parent, ctx.roadmap, 'is neither a horizon key in this plan nor an existing roadmap item')\n if ('id' in h) parentId = h.id\n else errors.push(`${label}: ${h.error}`)\n }\n if (title && parentId) claimTitle(parentId, title, label)\n })\n return errors\n}\n\n/** Keep only the selected items. A kept item depending on an unchecked one is an error. */\nexport function selectPlan(plan: Plan, selected: string[]): { plan: Plan; errors: string[] } {\n if (plan.kind === 'roadmap') return selectRoadmapPlan(plan, selected)\n const errors: string[] = []\n // Trim like validatePlan/applyPlan do, or \" t1 \" vs \"t1\" slips past the unchecked-dependency check\n const keys = new Set(plan.tasks.map(t => t.key.trim()))\n const sel = new Set(selected.map(k => k.trim()))\n for (const k of sel) if (!keys.has(k)) errors.push(`unknown key \"${k}\"`)\n const tasks = plan.tasks.filter(t => sel.has(t.key.trim()))\n if (tasks.length === 0) errors.push('nothing selected')\n for (const t of tasks) {\n for (const d of (t.dependsOn ?? []).map(d => d.trim())) {\n if (keys.has(d) && !sel.has(d)) errors.push(`${t.key.trim()} depends on ${d}, which you unchecked`)\n }\n }\n return { plan: { ...plan, tasks }, errors }\n}\n\nfunction selectRoadmapPlan(plan: Extract<Plan, { kind: 'roadmap' }>, selected: string[]): { plan: Plan; errors: string[] } {\n const errors: string[] = []\n const horizons = plan.horizons ?? []\n const epics = plan.epics ?? []\n const hKeys = new Set(horizons.map(h => h.key))\n const keys = new Set([...hKeys, ...epics.map(e => e.key)])\n const sel = new Set(selected)\n for (const k of sel) if (!keys.has(k)) errors.push(`unknown key \"${k}\"`)\n const keptH = horizons.filter(h => sel.has(h.key))\n const keptE = epics.filter(e => sel.has(e.key))\n if (keptH.length + keptE.length === 0) errors.push('nothing selected')\n for (const e of keptE) {\n const p = e.parent.trim()\n if (hKeys.has(p) && !sel.has(p)) errors.push(`${e.key} is under ${p}, which you unchecked; check ${p} or uncheck ${e.key}`)\n }\n return { plan: { ...plan, horizons: keptH, epics: keptE }, errors }\n}\n","/**\n * src/lib/roadmap-health.ts\n * Pure (no fs): roadmap progress + drift, shared by the Roadmap page and the MCP handler.\n * A feature's expected status comes from its linked tasks; a horizon's from its features.\n */\n\nimport type { RoadmapItem, RoadmapStatus, Task } from './core'\n\n/** What health needs from a task: status for progress, due for at-risk. */\nexport type TaskInfo = Pick<Task, 'status' | 'due'>\n\nexport interface RoadmapProgress { done: number; total: number }\n\nexport interface RoadmapDrift {\n id: string\n kind: 'status-mismatch' | 'missing-task' | 'overdue' | 'at-risk'\n message: string\n suggestedStatus?: RoadmapStatus\n}\n\nexport interface RoadmapHealth {\n progress: Record<string, RoadmapProgress>\n drift: RoadmapDrift[]\n}\n\nexport type DueState = 'overdue' | 'soon' | 'ok' | 'done'\n\nconst SOON_DAYS = 7\n\n/** Local calendar date \"YYYY-MM-DD\" (due dates are calendar dates, not instants). */\nexport function localToday(now = new Date()): string {\n const p = (n: number) => String(n).padStart(2, '0')\n return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())}`\n}\n\nfunction daysBetween(from: string, to: string): number {\n const utc = (d: string) => Date.UTC(+d.slice(0, 4), +d.slice(5, 7) - 1, +d.slice(8, 10))\n return Math.round((utc(to) - utc(from)) / 86_400_000)\n}\n\nexport function dueState(due: string | null, status: RoadmapStatus, today: string): DueState | null {\n if (!due) return null\n if (status === 'done') return 'done'\n if (due < today) return 'overdue'\n return daysBetween(today, due) <= SOON_DAYS ? 'soon' : 'ok'\n}\n\ntype Started = 'done' | 'in-progress' | 'other'\n\nfunction expectedStatus(states: Started[]): RoadmapStatus {\n if (states.every(s => s === 'done')) return 'done'\n if (states.some(s => s !== 'other')) return 'in-progress'\n return 'planned'\n}\n\nexport interface TaskDueSummary { overdue: number; next: string | null }\n\n/** Open tasks' deadlines for a map node: how many are overdue, and the nearest upcoming due. */\nexport function taskDueSummary(taskIds: string[], tasks: Record<string, TaskInfo>, today: string): TaskDueSummary | null {\n const dues = taskIds\n .map(id => tasks[id])\n .filter(t => t && t.due && t.status !== 'done' && t.status !== 'cancelled')\n .map(t => t.due as string)\n if (!dues.length) return null\n const upcoming = dues.filter(d => d >= today).sort()\n return { overdue: dues.length - upcoming.length, next: upcoming[0] ?? null }\n}\n\n/** Why an unfinished epic may miss its date: overdue or blocked tasks, or due soon with nothing started. */\nfunction atRiskReasons(item: RoadmapItem, linked: string[], tasks: Record<string, TaskInfo>, today: string): string[] {\n const reasons: string[] = []\n for (const id of linked) {\n const t = tasks[id]\n if (t.status !== 'done' && t.due && t.due < today) reasons.push(`${id} overdue since ${t.due}`)\n if (t.status === 'blocked') reasons.push(`${id} blocked`)\n }\n const started = linked.some(id => ['done', 'in-progress', 'review'].includes(tasks[id].status))\n if (item.due && dueState(item.due, item.status, today) === 'soon' && !started) {\n reasons.push(`due ${item.due}, nothing started`)\n }\n return reasons\n}\n\nexport function roadmapHealth(\n items: RoadmapItem[], tasks: Record<string, TaskInfo>, today: string,\n): RoadmapHealth {\n const progress: Record<string, RoadmapProgress> = {}\n const drift: RoadmapDrift[] = []\n\n for (const item of items) {\n if (item.due && dueState(item.due, item.status, today) === 'overdue') {\n drift.push({ id: item.id, kind: 'overdue', message: `${item.id} \"${item.title}\" is overdue since ${item.due}` })\n }\n }\n const horizonIds = new Set(items.filter(i => i.parent === null).map(i => i.id))\n\n for (const item of items) {\n if (item.parent === null) continue\n const missing = item.tasks.filter(t => !(t in tasks))\n if (missing.length) {\n drift.push({ id: item.id, kind: 'missing-task', message: `${item.id} links unknown task ${missing.join(', ')}` })\n }\n // cancelled tasks don't count toward progress or expected status\n const linked = item.tasks.filter(t => t in tasks && tasks[t].status !== 'cancelled')\n // a paused epic is stopped on purpose: not at risk\n const risks = item.status === 'done' || item.status === 'paused' ? [] : atRiskReasons(item, linked, tasks, today)\n if (risks.length) {\n drift.push({ id: item.id, kind: 'at-risk', message: `${item.id} \"${item.title}\" at risk: ${risks.join('; ')}` })\n }\n if (!linked.length) continue\n const states: Started[] = linked.map(t =>\n tasks[t].status === 'done' ? 'done' : tasks[t].status === 'in-progress' || tasks[t].status === 'review' ? 'in-progress' : 'other')\n progress[item.id] = { done: states.filter(s => s === 'done').length, total: linked.length }\n const expected = expectedStatus(states)\n // paused stays paused until everything is done\n if (expected !== item.status && !(item.status === 'paused' && expected !== 'done')) {\n const open = linked.filter(t => tasks[t].status !== 'done')\n drift.push({\n id: item.id,\n kind: 'status-mismatch',\n message: expected === 'done'\n ? `${item.id} \"${item.title}\": all tasks done but status is ${item.status}`\n : `${item.id} \"${item.title}\" is ${item.status} but tasks ${open.join(', ')} are not done`,\n suggestedStatus: expected,\n })\n }\n }\n\n for (const h of items) {\n if (!horizonIds.has(h.id)) continue\n const kids = items.filter(i => i.parent === h.id)\n if (!kids.length) continue\n const states: Started[] = kids.map(k => k.status === 'done' ? 'done' : k.status === 'in-progress' ? 'in-progress' : 'other')\n // weight by tasks; an epic not broken down yet counts as one unit\n progress[h.id] = kids.reduce((sum, k) => {\n const p = progress[k.id] ?? { done: k.status === 'done' ? 1 : 0, total: 1 }\n return { done: sum.done + p.done, total: sum.total + p.total }\n }, { done: 0, total: 0 })\n const expected = expectedStatus(states)\n if (expected !== h.status && !(h.status === 'paused' && expected !== 'done')) {\n drift.push({\n id: h.id,\n kind: 'status-mismatch',\n message: `${h.id} \"${h.title}\" is ${h.status} but its features say ${expected}`,\n suggestedStatus: expected,\n })\n }\n }\n\n return { progress, drift }\n}\n","/**\n * src/lib/core.ts\n * All file-system operations. Used by API routes, MCP handler, and SSR.\n * Runs server-side only.\n */\n\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { glob } from 'glob'\nimport { execFile } from 'child_process'\nimport { promisify } from 'util'\nimport { applyEdits, type TextEdit } from './diff'\nimport { roadmapFromMarkdown, roadmapFromTasks, starterRoadmap, type RoadmapDraft, type RoadmapSource } from './roadmap-import'\nimport { pickNextTask, type QueueResult } from './work-queue'\nimport { selectPlan, validatePlan, type Plan } from './plan'\nimport { SESSION_GAP_MS } from './sessions'\nimport { parseManualTests, setManualTests, toggleManualTest } from './manual-tests'\nimport { appendReviewEntry, type ReviewOutcome } from './review'\nimport type { SavedView } from './board-views'\nimport { parseOwner } from './owner'\nimport { DEFAULT_SIZE_DAYS, datesOnMove, type SizeDays } from './auto-dates'\nimport { resolveStatus, statusDefs, statusLine, type StatusDef } from './statuses'\nimport { localToday } from './roadmap-health'\nimport { DEFAULT_SESSION_BUDGET, fitToBudget, formatRelated, indexHits, rankEntries, taskQuery, type RecallHit } from './recall'\nimport { buildGraph, fileNode, type GraphItem, type MemoryGraph } from './memory-graph'\nimport { entrySlug, formatEntry, nextEntryId, normalizeEntryId, parseEntry, validateEntryInput, type Entry, type EntryInput, type EntryType } from './entries'\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TaskStatus = 'todo' | 'in-progress' | 'review' | 'blocked' | 'paused' | 'done' | 'cancelled'\n\nexport interface Task {\n id: string\n title: string\n status: TaskStatus\n size: string\n phase: string\n dependsOn: string\n /** A project status (R055) this task is in; `status` then holds its category. Unset for built-ins. */\n customStatus?: string\n /** `**Owner:**` \"human\" | \"ai:<agent>\", null when unset (R055) */\n owner: string | null\n /** Optional `**Due:** YYYY-MM-DD` (local calendar date, compare as string). */\n due: string | null\n /** `**Started:**` / `**Done:**` dates, stamped on status moves (R055) */\n started: string | null\n finished: string | null\n /** The `## Manual tests` checklist (R043), counted; null when the task has none */\n manualTests: { total: number; done: number } | null\n file: string\n raw?: string\n}\n\nexport interface TaskBoard {\n todo: Task[]\n 'in-progress': Task[]\n /** Optional step (R043): waiting for a human to approve or send back. Nothing requires it. */\n review: Task[]\n blocked: Task[]\n /** Stopped on purpose (R055): not claimable, not a met dependency */\n paused: Task[]\n done: Task[]\n cancelled: Task[]\n}\n\nexport interface DocFile {\n path: string\n section: string\n name: string\n}\n\nexport interface DescriptionCache {\n [path: string]: {\n description: string\n source: 'extracted' | 'ai'\n updatedAt: string\n }\n}\n\nexport interface ExplorerFile {\n path: string\n name: string\n section: string\n description: string\n source: 'extracted' | 'ai'\n updatedAt: string\n mtime: string\n}\n\nexport interface SearchResult {\n file: string\n hits: { line: number; text: string }[]\n totalHits: number\n}\n\nexport interface ActivityEvent {\n id: string\n timestamp: string\n type: 'task_updated' | 'decision_logged' | 'memory_updated' | 'doc_read' | 'session_start' | 'doc_created' | 'doc_updated' | 'doc_deleted' | 'doc_renamed' | 'registry_rebuilt' | 'roadmap_updated'\n actor: 'ai' | 'human'\n title: string\n detail?: string\n taskId?: string\n taskStatus?: TaskStatus\n sessionId?: string\n}\n\nexport interface Project {\n id: string\n name: string\n root: string\n hasVibedoc: boolean\n}\n\n// ─── Constants ────────────────────────────────────────────────────────────────\n\n/** Loose status text (\"Ready\", \"🔨 In-progress\", \"on hold\") → built-in category. Custom ids need the project's defs (resolveStatus). */\nexport function normalizeStatus(raw: string): TaskStatus {\n return resolveStatus(raw).status\n}\n\n// ─── Project detection ────────────────────────────────────────────────────────\n\nexport async function findRoot(startDir = process.cwd()): Promise<string> {\n let dir = path.resolve(startDir)\n for (let i = 0; i < 12; i++) {\n for (const marker of ['CLAUDE.md', 'AGENTS.md', 'docs/architecture', '.vibedoc']) {\n try { await fs.access(path.join(dir, marker)); return dir } catch {}\n }\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n return path.resolve(startDir)\n}\n\nexport function getConfiguredRoot(): string {\n return process.env.VIBEDOC_ROOT || process.cwd()\n}\n\n// ─── Multi-project: scan parent directories ───────────────────────────────────\n\nexport async function discoverProjects(searchBase?: string): Promise<Project[]> {\n const base = searchBase || path.dirname(getConfiguredRoot())\n const projects: Project[] = []\n\n try {\n const entries = await fs.readdir(base, { withFileTypes: true })\n for (const entry of entries) {\n if (!entry.isDirectory()) continue\n const dir = path.join(base, entry.name)\n let hasVibedoc = false\n for (const marker of ['CLAUDE.md', 'AGENTS.md', 'docs/architecture', '.vibedoc']) {\n try { await fs.access(path.join(dir, marker)); hasVibedoc = true; break } catch {}\n }\n if (hasVibedoc) {\n projects.push({ id: entry.name, name: entry.name, root: dir, hasVibedoc: true })\n }\n }\n } catch {}\n\n // Always ensure configured root is first\n const root = getConfiguredRoot()\n const name = path.basename(root)\n const existingIdx = projects.findIndex(p => p.root === root)\n if (existingIdx > 0) {\n const [existing] = projects.splice(existingIdx, 1)\n projects.unshift(existing)\n } else if (existingIdx === -1) {\n projects.unshift({ id: name, name, root, hasVibedoc: true })\n }\n\n return projects\n}\n\n// ─── Docs ─────────────────────────────────────────────────────────────────────\n\nexport async function listDocs(root: string): Promise<DocFile[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n\n return files.sort().map(f => ({\n path: f,\n section: inferSection(f),\n name: path.basename(f, '.md'),\n }))\n}\n\nfunction inferSection(f: string): string {\n if (!f.includes('/')) return 'root'\n if (f.startsWith('memory/')) return 'memory'\n if (f.startsWith('plans/')) return 'plans'\n if (f.includes('01-overview')) return 'overview'\n if (f.includes('02-high-level') || f.includes('high-level-design')) return 'high-level-design'\n if (f.includes('03-services') || f.includes('/services/')) return 'services'\n if (f.includes('04-data') || f.includes('/data/')) return 'data'\n if (f.includes('05-infra') || f.includes('/infrastructure/')) return 'infrastructure'\n if (f.includes('06-security') || f.includes('/security/')) return 'security'\n if (f.includes('07-observ') || f.includes('/observability/')) return 'observability'\n if (f.includes('08-resil') || f.includes('/resilience/')) return 'resilience'\n if (f.includes('decisions/') || f.includes('ADR')) return 'decisions'\n return 'other'\n}\n\nexport async function readDoc(query: string, root: string): Promise<{ path: string; content: string }> {\n const candidates = [\n path.join(root, query),\n path.join(root, `${query}.md`),\n path.join(root, 'docs', query),\n path.join(root, 'docs', `${query}.md`),\n path.join(root, 'docs', 'architecture', query),\n path.join(root, 'docs', 'architecture', `${query}.md`),\n path.join(root, 'memory', query),\n path.join(root, 'memory', `${query}.md`),\n path.join(root, 'plans', query),\n path.join(root, 'plans', `${query}.md`),\n ]\n\n for (const c of candidates) {\n try {\n const content = await fs.readFile(c, 'utf8')\n return { path: path.relative(root, c), content }\n } catch {}\n }\n\n // Glob fallback\n for (const pattern of [`**/${query}.md`, `**/${query}*.md`, `**/*${query}*.md`]) {\n const matches = await glob(pattern, {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n nocase: true,\n })\n if (matches.length > 0) {\n const content = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return { path: matches[0], content }\n }\n }\n\n throw new Error(`Doc not found: \"${query}\"`)\n}\n\nexport async function writeDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, content, 'utf8')\n}\n\n// Reads the doc at an exact path ('' if missing) and applies old_string→new_string edits.\n// dryRun validates without writing (used to check a proposal before the user sees it).\nexport async function editDoc(\n docPath: string,\n edits: TextEdit[],\n root: string,\n dryRun = false,\n): Promise<{ before: string; content: string }> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep)) throw new Error('Path outside root')\n const before = await fs.readFile(fullPath, 'utf8').catch((e: NodeJS.ErrnoException) => {\n if (e.code === 'ENOENT') return ''\n throw e\n })\n const result = applyEdits(before, edits)\n if ('error' in result) throw new Error(result.error)\n if (!dryRun) {\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, result.content, 'utf8')\n }\n return { before, content: result.content }\n}\n\nexport async function getContext(paths: string[], root: string): Promise<string> {\n const parts: string[] = []\n for (const p of paths) {\n try {\n const { content } = await readDoc(p, root)\n parts.push(`--- FILE: ${p} ---\\n\\n${content.trim()}`)\n } catch {\n // skip missing or unreadable files\n }\n }\n return parts.join('\\n\\n---\\n\\n')\n}\n\nexport async function createDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n try {\n await fs.access(fullPath)\n const err = new Error(`File already exists: ${docPath}`) as NodeJS.ErrnoException\n err.code = 'EEXIST'\n throw err\n } catch (e) {\n const nodeErr = e as NodeJS.ErrnoException\n if (nodeErr.code !== 'ENOENT') throw e\n }\n await fs.mkdir(path.dirname(fullPath), { recursive: true })\n await fs.writeFile(fullPath, content, 'utf8')\n await appendActivity(root, { type: 'doc_created', actor: 'human', title: `Created: ${docPath}`, detail: docPath })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n}\n\nexport async function searchDocs(query: string, root: string): Promise<SearchResult[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n const qLower = query.toLowerCase()\n const results: SearchResult[] = []\n\n for (const f of files) {\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n const lines = content.split('\\n')\n const hits = lines\n .map((line, i) => ({ line: i + 1, text: line.trim().slice(0, 120) }))\n .filter(h => h.text.toLowerCase().includes(qLower))\n if (hits.length > 0) results.push({ file: f, hits: hits.slice(0, 4), totalHits: hits.length })\n } catch {}\n }\n\n return results.sort((a, b) => b.totalHits - a.totalHits).slice(0, 20)\n}\n\n// ─── Tasks ────────────────────────────────────────────────────────────────────\n\nconst warnedStatuses = new Set<string>()\n\nfunction parseTaskFile(filePath: string, content: string, defs: StatusDef[]): Task {\n const lines = content.split('\\n')\n const filename = path.basename(filePath, '.md')\n const titleLine = lines.find(l => l.startsWith('# '))\n const title = (titleLine || '').replace(/^#+\\s*/, '').replace(/^T\\d+\\s*[:—–-]\\s*/i, '').trim() || filename\n\n // Only the head block under the H1 counts, so a `**Depends on:**` quoted in the body can't override it.\n const meta: Record<string, string> = {}\n for (const line of lines.slice(0, roadmapMetaEnd(lines))) {\n const m = line.match(/\\*\\*([^*]+):\\*\\*\\s*(.+)/)\n if (m) meta[m[1].toLowerCase().trim()] = m[2].trim()\n }\n\n const resolved = resolveStatus(meta['status'] || 'todo', defs)\n const warnKey = `${filePath}\\0${meta['status']}`\n if (resolved.unknown && !warnedStatuses.has(warnKey)) {\n // listTasks runs on every refresh: warn once per file + value per process\n warnedStatuses.add(warnKey)\n console.warn(`[vibedoc] ${filePath}: unknown status \"${meta['status']}\", shown as todo`)\n }\n const { status, customStatus } = resolved\n const idM = filename.match(/^(T\\d+)/i)\n const id = idM ? idM[1].toUpperCase() : filename.toUpperCase()\n\n const tests = parseManualTests(content)\n const manualTests = tests && { total: tests.total, done: tests.done }\n return { id, title, status, ...(customStatus && { customStatus }), size: meta['size'] || '', phase: meta['phase'] || '', dependsOn: meta['depends on'] || '', owner: parseOwner(meta['owner']), due: parseDue(meta['due'] || ''), started: parseDue(meta['started'] || ''), finished: parseDue(meta['done'] || ''), manualTests, file: filePath, raw: content }\n}\n\nexport async function listTasks(root: string): Promise<{ tasks: Task[]; board: TaskBoard }> {\n const { statuses } = await readProjectSettings(root)\n let files = await glob('plans/tasks/T*.md', { cwd: root, nodir: true })\n if (files.length === 0) files = await glob('plans/T*.md', { cwd: root, nodir: true })\n\n const tasks: Task[] = []\n for (const f of files.sort()) {\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n tasks.push(parseTaskFile(f, content, statuses))\n } catch {}\n }\n\n const board: TaskBoard = { todo: [], 'in-progress': [], review: [], blocked: [], paused: [], done: [], cancelled: [] }\n for (const t of tasks) {\n const col = (board[t.status] ? t.status : 'todo') as TaskStatus\n board[col].push(t)\n }\n return { tasks, board }\n}\n\nexport async function getTask(taskId: string, root: string): Promise<Task> {\n const { statuses } = await readProjectSettings(root)\n const id = taskId.toUpperCase().startsWith('T') ? taskId.toUpperCase() : `T${taskId}`\n for (const pattern of [`plans/tasks/${id}*.md`, `plans/${id}*.md`]) {\n const matches = await glob(pattern, { cwd: root, nodir: true })\n if (matches.length > 0) {\n const content = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return parseTaskFile(matches[0], content, statuses)\n }\n }\n throw new Error(`Task not found: ${taskId}`)\n}\n\n/**\n * Owner that a status change assigns (R055): an agent that starts a task takes it over;\n * a human move only fills an empty owner. Approve / send back pass no mover and leave it alone.\n */\nfunction ownerAfterMove(current: string | null, status: TaskStatus, mover?: { actor: 'ai' | 'human'; agent?: string }): string | null {\n if (!mover) return current\n if (mover.actor === 'ai') return status === 'in-progress' ? parseOwner(`ai:${mover.agent || 'agent'}`) ?? 'ai:agent' : current\n return current ?? 'human'\n}\n\n/**\n * The task settings from .vibedoc/settings.json (R055): `tasks.sizeDays` over the defaults (automatic due dates)\n * and `statuses` (custom statuses; the built-ins when unset).\n */\nexport async function readProjectSettings(root: string): Promise<{ sizeDays: SizeDays; statuses: StatusDef[]; sessionBudgetTokens: number }> {\n let s: { tasks?: { sizeDays?: SizeDays }; statuses?: unknown; memory?: { sessionBudgetTokens?: unknown } } | null = null\n try { s = JSON.parse(await fs.readFile(path.join(root, '.vibedoc', 'settings.json'), 'utf8')) } catch {}\n const budget = Number(s?.memory?.sessionBudgetTokens)\n return {\n sizeDays: { ...DEFAULT_SIZE_DAYS, ...(s?.tasks?.sizeDays ?? {}) }, statuses: statusDefs(s?.statuses),\n // R048: token cap for what vibedoc_read_memory returns\n sessionBudgetTokens: budget > 0 ? budget : DEFAULT_SESSION_BUDGET,\n }\n}\n\n/** Replace-or-insert (or remove, for '' / null) one `**Label:**` line inside the head meta block. */\nfunction withMetaLine(content: string, label: string, value: string | null): string {\n const lines = content.split('\\n')\n const end = roadmapMetaEnd(lines)\n const at = lines.slice(0, end).findIndex(l => l.toLowerCase().startsWith(`**${label.toLowerCase()}:**`))\n if (!value) { if (at >= 0) lines.splice(at, 1) }\n else if (at >= 0) lines[at] = `**${label}:** ${value}`\n else lines.splice(end, 0, `**${label}:** ${value}`)\n return lines.join('\\n')\n}\n\nexport async function updateTaskStatus(\n /** A built-in status, an alias, or one of the project's custom status ids */\n taskId: string, statusKey: string, root: string, actor: 'ai' | 'human' = 'human',\n /** Set by a board move or an agent claim / update; drives the owner (see ownerAfterMove) */\n mover?: { actor: 'ai' | 'human'; agent?: string },\n): Promise<{ task: Task; previousStatus: TaskStatus }> {\n const task = await getTask(taskId, root)\n const previousStatus = task.status\n const { statuses, sizeDays } = await readProjectSettings(root)\n const resolved = resolveStatus(statusKey, statuses)\n if (resolved.unknown) throw new RoadmapError(`Unknown status \"${statusKey}\" (expected ${statuses.map(d => d.id).join(' | ')})`)\n const newStatus = resolved.status\n const line = statusLine(statusKey, statuses)\n\n let content = task.raw!\n const statusPattern = /(\\*\\*Status:\\*\\*\\s*).+/\n if (statusPattern.test(content)) {\n content = content.replace(statusPattern, `$1${line}`)\n } else {\n content = content.replace(/^(#[^\\n]+\\n)/, `$1**Status:** ${line}\\n`)\n }\n\n const owner = ownerAfterMove(task.owner, newStatus, mover)\n if (owner !== task.owner) content = withMetaLine(content, 'Owner', owner)\n\n const dates = datesOnMove(newStatus, { due: task.due, started: task.started, done: task.finished }, task.size, localToday(), sizeDays)\n if (dates.due !== task.due) content = withMetaLine(content, 'Due', dates.due)\n if (dates.started !== task.started) content = withMetaLine(content, 'Started', dates.started)\n if (dates.done !== task.finished) content = withMetaLine(content, 'Done', dates.done)\n\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n\n // Append to activity log\n await appendActivity(root, {\n type: 'task_updated', actor,\n title: `${task.id} moved to ${newStatus}`,\n detail: task.title,\n taskId: task.id,\n taskStatus: newStatus,\n })\n\n const { customStatus: _old, ...rest } = task\n return { task: { ...rest, status: newStatus, ...(resolved.customStatus && { customStatus: resolved.customStatus }), owner, due: dates.due, started: dates.started, finished: dates.done, raw: content }, previousStatus }\n}\n\n/** Write (or replace) the task's `## Manual tests` checklist. `report` is a markdown checklist; plain lines become items. */\nexport interface TaskMetaPatch {\n title?: string\n size?: string\n phase?: string\n dependsOn?: string\n /** YYYY-MM-DD, or null / '' to remove the line */\n due?: string | null\n /** \"human\" | \"ai:<agent>\", or null / '' to remove the line */\n owner?: string | null\n}\n\nconst TASK_META_LABELS: [keyof Omit<TaskMetaPatch, 'title'>, string][] = [\n ['phase', 'Phase'], ['size', 'Size'], ['dependsOn', 'Depends on'], ['due', 'Due'], ['owner', 'Owner'],\n]\n\n/** Rewrite the H1 and the head meta block only; the body (manual tests, review, spec) stays byte-for-byte. */\nexport async function updateTaskMeta(\n taskId: string, patch: TaskMetaPatch, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<Task> {\n const task = await getTask(taskId, root)\n const oneLine = (v: string) => v.replace(/\\s+/g, ' ').trim()\n const lines = task.raw!.split('\\n')\n let end = roadmapMetaEnd(lines)\n\n if (patch.title !== undefined) {\n const title = oneLine(patch.title)\n if (!title) throw new RoadmapError('title must not be empty')\n const h1 = lines.findIndex(l => l.startsWith('# '))\n if (h1 >= 0) lines[h1] = `# ${task.id}: ${title}`\n else { lines.unshift(`# ${task.id}: ${title}`); end++ }\n }\n\n for (const [key, label] of TASK_META_LABELS) {\n const raw = patch[key]\n if (raw === undefined) continue\n let value = raw === null ? '' : oneLine(raw)\n if (key === 'due' && value) {\n const d = parseDue(value)\n if (!d) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(raw)})`)\n value = d\n }\n if (key === 'owner' && value) {\n const o = parseOwner(value)\n if (!o) throw new RoadmapError(`owner must be \"human\" or \"ai:<agent>\" (got ${JSON.stringify(raw)})`)\n value = o\n }\n const at = lines.slice(0, end).findIndex(l => l.toLowerCase().startsWith(`**${label.toLowerCase()}:**`))\n if (!value && (key === 'due' || key === 'owner')) {\n if (at >= 0) { lines.splice(at, 1); end-- }\n continue\n }\n const line = `**${label}:** ${value || '—'}`\n if (at >= 0) lines[at] = line\n else { lines.splice(end, 0, line); end++ }\n }\n\n const content = lines.join('\\n')\n if (content === task.raw) return task\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n await appendActivity(root, { type: 'task_updated', actor, title: `${task.id} edited`, detail: task.title, taskId: task.id })\n return getTask(task.id, root)\n}\n\n/** Where a deleted task sat in an epic's **Tasks:** line, so Undo can put it back in place. */\nexport interface TaskLink { epic: string; index: number }\n\n/** Delete the task file and unlink it from every epic's **Tasks:** line. Returns the removed task (with raw) and its links. */\nexport function deleteTask(taskId: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<{ task: Task; links: TaskLink[] }> {\n return withTaskClaimLock(async () => {\n const task = await getTask(taskId, root)\n await fs.unlink(path.join(root, task.file))\n // Task lock, then roadmap lock: same order as applyPlan.\n const { items } = await listRoadmap(root)\n const links: TaskLink[] = []\n for (const epic of items.filter(i => i.tasks.includes(task.id))) {\n links.push({ epic: epic.id, index: epic.tasks.indexOf(task.id) })\n await updateRoadmapItem(epic.id, { tasks: epic.tasks.filter(t => t !== task.id) }, root, actor)\n }\n await appendActivity(root, { type: 'task_updated', actor, title: `${task.id} deleted`, detail: task.title, taskId: task.id })\n return { task, links }\n })\n}\n\n/** Move a task to an epic (or out of every epic): the epics' **Tasks:** lines and the task's **Phase:** follow. */\nexport async function setTaskEpic(taskId: string, epicId: string | null, root: string, actor: 'ai' | 'human' = 'human'): Promise<Task> {\n const task = await getTask(taskId, root)\n const { items } = await listRoadmap(root)\n const target = epicId ? items.find(i => i.id === epicId.trim().toUpperCase() && i.parent !== null) : undefined\n if (epicId && !target) throw new RoadmapError(`Epic not found: ${epicId}`)\n for (const e of items.filter(i => i.tasks.includes(task.id) && i.id !== target?.id)) {\n await updateRoadmapItem(e.id, { tasks: e.tasks.filter(t => t !== task.id) }, root, actor)\n }\n if (target && !target.tasks.includes(task.id)) await updateRoadmapItem(target.id, { tasks: [...target.tasks, task.id] }, root, actor)\n return updateTaskMeta(task.id, { phase: target ? `${target.id} — ${target.title}` : '' }, root, actor)\n}\n\nexport type BulkTaskAction = { status: string } | { epic: string | null } | { delete: true }\n\n/** One action over many tasks. Stops at the first failure; tasks before it keep the change. */\nexport async function bulkTasks(\n ids: string[], action: BulkTaskAction, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ deleted: { task: Task; links: TaskLink[] }[] }> {\n const deleted: { task: Task; links: TaskLink[] }[] = []\n for (const id of ids) {\n if ('status' in action) await updateTaskStatus(id, action.status, root, actor, { actor })\n else if ('epic' in action) await setTaskEpic(id, action.epic, root, actor)\n else if ('delete' in action) deleted.push(await deleteTask(id, root, actor))\n }\n return { deleted }\n}\n\n/** Only a plain `<dir>/<name>.md` path counts: no traversal, no subfolders. */\nfunction isFileIn(rel: unknown, dir: string, name: RegExp): rel is string {\n if (typeof rel !== 'string') return false\n const norm = path.posix.normalize(rel)\n return norm === rel && path.posix.dirname(norm) === dir && name.test(path.posix.basename(norm))\n}\n\n/** Undo for deleteTask: write the file back byte-for-byte (never over an existing one) and re-link it. */\nexport function restoreTask(file: unknown, raw: unknown, links: TaskLink[], root: string, actor: 'ai' | 'human' = 'human'): Promise<Task> {\n return withTaskClaimLock(async () => {\n if (!isFileIn(file, 'plans/tasks', /^T\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid task to restore')\n const id = path.basename(file).match(/^(T\\d+)/i)![1].toUpperCase()\n if (await getTask(id, root).then(() => true, () => false)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, 'plans/tasks'), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n const { items } = await listRoadmap(root)\n for (const link of Array.isArray(links) ? links : []) {\n const epic = items.find(i => i.id === link?.epic)\n if (!epic || epic.tasks.includes(id)) continue\n const tasks = [...epic.tasks]\n tasks.splice(Math.max(0, Math.min(Number(link.index) || 0, tasks.length)), 0, id)\n await updateRoadmapItem(epic.id, { tasks }, root, actor)\n }\n await appendActivity(root, { type: 'task_updated', actor, title: `${id} restored`, taskId: id })\n return getTask(id, root)\n })\n}\n\nexport async function saveManualTests(taskId: string, report: string, root: string, actor: 'ai' | 'human' = 'ai'): Promise<Task> {\n const task = await getTask(taskId, root)\n const content = setManualTests(task.raw ?? '', report, actor, new Date().toISOString().slice(0, 10))\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return getTask(task.id, root)\n}\n\n/** The task isn't in the state an action needs (e.g. approving a task that isn't in review). Routes map it to 409. */\nexport class TaskStateError extends Error {}\n\nasync function reviewTask(taskId: string, outcome: ReviewOutcome, note: string, next: TaskStatus, root: string) {\n const task = await getTask(taskId, root)\n if (task.status !== 'review') throw new TaskStateError(`${task.id} is ${task.status}, not in review`)\n const at = new Date().toISOString().replace(/\\.\\d{3}Z$/, 'Z')\n const content = appendReviewEntry(task.raw ?? '', outcome, note, at)\n await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return updateTaskStatus(task.id, next, root, 'human')\n}\n\n/** Review → done, with an `approved` entry in the task's `## Review` section. */\nexport function approveTask(taskId: string, root: string, note = '') {\n return reviewTask(taskId, 'approved', note, 'done', root)\n}\n\n/** Review → todo (so vibedoc_next_task hands it out again), with the note as a `changes requested` entry. Note required. */\nexport function sendBackTask(taskId: string, note: string, root: string) {\n return reviewTask(taskId, 'changes requested', note, 'todo', root)\n}\n\n/** Tick or untick one manual test item (index in file order). Never changes the task status. Throws RangeError for a bad index. */\nexport async function setManualTestChecked(taskId: string, index: number, checked: boolean, root: string): Promise<Task> {\n const task = await getTask(taskId, root)\n const content = toggleManualTest(task.raw ?? '', index, checked)\n if (content !== task.raw) await fs.writeFile(path.join(root, task.file), content, 'utf8')\n return getTask(task.id, root)\n}\n\n// ponytail: in-process mutex so two agents never claim the same task; separate from the roadmap lock.\n// Doesn't cover a second VibeDoc process on the same root.\nlet taskClaimLock: Promise<unknown> = Promise.resolve()\nfunction withTaskClaimLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = taskClaimLock.then(fn, fn)\n taskClaimLock = run.catch(() => {})\n return run\n}\n\n/** Atomically pick the next ready task of an epic and move it to in-progress. */\nexport function claimNextTask(\n epicId: string, root: string, agent?: string\n): Promise<{ result: QueueResult; task?: Task; previousStatus?: TaskStatus }> {\n return withTaskClaimLock(async () => {\n const epic = await getRoadmapItem(epicId, root)\n if (!epic.parent) throw new Error(`${epic.id} is a horizon; pass an epic id`)\n const { tasks } = await listTasks(root)\n const result = pickNextTask(epic, tasks)\n if (result.kind !== 'ready') return { result }\n const { task, previousStatus } = await updateTaskStatus(result.taskId, 'in-progress', root, 'ai', { actor: 'ai', agent })\n return { result, task, previousStatus }\n })\n}\n\nexport interface CreateTaskParams {\n title: string\n phase?: string\n size?: string\n description?: string\n dependsOn?: string\n due?: string\n body?: string // replaces the template sections below the meta block\n}\n\n/** Serialized with next_task claims and plan applies, so concurrent creates never pick the same id. */\nexport function createTask(params: CreateTaskParams, root: string): Promise<Task> {\n return withTaskClaimLock(() => createTaskUnlocked(params, root))\n}\n\n/** Caller must hold withTaskClaimLock (applyPlan does). */\nasync function createTaskUnlocked(params: CreateTaskParams, root: string): Promise<Task> {\n const { tasks } = await listTasks(root)\n // One line only: a newline in the title would inject **Key:** lines into the meta block\n const title = params.title.replace(/\\s+/g, ' ').trim()\n\n const ids = tasks\n .map(t => parseInt(t.id.replace(/^T/i, ''), 10))\n .filter(n => !isNaN(n))\n const nextNum = ids.length > 0 ? Math.max(...ids) + 1 : 1\n const id = `T${String(nextNum).padStart(3, '0')}`\n\n const slug = title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, '')\n .slice(0, 40) || 'task'\n\n const filename = `${id}-${slug}.md`\n const tasksDir = path.join(root, 'plans', 'tasks')\n await fs.mkdir(tasksDir, { recursive: true })\n const filePath = path.join(tasksDir, filename)\n\n let due = params.due ? parseDue(params.due) : null\n if (params.due && !due) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(params.due)})`)\n // A new task in an epic with a deadline takes the epic's due (R055)\n const epicId = params.phase?.trim().match(/^(R\\d+)\\b/i)?.[1]\n if (!due && epicId) due = (await getRoadmapItem(epicId, root).catch(() => null))?.due ?? null\n\n const meta = `# ${id}: ${title}\n**Status:** 📋 Ready\n**Phase:** ${params.phase || '—'}\n**Size:** ${params.size || '—'}\n**Depends on:** ${params.dependsOn || '—'}\n${due ? `**Due:** ${due}\\n` : ''}`\n const content = params.body !== undefined ? `${meta}\\n${params.body.trim()}\\n` : `${meta}\n## What to build\n${params.description || '—'}\n\n## Scope\n- [ ]\n\n## Acceptance criteria\n- [ ]\n\n## Definition of done\n—\n`\n\n await fs.writeFile(filePath, content, { flag: 'wx', encoding: 'utf8' })\n return getTask(id, root)\n}\n\n/** Validate against the current files, then keep the selected keys. Throws RoadmapError on any problem. */\nfunction checkPlan(plan: unknown, selected: unknown, items: RoadmapItem[], taskIds: string[]): Plan {\n const errors = validatePlan(plan, { roadmap: items, taskIds })\n if (errors.length > 0) throw new RoadmapError(errors.join('\\n'))\n if (!Array.isArray(selected)) throw new RoadmapError('selected must be an array of plan keys')\n const { plan: sel, errors: selErrors } = selectPlan(plan as Plan, selected.map(String))\n if (selErrors.length > 0) throw new RoadmapError(selErrors.join('\\n'))\n return sel\n}\n\n/**\n * Write the selected items of a plan. Validates again against the current files.\n * breakdown: plan keys become real T ids in order (so `dependsOn` keys are written as those ids) and are\n * linked to the epic (an existing one, or `newEpic` created first; neither = loose tasks, no Phase); runs under the task-claim lock so ids can't collide with next_task or another apply.\n * roadmap: horizons first (keys → R ids), then epics under their resolved parent; order and status use\n * createRoadmapItem's defaults (after the last sibling, step 10; planned). Runs under the roadmap lock.\n * `epic` is the breakdown's epic, null for a roadmap plan or loose tasks.\n */\nexport function applyPlan(\n plan: unknown, selected: unknown, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ created: { key: string; id: string; file: string }[]; epic: RoadmapItem | null }> {\n if ((plan as { kind?: unknown } | null)?.kind === 'roadmap') {\n return withRoadmapLock(async () => {\n const [items, { tasks }] = await Promise.all([readRoadmapFiles(root), listTasks(root)])\n const sel = checkPlan(plan, selected, items.map(f => f.item), tasks.map(t => t.id))\n if (sel.kind !== 'roadmap') throw new RoadmapError('expected a roadmap plan')\n const ids = new Map<string, string>()\n const created: { key: string; id: string; file: string }[] = []\n // ponytail: not atomic; a failure mid-way leaves the items written so far (each is a valid item).\n for (const h of sel.horizons) {\n const item = await createRoadmapItemUnlocked({ title: h.title.trim(), body: h.body }, root, actor)\n ids.set(h.key.trim(), item.id)\n created.push({ key: h.key, id: item.id, file: item.file })\n }\n for (const e of sel.epics) {\n const parent = ids.get(e.parent.trim()) ?? e.parent.trim().toUpperCase()\n const item = await createRoadmapItemUnlocked({ title: e.title.trim(), parent, status: e.status, body: e.body }, root, actor)\n created.push({ key: e.key, id: item.id, file: item.file })\n }\n return { created, epic: null }\n })\n }\n return withTaskClaimLock(async () => {\n const [{ items }, { tasks }] = await Promise.all([listRoadmap(root), listTasks(root)])\n const sel = checkPlan(plan, selected, items, tasks.map(t => t.id))\n if (sel.kind !== 'breakdown') throw new RoadmapError('expected a breakdown plan')\n\n // Roadmap lock inside the task lock: same order as updateRoadmapItem below.\n // ponytail: not atomic; a failure after the new epic is written leaves it with no tasks.\n const epic = sel.epic?.trim() ? await getRoadmapItem(sel.epic, root)\n : sel.newEpic ? await createRoadmapItem({\n title: sel.newEpic.title.trim(), parent: sel.newEpic.parent.trim().toUpperCase(), body: sel.newEpic.body,\n }, root, actor)\n : null\n const ids = new Map<string, string>()\n const created: { key: string; id: string; file: string }[] = []\n for (const t of sel.tasks) {\n const deps = (t.dependsOn ?? []).map(d => ids.get(d.trim()) ?? d.trim().toUpperCase())\n const task = await createTaskUnlocked({\n title: t.title.trim(),\n phase: epic ? `${epic.id} — ${epic.title}` : undefined,\n size: t.size,\n dependsOn: deps.join(', ') || undefined,\n due: t.due,\n body: t.body,\n }, root)\n ids.set(t.key.trim(), task.id)\n created.push({ key: t.key, id: task.id, file: task.file })\n }\n\n if (!epic) return { created, epic: null }\n const fresh = await getRoadmapItem(epic.id, root)\n const updated = await updateRoadmapItem(epic.id, { tasks: [...fresh.tasks, ...created.map(c => c.id)] }, root, actor)\n return { created, epic: updated }\n })\n}\n\n\n// ─── Decisions (ADRs) ─────────────────────────────────────────────────────────\n\nexport interface ADRParams {\n title: string\n context: string\n decision: string\n rationale?: string\n alternatives?: { option: string; reason: string }[]\n consequences?: string\n}\n\nexport async function logDecision(params: ADRParams, root: string, actor: 'ai' | 'human' = 'human'): Promise<{ adrNumber: string; path: string }> {\n const { title, context, decision, rationale, alternatives = [], consequences } = params\n const existing = await glob('docs/architecture/decisions/ADR-*.md', { cwd: root, nodir: true })\n const nums = existing.map(f => parseInt(path.basename(f).match(/ADR-(\\d+)/)?.[1] || '0')).filter(n => !isNaN(n))\n const nextNum = nums.length > 0 ? Math.max(...nums) + 1 : 1\n const numStr = String(nextNum).padStart(3, '0')\n const slug = title.toLowerCase().replace(/[^a-z0-9\\s-]/g, '').replace(/\\s+/g, '-').slice(0, 50)\n const filename = `ADR-${numStr}-${slug}.md`\n const today = new Date().toISOString().split('T')[0]\n const altsTable = alternatives.length > 0\n ? alternatives.map(a => `| ${a.option} | ${a.reason} |`).join('\\n')\n : '| (none) | — |'\n\n const content = `# ADR-${numStr}: ${title}\\n\\n**Status:** ✅ Accepted\\n**Date:** ${today}\\n\\n## Context\\n${context}\\n\\n## Decision\\n${decision}\\n\\n## Rationale\\n${rationale || ''}\\n\\n## Alternatives considered\\n| Option | Why rejected |\\n|--------|-------------|\\n${altsTable}\\n\\n## Consequences\\n${consequences || ''}\\n`\n\n const filePath = path.join(root, 'docs/architecture/decisions', filename)\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, content, 'utf8')\n\n // Update index\n const indexPath = path.join(root, 'docs/architecture/decisions/_INDEX.md')\n try {\n let idx = await fs.readFile(indexPath, 'utf8')\n idx = idx.trimEnd() + `\\n| ADR-${numStr} | ${title} | ✅ Accepted | ${today} |\\n`\n await fs.writeFile(indexPath, idx, 'utf8')\n } catch {\n await fs.writeFile(indexPath, `# ADR Index\\n\\n| ADR | Title | Status | Date |\\n|-----|-------|--------|------|\\n| ADR-${numStr} | ${title} | ✅ Accepted | ${today} |\\n`, 'utf8')\n }\n\n await appendActivity(root, {\n type: 'decision_logged', actor,\n title: `ADR-${numStr}: ${title}`,\n detail: decision.slice(0, 100),\n })\n\n return { adrNumber: `ADR-${numStr}`, path: `docs/architecture/decisions/${filename}` }\n}\n\n// ─── Memory ───────────────────────────────────────────────────────────────────\n\nexport interface MemoryParams {\n currentState: string\n justCompleted?: string[]\n workingOn?: string\n upNext?: string[]\n issues?: (string | { issue: string; severity?: string; status?: string })[]\n decisions?: string[]\n techDebt?: string[]\n handoff: string\n}\n\nexport async function readMemory(root: string): Promise<{ content: string; exists: boolean }> {\n try {\n const content = await fs.readFile(path.join(root, 'memory', 'MEMORY.md'), 'utf8')\n return { content, exists: true }\n } catch {\n return { content: '*(No MEMORY.md found — AI will create one at end of session)*', exists: false }\n }\n}\n\nexport async function updateMemory(params: MemoryParams, root: string, actor: 'ai' | 'human' = 'human'): Promise<void> {\n const { currentState, justCompleted = [], workingOn = '', upNext = [], issues = [], decisions = [], techDebt = [], handoff } = params\n const now = new Date()\n const today = now.toISOString().split('T')[0]\n const time = now.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })\n\n const content = `# Project Memory\\n**Last updated:** ${today} at ${time}\\n\\n## Current state\\n${currentState}\\n\\n## Just completed\\n${justCompleted.map(i => `- ${i}`).join('\\n') || '- (nothing this session)'}\\n\\n## Working on now\\n${workingOn || '(nothing active)'}\\n\\n## Up next\\n${upNext.map((item, i) => `${i + 1}. ${item}`).join('\\n') || '1. (define next steps)'}\\n\\n## Active issues\\n| Issue | Severity | Status |\\n|-------|----------|--------|\\n${issues.map(i => typeof i === 'string' ? `| ${i} | medium | open |` : `| ${i.issue} | ${i.severity || 'medium'} | ${i.status || 'open'} |`).join('\\n') || '| None | — | — |'}\\n\\n## Recent decisions\\n${decisions.map(d => `- ${d}`).join('\\n') || '- (none this session)'}\\n\\n## Tech debt\\n${techDebt.map(d => `- ${d}`).join('\\n') || '- (none noted)'}\\n\\n## Handoff for next session\\n${handoff}\\n`\n\n await fs.mkdir(path.join(root, 'memory'), { recursive: true })\n await fs.writeFile(path.join(root, 'memory', 'MEMORY.md'), content, 'utf8')\n\n await appendActivity(root, {\n type: 'memory_updated', actor,\n title: 'Session memory updated',\n detail: handoff.slice(0, 120),\n })\n}\n\n// ─── Knowledge entries (R046) ─────────────────────────────────────────────────\n\nconst ENTRIES_DIR = path.join('memory', 'entries')\n\n// ponytail: in-process mutex so two agents never get the same new id; doesn't cover a second VibeDoc process on the same root.\nlet entryLock: Promise<unknown> = Promise.resolve()\nfunction withEntryLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = entryLock.then(fn, fn)\n entryLock = run.catch(() => {})\n return run\n}\n\n/** Every parseable `memory/entries/*.md`, sorted by id. Missing folder → []. */\nexport async function listEntries(root: string): Promise<Entry[]> {\n let names: string[]\n try {\n names = await fs.readdir(path.join(root, ENTRIES_DIR))\n } catch {\n return []\n }\n const entries = await Promise.all(names.filter(n => n.endsWith('.md')).map(async n => {\n const file = path.join(ENTRIES_DIR, n)\n return parseEntry(await fs.readFile(path.join(root, file), 'utf8'), file)\n }))\n return entries.filter((e): e is Entry => !!e).sort((a, b) => a.id.localeCompare(b.id, 'en', { numeric: true }))\n}\n\nexport async function getEntry(id: string, root: string): Promise<Entry | null> {\n const norm = normalizeEntryId(id)\n return (await listEntries(root)).find(e => e.id === norm) ?? null\n}\n\n/**\n * Create (no id) or update (id) one entry. Throws with the validation message on bad input or an unknown id.\n * Stamps `**By:**`: \"human\", or \"ai:<agent>\" for an agent save (R047).\n */\nexport function saveEntry(input: EntryInput, root: string, actor: 'ai' | 'human' = 'human', agent?: string): Promise<Entry> {\n const error = validateEntryInput(input)\n if (error) return Promise.reject(new Error(error))\n return withEntryLock(async () => {\n const entries = await listEntries(root)\n let id: string\n let previous: Entry | undefined\n if (input.id !== undefined) {\n id = normalizeEntryId(String(input.id)) as string\n previous = entries.find(e => e.id === id)\n if (!previous) throw new Error(`Entry ${id} not found`)\n } else {\n id = nextEntryId(entries.map(e => e.id))\n }\n const summary = input.summary.trim()\n const entry: Entry = {\n id, type: input.type as EntryType, summary, body: (input.body ?? '').trim(),\n updatedAt: localToday(), by: actor === 'human' ? 'human' : parseOwner(`ai:${agent || 'agent'}`) ?? 'ai:agent',\n file: path.join(ENTRIES_DIR, `${id}-${entrySlug(summary)}.md`),\n }\n await fs.mkdir(path.join(root, ENTRIES_DIR), { recursive: true })\n await fs.writeFile(path.join(root, entry.file), formatEntry(entry), 'utf8')\n // Summary changed → new slug; the id stays\n if (previous && previous.file !== entry.file) await fs.rm(path.join(root, previous.file), { force: true })\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${id} saved`, detail: summary })\n return entry\n })\n}\n\n/** Entries in the order of `ids` (any case / padding), plus the ids that matched nothing. */\nexport async function getEntriesByIds(ids: string[], root: string): Promise<{ found: Entry[]; missing: string[] }> {\n const byId = new Map((await listEntries(root)).map(e => [e.id, e]))\n const found: Entry[] = []\n const missing: string[] = []\n for (const raw of ids) {\n const entry = byId.get(normalizeEntryId(String(raw)) ?? '')\n if (entry) found.push(entry)\n else missing.push(String(raw))\n }\n return { found, missing }\n}\n\n/** What an agent reads at session start: MEMORY.md + the entry index, capped at `memory.sessionBudgetTokens` (R048). */\nexport async function sessionStartMemory(root: string): Promise<string> {\n const [memory, entries, { sessionBudgetTokens }] = await Promise.all([readMemory(root), listEntries(root), readProjectSettings(root)])\n return fitToBudget(memory.content, indexHits(entries), sessionBudgetTokens).text\n}\n\n/** The \"## Related memory\" block for a task (up to `limit` strong keyword matches), or '' (R048). */\nexport async function relatedEntries(task: Pick<Task, 'title' | 'phase' | 'raw'>, root: string, limit = 3): Promise<string> {\n // rank everything so the score filter in formatRelated sees all candidates before the limit\n const entries = await listEntries(root)\n return formatRelated(rankEntries(entries, taskQuery(task), { limit: entries.length }), limit)\n}\n\n// ─── File history from git (R053) ─────────────────────────────────────────────\n\nconst execFileP = promisify(execFile)\nconst GIT_SHA_RE = /^[0-9a-f]{7,40}$/\nconst HISTORY_MAX = 50\n\n/** One commit that touched a file; `path` is its repo-relative path after that commit ('' if the commit only deleted it). */\nexport type FileCommit = { sha: string; author: string; date: string; subject: string; path: string }\n/** `reason: 'no-git'` when the project isn't a git repo or git is missing. */\nexport type FileHistory = { history: FileCommit[]; uncommitted: boolean; reason?: 'no-git' }\n\n/** git with an argument array (never a shell string), run in the project root. */\nasync function git(args: string[], root: string): Promise<string> {\n const { stdout } = await execFileP('git', args, { cwd: root, maxBuffer: 4 * 1024 * 1024 })\n return stdout\n}\n\nfunction relInsideRoot(relPath: string, root: string): string {\n const full = path.resolve(root, relPath)\n if (!full.startsWith(path.resolve(root) + path.sep)) throw new RoadmapError('Path outside root')\n return path.relative(root, full).split(path.sep).join('/')\n}\n\n/**\n * Commits that touched `relPath`, newest first, plus whether it has uncommitted changes.\n * An entry file (`E001-<slug>.md`) is matched by its id, not its name: a new summary renames the file, and small\n * files often fall under git's rename detection, so `--follow` would lose the history before the rename.\n */\nexport async function getFileHistory(relPath: string, root: string, limit = 20): Promise<FileHistory> {\n const rel = relInsideRoot(relPath, root)\n const id = /^(E\\d+)-[^/]*\\.md$/.exec(path.posix.basename(rel))?.[1]\n // ponytail: a deleted id that gets reused later shares this history; fine while ids are rarely reused\n const spec = id ? [`:(glob)${path.posix.dirname(rel)}/${id}-*.md`] : ['--follow', rel]\n try {\n const out = await git(['log', '--name-status', '--format=%x1e%H%x1f%an%x1f%aI%x1f%s', '-n', String(Math.min(limit, HISTORY_MAX)), ...(id ? ['--', ...spec] : [spec[0], '--', spec[1]])], root)\n const history = out.split('\\x1e').filter(r => r.trim()).map((record): FileCommit => {\n const [head, ...rest] = record.split('\\n')\n const [sha, author, date, subject] = head.split('\\x1f')\n // \"M\\tpath\", \"A\\tpath\", \"R087\\told\\tnew\", \"D\\tpath\": the path that exists after this commit (none if only deleted)\n const kept = rest.map(l => l.split('\\t')).filter(f => f.length > 1 && f[0] !== 'D').map(f => f[f.length - 1])\n return { sha, author, date, subject, path: kept[0] ?? '' }\n })\n const status = await git(['status', '--porcelain', '--', id ? spec[0] : rel], root)\n return { history, uncommitted: status.trim().length > 0 }\n } catch (e) {\n console.warn(`git history unavailable for ${rel}`, e instanceof Error ? e.message : e)\n return { history: [], uncommitted: false, reason: 'no-git' }\n }\n}\n\n/** The file's text at `sha`, using the path it had in that commit. Throws 400 on a bad sha, 404 if `sha` isn't in its history. */\nexport async function getFileAtCommit(relPath: string, sha: string, root: string): Promise<string> {\n if (!GIT_SHA_RE.test(sha)) throw new RoadmapError(`Invalid commit \"${sha}\"`)\n const { history } = await getFileHistory(relPath, root, HISTORY_MAX)\n const commit = history.find(c => c.sha.startsWith(sha))\n if (!commit) throw new RoadmapError(`Commit ${sha} did not touch ${relPath}`, 404)\n if (!commit.path) throw new RoadmapError(`The file was deleted in ${commit.sha.slice(0, 7)}`, 404)\n // commit.path is relative to the repo top level, which may be above root\n const top = (await git(['rev-parse', '--show-toplevel'], root)).trim()\n return git(['show', `${commit.sha}:${commit.path}`], top)\n}\n\n/** Keyword recall over the entries: compact hits, no bodies (R048). */\nexport async function recallEntries(query: string, opts: { type?: string; limit?: number }, root: string): Promise<RecallHit[]> {\n return rankEntries(await listEntries(root), query, opts)\n}\n\n/** Removes the file for good; git keeps its history. Throws on an unknown id. */\n/** Returns the deleted entry plus its file text, so a UI can undo (restoreEntry). */\nexport function deleteEntry(id: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<Entry & { raw: string }> {\n const norm = normalizeEntryId(String(id ?? ''))\n if (!norm) return Promise.reject(new Error(`Invalid id \"${id}\": expected E followed by a number, e.g. E001`))\n // ponytail: ids come from files on disk, so deleting the highest entry lets the next save reuse its id; git history is per path and the slug differs\n return withEntryLock(async () => {\n const entry = (await listEntries(root)).find(e => e.id === norm)\n if (!entry) throw new Error(`Entry ${norm} not found`)\n const raw = await fs.readFile(path.join(root, entry.file), 'utf8')\n await fs.rm(path.join(root, entry.file))\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${norm} deleted`, detail: entry.summary })\n return { ...entry, raw }\n })\n}\n\n/** Undo for deleteEntry: write the file back byte-for-byte, only as a plain memory/entries/E<n>-*.md and only if that id is free. */\nexport function restoreEntry(file: unknown, raw: unknown, root: string, actor: 'ai' | 'human' = 'human'): Promise<Entry> {\n return withEntryLock(async () => {\n if (!isFileIn(file, 'memory/entries', /^E\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid entry to restore')\n const entry = parseEntry(raw, file)\n const id = normalizeEntryId(path.basename(file).match(/^(E\\d+)/i)?.[1] ?? '')\n if (!entry || entry.id !== id) throw new RoadmapError('Invalid entry to restore')\n // the next save can reuse the highest id, so the id may be taken by now\n if ((await listEntries(root)).some(e => e.id === id)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, ENTRIES_DIR), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n await appendActivity(root, { type: 'memory_updated', actor, title: `Entry ${id} restored`, detail: entry.summary })\n return entry\n })\n}\n\n// ─── Activity log ─────────────────────────────────────────────────────────────\n\nconst ACTIVITY_FILE = '.vibedoc-activity.json'\nconst ACTIVITY_CAP = 2000\n\n// ─── Description cache ────────────────────────────────────────────────────────\n\nconst DESCRIPTIONS_FILE = '.vibedoc-descriptions.json'\n\nexport async function readDescriptions(root: string): Promise<DescriptionCache> {\n try {\n const raw = await fs.readFile(path.join(root, DESCRIPTIONS_FILE), 'utf8')\n return JSON.parse(raw) as DescriptionCache\n } catch {\n return {}\n }\n}\n\nexport async function writeDescriptions(root: string, cache: DescriptionCache): Promise<void> {\n const filePath = path.join(root, DESCRIPTIONS_FILE)\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, JSON.stringify(cache, null, 2), 'utf8')\n}\n\nexport async function writeDescriptionEntry(\n root: string,\n filePath: string,\n entry: DescriptionCache[string]\n): Promise<void> {\n const normalizedKey = path.normalize(filePath).replace(/\\\\/g, '/')\n const cache = await readDescriptions(root)\n cache[normalizedKey] = entry\n await writeDescriptions(root, cache)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet _anthropic: any = null\n\nasync function getAnthropicClient(): Promise<any> {\n if (!_anthropic) {\n const { default: Anthropic } = await import('@anthropic-ai/sdk')\n _anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })\n }\n return _anthropic\n}\n\nexport function extractDescription(content: string): string {\n const lines = content.split('\\n')\n let heading = ''\n\n for (const line of lines) {\n const m = line.match(/^#{1,3}\\s+(.+)/)\n if (m && !heading) {\n heading = m[1].trim().slice(0, 120)\n continue\n }\n const t = line.trim()\n if (\n t &&\n !t.startsWith('#') &&\n !t.startsWith('```') &&\n !t.startsWith('|') &&\n !t.startsWith('-') &&\n !t.startsWith('*') &&\n t.length > 20\n ) {\n return t.slice(0, 120)\n }\n }\n return heading\n}\n\nexport async function enrichDescription(filePath: string, root: string): Promise<string> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, filePath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n\n const client = await getAnthropicClient()\n const content = await fs.readFile(fullPath, 'utf8')\n\n const message = await client.messages.create({\n model: 'claude-haiku-4-5-20251001',\n max_tokens: 100,\n messages: [{\n role: 'user',\n content: `Write a single sentence (max 120 characters) describing what this file is about. Output ONLY the sentence, nothing else.\\n\\n${content.slice(0, 2000)}`,\n }],\n })\n\n const textBlock = message.content.find((b: { type: string }) => b.type === 'text') as { type: 'text'; text: string } | undefined\n if (!textBlock) throw new Error('No text block in Anthropic response')\n const description = textBlock.text.trim().slice(0, 120)\n\n await writeDescriptionEntry(root, filePath, { description, source: 'ai', updatedAt: new Date().toISOString() })\n\n return description\n}\n\nexport async function listExplorerFiles(root: string): Promise<ExplorerFile[]> {\n const docs = await listDocs(root)\n const cache = await readDescriptions(root)\n\n return Promise.all(docs.map(async (doc) => {\n const cached = cache[doc.path]\n let description = cached?.description ?? ''\n const source: 'extracted' | 'ai' = cached?.source ?? 'extracted'\n\n // Get mtime first so we can use it as updatedAt fallback\n let mtime = new Date().toISOString()\n try {\n const stat = await fs.stat(path.join(root, doc.path))\n mtime = stat.mtime.toISOString()\n } catch { /* ignore */ }\n\n const updatedAt = cached?.updatedAt ?? mtime\n\n if (!cached) {\n try {\n const content = await fs.readFile(path.join(root, doc.path), 'utf8')\n description = extractDescription(content)\n } catch { /* ignore */ }\n }\n\n return { path: doc.path, name: doc.name, section: doc.section, description, source, updatedAt, mtime }\n }))\n}\n\n// ponytail: current session per root+actor lives in memory (on globalThis so dev HMR keeps it); a server restart starts a new session.\nconst globalForSessions = globalThis as unknown as { vibedocSessions?: Map<string, { id: string; lastAt: number }> }\nconst currentSessions = globalForSessions.vibedocSessions ?? (globalForSessions.vibedocSessions = new Map())\n\nfunction stampSession(root: string, event: Omit<ActivityEvent, 'id' | 'timestamp'>, now: number): string {\n const key = `${root}\\0${event.actor}`\n let cur = currentSessions.get(key)\n if (!cur || event.type === 'session_start' || now - cur.lastAt > SESSION_GAP_MS) {\n cur = { id: `ses_${now}_${Math.random().toString(36).slice(2, 7)}`, lastAt: now }\n currentSessions.set(key, cur)\n }\n cur.lastAt = now\n return cur.id\n}\n\nasync function appendActivity(root: string, event: Omit<ActivityEvent, 'id' | 'timestamp'>): Promise<void> {\n const now = Date.now()\n const full: ActivityEvent = {\n id: `evt_${now}_${Math.random().toString(36).slice(2, 7)}`,\n timestamp: new Date(now).toISOString(),\n ...event,\n sessionId: stampSession(root, event, now),\n }\n\n const file = path.join(root, ACTIVITY_FILE)\n let events: ActivityEvent[] = []\n try {\n const raw = await fs.readFile(file, 'utf8')\n events = JSON.parse(raw)\n } catch {}\n\n events.unshift(full)\n if (events.length > ACTIVITY_CAP) events = events.slice(0, ACTIVITY_CAP)\n await fs.writeFile(file, JSON.stringify(events, null, 2), 'utf8')\n}\n\nconst DOC_EDIT_COALESCE_MS = 10 * 60_000\nconst DOC_EDIT_LOOKBACK = 50\n\n/**\n * Record who last saved a doc (R055 doc owner). Autosave fires every few seconds, so a save by the same\n * actor within 10 minutes of the newest event for that doc just moves that event's time forward.\n */\nexport async function noteDocEdit(root: string, docPath: string, actor: 'ai' | 'human'): Promise<void> {\n const file = path.join(root, ACTIVITY_FILE)\n let events: ActivityEvent[] = []\n try { events = JSON.parse(await fs.readFile(file, 'utf8')) } catch {}\n // Other events (an agent moving tasks) land in between, so look back a little, not just at the top\n const i = events.slice(0, DOC_EDIT_LOOKBACK).findIndex(e => e.type === 'doc_updated' && e.detail === docPath)\n const prev = i >= 0 ? events[i] : undefined\n if (prev && prev.actor === actor && Date.now() - Date.parse(prev.timestamp) < DOC_EDIT_COALESCE_MS) {\n // move it to the top with the new time, so the log stays newest-first\n events.splice(i, 1)\n events.unshift({ ...prev, timestamp: new Date().toISOString() })\n await fs.writeFile(file, JSON.stringify(events, null, 2), 'utf8')\n return\n }\n await appendActivity(root, { type: 'doc_updated', actor, title: `Edited ${docPath}`, detail: docPath })\n}\n\n/** Who last created or saved the doc, from the activity log; null when the log has nothing on it. */\nexport async function docLastEdit(root: string, docPath: string): Promise<{ actor: 'ai' | 'human'; at: string } | null> {\n const e = (await readActivity(root, ACTIVITY_CAP)).find(\n (x) => (x.type === 'doc_updated' || x.type === 'doc_created') && x.detail === docPath,\n )\n return e ? { actor: e.actor, at: e.timestamp } : null\n}\n\nexport async function readActivity(root: string, limit = 50): Promise<ActivityEvent[]> {\n try {\n const raw = await fs.readFile(path.join(root, ACTIVITY_FILE), 'utf8')\n const events: ActivityEvent[] = JSON.parse(raw)\n return events.slice(0, limit)\n } catch {\n return []\n }\n}\n\nexport async function logSessionStart(root: string, actor: 'ai' | 'human' = 'ai'): Promise<void> {\n await appendActivity(root, { type: 'session_start', actor, title: 'Session started', detail: 'Agent connected' })\n}\n\n// ─── Status summary ───────────────────────────────────────────────────────────\n\n// ─── Doc operations (append, rename, delete) ──────────────────────────────────\n\nexport async function appendDoc(docPath: string, content: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n let existing: string\n try {\n existing = await fs.readFile(fullPath, 'utf8')\n } catch {\n throw new Error(`Doc not found: ${docPath}`)\n }\n await fs.writeFile(fullPath, existing.trimEnd() + '\\n\\n' + content, 'utf8')\n}\n\nexport async function renameDoc(oldPath: string, newPath: string, root: string): Promise<void> {\n const resolvedRoot = path.resolve(root)\n const fullOld = path.resolve(root, oldPath)\n const fullNew = path.resolve(root, newPath)\n if (!fullOld.startsWith(resolvedRoot + path.sep) && fullOld !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n if (!fullNew.startsWith(resolvedRoot + path.sep) && fullNew !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n // fs.rename silently replaces an existing file\n if (fullNew !== fullOld && await fs.access(fullNew).then(() => true, () => false)) {\n throw new Error(`A file already exists at ${newPath}`)\n }\n await fs.mkdir(path.dirname(fullNew), { recursive: true })\n try {\n await fs.rename(fullOld, fullNew)\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === 'EXDEV') {\n await fs.copyFile(fullOld, fullNew)\n await fs.unlink(fullOld)\n } else throw e\n }\n await appendActivity(root, { type: 'doc_renamed', actor: 'human', title: `Renamed ${oldPath} → ${newPath}` })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n}\n\n/** Returns the removed content, so the client can offer Undo (re-create via createDoc). */\nexport async function deleteDoc(docPath: string, root: string): Promise<string> {\n const resolvedRoot = path.resolve(root)\n const fullPath = path.resolve(root, docPath)\n if (!fullPath.startsWith(resolvedRoot + path.sep) && fullPath !== resolvedRoot) {\n throw new Error('Path outside root')\n }\n const content = await fs.readFile(fullPath, 'utf8')\n await fs.unlink(fullPath)\n await appendActivity(root, { type: 'doc_deleted', actor: 'human', title: `Deleted ${docPath}` })\n try { const { exists } = await readRegistry(root); if (exists) await rebuildRegistry(root) } catch {}\n return content\n}\n\n// ─── Document Registry ────────────────────────────────────────────────────────\n\nconst REGISTRY_PATH = 'docs/REGISTRY.md'\nconst ANNOTATIONS_START = '<!-- REGISTRY_ANNOTATIONS_START -->'\nconst ANNOTATIONS_END = '<!-- REGISTRY_ANNOTATIONS_END -->'\n\nfunction buildDocTree(files: string[]): string {\n // Build a map of directories and files\n const tree: Map<string, string[]> = new Map()\n for (const f of files) {\n const dir = path.dirname(f)\n if (!tree.has(dir)) tree.set(dir, [])\n tree.get(dir)!.push(path.basename(f))\n }\n\n const lines: string[] = []\n const dirs = Array.from(tree.keys()).sort()\n\n // Build indented tree\n const rendered = new Set<string>()\n function renderDir(dir: string, indent: number) {\n if (rendered.has(dir)) return\n rendered.add(dir)\n const prefix = ' '.repeat(indent)\n if (dir !== '.') {\n const parts = dir.split('/')\n lines.push(`${prefix}${parts[parts.length - 1]}/`)\n }\n const childIndent = dir === '.' ? 0 : indent + 1\n const childPrefix = ' '.repeat(childIndent)\n // Files directly in this dir\n const dirFiles = tree.get(dir) || []\n for (const f of dirFiles.sort()) {\n lines.push(`${childPrefix}${f}`)\n }\n // Subdirs\n for (const d of dirs) {\n if (d !== dir && path.dirname(d) === dir) {\n renderDir(d, childIndent)\n }\n }\n }\n\n renderDir('.', 0)\n return lines.join('\\n')\n}\n\nfunction parseAnnotations(content: string): Map<string, { description: string; keywords: string }> {\n const map = new Map<string, { description: string; keywords: string }>()\n const start = content.indexOf(ANNOTATIONS_START)\n const end = content.indexOf(ANNOTATIONS_END)\n if (start === -1 || end === -1) return map\n\n const section = content.slice(start + ANNOTATIONS_START.length, end)\n const rows = section.split('\\n').filter(l => l.startsWith('|') && !l.includes('---') && !l.includes('Path'))\n for (const row of rows) {\n const cols = row.split('|').map(c => c.trim()).filter(Boolean)\n if (cols.length >= 3) {\n map.set(cols[0], { description: cols[1], keywords: cols[2] })\n }\n }\n return map\n}\n\nexport async function readRegistry(root: string): Promise<{ content: string; exists: boolean }> {\n try {\n const content = await fs.readFile(path.join(root, REGISTRY_PATH), 'utf8')\n return { content, exists: true }\n } catch {\n return { content: '*(No REGISTRY.md found — call vibedoc_rebuild_registry to generate it)*', exists: false }\n }\n}\n\nexport async function rebuildRegistry(root: string, actor: 'ai' | 'human' = 'human'): Promise<{ path: string; totalFiles: number }> {\n const docs = await listDocs(root)\n const files = docs.map(d => d.path)\n\n // Parse existing annotations\n let existing = ''\n try {\n existing = await fs.readFile(path.join(root, REGISTRY_PATH), 'utf8')\n } catch {}\n const savedAnnotations = parseAnnotations(existing)\n\n // Build tree\n const tree = buildDocTree(files)\n\n // Build annotations table — preserve existing, stub new files\n const rows: string[] = []\n for (const f of files) {\n const saved = savedAnnotations.get(f)\n rows.push(`| ${f} | ${saved?.description ?? ''} | ${saved?.keywords ?? ''} |`)\n }\n\n const now = new Date().toISOString()\n const content = [\n `# Document Registry`,\n `**Generated:** ${now} **Total:** ${files.length} files`,\n ``,\n `> Edit the Annotations table — it survives rebuilds.`,\n `> Run \\`vibedoc_rebuild_registry\\` after adding/removing docs.`,\n ``,\n `## File Tree`,\n `\\`\\`\\``,\n tree,\n `\\`\\`\\``,\n ``,\n `## Annotations`,\n ``,\n ANNOTATIONS_START,\n `| Path | Description | Keywords |`,\n `|------|-------------|----------|`,\n ...rows,\n ANNOTATIONS_END,\n ``,\n ].join('\\n')\n\n await writeDoc(REGISTRY_PATH, content, root)\n await appendActivity(root, {\n type: 'registry_rebuilt',\n actor,\n title: 'Document registry rebuilt',\n detail: `${files.length} files indexed`,\n })\n\n return { path: REGISTRY_PATH, totalFiles: files.length }\n}\n\nexport async function updateRegistryAnnotation(\n docPath: string, description: string, keywords: string, root: string\n): Promise<void> {\n const { content, exists } = await readRegistry(root)\n if (!exists) throw new Error('Registry not found — call vibedoc_rebuild_registry first')\n\n const annotations = parseAnnotations(content)\n annotations.set(docPath, { description, keywords })\n\n // Rebuild the annotations block with updated data\n const start = content.indexOf(ANNOTATIONS_START)\n const end = content.indexOf(ANNOTATIONS_END)\n if (start === -1 || end === -1) throw new Error('Registry format invalid — rebuild first')\n\n const rows = Array.from(annotations.entries())\n .map(([p, a]) => `| ${p} | ${a.description} | ${a.keywords} |`)\n\n const newAnnotationsBlock = [\n ANNOTATIONS_START,\n `| Path | Description | Keywords |`,\n `|------|-------------|----------|`,\n ...rows,\n ANNOTATIONS_END,\n ].join('\\n')\n\n const newContent = content.slice(0, start) + newAnnotationsBlock + content.slice(end + ANNOTATIONS_END.length)\n await writeDoc(REGISTRY_PATH, newContent, root)\n}\n\n// ─── Backlinks ─────────────────────────────────────────────────────────────────\n\nexport async function findBacklinks(\n targetPath: string,\n root: string\n): Promise<{ file: string; line: number; text: string }[]> {\n const files = await glob('**/*.md', {\n cwd: root,\n ignore: ['node_modules/**', '.git/**', '.next/**'],\n nodir: true,\n })\n const normalTarget = targetPath.replace(/\\\\/g, '/')\n const basename = path.basename(normalTarget)\n const results: { file: string; line: number; text: string }[] = []\n\n for (const f of files) {\n if (f.replace(/\\\\/g, '/') === normalTarget) continue\n try {\n const content = await fs.readFile(path.join(root, f), 'utf8')\n const lines = content.split('\\n')\n lines.forEach((line, i) => {\n if (/\\[.*\\]\\(.*\\)/.test(line) &&\n (line.includes(basename) || line.includes(normalTarget))) {\n results.push({ file: f, line: i + 1, text: line.trim().slice(0, 120) })\n }\n })\n } catch { /* skip unreadable */ }\n }\n return results\n}\n\n/**\n * The memory link graph (R053), built on request from the files: every entry, plus the tasks, roadmap items,\n * ADRs and docs an entry mentions or that mention an entry id. Pure resolution in src/lib/memory-graph.ts.\n */\nexport async function getMemoryGraph(root: string): Promise<MemoryGraph> {\n // ponytail: reads every .md on each call, like findBacklinks; cache by mtime if big repos make it slow\n const [entries, files] = await Promise.all([\n listEntries(root),\n glob('**/*.md', { cwd: root, ignore: ['node_modules/**', '.git/**', '.next/**', 'memory/entries/**'], nodir: true }),\n ])\n const others = await Promise.all(files.map(async (f): Promise<GraphItem | null> => {\n try {\n const raw = await fs.readFile(path.join(root, f), 'utf8')\n return { ...fileNode(f, raw), text: raw }\n } catch (e) {\n console.warn(`memory graph: skipped ${f}`, e)\n return null\n }\n }))\n return buildGraph(\n entries.map(e => ({ id: e.id, kind: 'entry', label: e.summary, path: e.file.replace(/\\\\/g, '/'), text: `${e.summary}\\n${e.body}` })),\n others.filter((o): o is GraphItem => !!o),\n )\n}\n\n// ─── Status summary ───────────────────────────────────────────────────────────\n\nexport async function getProjectSummary(root: string) {\n const [{ tasks, board }, docs, memory, activity] = await Promise.all([\n listTasks(root),\n listDocs(root),\n readMemory(root),\n readActivity(root, 10),\n ])\n\n return {\n root,\n name: path.basename(root),\n tasks: {\n total: tasks.length,\n board: { todo: board.todo.length, 'in-progress': board['in-progress'].length, review: board.review.length, blocked: board.blocked.length, done: board.done.length, cancelled: board.cancelled.length },\n active: board['in-progress'],\n blocked: board.blocked,\n },\n docs: { total: docs.length },\n memory,\n activity,\n }\n}\n\n\n// ─── Roadmap ──────────────────────────────────────────────────────────────────\n// Items: plans/roadmap/R*.md (content + Parent/Status/Order/Tasks).\n// Positions: plans/roadmap/layout.json (presentation only, never in R*.md).\n\nexport type RoadmapStatus = 'planned' | 'in-progress' | 'paused' | 'done'\n\nexport interface RoadmapItem {\n id: string // \"R004\"\n title: string\n parent: string | null // null = horizon on the spine\n status: RoadmapStatus\n order: number\n tasks: string[] // [\"T001\", \"T012\"]\n due: string | null // \"2026-10-15\" — a calendar date, not an instant; compare as strings\n owner: string | null // \"human\" | \"ai:<agent>\" (R055)\n body: string // markdown after the metadata block\n file: string // path relative to root\n}\n\nexport type RoadmapLayout = Record<string, { x: number; y: number }>\n\nexport interface CreateRoadmapItemParams {\n title: string\n parent?: string | null\n status?: RoadmapStatus\n order?: number\n tasks?: string[]\n due?: string | null\n owner?: string | null\n body?: string\n}\n\nexport type UpdateRoadmapItemPatch = Partial<Omit<CreateRoadmapItemParams, 'title'> & { title: string }>\n\n\n/** Validation / not-found error from the roadmap API. `status` maps straight to an HTTP code. */\nexport class RoadmapError extends Error {\n constructor(message: string, public status: 400 | 404 = 400) {\n super(message)\n this.name = 'RoadmapError'\n }\n}\n\nconst ROADMAP_DIR = path.join('plans', 'roadmap')\nconst ROADMAP_LAYOUT = path.join(ROADMAP_DIR, 'layout.json')\nconst ROADMAP_STATUSES: RoadmapStatus[] = ['planned', 'in-progress', 'paused', 'done']\nconst META_LINE = /^\\*\\*([^*]+):\\*\\*/\n\nfunction normalizeRoadmapId(id: unknown): string {\n const s = String(id ?? '').trim().toUpperCase()\n if (!/^R\\d+$/.test(s)) throw new RoadmapError(`Invalid roadmap id: ${String(id)}`)\n return s\n}\n\nfunction roadmapIdOf(file: string): string | null {\n const m = path.basename(file).match(/^(R\\d+)(?:-|\\.md$)/i)\n return m ? m[1].toUpperCase() : null\n}\n\nfunction parseRoadmapStatus(raw: unknown): RoadmapStatus {\n const t = String(raw ?? '').toLowerCase().trim().replace(/\\s+/g, '-')\n const s = t === 'on-hold' ? 'paused' : t\n if (!ROADMAP_STATUSES.includes(s as RoadmapStatus)) {\n throw new RoadmapError(`Invalid status \"${String(raw)}\" (expected ${ROADMAP_STATUSES.join(' | ')})`)\n }\n return s as RoadmapStatus\n}\n\nfunction parseTaskIds(tasks: unknown): string[] {\n if (!Array.isArray(tasks)) throw new RoadmapError('tasks must be an array of task ids')\n return tasks.map(t => {\n const s = String(t).trim().toUpperCase()\n if (!/^T\\d+$/.test(s)) throw new RoadmapError(`Invalid task id: ${String(t)}`)\n return s\n })\n}\n\nfunction cleanTitle(title: unknown): string {\n const t = String(title ?? '').replace(/\\s+/g, ' ').trim()\n if (!t) throw new RoadmapError('Title is required')\n return t\n}\n\n/** A real calendar date \"YYYY-MM-DD\" (rejects 2026-02-30), else null. */\nfunction parseDue(raw: string): string | null {\n const m = raw.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/)\n if (!m) return null\n const d = new Date(Date.UTC(+m[1], +m[2] - 1, +m[3]))\n return d.toISOString().slice(0, 10) === raw ? raw : null\n}\n\nfunction cleanDue(due: unknown): string | null {\n if (due === null || due === '') return null\n const d = typeof due === 'string' ? parseDue(due.trim()) : null\n if (!d) throw new RoadmapError(`due must be a date YYYY-MM-DD (got ${JSON.stringify(due)})`)\n return d\n}\n\nfunction cleanOrder(order: unknown): number {\n const n = Number(order)\n if (typeof order !== 'number' || !Number.isFinite(n)) throw new RoadmapError('order must be a finite number')\n return n\n}\n\n/** Index of the first line after the H1 + contiguous `**Key:** Value` block. */\nfunction roadmapMetaEnd(lines: string[]): number {\n let i = lines.findIndex(l => l.startsWith('# '))\n i = i < 0 ? 0 : i + 1\n // Tolerate blank lines between the H1 and the meta block (common in hand-written files).\n let j = i\n while (j < lines.length && lines[j].trim() === '') j++\n if (j < lines.length && META_LINE.test(lines[j])) i = j\n while (i < lines.length && META_LINE.test(lines[i])) i++\n return i\n}\n\nfunction parseRoadmapFile(file: string, content: string): RoadmapItem {\n const lines = content.split('\\n')\n const titleLine = lines.find(l => l.startsWith('# '))\n const id = roadmapIdOf(file) ?? path.basename(file, '.md').toUpperCase()\n const title = (titleLine || '').replace(/^#+\\s*/, '').replace(/^R\\d+:\\s*/i, '').trim() || id\n\n // Only the head block counts, so a `**Status:**` inside the body can't override the item's meta.\n const metaEnd = roadmapMetaEnd(lines)\n const meta: Record<string, string> = {}\n for (const line of lines.slice(0, Math.min(metaEnd, 30))) {\n const m = line.match(/\\*\\*([^*]+):\\*\\*\\s*(.+)/)\n if (m) meta[m[1].toLowerCase().trim()] = m[2].trim()\n }\n\n const rawParent = (meta['parent'] || '').toUpperCase()\n let status: RoadmapStatus = 'planned'\n try { status = parseRoadmapStatus((meta['status'] || '').replace(/[^a-z\\s-]/gi, '')) } catch {}\n const order = parseFloat(meta['order'] || '')\n\n return {\n id,\n title,\n parent: /^R\\d+$/.test(rawParent) ? rawParent : null,\n status,\n order: Number.isFinite(order) ? order : 0,\n tasks: (meta['tasks'] || '').split(/[,\\s]+/).map(t => t.toUpperCase()).filter(t => /^T\\d+$/.test(t)),\n due: parseDue(meta['due'] || ''),\n owner: parseOwner(meta['owner']),\n body: lines.slice(metaEnd).join('\\n').trim(),\n file,\n }\n}\n\nasync function readRoadmapFiles(root: string): Promise<{ item: RoadmapItem; raw: string }[]> {\n const files = await glob('plans/roadmap/R*.md', { cwd: root, nodir: true })\n const out: { item: RoadmapItem; raw: string }[] = []\n for (const f of files) {\n if (!roadmapIdOf(f)) continue\n try {\n const raw = await fs.readFile(path.join(root, f), 'utf8')\n out.push({ item: parseRoadmapFile(f, raw), raw })\n } catch {}\n }\n return out\n}\n\nasync function findRoadmapFile(id: string, root: string): Promise<{ item: RoadmapItem; raw: string }> {\n const rid = normalizeRoadmapId(id)\n const matches = (await glob(`plans/roadmap/${rid}*.md`, { cwd: root, nodir: true }))\n .filter(f => roadmapIdOf(f) === rid)\n .sort()\n if (matches.length === 0) throw new RoadmapError(`Roadmap item not found: ${rid}`, 404)\n const raw = await fs.readFile(path.join(root, matches[0]), 'utf8')\n return { item: parseRoadmapFile(matches[0], raw), raw }\n}\n\nfunction sortRoadmap(items: RoadmapItem[]): RoadmapItem[] {\n const num = (id: string) => parseInt(id.slice(1), 10)\n return items.sort((a, b) => a.order - b.order || num(a.id) - num(b.id))\n}\n\n/** A parent must be an existing horizon (parent null) and not the item itself. */\nfunction validateParent(parent: string, selfId: string | null, items: RoadmapItem[]): void {\n if (parent === selfId) throw new RoadmapError('An item cannot be its own parent')\n const p = items.find(i => i.id === parent)\n if (!p) throw new RoadmapError(`Parent not found: ${parent}`)\n if (p.parent !== null) throw new RoadmapError(`Parent ${parent} is not a horizon (max depth is 2)`)\n}\n\nfunction cleanBody(body: unknown): string {\n if (typeof body !== 'string') throw new RoadmapError('body must be a string')\n return body.trim()\n}\n\n// ponytail: in-process mutex serialising all roadmap writes (id allocation, layout merge).\n// Doesn't cover a second VibeDoc process on the same root; add a lockfile if that ever matters.\nlet roadmapLock: Promise<unknown> = Promise.resolve()\nfunction withRoadmapLock<T>(fn: () => Promise<T>): Promise<T> {\n const run = roadmapLock.then(fn, fn)\n roadmapLock = run.catch(() => {})\n return run\n}\n\nfunction formatTasks(tasks: string[]): string {\n return tasks.length > 0 ? tasks.join(', ') : '—'\n}\n\nexport async function listRoadmap(root: string): Promise<{ items: RoadmapItem[]; layout: RoadmapLayout }> {\n const [files, layout] = await Promise.all([readRoadmapFiles(root), readRoadmapLayout(root)])\n return { items: sortRoadmap(files.map(f => f.item)), layout }\n}\n\nexport async function getRoadmapItem(id: string, root: string): Promise<RoadmapItem> {\n return (await findRoadmapFile(id, root)).item\n}\n\nexport function createRoadmapItem(\n params: CreateRoadmapItemParams, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(() => createRoadmapItemUnlocked(params ?? ({} as CreateRoadmapItemParams), root, actor))\n}\n\nconst roadmapId = (n: number) => `R${String(n).padStart(3, '0')}`\n\n/** Write a new R*.md (flag 'wx': never overwrites). Callers validate fields and mkdir first. */\nasync function writeRoadmapFile(root: string, f: Omit<RoadmapItem, 'file' | 'owner'>): Promise<void> {\n const slug = f.title.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40)\n const filename = slug ? `${f.id}-${slug}.md` : `${f.id}.md`\n const lines = [\n `# ${f.id}: ${f.title}`,\n ...(f.parent ? [`**Parent:** ${f.parent}`] : []),\n `**Status:** ${f.status}`,\n `**Order:** ${f.order}`,\n `**Tasks:** ${formatTasks(f.tasks)}`,\n ...(f.due ? [`**Due:** ${f.due}`] : []),\n '',\n ]\n const content = lines.join('\\n') + (f.body ? `\\n${f.body}\\n` : '')\n await fs.writeFile(path.join(root, ROADMAP_DIR, filename), content, { flag: 'wx', encoding: 'utf8' })\n}\n\n/** Where \"Generate roadmap\" would take its content from: ROADMAP.md, then tasks, then a starter. */\nexport async function detectRoadmapSource(root: string): Promise<RoadmapSource> {\n return (await roadmapDrafts(root)).source\n}\n\nasync function roadmapDrafts(root: string): Promise<{ source: RoadmapSource; drafts: RoadmapDraft[] }> {\n try {\n const drafts = roadmapFromMarkdown(await fs.readFile(path.join(root, 'ROADMAP.md'), 'utf8'))\n if (drafts.length > 0) return { source: 'roadmap-md', drafts }\n } catch {\n // no ROADMAP.md — fall through\n }\n const { tasks } = await listTasks(root)\n const fromTasks = roadmapFromTasks(tasks)\n if (fromTasks.length > 0) return { source: 'tasks', drafts: fromTasks }\n return { source: 'starter', drafts: starterRoadmap() }\n}\n\n/**\n * Build plans/roadmap/ for a project that has none. Never touches ROADMAP.md or tasks.\n * Refuses when any R*.md exists. One activity entry for the whole generation.\n */\nexport function generateRoadmap(\n root: string, actor: 'ai' | 'human' = 'human'\n): Promise<{ items: RoadmapItem[]; source: RoadmapSource }> {\n return withRoadmapLock(async () => {\n if ((await readRoadmapFiles(root)).length > 0) throw new RoadmapError('Roadmap already exists')\n const { source, drafts } = await roadmapDrafts(root)\n\n const ids = new Map(drafts.map((d, i) => [d.key, roadmapId(i + 1)]))\n const siblingCount = new Map<string | null, number>()\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n for (const d of drafts) {\n const n = (siblingCount.get(d.parent) ?? 0) + 1\n siblingCount.set(d.parent, n)\n await writeRoadmapFile(root, {\n id: ids.get(d.key) as string,\n title: d.title,\n parent: d.parent === null ? null : (ids.get(d.parent) ?? null),\n status: d.status,\n order: n * 10,\n tasks: d.tasks,\n due: null,\n body: d.body,\n })\n }\n\n await appendActivity(root, {\n type: 'roadmap_updated', actor,\n title: `Roadmap generated (${drafts.length} items)`,\n detail: `from ${source}`,\n })\n const { items } = await listRoadmap(root)\n return { items, source }\n })\n}\n\nasync function createRoadmapItemUnlocked(\n params: CreateRoadmapItemParams, root: string, actor: 'ai' | 'human'\n): Promise<RoadmapItem> {\n const title = cleanTitle(params.title)\n const status = params.status === undefined ? 'planned' : parseRoadmapStatus(params.status)\n const tasks = params.tasks === undefined ? [] : parseTaskIds(params.tasks)\n const body = params.body === undefined ? '' : cleanBody(params.body)\n const due = params.due === undefined ? null : cleanDue(params.due)\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n\n const parent = params.parent == null || params.parent === '' ? null : normalizeRoadmapId(params.parent)\n if (parent) validateParent(parent, null, items)\n\n const siblingOrders = items.filter(i => i.parent === parent).map(i => i.order)\n const order = params.order === undefined\n ? (siblingOrders.length > 0 ? Math.max(...siblingOrders) : 0) + 10\n : cleanOrder(params.order)\n\n const nums = items.map(i => parseInt(i.id.slice(1), 10)).filter(n => !isNaN(n))\n const id = roadmapId(nums.length > 0 ? Math.max(...nums) + 1 : 1)\n\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await writeRoadmapFile(root, { id, title, parent, status, order, tasks, due, body })\n\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${id} created`, detail: title })\n return getRoadmapItem(id, root)\n}\n\nexport function updateRoadmapItem(\n id: string, patch: UpdateRoadmapItemPatch, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(() => updateRoadmapItemUnlocked(id, patch, root, actor))\n}\n\nasync function updateRoadmapItemUnlocked(\n id: string, patch: UpdateRoadmapItemPatch, root: string, actor: 'ai' | 'human'\n): Promise<RoadmapItem> {\n const { item, raw } = await findRoadmapFile(id, root)\n const p = patch ?? {}\n\n // Validate everything before touching the file.\n const title = p.title === undefined ? undefined : cleanTitle(p.title)\n const status = p.status === undefined ? undefined : parseRoadmapStatus(p.status)\n const order = p.order === undefined ? undefined : cleanOrder(p.order)\n const tasks = p.tasks === undefined ? undefined : parseTaskIds(p.tasks)\n const body = p.body === undefined ? undefined : cleanBody(p.body)\n const due = p.due === undefined ? undefined : cleanDue(p.due)\n let owner: string | null | undefined\n if (p.owner !== undefined) {\n owner = p.owner === null || p.owner === '' ? null : parseOwner(p.owner)\n if (p.owner && !owner) throw new RoadmapError(`owner must be \"human\" or \"ai:<agent>\" (got ${JSON.stringify(p.owner)})`)\n }\n let parent: string | null | undefined\n if (p.parent !== undefined) {\n parent = p.parent === null || p.parent === '' ? null : normalizeRoadmapId(p.parent)\n if (parent !== null) {\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n validateParent(parent, item.id, items)\n if (items.some(i => i.parent === item.id)) {\n throw new RoadmapError(`${item.id} has children and cannot be given a parent`)\n }\n }\n }\n\n const lines = raw.split('\\n')\n if (title !== undefined) {\n const h1 = lines.findIndex(l => l.startsWith('# '))\n if (h1 >= 0) lines[h1] = `# ${item.id}: ${title}`\n else lines.unshift(`# ${item.id}: ${title}`)\n }\n\n const end = roadmapMetaEnd(lines)\n const head = lines.slice(0, end)\n let rest = lines.slice(end)\n\n // Replace-or-insert (or remove, for value null) a meta line inside the head block only.\n const setMeta = (key: string, value: string | null) => {\n const idx = head.findIndex(l => l.match(META_LINE)?.[1].trim().toLowerCase() === key.toLowerCase())\n if (value === null) { if (idx >= 0) head.splice(idx, 1); return }\n const line = `**${key}:** ${value}`\n if (idx >= 0) head[idx] = line\n else head.push(line)\n }\n\n if (parent !== undefined) setMeta('Parent', parent)\n if (status !== undefined) setMeta('Status', status)\n if (order !== undefined) setMeta('Order', String(order))\n if (tasks !== undefined) setMeta('Tasks', formatTasks(tasks))\n if (due !== undefined) setMeta('Due', due)\n if (owner !== undefined) setMeta('Owner', owner)\n if (body !== undefined) {\n rest = body ? ['', body, ''] : ['']\n }\n\n await fs.writeFile(path.join(root, item.file), [...head, ...rest].join('\\n'), 'utf8')\n const updated = await getRoadmapItem(item.id, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${item.id} updated`, detail: updated.title })\n return updated\n}\n\nexport interface DeletedRoadmapItem { item: RoadmapItem; raw: string; position: { x: number; y: number } | null }\n\nexport function deleteRoadmapItem(id: string, root: string, actor: 'ai' | 'human' = 'human'): Promise<DeletedRoadmapItem> {\n return withRoadmapLock(() => deleteRoadmapItemUnlocked(id, root, actor))\n}\n\nasync function deleteRoadmapItemUnlocked(id: string, root: string, actor: 'ai' | 'human'): Promise<DeletedRoadmapItem> {\n const { item, raw } = await findRoadmapFile(id, root)\n const position = (await readRoadmapLayout(root))[item.id] ?? null\n const items = (await readRoadmapFiles(root)).map(f => f.item)\n const children = items.filter(i => i.parent === item.id).map(i => i.id)\n if (children.length > 0) {\n throw new RoadmapError(`${item.id} still has children (${children.join(', ')}); move or delete them first`)\n }\n await fs.unlink(path.join(root, item.file))\n // Prune now so a later create reusing this id doesn't inherit the old position.\n await writeRoadmapLayoutUnlocked({}, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${item.id} deleted`, detail: item.title })\n return { item, raw, position }\n}\n\n/** Undo for deleteRoadmapItem: write the file back byte-for-byte (never over an existing id) and its position. */\nexport function restoreRoadmapItem(\n file: unknown, raw: unknown, position: unknown, root: string, actor: 'ai' | 'human' = 'human'\n): Promise<RoadmapItem> {\n return withRoadmapLock(async () => {\n if (!isFileIn(file, ROADMAP_DIR, /^R\\d+[^/]*\\.md$/) || typeof raw !== 'string') throw new RoadmapError('Invalid roadmap item to restore')\n const id = roadmapIdOf(file)\n if (!id) throw new RoadmapError('Invalid roadmap item to restore')\n if (await findRoadmapFile(id, root).then(() => true, () => false)) throw new RoadmapError(`${id} already exists`)\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await fs.writeFile(path.join(root, file), raw, { flag: 'wx', encoding: 'utf8' })\n if (position) await writeRoadmapLayoutUnlocked({ [id]: position as { x: number; y: number } }, root)\n await appendActivity(root, { type: 'roadmap_updated', actor, title: `${id} restored` })\n return (await findRoadmapFile(id, root)).item\n })\n}\n\nexport async function readRoadmapLayout(root: string): Promise<RoadmapLayout> {\n try {\n const parsed = JSON.parse(await fs.readFile(path.join(root, ROADMAP_LAYOUT), 'utf8'))\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return {}\n const out: RoadmapLayout = {}\n for (const [k, v] of Object.entries(parsed as Record<string, { x?: unknown; y?: unknown }>)) {\n if (v && Number.isFinite(v.x) && Number.isFinite(v.y)) out[k] = { x: v.x as number, y: v.y as number }\n }\n return out\n } catch {\n return {}\n }\n}\n\n/** Merge `positions` into layout.json and drop ids with no matching R*.md. Returns the saved layout. */\nexport function writeRoadmapLayout(positions: RoadmapLayout, root: string): Promise<RoadmapLayout> {\n return withRoadmapLock(() => writeRoadmapLayoutUnlocked(positions, root))\n}\n\nasync function writeRoadmapLayoutUnlocked(positions: RoadmapLayout, root: string): Promise<RoadmapLayout> {\n const clean: RoadmapLayout = {}\n for (const [k, v] of Object.entries(positions ?? {})) {\n const key = k.trim().toUpperCase()\n const ok = /^R\\d+$/.test(key) && v && typeof v === 'object'\n && typeof v.x === 'number' && typeof v.y === 'number' && Number.isFinite(v.x) && Number.isFinite(v.y)\n if (!ok) throw new RoadmapError(`Invalid position for ${k}`)\n clean[key] = { x: v.x, y: v.y }\n }\n const merged = { ...(await readRoadmapLayout(root)), ...clean }\n\n const existing = new Set((await readRoadmapFiles(root)).map(f => f.item.id))\n const layout: RoadmapLayout = {}\n for (const key of Object.keys(merged).sort()) {\n if (existing.has(key)) layout[key] = merged[key]\n }\n\n await fs.mkdir(path.join(root, ROADMAP_DIR), { recursive: true })\n await fs.writeFile(path.join(root, ROADMAP_LAYOUT), JSON.stringify(layout, null, 2) + '\\n', 'utf8')\n return layout\n}\n\n// ─── Planning skills ──────────────────────────────────────────────────────────\n\nconst PLANNING_SKILLS = { roadmap: 'roadmap-planner', breakdown: 'epic-breakdown' } as const\nexport type PlanningKind = keyof typeof PLANNING_SKILLS\n\n/** Bundled skill body (frontmatter stripped). Read from the VibeDoc package (cwd), not the target project. */\nexport async function readPlanningSkill(kind: PlanningKind): Promise<string> {\n if (!Object.hasOwn(PLANNING_SKILLS, kind)) throw new Error(`Unknown planning kind \"${kind}\" (expected: ${Object.keys(PLANNING_SKILLS).join(', ')})`)\n const text = await fs.readFile(path.join(process.cwd(), 'skills', PLANNING_SKILLS[kind], 'SKILL.md'), 'utf-8')\n return text.replace(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n/, '').trimStart()\n}\n\n// ─── Agent chats (.vibedoc/chats/<id>.json) ───────────────────────────────────\n// The browser owns the chat shape (src/lib/chats.ts); core only stores it by id.\n\nconst CHATS_DIR = path.join('.vibedoc', 'chats')\nconst CHAT_ID = /^[a-z0-9-]{1,64}$/\n\nfunction chatFile(id: string, root: string): string {\n if (!CHAT_ID.test(id)) throw new Error(`Invalid chat id \"${id}\"`)\n return path.join(root, CHATS_DIR, `${id}.json`)\n}\n\n/** Every saved chat, unparsed beyond JSON. Unreadable files are skipped (logged). */\nexport async function listChats(root: string): Promise<unknown[]> {\n const dir = path.join(root, CHATS_DIR)\n const files = await fs.readdir(dir).catch(() => [] as string[])\n // ponytail: reads every chat file on load; add a limit/index if projects collect hundreds of chats\n const chats = await Promise.all(files.filter(f => f.endsWith('.json')).map(async f => {\n try {\n return JSON.parse(await fs.readFile(path.join(dir, f), 'utf-8')) as unknown\n } catch (e) {\n console.warn(`[vibedoc] skipping unreadable chat ${f}: ${(e as Error).message}`)\n return null\n }\n }))\n return chats.filter(c => c !== null)\n}\n\nexport async function saveChat(chat: unknown, root: string): Promise<void> {\n const id = (chat as { id?: unknown } | null)?.id\n if (typeof id !== 'string') throw new Error('chat.id is required')\n const file = chatFile(id, root)\n await fs.mkdir(path.dirname(file), { recursive: true })\n // Write-then-rename so a crash mid-write never leaves half a JSON file\n const tmp = `${file}.tmp`\n await fs.writeFile(tmp, JSON.stringify(chat), 'utf-8')\n await fs.rename(tmp, file)\n}\n\nexport async function deleteChat(id: string, root: string): Promise<void> {\n await fs.rm(chatFile(id, root), { force: true })\n}\n\n// ─── Saved board views (.vibedoc/views.json) ─────────────────────────────────\n\nconst VIEWS_FILE = path.join('.vibedoc', 'views.json')\n\n/** null when the file is missing or unreadable (caller falls back to the built-ins). */\nexport async function readViews(root: string): Promise<SavedView[] | null> {\n let raw: string\n try {\n raw = await fs.readFile(path.join(root, VIEWS_FILE), 'utf-8')\n } catch {\n return null\n }\n try {\n const views = (JSON.parse(raw) as { views?: unknown })?.views\n if (!Array.isArray(views)) throw new Error('\"views\" is not an array')\n return views as SavedView[]\n } catch (e) {\n console.warn(`[vibedoc] ignoring unreadable ${VIEWS_FILE}: ${(e as Error).message}`)\n return null\n }\n}\n\nexport async function saveViews(views: SavedView[], root: string): Promise<void> {\n const file = path.join(root, VIEWS_FILE)\n await fs.mkdir(path.dirname(file), { recursive: true })\n // Write-then-rename so a crash mid-write never leaves half a JSON file\n const tmp = `${file}.tmp`\n await fs.writeFile(tmp, JSON.stringify({ views }, null, 2) + '\\n', 'utf-8')\n await fs.rename(tmp, file)\n}\n","// Pure knowledge-entry parsing and formatting (R046, no fs). Self-check: node src/lib/entries.check.mts\n// One long-lived fact per file: memory/entries/E001-<slug>.md\n\nexport const ENTRY_TYPES = ['convention', 'gotcha', 'decision', 'preference'] as const\nexport type EntryType = typeof ENTRY_TYPES[number]\n\n/**\n * updatedAt = the `**Updated:**` date (YYYY-MM-DD); by = `**By:**` who saved it last (\"human\" | \"ai:<agent>\",\n * null in files from before R047); file = path relative to root.\n */\nexport type Entry = { id: string; type: EntryType; summary: string; body: string; updatedAt: string; by: string | null; file: string }\nexport type EntryInput = { id?: string; type: string; summary: string; body?: string }\n\nexport const SUMMARY_MAX = 120\n\nconst isEntryType = (s: string): s is EntryType => (ENTRY_TYPES as readonly string[]).includes(s)\n\n/** \"e1\" / \"E01\" / \"E001\" → \"E001\"; anything else → null. */\nexport function normalizeEntryId(s: string): string | null {\n const m = /^e(\\d+)$/i.exec(s.trim())\n if (!m) return null\n const n = Number(m[1])\n return n > 0 ? `E${String(n).padStart(3, '0')}` : null\n}\n\n/** One past the highest id: [] → \"E001\"; [\"E001\",\"E007\"] → \"E008\". */\nexport function nextEntryId(ids: string[]): string {\n const max = Math.max(0, ...ids.map(id => Number(normalizeEntryId(id)?.slice(1) ?? 0)))\n return `E${String(max + 1).padStart(3, '0')}`\n}\n\nexport function entrySlug(summary: string): string {\n return summary.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40).replace(/-$/, '')\n}\n\n/** null when the `# E001: summary` H1 or a known `**Type:**` is missing. */\nexport function parseEntry(raw: string, file: string): Entry | null {\n const lines = raw.replace(/\\r\\n/g, '\\n').split('\\n')\n const h1 = /^#\\s+(E\\d+):\\s*(.+?)\\s*$/i.exec(lines[0] ?? '')\n const id = h1 && normalizeEntryId(h1[1])\n if (!h1 || !id) return null\n // Contiguous **Key:** Value block under the H1, like task files\n const meta: Record<string, string> = {}\n let i = 1\n for (; i < lines.length; i++) {\n const m = /^\\*\\*(\\w+):\\*\\*\\s*(.*)$/.exec(lines[i])\n if (!m) break\n meta[m[1].toLowerCase()] = m[2].trim()\n }\n const type = meta.type ?? ''\n if (!isEntryType(type)) return null\n return { id, type, summary: h1[2], body: lines.slice(i).join('\\n').trim(), updatedAt: meta.updated ?? '', by: meta.by || null, file }\n}\n\nexport function formatEntry(e: Omit<Entry, 'file'>): string {\n const head = `# ${e.id}: ${e.summary}\\n**Type:** ${e.type}\\n**Updated:** ${e.updatedAt}\\n${e.by ? `**By:** ${e.by}\\n` : ''}`\n return e.body.trim() ? `${head}\\n${e.body.trim()}\\n` : head\n}\n\n/** Error message, or null when valid. Does not check whether an id exists. */\nexport function validateEntryInput(i: EntryInput): string | null {\n if (i.id !== undefined && !normalizeEntryId(String(i.id))) return `Invalid id \"${i.id}\": expected E followed by a number, e.g. E001`\n if (!isEntryType(String(i.type ?? ''))) return `Invalid type \"${i.type ?? ''}\": use one of ${ENTRY_TYPES.join(', ')}`\n const summary = String(i.summary ?? '').trim()\n if (!summary) return 'summary is required'\n if (/\\n/.test(summary)) return 'summary must be one line'\n if (summary.length > SUMMARY_MAX) return `summary is ${summary.length} characters; keep it to ${SUMMARY_MAX}`\n if (i.body !== undefined && typeof i.body !== 'string') return 'body must be a string'\n return null\n}\n","// Pure keyword recall over knowledge entries (R048, no fs). Self-check: node src/lib/recall.check.mts\n// Index first, bodies on request: agents get compact lines here and fetch bodies with vibedoc_get_entries.\n\nexport type RecallEntry = { id: string; type: string; summary: string; body: string; updatedAt: string }\nexport type RecallHit = { id: string; type: string; summary: string; tokens: number; score: number }\n\nconst STOPWORDS = new Set(('a an and are as at be but by can do does for from how i if in into is it its of on or ' +\n 'our so that the their then there these this to use used using was we what when where which who why will with you your').split(' '))\n\n/** Lowercase, split on non-alphanumerics, drop stopwords and 1-char tokens, naive plural strip (\"events\" → \"event\"). */\nexport function tokenize(s: string): string[] {\n return s.toLowerCase().split(/[^a-z0-9]+/)\n .filter(t => t.length > 1 && !STOPWORDS.has(t))\n // ponytail: plural strip only, no real stemmer; add one if recall misses obvious matches\n .map(t => (t.length > 3 && t.endsWith('s') && !t.endsWith('ss') ? t.slice(0, -1) : t))\n}\n\nexport function estimateTokens(s: string): number {\n return Math.ceil(s.length / 4)\n}\n\n/** Per query token: +3 in summary, +2 matches id or type, +1 in body. Score 0 dropped; ties → newest first. */\nexport function rankEntries(entries: RecallEntry[], query: string, opts: { type?: string; limit?: number } = {}): RecallHit[] {\n const q = [...new Set(tokenize(query))]\n if (!q.length) return []\n const hits: (RecallHit & { updatedAt: string })[] = []\n for (const e of entries) {\n if (opts.type && e.type !== opts.type) continue\n const summary = new Set(tokenize(e.summary))\n const body = new Set(tokenize(e.body))\n const idType = new Set([e.id.toLowerCase(), ...tokenize(e.type)])\n let score = 0\n for (const t of q) {\n if (summary.has(t)) score += 3\n if (idType.has(t)) score += 2\n if (body.has(t)) score += 1\n }\n if (score > 0) {\n hits.push({ id: e.id, type: e.type, summary: e.summary, tokens: estimateTokens(`${e.summary}\\n${e.body}`), score, updatedAt: e.updatedAt })\n }\n }\n hits.sort((a, b) => b.score - a.score || b.updatedAt.localeCompare(a.updatedAt))\n return hits.slice(0, opts.limit ?? 10).map(({ updatedAt: _, ...h }) => h)\n}\n\n/** \"E012 · convention · Only core.ts touches fs (~120 tok)\" */\nexport function formatCompactLine(h: RecallHit): string {\n return `${h.id} · ${h.type} · ${h.summary} (~${h.tokens} tok)`\n}\n\n/** Every entry as a compact hit, newest first: the session-start index order. */\nexport function indexHits(entries: RecallEntry[]): RecallHit[] {\n return [...entries].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) || a.id.localeCompare(b.id, 'en', { numeric: true }))\n .map(e => ({ id: e.id, type: e.type, summary: e.summary, tokens: estimateTokens(`${e.summary}\\n${e.body}`), score: 0 }))\n}\n\nexport const DEFAULT_SESSION_BUDGET = 2000\nconst INDEX_HINT = 'Save new facts with vibedoc_save_entry; fetch bodies with vibedoc_get_entries.'\n\n/**\n * Session start = the whole handoff + as many index lines (in the order given) as fit `budget` tokens,\n * then \"+N more\" when some were left out. Header, footer and hint count toward the budget. The handoff is never cut.\n */\nexport function fitToBudget(handoff: string, index: RecallHit[], budget: number):\n { text: string; shown: number; omitted: number; tokens: number } {\n const render = (n: number, warning?: string) => [\n handoff.trimEnd(), '',\n ...(warning ? [warning] : []),\n `## Knowledge entries (${index.length})`,\n ...index.slice(0, n).map(formatCompactLine),\n ...(n < index.length ? [`+${index.length - n} more entries — use vibedoc_recall { query }`] : []),\n INDEX_HINT,\n ].join('\\n')\n const fits = (n: number) => estimateTokens(render(n)) <= budget\n let text: string\n let shown = 0\n if (!fits(0)) {\n text = render(0, `⚠️ The handoff alone is ~${estimateTokens(handoff)} tokens, over the ${budget}-token session budget: trim memory/MEMORY.md.`)\n } else {\n // ponytail: re-renders per line (O(n²) chars); fine for hundreds of entries\n while (shown < index.length && fits(shown + 1)) shown++\n text = render(shown)\n }\n return { text, shown, omitted: index.length - shown, tokens: estimateTokens(text) }\n}\n\nexport const RELATED_MIN_SCORE = 3\nconst GOAL_CHARS = 500\n\n/** Recall query for a task: its title, the first 500 chars of its Goal, and the Phase epic title (id dropped). */\nexport function taskQuery(task: { title: string; phase?: string; raw?: string }): string {\n const goal = /^## Goal[ \\t]*\\n([\\s\\S]*?)(?=^## |(?![\\s\\S]))/m.exec(task.raw ?? '')?.[1].trim() ?? ''\n const epic = (task.phase ?? '').replace(/^R\\d+\\s*[—–-]\\s*/, '')\n return [task.title, goal.slice(0, GOAL_CHARS), epic].filter(Boolean).join(' ')\n}\n\n/** Only strong matches (at least one summary hit) → \"## Related memory\" block; '' when none qualify. */\nexport function formatRelated(hits: RecallHit[], limit = 3): string {\n const strong = hits.filter(h => h.score >= RELATED_MIN_SCORE).slice(0, limit)\n if (!strong.length) return ''\n return `## Related memory\\n${strong.map(formatCompactLine).join('\\n')}\\nFetch with vibedoc_get_entries`\n}\n\n/**\n * The Memory tab list (R047). No searchable words → the entries of `type`, newest first (session-start order).\n * Otherwise ranked like vibedoc_recall, so the UI and agents agree on the first hit. Returns the full entries.\n */\nexport function filterEntries<T extends RecallEntry>(entries: T[], opts: { query?: string; type?: string | null }): T[] {\n const pool = opts.type ? entries.filter(e => e.type === opts.type) : entries\n const byId = new Map(pool.map(e => [e.id, e]))\n const query = opts.query ?? ''\n const hits = tokenize(query).length ? rankEntries(pool, query, { limit: pool.length }) : indexHits(pool)\n return hits.map(h => byId.get(h.id)).filter((e): e is T => !!e)\n}\n","// Pure memory link graph (R053, no fs): links are inferred from text, never stored. Self-check: node src/lib/memory-graph.check.mts\n// Outgoing edges come from entry text; incoming edges from task, roadmap and doc files that mention an entry id.\n\nexport type NodeKind = 'entry' | 'task' | 'epic' | 'adr' | 'doc'\nexport type GraphNode = { id: string; kind: NodeKind; label: string; path: string }\nexport type GraphEdge = { from: string; to: string } // from mentions to\nexport type MemoryGraph = { nodes: GraphNode[]; edges: GraphEdge[] }\n/** A node plus the text scanned for its refs. */\nexport type GraphItem = GraphNode & { text: string }\n\n// Upper case only, whole tokens: \"XT0651\", \"e2e\" and \"T0651a\" don't match\nconst ID_RE = /(?<![A-Za-z0-9_-])(E\\d+|T\\d{3,}|R\\d{3,}|ADR-\\d+)(?![A-Za-z0-9_])/g\nconst BACKTICK_MD_RE = /`([^`\\s]+\\.md)`/g\nconst LINK_MD_RE = /\\]\\(\\s*<?([^)\\s>#]+\\.md)(?:#[^)\\s]*)?>?\\s*\\)/g\n\nconst pad3 = (n: string) => String(Number(n)).padStart(3, '0')\n\n/** \"E1\" → \"E001\", \"ADR-4\" → \"ADR-004\"; task and roadmap ids are already padded. */\nfunction normalizeId(id: string): string {\n if (id.startsWith('ADR-')) return `ADR-${pad3(id.slice(4))}`\n if (id.startsWith('E')) return `E${pad3(id.slice(1))}`\n return id\n}\n\nconst normalizePath = (p: string) => p.replace(/\\\\/g, '/').replace(/^\\.?\\//, '')\n\n/** Item ids (E/T/R/ADR) and `*.md` paths (in backticks or as link targets) mentioned in `text`, deduplicated. */\nexport function extractRefs(text: string): { ids: string[]; paths: string[] } {\n const ids = new Set<string>()\n for (const m of text.matchAll(ID_RE)) {\n if (/^E0+$/.test(m[1])) continue // E0 is not an entry id\n ids.add(normalizeId(m[1]))\n }\n const paths = new Set<string>()\n for (const re of [BACKTICK_MD_RE, LINK_MD_RE]) {\n for (const m of text.matchAll(re)) {\n if (/^[a-z]+:\\/\\//i.test(m[1])) continue // external URL\n paths.add(normalizePath(m[1]))\n }\n }\n return { ids: [...ids], paths: [...paths] }\n}\n\n/** Classify a non-entry markdown file by path. Label = its H1 without the \"ID: \" prefix, else the file name. */\nexport function fileNode(relPath: string, raw: string): GraphNode {\n const p = normalizePath(relPath)\n const name = p.split('/').pop() ?? p\n const h1 = /^#\\s+(.+?)\\s*$/m.exec(raw)?.[1] ?? ''\n const label = (id: string) => h1.replace(new RegExp(`^${id}\\\\s*[:—–-]\\\\s*`), '') || name.replace(/\\.md$/, '')\n let m: RegExpExecArray | null\n if ((m = /^plans\\/tasks\\/(T\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'task', label: label(m[1]), path: p }\n if ((m = /^plans\\/roadmap\\/(R\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'epic', label: label(m[1]), path: p }\n if ((m = /(?:^|\\/)(ADR-\\d+)[^/]*\\.md$/.exec(p))) {\n const id = normalizeId(m[1])\n return { id, kind: 'adr', label: label(m[1]), path: p }\n }\n return { id: p, kind: 'doc', label: h1 || name.replace(/\\.md$/, ''), path: p }\n}\n\n/**\n * Resolve refs into a graph. Unresolved refs, self-links and duplicate edges are dropped.\n * Nodes = every entry + every other item that touches an entry.\n */\nexport function buildGraph(entries: GraphItem[], others: GraphItem[]): MemoryGraph {\n const all = [...entries, ...others]\n const byId = new Map(all.map(n => [n.id, n]))\n const byPath = new Map(all.map(n => [n.path, n]))\n const entryIds = new Set(entries.map(e => e.id))\n const edges = new Map<string, GraphEdge>()\n const add = (from: string, to: string) => { if (from !== to) edges.set(`${from}\\u0000${to}`, { from, to }) }\n\n for (const e of entries) {\n const { ids, paths } = extractRefs(e.text)\n for (const id of ids) if (byId.has(id)) add(e.id, id)\n for (const p of paths) { const n = byPath.get(p); if (n) add(e.id, n.id) }\n }\n // incoming: other files that mention an entry id (not the whole doc-to-doc graph)\n for (const o of others) {\n for (const id of extractRefs(o.text).ids) if (entryIds.has(id)) add(o.id, id)\n }\n\n const touched = new Set(entryIds)\n for (const e of edges.values()) { touched.add(e.from); touched.add(e.to) }\n const nodes = all.filter(n => touched.has(n.id)).map(({ text: _, ...n }) => n)\n return { nodes, edges: [...edges.values()] }\n}\n\n/** One entry, its direct neighbours and the edges between it and them. Unknown id → empty graph. */\nexport function neighbourhood(graph: MemoryGraph, id: string): MemoryGraph {\n if (!graph.nodes.some(n => n.id === id)) return { nodes: [], edges: [] }\n const edges = graph.edges.filter(e => e.from === id || e.to === id)\n const keep = new Set([id, ...edges.flatMap(e => [e.from, e.to])])\n return { nodes: graph.nodes.filter(n => keep.has(n.id)), edges }\n}\n\n/**\n * \"Links: …\" / \"Linked from: …\" lines for one entry (vibedoc_get_entries). A line with nothing is left out;\n * each is capped at `cap` items plus \"+N more\", so a hub entry stays short.\n */\nexport function formatEntryLinks(graph: MemoryGraph, id: string, cap = 10): string[] {\n const line = (label: string, ids: string[]) => {\n if (!ids.length) return []\n const more = ids.length > cap ? `, +${ids.length - cap} more` : ''\n return [`${label}: ${ids.slice(0, cap).join(', ')}${more}`]\n }\n return [\n ...line('Links', graph.edges.filter(e => e.from === id).map(e => e.to)),\n ...line('Linked from', graph.edges.filter(e => e.to === id).map(e => e.from)),\n ]\n}\n\nexport const GRAPH_COL_W = 240\nexport const GRAPH_ROW_H = 48\n/** Column per kind: epics and tasks left of the entries, ADRs and docs right of them. */\nconst GRAPH_COL: Record<NodeKind, number> = { epic: -2, task: -1, entry: 0, adr: 1, doc: 2 }\n\n/**\n * Deterministic positions for the graph view (no layout library, no saved positions): entries stacked in the\n * centre column (sorted by type, then id), every other node in its kind's column at the average y of the\n * entries it links with, pushed down to keep one row of space. Same graph → same positions on every load.\n */\nexport function graphLayout(graph: MemoryGraph, entryType: Record<string, string> = {}): Record<string, { x: number; y: number }> {\n const pos: Record<string, { x: number; y: number }> = {}\n const num = (id: string) => Number(id.replace(/\\D/g, '')) || 0\n const entries = graph.nodes.filter(n => n.kind === 'entry')\n .sort((a, b) => (entryType[a.id] ?? '').localeCompare(entryType[b.id] ?? '') || num(a.id) - num(b.id))\n entries.forEach((e, i) => { pos[e.id] = { x: 0, y: i * GRAPH_ROW_H } })\n\n const neighbourYs = new Map<string, number[]>()\n for (const { from, to } of graph.edges) {\n for (const [other, entry] of [[from, to], [to, from]]) {\n if (pos[entry] && !pos[other]) neighbourYs.set(other, [...(neighbourYs.get(other) ?? []), pos[entry].y])\n }\n }\n for (const kind of ['epic', 'task', 'adr', 'doc'] as const) {\n const col = graph.nodes.filter(n => n.kind === kind).map(n => {\n const ys = neighbourYs.get(n.id) ?? [0]\n return { id: n.id, want: ys.reduce((a, b) => a + b, 0) / ys.length }\n }).sort((a, b) => a.want - b.want || a.id.localeCompare(b.id, 'en', { numeric: true }))\n let next = -Infinity\n for (const { id, want } of col) {\n const y = Math.max(want, next)\n pos[id] = { x: GRAPH_COL[kind] * GRAPH_COL_W, y }\n next = y + GRAPH_ROW_H\n }\n }\n return pos\n}\n"],"names":["Gt","n","t1","e","s","RegExp","ce","i","r","ss","start","end","pre","slice","body","length","post","match","o","h","a","indexOf","l","u","push","c","pop","fe","Math","random","ue","qt","de","pe","is","rs","ns","os","hs","as","ls","cs","fs","us","ds","Ht","isNaN","charCodeAt","parseInt","ps","replace","ms","me","split","shift","apply","ge","max","ht","map","gs","ws","test","ys","bs","f","d","m","p","w","abs","g","E","some","y","b","String","fromCharCode","z","$","Array","join","at","TypeError","Ss","lt","Es","we","ye","charAt","Error","t","S","Object","entries","startsWith","W","windowsPathsNoEscape","magicalBraces","xs","Set","be","has","vs","Ct","Cs","Ts","As","ks","Kt","Se","Ee","Q","type","hasMagic","toString","copyIn","toJSON","isStart","unshift","isEnd","clone","noext","substring","fromGlob","toMMPattern","toRegExpSource","nocase","nocaseMagicOnly","toUpperCase","toLowerCase","assign","_src","_glob","options","dot","filter","tt","O","nocomment","D","Rs","Os","endsWith","Fs","Ds","Ms","Ns","_s","includes","Ls","Ws","Ps","js","Is","zs","Bs","Us","Ce","$s","Te","Gs","Hs","Ae","process","env","__MINIMATCH_TESTING_PLATFORM__","platform","xe","win32","sep","posix","qs","A","Symbol","GLOBSTAR","Ks","Vs","Ys","Xs","Js","N","Zs","keys","Minimatch","defaults","AST","unescape","escape","makeRe","braceExpand","ke","nobrace","braceExpandMax","Qs","ti","nonull","ve","ei","set","pattern","nonegate","negate","comment","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","make","debug","parseNegate","console","error","slashSplit","preprocess","parse","noglobstar","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","splice","reduce","levelTwoFileOptimize","isArray","partsMatch","matchOne","file","Reflect","defineProperty","value","flags","add","forEach","matchBase","flipNegate","si","performance","now","Date","Oe","Vt","Fe","emitWarning","At","globalThis","AbortController","Re","AbortSignal","onabort","_onabort","reason","aborted","addEventListener","signal","abort","LRU_CACHE_IGNORE_AC_WARNING","ii","q","floor","isFinite","De","pow","Uint8Array","Uint16Array","Uint32Array","Number","MAX_SAFE_INTEGER","Tt","fill","ri","ct","heap","create","ft","Me","perf","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","noDisposeOnSet","noUpdateTTL","maxEntrySize","sizeCalculation","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchAbort","allowStaleOnFetchRejection","ignoreFetchAbort","unsafeExposeInternals","starts","ttls","autopurgeTimers","sizes","keyMap","keyList","valList","next","prev","head","tail","free","isBackgroundFetch","backgroundFetch","moveToTail","indexes","rindexes","isStale","maxSize","calculatedSize","size","fetchMethod","memoMethod","dispose","onInsert","disposeAfter","J","Z","Map","$t","getRemainingTTL","clearTimeout","setTimeout","unref","remainingTTL","get","entrySize","totalCalculatedSize","rentries","rkeys","values","rvalues","iterator","toStringTag","find","__staleWhileFetching","call","rforEach","purgeStale","info","dump","load","clear","delete","status","maxEntrySizeExceeded","__abortController","oldValue","peek","context","fetchAborted","fetchError","fetchAbortIgnored","fetchResolved","fetchUpdated","fetchRejected","returnedStale","__returned","Promise","then","fetchDispatched","hasOwnProperty","fetch","forceRefresh","forceFetch","memo","Ne","stdout","stderr","oi","V","hi","ai","pipe","Writable","prototype","write","G","H","K","kt","ut","Rt","_e","Ot","Le","P","et","v","dt","st","C","F","T","Yt","Ft","k","x","Xt","Jt","We","Zt","B","Qt","Dt","pt","Y","M","mt","resolve","li","ci","fi","ArrayBuffer","name","byteLength","ui","Buffer","isBuffer","isView","Mt","src","dest","opts","ondrain","on","unpipe","removeListener","proxyErrors","te","emit","di","objectMode","pi","encoding","writable","readable","async","debugExposeBuffer","debugExposePipes","bufferLength","setEncoding","destroy","code","from","buffer","byteOffset","lastNeed","read","concat","subarray","once","resume","pause","destroyed","flowing","paused","addListener","removeAllListeners","off","listeners","emittedEnd","collect","dataLength","promise","asyncIterator","done","throw","return","asyncDispose","close","isStream","vi","native","wt","lstatSync","readdir","readdirSync","readlinkSync","realpathSync","promises","lstat","readlink","realpath","Ue","imported module 902157","$e","Ri","Oi","L","Ge","He","U","qe","Ke","X","Ve","_","gt","se","je","yt","j","Nt","Lt","Ie","Fi","ie","isFile","isDirectory","isSymbolicLink","isCharacterDevice","isBlockDevice","isSocket","isFIFO","ze","bt","normalize","Be","_t","Wt","ne","Ye","R","root","roots","parent","isCWD","dev","mode","nlink","uid","gid","rdev","blksize","ino","blocks","atimeMs","mtimeMs","ctimeMs","birthtimeMs","atime","mtime","ctime","birthtime","parentPath","fullpath","path","relative","relativePosix","depth","childrenCache","getRootString","splitSep","getRoot","child","children","provisional","newChild","canReaddir","fullpathPosix","isUnknown","isType","getType","lstatCached","readlinkCached","realpathCached","readdirCached","canReadlink","calledReaddir","isENOENT","isNamed","readdirCB","queueMicrotask","withFileTypes","shouldWalk","Pt","sameRoot","it","jt","It","rootPath","cwd","childrenCacheSize","URL","parseRootPath","newRoot","isAbsolute","resolvePosix","basename","dirname","walk","follow","walkFilter","walkSync","iterate","stream","iterateSync","all","streamSync","chdir","rt","St","Cr","Xe","Di","Mi","Ni","for","nt","isUNC","isDrive","isString","isGlobstar","isRegExp","globString","hasMore","rest","checkFollowGlobstar","markFollowGlobstar","_i","ot","relativeChildren","absolute","absoluteChildren","mmopts","ignored","childrenIgnored","oe","store","copy","hasWalked","storeWalked","he","ae","Et","hasWalkedCache","matches","subwalks","patterns","processPatterns","subwalkTargets","filterEntries","testGlobstar","testRegExp","testString","Li","zt","seen","maxDepth","includeChildMatches","ignore","onResume","matchCheck","nodir","stat","matchCheckTest","matchCheckSync","matchFinish","mark","matchEmit","dotRelative","matchSync","walkCB","walkCB2","walkCB3","walkCBSync","walkCB2Sync","walkCB3Sync","xt","vt","results","Pi","I","scurry","allowWindowsEscape","le","Bt","Qe","ts","Je","Ut","es","ji","Ii","sync","zi","Bi","Ui","Ze","glob","globSync","globStream","globStreamSync","globIterate","globIterateSync","Glob","normalizeStatus","raw","findRoot","startDir","dir","marker","access","getConfiguredRoot","VIBEDOC_ROOT","discoverProjects","searchBase","base","projects","entry","hasVibedoc","id","existingIdx","findIndex","existing","listDocs","files","sort","section","inferSection","readDoc","query","candidates","content","readFile","writeDoc","docPath","resolvedRoot","fullPath","mkdir","recursive","writeFile","editDoc","edits","dryRun","before","catch","result","getContext","paths","parts","trim","createDoc","err","nodeErr","appendActivity","actor","title","detail","exists","readRegistry","rebuildRegistry","searchDocs","qLower","lines","hits","line","text","totalHits","warnedStatuses","parseTaskFile","filePath","defs","filename","titleLine","meta","roadmapMetaEnd","resolved","warnKey","unknown","warn","customStatus","idM","tests","manualTests","total","phase","dependsOn","owner","due","parseDue","started","finished","listTasks","statuses","readProjectSettings","tasks","board","todo","review","blocked","cancelled","col","getTask","taskId","ownerAfterMove","current","mover","agent","JSON","budget","memory","sessionBudgetTokens","sizeDays","withMetaLine","label","updateTaskStatus","statusKey","task","previousStatus","RoadmapError","newStatus","statusPattern","dates","taskStatus","_old","TASK_META_LABELS","updateTaskMeta","patch","oneLine","undefined","h1","key","stringify","deleteTask","withTaskClaimLock","unlink","items","listRoadmap","links","epic","index","updateRoadmapItem","setTaskEpic","epicId","target","bulkTasks","ids","action","deleted","isFileIn","rel","norm","restoreTask","flag","link","min","saveManualTests","report","toISOString","TaskStateError","reviewTask","outcome","note","approveTask","sendBackTask","setManualTestChecked","checked","taskClaimLock","fn","run","claimNextTask","getRoadmapItem","kind","createTask","params","createTaskUnlocked","nextNum","padStart","slug","tasksDir","description","checkPlan","plan","selected","taskIds","errors","roadmap","sel","selErrors","applyPlan","withRoadmapLock","readRoadmapFiles","item","created","horizons","createRoadmapItemUnlocked","epics","newEpic","createRoadmapItem","deps","fresh","updated","logDecision","decision","rationale","alternatives","consequences","nums","numStr","today","altsTable","option","indexPath","idx","trimEnd","adrNumber","readMemory","updateMemory","currentState","justCompleted","workingOn","upNext","issues","decisions","techDebt","handoff","time","toLocaleTimeString","hour","minute","issue","severity","ENTRIES_DIR","entryLock","withEntryLock","listEntries","names","localeCompare","numeric","getEntry","saveEntry","input","reject","previous","summary","updatedAt","by","rm","force","getEntriesByIds","byId","found","missing","sessionStartMemory","relatedEntries","limit","execFileP","GIT_SHA_RE","HISTORY_MAX","git","args","maxBuffer","relInsideRoot","relPath","full","getFileHistory","exec","spec","out","history","record","sha","author","date","subject","kept","uncommitted","message","getFileAtCommit","commit","top","recallEntries","deleteEntry","restoreEntry","ACTIVITY_FILE","ACTIVITY_CAP","DESCRIPTIONS_FILE","readDescriptions","writeDescriptions","cache","writeDescriptionEntry","normalizedKey","_anthropic","getAnthropicClient","default","Anthropic","apiKey","ANTHROPIC_API_KEY","extractDescription","heading","enrichDescription","client","messages","model","max_tokens","role","textBlock","source","listExplorerFiles","docs","doc","cached","globalForSessions","currentSessions","vibedocSessions","stampSession","event","cur","lastAt","timestamp","sessionId","events","DOC_EDIT_COALESCE_MS","DOC_EDIT_LOOKBACK","noteDocEdit","docLastEdit","readActivity","logSessionStart","appendDoc","renameDoc","oldPath","newPath","fullOld","fullNew","rename","copyFile","deleteDoc","REGISTRY_PATH","ANNOTATIONS_START","ANNOTATIONS_END","buildDocTree","tree","dirs","rendered","renderDir","indent","prefix","repeat","childIndent","childPrefix","dirFiles","parseAnnotations","rows","row","cols","Boolean","keywords","savedAnnotations","saved","totalFiles","updateRegistryAnnotation","annotations","newAnnotationsBlock","newContent","findBacklinks","targetPath","normalTarget","getMemoryGraph","others","getProjectSummary","activity","active","ROADMAP_DIR","ROADMAP_LAYOUT","ROADMAP_STATUSES","META_LINE","normalizeRoadmapId","roadmapIdOf","parseRoadmapStatus","parseTaskIds","cleanTitle","UTC","cleanDue","cleanOrder","order","parseRoadmapFile","metaEnd","rawParent","parseFloat","findRoadmapFile","rid","sortRoadmap","num","validateParent","selfId","cleanBody","roadmapLock","formatTasks","layout","readRoadmapLayout","roadmapId","writeRoadmapFile","detectRoadmapSource","roadmapDrafts","drafts","fromTasks","generateRoadmap","siblingCount","siblingOrders","updateRoadmapItemUnlocked","setMeta","deleteRoadmapItem","deleteRoadmapItemUnlocked","position","writeRoadmapLayoutUnlocked","restoreRoadmapItem","parsed","writeRoadmapLayout","positions","clean","ok","merged","PLANNING_SKILLS","breakdown","readPlanningSkill","hasOwn","trimStart","CHATS_DIR","CHAT_ID","chatFile","listChats","chats","saveChat","chat","tmp","deleteChat","VIEWS_FILE","readViews","views","saveViews","ENTRY_TYPES","SUMMARY_MAX","isEntryType","normalizeEntryId","nextEntryId","entrySlug","parseEntry","formatEntry","validateEntryInput","STOPWORDS","tokenize","estimateTokens","ceil","rankEntries","idType","score","tokens","formatCompactLine","indexHits","DEFAULT_SESSION_BUDGET","INDEX_HINT","fitToBudget","render","warning","fits","shown","omitted","RELATED_MIN_SCORE","GOAL_CHARS","taskQuery","goal","formatRelated","strong","pool"],"mappings":"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","ignoreList":[0]}