vibedoc 1.11.0 → 1.12.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 (523) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +14 -14
  5. package/.next/routes-manifest.json +12 -0
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/graph/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/graph/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  21. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  23. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  27. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/_global-error.html +1 -1
  29. package/.next/server/app/_global-error.rsc +1 -1
  30. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  31. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  32. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  33. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  34. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/_not-found.html +1 -1
  36. package/.next/server/app/_not-found.rsc +2 -2
  37. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  38. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  39. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  40. package/.next/server/app/activity.html +1 -1
  41. package/.next/server/app/activity.rsc +6 -6
  42. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +5 -5
  43. package/.next/server/app/activity.segments/_full.segment.rsc +6 -6
  44. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  45. package/.next/server/app/api/activity/route.js +1 -1
  46. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  47. package/.next/server/app/api/chat/route.js +1 -1
  48. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  49. package/.next/server/app/api/context/route.js +1 -1
  50. package/.next/server/app/api/context/route.js.nft.json +1 -1
  51. package/.next/server/app/api/conversations/route.js +1 -1
  52. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  53. package/.next/server/app/api/decisions/route.js +1 -1
  54. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  55. package/.next/server/app/api/docs/graph/route.js +1 -1
  56. package/.next/server/app/api/docs/graph/route.js.nft.json +1 -1
  57. package/.next/server/app/api/docs/links/route.js +1 -1
  58. package/.next/server/app/api/docs/links/route.js.nft.json +1 -1
  59. package/.next/server/app/api/docs/route.js +1 -1
  60. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  61. package/.next/server/app/api/explorer/route.js +1 -1
  62. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  63. package/.next/server/app/api/mcp/route.js +1 -1
  64. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  65. package/.next/server/app/api/memory/entries/delete/route.js +1 -1
  66. package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -1
  67. package/.next/server/app/api/memory/entries/merge/route.js +1 -1
  68. package/.next/server/app/api/memory/entries/merge/route.js.nft.json +1 -1
  69. package/.next/server/app/api/memory/entries/merge/undo/route.js +1 -1
  70. package/.next/server/app/api/memory/entries/merge/undo/route.js.nft.json +1 -1
  71. package/.next/server/app/api/memory/entries/restore/route.js +1 -1
  72. package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -1
  73. package/.next/server/app/api/memory/entries/route.js +1 -1
  74. package/.next/server/app/api/memory/entries/route.js.nft.json +1 -1
  75. package/.next/server/app/api/memory/entries/save/route.js +1 -1
  76. package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -1
  77. package/.next/server/app/api/memory/graph/route.js +1 -1
  78. package/.next/server/app/api/memory/graph/route.js.nft.json +1 -1
  79. package/.next/server/app/api/memory/health/dismiss/route.js +1 -1
  80. package/.next/server/app/api/memory/health/dismiss/route.js.nft.json +1 -1
  81. package/.next/server/app/api/memory/health/route.js +1 -1
  82. package/.next/server/app/api/memory/health/route.js.nft.json +1 -1
  83. package/.next/server/app/api/memory/history/route.js +1 -1
  84. package/.next/server/app/api/memory/history/route.js.nft.json +1 -1
  85. package/.next/server/app/api/memory/restore/route/app-paths-manifest.json +3 -0
  86. package/.next/server/app/api/memory/restore/route/build-manifest.json +12 -0
  87. package/.next/server/app/api/memory/restore/route/server-reference-manifest.json +4 -0
  88. package/.next/server/app/api/memory/restore/route.js +9 -0
  89. package/.next/server/app/api/memory/restore/route.js.map +5 -0
  90. package/.next/server/app/api/memory/restore/route.js.nft.json +1 -0
  91. package/.next/server/app/api/memory/restore/route_client-reference-manifest.js +3 -0
  92. package/.next/server/app/api/memory/route.js +1 -1
  93. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  94. package/.next/server/app/api/memory/versions/route/app-paths-manifest.json +3 -0
  95. package/.next/server/app/api/memory/versions/route/build-manifest.json +12 -0
  96. package/.next/server/app/api/memory/versions/route/server-reference-manifest.json +4 -0
  97. package/.next/server/app/api/memory/versions/route.js +8 -0
  98. package/.next/server/app/api/memory/versions/route.js.map +5 -0
  99. package/.next/server/app/api/memory/versions/route.js.nft.json +1 -0
  100. package/.next/server/app/api/memory/versions/route_client-reference-manifest.js +3 -0
  101. package/.next/server/app/api/plan/apply/route.js +1 -1
  102. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  103. package/.next/server/app/api/projects/route.js +1 -1
  104. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  105. package/.next/server/app/api/registry/route.js +1 -1
  106. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  107. package/.next/server/app/api/roadmap/create/route.js +1 -1
  108. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  109. package/.next/server/app/api/roadmap/delete/route.js +1 -1
  110. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  111. package/.next/server/app/api/roadmap/generate/route.js +1 -1
  112. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  113. package/.next/server/app/api/roadmap/layout/route.js +1 -1
  114. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  115. package/.next/server/app/api/roadmap/restore/route.js +1 -1
  116. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -1
  117. package/.next/server/app/api/roadmap/route.js +1 -1
  118. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  119. package/.next/server/app/api/roadmap/update/route.js +1 -1
  120. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  121. package/.next/server/app/api/sessions/route.js +1 -1
  122. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  123. package/.next/server/app/api/settings/route.js +1 -1
  124. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  125. package/.next/server/app/api/setup/generate/route.js +1 -1
  126. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  127. package/.next/server/app/api/setup/write/route.js +1 -1
  128. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  129. package/.next/server/app/api/summary/route.js +1 -1
  130. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  131. package/.next/server/app/api/tasks/bulk/route.js +1 -1
  132. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -1
  133. package/.next/server/app/api/tasks/create/route.js +1 -1
  134. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  135. package/.next/server/app/api/tasks/delete/route.js +1 -1
  136. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -1
  137. package/.next/server/app/api/tasks/manual-tests/route.js +1 -1
  138. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -1
  139. package/.next/server/app/api/tasks/restore/route.js +1 -1
  140. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -1
  141. package/.next/server/app/api/tasks/review/route.js +1 -1
  142. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -1
  143. package/.next/server/app/api/tasks/route.js +1 -1
  144. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  145. package/.next/server/app/api/tasks/update/route.js +1 -1
  146. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -1
  147. package/.next/server/app/api/views/route.js +1 -1
  148. package/.next/server/app/api/views/route.js.nft.json +1 -1
  149. package/.next/server/app/board.html +1 -1
  150. package/.next/server/app/board.rsc +7 -7
  151. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +5 -5
  152. package/.next/server/app/board.segments/_full.segment.rsc +7 -7
  153. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  154. package/.next/server/app/chat.html +1 -1
  155. package/.next/server/app/chat.rsc +6 -6
  156. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +6 -6
  157. package/.next/server/app/chat.segments/_full.segment.rsc +6 -6
  158. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  159. package/.next/server/app/docs.html +1 -1
  160. package/.next/server/app/docs.rsc +7 -7
  161. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +5 -5
  162. package/.next/server/app/docs.segments/_full.segment.rsc +7 -7
  163. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  164. package/.next/server/app/explorer.html +1 -1
  165. package/.next/server/app/explorer.rsc +6 -6
  166. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +9 -11
  167. package/.next/server/app/explorer.segments/_full.segment.rsc +6 -6
  168. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  169. package/.next/server/app/graph.html +1 -1
  170. package/.next/server/app/graph.rsc +6 -6
  171. package/.next/server/app/graph.segments/!KGFwcCk/graph/__PAGE__.segment.rsc +5 -5
  172. package/.next/server/app/graph.segments/_full.segment.rsc +6 -6
  173. package/.next/server/app/graph.segments/_tree.segment.rsc +2 -2
  174. package/.next/server/app/index.html +1 -1
  175. package/.next/server/app/index.rsc +2 -2
  176. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  177. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  178. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  179. package/.next/server/app/manual-tests.html +1 -1
  180. package/.next/server/app/manual-tests.rsc +6 -6
  181. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +9 -11
  182. package/.next/server/app/manual-tests.segments/_full.segment.rsc +6 -6
  183. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +2 -2
  184. package/.next/server/app/memory.html +1 -1
  185. package/.next/server/app/memory.rsc +7 -7
  186. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +5 -5
  187. package/.next/server/app/memory.segments/_full.segment.rsc +7 -7
  188. package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  189. package/.next/server/app/page.js.nft.json +1 -1
  190. package/.next/server/app/page_client-reference-manifest.js +1 -1
  191. package/.next/server/app/roadmap.html +1 -1
  192. package/.next/server/app/roadmap.rsc +6 -6
  193. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +5 -5
  194. package/.next/server/app/roadmap.segments/_full.segment.rsc +6 -6
  195. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  196. package/.next/server/app/settings.html +1 -1
  197. package/.next/server/app/settings.rsc +6 -6
  198. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +11 -9
  199. package/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  200. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  201. package/.next/server/app/setup.html +1 -1
  202. package/.next/server/app/setup.rsc +6 -6
  203. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +9 -11
  204. package/.next/server/app/setup.segments/_full.segment.rsc +6 -6
  205. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  206. package/.next/server/app-paths-manifest.json +2 -0
  207. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-r4g2t._.js → 11mp_@anthropic-ai_sdk_013qeb4._.js} +1 -1
  208. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_02lx_j3._.js → 11mp_@anthropic-ai_sdk_05ck8py._.js} +1 -1
  209. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01gyja3._.js → 11mp_@anthropic-ai_sdk_05w8m72._.js} +1 -1
  210. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05iv23g._.js → 11mp_@anthropic-ai_sdk_086oevc._.js} +1 -1
  211. package/.next/server/chunks/11mp_@anthropic-ai_sdk_08rl0hf._.js +3 -0
  212. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09ujrsu._.js +3 -0
  213. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0c3_7p7._.js +3 -0
  214. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0cto43x._.js +3 -0
  215. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fgisb_._.js +3 -0
  216. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fy8wd3._.js +3 -0
  217. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fyvizf._.js +3 -0
  218. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hg0i2g._.js +3 -0
  219. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i0sz05._.js +3 -0
  220. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l0j9c6._.js +3 -0
  221. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcm61d._.js +3 -0
  222. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qtva5j._.js +3 -0
  223. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r4fkdu._.js +3 -0
  224. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wbae0t._.js +3 -0
  225. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wxyz1t._.js +3 -0
  226. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0y2cods._.js +3 -0
  227. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0zu0fj1._.js +3 -0
  228. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0zxpgt0._.js +3 -0
  229. package/.next/server/chunks/11mp_@anthropic-ai_sdk_10_cxcd._.js +3 -0
  230. package/.next/server/chunks/11mp_@anthropic-ai_sdk_10gb7d1._.js +3 -0
  231. package/.next/server/chunks/11mp_@anthropic-ai_sdk_12q70bs._.js +3 -0
  232. package/.next/server/chunks/11mp_@anthropic-ai_sdk_149ltk3._.js +3 -0
  233. package/.next/server/chunks/11mp_@anthropic-ai_sdk_165_uiw._.js +3 -0
  234. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19w4zh6._.js +3 -0
  235. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1adck-s._.js +3 -0
  236. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1c2dwoi._.js +3 -0
  237. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1d9lw_2._.js +3 -0
  238. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1db6a7p._.js +3 -0
  239. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1h2f90s._.js +3 -0
  240. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1k5_i1z._.js +3 -0
  241. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1p3mv6i._.js +3 -0
  242. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qoom5s._.js +3 -0
  243. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qsbcbe._.js +3 -0
  244. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rk0x59._.js +3 -0
  245. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1sd98mi._.js +3 -0
  246. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1sumqg8._.js +3 -0
  247. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t-rt4q._.js +3 -0
  248. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1tr-k4y._.js +3 -0
  249. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xk3c39._.js +3 -0
  250. package/.next/server/chunks/11mp_@anthropic-ai_sdk_206l10_._.js +3 -0
  251. package/.next/server/chunks/11mp_@anthropic-ai_sdk_20giys9._.js +3 -0
  252. package/.next/server/chunks/11mp_@anthropic-ai_sdk_20xrvvy._.js +3 -0
  253. package/.next/server/chunks/11mp_@anthropic-ai_sdk_20xrvvy._.js.map +1 -0
  254. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215tg00._.js +3 -0
  255. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215tg00._.js.map +1 -0
  256. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_018s_10._.js +3 -0
  257. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08d6i7w._.js +3 -0
  258. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09_fd9g._.js +3 -0
  259. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0eopml6._.js +3 -0
  260. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f5epel._.js +3 -0
  261. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0okfnhu._.js +3 -0
  262. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0s8-ha8._.js +3 -0
  263. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ujs27r._.js +3 -0
  264. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0uo7rs8._.js +3 -0
  265. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0vyq_2d._.js +3 -0
  266. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0w3js74._.js +3 -0
  267. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xa4-uq._.js +3 -0
  268. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_113y3so._.js +3 -0
  269. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_12qcr96._.js +3 -0
  270. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13ixdy8._.js +3 -0
  271. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1708vst._.js +3 -0
  272. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_rdguq._.js +3 -0
  273. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bgpe23._.js +3 -0
  274. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1f-tphn._.js +3 -0
  275. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1h1pqdh._.js +3 -0
  276. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hfj_1d._.js +3 -0
  277. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ih2qzz._.js +3 -0
  278. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jatyl1._.js +3 -0
  279. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1v1zbha._.js +3 -0
  280. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vyqs5z._.js +3 -0
  281. package/.next/server/chunks/{[root-of-the-server]__0xldguc._.js → [root-of-the-server]__00usbi3._.js} +2 -2
  282. package/.next/server/chunks/{[root-of-the-server]__0i1yba1._.js → [root-of-the-server]__04cwur0._.js} +2 -2
  283. package/.next/server/chunks/{[root-of-the-server]__1yh-4vk._.js → [root-of-the-server]__04ri_ci._.js} +2 -2
  284. package/.next/server/chunks/{[root-of-the-server]__06ndlro._.js → [root-of-the-server]__05-be3n._.js} +2 -2
  285. package/.next/server/chunks/{[root-of-the-server]__08v3p50._.js → [root-of-the-server]__0756_60._.js} +2 -2
  286. package/.next/server/chunks/{[root-of-the-server]__0pz59qo._.js → [root-of-the-server]__089ay-q._.js} +2 -2
  287. package/.next/server/chunks/{[root-of-the-server]__0cxmrop._.js → [root-of-the-server]__0d4t4q6._.js} +2 -2
  288. package/.next/server/chunks/{[root-of-the-server]__1ef-hw_._.js → [root-of-the-server]__0dgwykw._.js} +2 -2
  289. package/.next/server/chunks/[root-of-the-server]__0fn-a8c._.js +22 -43
  290. package/.next/server/chunks/[root-of-the-server]__0fn-a8c._.js.map +1 -1
  291. package/.next/server/chunks/{[root-of-the-server]__0zy73pu._.js → [root-of-the-server]__0n0myt9._.js} +2 -2
  292. package/.next/server/chunks/[root-of-the-server]__0n0myt9._.js.map +1 -0
  293. package/.next/server/chunks/[root-of-the-server]__0pe1qih._.js +3 -0
  294. package/.next/server/chunks/[root-of-the-server]__0pe1qih._.js.map +1 -0
  295. package/.next/server/chunks/[root-of-the-server]__0pvi3ku._.js +22 -43
  296. package/.next/server/chunks/[root-of-the-server]__0pvi3ku._.js.map +1 -1
  297. package/.next/server/chunks/{[root-of-the-server]__1qcy2l0._.js → [root-of-the-server]__0s-j6z-._.js} +2 -2
  298. package/.next/server/chunks/{[root-of-the-server]__1zhd93r._.js → [root-of-the-server]__0yaxn8g._.js} +2 -2
  299. package/.next/server/chunks/{[root-of-the-server]__0rh8yfn._.js → [root-of-the-server]__162_l0k._.js} +2 -2
  300. package/.next/server/chunks/{[root-of-the-server]__0hk-9ll._.js → [root-of-the-server]__16smlkg._.js} +2 -2
  301. package/.next/server/chunks/{[root-of-the-server]__11rp-qx._.js → [root-of-the-server]__19yo85m._.js} +2 -2
  302. package/.next/server/chunks/[root-of-the-server]__1lxrobr._.js +3 -0
  303. package/.next/server/chunks/[root-of-the-server]__1lxrobr._.js.map +1 -0
  304. package/.next/server/chunks/{[root-of-the-server]__1sn6-7a._.js → [root-of-the-server]__1mnzsbh._.js} +2 -2
  305. package/.next/server/chunks/{[root-of-the-server]__11nbc9e._.js → [root-of-the-server]__1ntu_6r._.js} +2 -2
  306. package/.next/server/chunks/[root-of-the-server]__1p4ws5z._.js +3 -0
  307. package/.next/server/chunks/[root-of-the-server]__1p4ws5z._.js.map +1 -0
  308. package/.next/server/chunks/{[root-of-the-server]__1wbho9e._.js → [root-of-the-server]__1s0t8r3._.js} +2 -2
  309. package/.next/server/chunks/{[root-of-the-server]__1r67yrn._.js → [root-of-the-server]__1sd3l-d._.js} +2 -2
  310. package/.next/server/chunks/[root-of-the-server]__1vnine1._.js +22 -43
  311. package/.next/server/chunks/[root-of-the-server]__1vnine1._.js.map +1 -1
  312. package/.next/server/chunks/{[root-of-the-server]__0rikmqn._.js → [root-of-the-server]__1vzxnjb._.js} +2 -2
  313. package/.next/server/chunks/{[root-of-the-server]__0wc_gnr._.js → [root-of-the-server]__1zeys20._.js} +2 -2
  314. package/.next/server/chunks/_04byth9._.js +4 -4
  315. package/.next/server/chunks/_04byth9._.js.map +1 -1
  316. package/.next/server/chunks/_next-internal_server_app_api_memory_restore_route_actions_0679kmo.js +3 -0
  317. package/.next/server/chunks/_next-internal_server_app_api_memory_restore_route_actions_0679kmo.js.map +1 -0
  318. package/.next/server/chunks/_next-internal_server_app_api_memory_versions_route_actions_13mix75.js +3 -0
  319. package/.next/server/chunks/_next-internal_server_app_api_memory_versions_route_actions_13mix75.js.map +1 -0
  320. package/.next/server/chunks/ssr/{_0me5_6x._.js → _0-_04ia._.js} +1 -1
  321. package/.next/server/chunks/ssr/{_190c11r._.js → _0cv0ugs._.js} +1 -1
  322. package/.next/server/chunks/ssr/_0ghj-vx._.js +1 -1
  323. package/.next/server/chunks/ssr/_0ghj-vx._.js.map +1 -1
  324. package/.next/server/chunks/ssr/_0o8t6j-._.js +3 -0
  325. package/.next/server/chunks/ssr/_0o8t6j-._.js.map +1 -0
  326. package/.next/server/chunks/ssr/_128p7pz._.js +3 -0
  327. package/.next/server/chunks/ssr/_128p7pz._.js.map +1 -0
  328. package/.next/server/chunks/ssr/{_1feybpz._.js → _1hm7p_8._.js} +1 -1
  329. package/.next/server/chunks/ssr/{_1cz8dnu._.js → _1s-2jub._.js} +1 -1
  330. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +2 -2
  331. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -1
  332. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +1 -1
  333. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -1
  334. package/.next/server/middleware-build-manifest.js +3 -3
  335. package/.next/server/pages/404.html +1 -1
  336. package/.next/server/pages/500.html +1 -1
  337. package/.next/server/server-reference-manifest.js +1 -1
  338. package/.next/server/server-reference-manifest.json +1 -1
  339. package/.next/static/chunks/05qw7-fs1exlt.js +1 -0
  340. package/.next/static/chunks/0eax07u1ta6tp.css +1 -0
  341. package/.next/static/chunks/0lfd3aomz4wv4.js +1 -0
  342. package/.next/static/chunks/{3rtr962aa09nh.js → 0po8atank1p02.js} +2 -2
  343. package/.next/static/chunks/11ou9nrpdg4qo.js +3 -0
  344. package/.next/static/chunks/1g7st54huk4if.js +1 -0
  345. package/.next/static/chunks/40diykjra8f9n.js +2107 -0
  346. package/README.md +4 -2
  347. package/package.json +1 -1
  348. package/.next/server/chunks/11mp_@anthropic-ai_sdk_05oneea._.js +0 -3
  349. package/.next/server/chunks/11mp_@anthropic-ai_sdk_07fgg-l._.js +0 -3
  350. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_5gzfy._.js +0 -3
  351. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_jynr-._.js +0 -3
  352. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0aykesf._.js +0 -3
  353. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0br_1fc._.js +0 -3
  354. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0cd5lu7._.js +0 -3
  355. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ckxhy7._.js +0 -3
  356. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0e5qkuv._.js +0 -3
  357. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0el8pm6._.js +0 -3
  358. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i4w8fv._.js +0 -3
  359. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i7ckik._.js +0 -3
  360. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l1p4c6._.js +0 -3
  361. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0m-xqs_._.js +0 -3
  362. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0nltdmf._.js +0 -3
  363. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qxmzg8._.js +0 -3
  364. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0spr_aj._.js +0 -3
  365. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0th0pyh._.js +0 -3
  366. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0x21fif._.js +0 -3
  367. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-7bj56._.js +0 -3
  368. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-efoj1._.js +0 -3
  369. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13vu693._.js +0 -3
  370. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13w62gi._.js +0 -3
  371. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1887ce1._.js +0 -3
  372. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_jq3yb._.js +0 -3
  373. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1agvp6h._.js +0 -3
  374. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b1-3vt._.js +0 -3
  375. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ekldtb._.js +0 -3
  376. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ezcndt._.js +0 -3
  377. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1gr-orf._.js +0 -3
  378. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1hf-884._.js +0 -3
  379. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ndwnmb._.js +0 -3
  380. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rdesfd._.js +0 -3
  381. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1s8h60-._.js +0 -3
  382. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1tgk9wk._.js +0 -3
  383. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1uugb45._.js +0 -3
  384. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vcxmui._.js +0 -3
  385. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x63qpm._.js +0 -3
  386. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y5oj_h._.js +0 -3
  387. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1z0q4jj._.js +0 -3
  388. package/.next/server/chunks/11mp_@anthropic-ai_sdk_20j6dn7._.js +0 -3
  389. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_00nr0dy._.js +0 -3
  390. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_06kgcr0._.js +0 -3
  391. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_07kod-g._.js +0 -3
  392. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0_va-1q._.js +0 -3
  393. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0dr79hc._.js +0 -3
  394. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ew4_uw._.js +0 -3
  395. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iy714m._.js +0 -3
  396. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n6aq49._.js +0 -3
  397. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ncvuil._.js +0 -3
  398. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0vilstf._.js +0 -3
  399. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ybdfbv._.js +0 -3
  400. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0z31-c0._.js +0 -3
  401. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0zu51ny._.js +0 -3
  402. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13-fsm5._.js +0 -3
  403. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13lk7wf._.js +0 -3
  404. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ao3e3l._.js +0 -3
  405. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ck6z1z._.js +0 -3
  406. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1dm3so9._.js +0 -3
  407. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jxtz_6._.js +0 -3
  408. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pdl5qg._.js +0 -3
  409. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1tzpss1._.js +0 -3
  410. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x_0sf4._.js +0 -3
  411. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x_fy5x._.js +0 -3
  412. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1xx8_-m._.js +0 -3
  413. package/.next/server/chunks/[root-of-the-server]__0usdydm._.js +0 -3
  414. package/.next/server/chunks/[root-of-the-server]__0usdydm._.js.map +0 -1
  415. package/.next/server/chunks/ssr/_0pg63il._.js +0 -3
  416. package/.next/server/chunks/ssr/_0pg63il._.js.map +0 -1
  417. package/.next/server/chunks/ssr/_16b4hkt._.js +0 -3
  418. package/.next/server/chunks/ssr/_16b4hkt._.js.map +0 -1
  419. package/.next/server/chunks/ssr/_1t8it2w._.js +0 -3
  420. package/.next/server/chunks/ssr/_1t8it2w._.js.map +0 -1
  421. package/.next/static/chunks/036fex6o238at.css +0 -1
  422. package/.next/static/chunks/1c5ibgojv8jdi.js +0 -3
  423. package/.next/static/chunks/1pmgcotwq-_yh.js +0 -1
  424. package/.next/static/chunks/1xxzt2y2ttqql.js +0 -2107
  425. package/.next/static/chunks/263i_dcdizuvd.js +0 -1
  426. package/.next/static/chunks/2mf5us3y9wd9g.js +0 -1
  427. package/.next/static/chunks/42c9smmpcu4re.js +0 -1
  428. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_20j6dn7._.js.map → 11mp_@anthropic-ai_sdk_013qeb4._.js.map} +0 -0
  429. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1z0q4jj._.js.map → 11mp_@anthropic-ai_sdk_05ck8py._.js.map} +0 -0
  430. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1y5oj_h._.js.map → 11mp_@anthropic-ai_sdk_05w8m72._.js.map} +0 -0
  431. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1x63qpm._.js.map → 11mp_@anthropic-ai_sdk_086oevc._.js.map} +0 -0
  432. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1vcxmui._.js.map → 11mp_@anthropic-ai_sdk_08rl0hf._.js.map} +0 -0
  433. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1uugb45._.js.map → 11mp_@anthropic-ai_sdk_09ujrsu._.js.map} +0 -0
  434. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1tgk9wk._.js.map → 11mp_@anthropic-ai_sdk_0c3_7p7._.js.map} +0 -0
  435. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1s8h60-._.js.map → 11mp_@anthropic-ai_sdk_0cto43x._.js.map} +0 -0
  436. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rdesfd._.js.map → 11mp_@anthropic-ai_sdk_0fgisb_._.js.map} +0 -0
  437. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ndwnmb._.js.map → 11mp_@anthropic-ai_sdk_0fy8wd3._.js.map} +0 -0
  438. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1hf-884._.js.map → 11mp_@anthropic-ai_sdk_0fyvizf._.js.map} +0 -0
  439. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1gr-orf._.js.map → 11mp_@anthropic-ai_sdk_0hg0i2g._.js.map} +0 -0
  440. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ezcndt._.js.map → 11mp_@anthropic-ai_sdk_0i0sz05._.js.map} +0 -0
  441. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ekldtb._.js.map → 11mp_@anthropic-ai_sdk_0l0j9c6._.js.map} +0 -0
  442. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b1-3vt._.js.map → 11mp_@anthropic-ai_sdk_0lcm61d._.js.map} +0 -0
  443. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1agvp6h._.js.map → 11mp_@anthropic-ai_sdk_0qtva5j._.js.map} +0 -0
  444. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_jq3yb._.js.map → 11mp_@anthropic-ai_sdk_0r4fkdu._.js.map} +0 -0
  445. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1887ce1._.js.map → 11mp_@anthropic-ai_sdk_0wbae0t._.js.map} +0 -0
  446. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_13w62gi._.js.map → 11mp_@anthropic-ai_sdk_0wxyz1t._.js.map} +0 -0
  447. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_13vu693._.js.map → 11mp_@anthropic-ai_sdk_0y2cods._.js.map} +0 -0
  448. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1-efoj1._.js.map → 11mp_@anthropic-ai_sdk_0zu0fj1._.js.map} +0 -0
  449. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1-7bj56._.js.map → 11mp_@anthropic-ai_sdk_0zxpgt0._.js.map} +0 -0
  450. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0x21fif._.js.map → 11mp_@anthropic-ai_sdk_10_cxcd._.js.map} +0 -0
  451. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0th0pyh._.js.map → 11mp_@anthropic-ai_sdk_10gb7d1._.js.map} +0 -0
  452. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0spr_aj._.js.map → 11mp_@anthropic-ai_sdk_12q70bs._.js.map} +0 -0
  453. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qxmzg8._.js.map → 11mp_@anthropic-ai_sdk_149ltk3._.js.map} +0 -0
  454. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0nltdmf._.js.map → 11mp_@anthropic-ai_sdk_165_uiw._.js.map} +0 -0
  455. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0m-xqs_._.js.map → 11mp_@anthropic-ai_sdk_19w4zh6._.js.map} +0 -0
  456. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0l1p4c6._.js.map → 11mp_@anthropic-ai_sdk_1adck-s._.js.map} +0 -0
  457. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0i7ckik._.js.map → 11mp_@anthropic-ai_sdk_1c2dwoi._.js.map} +0 -0
  458. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0i4w8fv._.js.map → 11mp_@anthropic-ai_sdk_1d9lw_2._.js.map} +0 -0
  459. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0el8pm6._.js.map → 11mp_@anthropic-ai_sdk_1db6a7p._.js.map} +0 -0
  460. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0e5qkuv._.js.map → 11mp_@anthropic-ai_sdk_1h2f90s._.js.map} +0 -0
  461. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0ckxhy7._.js.map → 11mp_@anthropic-ai_sdk_1k5_i1z._.js.map} +0 -0
  462. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0cd5lu7._.js.map → 11mp_@anthropic-ai_sdk_1p3mv6i._.js.map} +0 -0
  463. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0br_1fc._.js.map → 11mp_@anthropic-ai_sdk_1qoom5s._.js.map} +0 -0
  464. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0aykesf._.js.map → 11mp_@anthropic-ai_sdk_1qsbcbe._.js.map} +0 -0
  465. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0_jynr-._.js.map → 11mp_@anthropic-ai_sdk_1rk0x59._.js.map} +0 -0
  466. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0_5gzfy._.js.map → 11mp_@anthropic-ai_sdk_1sd98mi._.js.map} +0 -0
  467. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07fgg-l._.js.map → 11mp_@anthropic-ai_sdk_1sumqg8._.js.map} +0 -0
  468. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05oneea._.js.map → 11mp_@anthropic-ai_sdk_1t-rt4q._.js.map} +0 -0
  469. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05iv23g._.js.map → 11mp_@anthropic-ai_sdk_1tr-k4y._.js.map} +0 -0
  470. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_02lx_j3._.js.map → 11mp_@anthropic-ai_sdk_1xk3c39._.js.map} +0 -0
  471. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01gyja3._.js.map → 11mp_@anthropic-ai_sdk_206l10_._.js.map} +0 -0
  472. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-r4g2t._.js.map → 11mp_@anthropic-ai_sdk_20giys9._.js.map} +0 -0
  473. /package/.next/server/chunks/{[root-of-the-server]__0zy73pu._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_018s_10._.js.map} +0 -0
  474. /package/.next/server/chunks/{[root-of-the-server]__06ndlro._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_08d6i7w._.js.map} +0 -0
  475. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1xx8_-m._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_09_fd9g._.js.map} +0 -0
  476. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1x_fy5x._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0eopml6._.js.map} +0 -0
  477. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1x_0sf4._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0f5epel._.js.map} +0 -0
  478. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1tzpss1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0okfnhu._.js.map} +0 -0
  479. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1pdl5qg._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0s8-ha8._.js.map} +0 -0
  480. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1jxtz_6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ujs27r._.js.map} +0 -0
  481. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1dm3so9._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0uo7rs8._.js.map} +0 -0
  482. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ck6z1z._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0vyq_2d._.js.map} +0 -0
  483. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ao3e3l._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0w3js74._.js.map} +0 -0
  484. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13lk7wf._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0xa4-uq._.js.map} +0 -0
  485. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13-fsm5._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_113y3so._.js.map} +0 -0
  486. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0zu51ny._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_12qcr96._.js.map} +0 -0
  487. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0z31-c0._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_13ixdy8._.js.map} +0 -0
  488. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0ybdfbv._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1708vst._.js.map} +0 -0
  489. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0vilstf._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1_rdguq._.js.map} +0 -0
  490. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0ncvuil._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1bgpe23._.js.map} +0 -0
  491. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n6aq49._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1f-tphn._.js.map} +0 -0
  492. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0iy714m._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1h1pqdh._.js.map} +0 -0
  493. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0ew4_uw._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1hfj_1d._.js.map} +0 -0
  494. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0dr79hc._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1ih2qzz._.js.map} +0 -0
  495. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0_va-1q._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1jatyl1._.js.map} +0 -0
  496. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_07kod-g._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1v1zbha._.js.map} +0 -0
  497. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_06kgcr0._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1vyqs5z._.js.map} +0 -0
  498. /package/.next/server/chunks/{[root-of-the-server]__0xldguc._.js.map → [root-of-the-server]__00usbi3._.js.map} +0 -0
  499. /package/.next/server/chunks/{[root-of-the-server]__0i1yba1._.js.map → [root-of-the-server]__04cwur0._.js.map} +0 -0
  500. /package/.next/server/chunks/{[root-of-the-server]__1yh-4vk._.js.map → [root-of-the-server]__04ri_ci._.js.map} +0 -0
  501. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_00nr0dy._.js.map → [root-of-the-server]__05-be3n._.js.map} +0 -0
  502. /package/.next/server/chunks/{[root-of-the-server]__0wc_gnr._.js.map → [root-of-the-server]__0756_60._.js.map} +0 -0
  503. /package/.next/server/chunks/{[root-of-the-server]__0pz59qo._.js.map → [root-of-the-server]__089ay-q._.js.map} +0 -0
  504. /package/.next/server/chunks/{[root-of-the-server]__0cxmrop._.js.map → [root-of-the-server]__0d4t4q6._.js.map} +0 -0
  505. /package/.next/server/chunks/{[root-of-the-server]__1ef-hw_._.js.map → [root-of-the-server]__0dgwykw._.js.map} +0 -0
  506. /package/.next/server/chunks/{[root-of-the-server]__1qcy2l0._.js.map → [root-of-the-server]__0s-j6z-._.js.map} +0 -0
  507. /package/.next/server/chunks/{[root-of-the-server]__1zhd93r._.js.map → [root-of-the-server]__0yaxn8g._.js.map} +0 -0
  508. /package/.next/server/chunks/{[root-of-the-server]__0rh8yfn._.js.map → [root-of-the-server]__162_l0k._.js.map} +0 -0
  509. /package/.next/server/chunks/{[root-of-the-server]__0hk-9ll._.js.map → [root-of-the-server]__16smlkg._.js.map} +0 -0
  510. /package/.next/server/chunks/{[root-of-the-server]__11rp-qx._.js.map → [root-of-the-server]__19yo85m._.js.map} +0 -0
  511. /package/.next/server/chunks/{[root-of-the-server]__1sn6-7a._.js.map → [root-of-the-server]__1mnzsbh._.js.map} +0 -0
  512. /package/.next/server/chunks/{[root-of-the-server]__11nbc9e._.js.map → [root-of-the-server]__1ntu_6r._.js.map} +0 -0
  513. /package/.next/server/chunks/{[root-of-the-server]__1wbho9e._.js.map → [root-of-the-server]__1s0t8r3._.js.map} +0 -0
  514. /package/.next/server/chunks/{[root-of-the-server]__1r67yrn._.js.map → [root-of-the-server]__1sd3l-d._.js.map} +0 -0
  515. /package/.next/server/chunks/{[root-of-the-server]__0rikmqn._.js.map → [root-of-the-server]__1vzxnjb._.js.map} +0 -0
  516. /package/.next/server/chunks/{[root-of-the-server]__08v3p50._.js.map → [root-of-the-server]__1zeys20._.js.map} +0 -0
  517. /package/.next/server/chunks/ssr/{_0me5_6x._.js.map → _0-_04ia._.js.map} +0 -0
  518. /package/.next/server/chunks/ssr/{_190c11r._.js.map → _0cv0ugs._.js.map} +0 -0
  519. /package/.next/server/chunks/ssr/{_1feybpz._.js.map → _1hm7p_8._.js.map} +0 -0
  520. /package/.next/server/chunks/ssr/{_1cz8dnu._.js.map → _1s-2jub._.js.map} +0 -0
  521. /package/.next/static/{5hNes2Kijr5IvUPPw-ez9 → P1gxTEpKVh-OOtIXC432U}/_buildManifest.js +0 -0
  522. /package/.next/static/{5hNes2Kijr5IvUPPw-ez9 → P1gxTEpKVh-OOtIXC432U}/_clientMiddlewareManifest.js +0 -0
  523. /package/.next/static/{5hNes2Kijr5IvUPPw-ez9 → P1gxTEpKVh-OOtIXC432U}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,185914,e=>{"use strict";var t=e.i(72345),s=e.i(180338),n=e.i(910172),r=e.i(763371),a=e.i(998822),i=e.i(635743),l=e.i(155515),o=e.i(161863),d=e.i(975157),c=e.i(793479),m=e.i(35032);let u=["convention","gotcha","decision","preference"],x=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 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(" "));function p(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(e=>e.length>1&&!x.has(e)).map(e=>e.length>3&&e.endsWith("s")&&!e.endsWith("ss")?e.slice(0,-1):e)}function h(e){return Math.ceil(e.length/4)}function f({entries:e,selectedId:n,onOpen:r,onNew:a}){let[i,x]=(0,s.useState)(""),[b,g]=(0,s.useState)(null),y=(0,s.useMemo)(()=>{var t,s;let n,r,a;return t=e,r=new Map((n=(s={query:i,type:b}).type?t.filter(e=>e.type===s.type):t).map(e=>[e.id,e])),(p(a=s.query??"").length?function(e,t,s={}){let n=[...new Set(p(t))];if(!n.length)return[];let r=[];for(let t of e){if(s.type&&t.type!==s.type)continue;let e=new Set(p(t.summary)),a=new Set(p(t.body)),i=new Set([t.id.toLowerCase(),...p(t.type)]),l=0;for(let t of n)e.has(t)&&(l+=3),i.has(t)&&(l+=2),a.has(t)&&(l+=1);l>0&&r.push({id:t.id,type:t.type,summary:t.summary,tokens:h(`${t.summary}
2
2
  ${t.body}`),score:l,updatedAt:t.updatedAt})}return r.sort((e,t)=>t.score-e.score||t.updatedAt.localeCompare(e.updatedAt)),r.slice(0,s.limit??10).map(({updatedAt:e,...t})=>t)}(n,a,{limit:n.length}):[...n].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)||e.id.localeCompare(t.id,"en",{numeric:!0})).map(e=>({id:e.id,type:e.type,summary:e.summary,tokens:h(`${e.summary}
3
- ${e.body}`),score:0}))).map(e=>r.get(e.id)).filter(e=>!!e)},[e,i,b]),j=(0,s.useMemo)(()=>{let t={};for(let s of e)t[s.type]=(t[s.type]??0)+1;return t},[e]),v=p(i).length>0,N=(e,s,n)=>(0,t.jsxs)("button",{type:"button","aria-pressed":b===e,onClick:()=>g(e),className:(0,d.cn)("h-6 rounded-[5px] border border-transparent px-2 text-xs font-medium text-muted outline-none transition-colors","hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",b===e&&"border-border2 bg-surface2 text-txt"),children:[s," ",(0,t.jsx)("span",{className:"font-mono text-[10px] opacity-70",children:n})]},s);return(0,t.jsxs)("section",{"aria-label":"Knowledge entries",className:"flex min-w-0 flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,t.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Knowledge entries"}),(0,t.jsxs)("button",{type:"button",onClick:a,className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-muted outline-none hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",children:[(0,t.jsx)(l.Plus,{className:"size-3.5","aria-hidden":!0})," New entry"]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(o.Search,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted","aria-hidden":!0}),(0,t.jsx)(c.Input,{id:"memory-search",type:"search",value:i,onChange:e=>x(e.target.value),placeholder:"Search entries…","aria-label":"Search entries",className:"h-8 pl-8"})]}),(0,t.jsxs)("div",{role:"group","aria-label":"Filter by type",className:"flex flex-wrap gap-1",children:[N(null,"All",e.length),u.map(e=>N(e,e,j[e]??0))]}),0===e.length?(0,t.jsxs)("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted",children:["No knowledge entries yet. Agents save them with ",(0,t.jsx)("code",{className:"font-mono text-xs",children:"vibedoc_save_entry"}),"."]}):0===y.length?(0,t.jsxs)("p",{className:"p-2 text-sm text-muted",children:["No entries match ",v?`"${i.trim()}"`:"this filter","."]}):(0,t.jsx)("ul",{className:"flex flex-col divide-y divide-border rounded-xl border border-border bg-surface",children:y.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>r(e.id),"aria-current":e.id===n?"true":void 0,className:(0,d.cn)("flex w-full flex-col gap-0.5 px-3 py-2 text-left outline-none transition-colors hover:bg-surface2 focus-visible:bg-surface2",e.id===n&&"bg-surface2 shadow-[inset_2px_0_0_var(--color-accent-edge)]"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 font-mono text-[11px] text-muted",children:[(0,t.jsx)("span",{children:e.id}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:e.type}),(0,t.jsxs)("span",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)(m.OwnerChip,{owner:e.by,className:"font-sans"}),e.updatedAt]})]}),(0,t.jsx)("span",{className:"text-sm text-txt",children:e.summary})]})},e.id))})]})}var b=e.i(424991),g=e.i(458055),y=e.i(765470),j=e.i(519455),v=e.i(508540);function N({entry:e,rootParam:n,onSaved:r,onDelete:i,onClose:l,children:o}){let[d,x]=(0,s.useState)(null===e),[p,h]=(0,s.useState)(()=>w(e)),[f,k]=(0,s.useState)(null),[C,S]=(0,s.useState)(!1),E=()=>{e?(x(!1),k(null)):l()},$=async()=>{let t=function(e){let t;if(void 0!==e.id&&!function(e){let t=/^e(\d+)$/i.exec(e.trim());if(!t)return null;let s=Number(t[1]);return s>0?`E${String(s).padStart(3,"0")}`:null}(String(e.id)))return`Invalid id "${e.id}": expected E followed by a number, e.g. E001`;if(t=String(e.type??""),!u.includes(t))return`Invalid type "${e.type??""}": use one of ${u.join(", ")}`;let s=String(e.summary??"").trim();return s?/\n/.test(s)?"summary must be one line":s.length>120?`summary is ${s.length} characters; keep it to 120`:void 0!==e.body&&"string"!=typeof e.body?"body must be a string":null:"summary is required"}({...p,id:e?.id});if(t)return void k(t);S(!0),k(null);try{let t=await fetch(`/api/memory/entries/save${n}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...e?{id:e.id}:{},...p})}),s=await t.json().catch(()=>({}));if(!t.ok||!s.entry)throw Error(s.error??`Save failed (${t.status})`);x(!1),r(s.entry)}catch(e){k(e instanceof Error?e.message:String(e))}finally{S(!1)}};(0,s.useEffect)(()=>{if(d||!e)return;let t=t=>{if("Backspace"!==t.key&&"Delete"!==t.key||t.metaKey||t.ctrlKey||t.altKey)return;let s=t.target;s&&(s.isContentEditable||["INPUT","TEXTAREA","SELECT"].includes(s.tagName))||(t.preventDefault(),i(e))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[d,e,i]);let D=(0,t.jsx)("button",{type:"button",onClick:l,"aria-label":"Close entry",className:"rounded p-1 text-muted hover:bg-surface2 hover:text-txt",children:(0,t.jsx)(y.X,{className:"size-3.5"})});return d?(0,t.jsx)("section",{"aria-label":e?`Edit ${e.id}`:"New entry",className:"rounded-xl border border-border bg-surface",children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),$()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),E()),"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),$())},className:"flex flex-col gap-3 p-5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between font-mono text-[11px] text-muted",children:[(0,t.jsx)("span",{children:e?`${e.id} \xb7 editing`:"New entry"}),D]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,t.jsx)("select",{value:p.type,onChange:e=>h({...p,type:e.target.value}),className:"h-8 rounded-md border border-border bg-bg px-2 text-sm text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent",children:u.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Summary (one line)",(0,t.jsx)(c.Input,{autoFocus:!0,value:p.summary,onChange:e=>h({...p,summary:e.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Details (markdown)",(0,t.jsx)("textarea",{value:p.body,onChange:e=>h({...p,body:e.target.value}),rows:8,className:"w-full resize-y rounded-md border border-border bg-bg px-3 py-2 font-mono text-xs text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent"})]}),f&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:f}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,t.jsx)("span",{className:"mr-auto text-[11px] text-muted",children:"⌘↵ save · Esc cancel"}),(0,t.jsx)(j.Button,{type:"button",variant:"ghost",size:"sm",onClick:E,children:"Cancel"}),(0,t.jsx)(j.Button,{type:"submit",size:"sm",disabled:C,children:C?"Saving…":"Save"})]})]})}):e?(0,t.jsxs)("section",{"aria-label":e.id,className:"rounded-xl border border-border bg-surface",children:[(0,t.jsx)(v.ItemPanelHeader,{kicker:(0,t.jsxs)("span",{children:[e.id," · entry"]}),menu:(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)(j.Button,{variant:"ghost",size:"sm",onClick:()=>{h(w(e)),k(null),x(!0)},className:"h-7 px-2 text-xs",children:[(0,t.jsx)(b.Pencil,{className:"size-3.5"})," Edit"]}),(0,t.jsxs)(j.Button,{variant:"ghost",size:"sm",onClick:()=>i(e),title:"Delete (⌫)",className:"h-7 px-2 text-xs hover:text-danger",children:[(0,t.jsx)(g.Trash2,{className:"size-3.5"})," Delete"]}),D]}),title:e.summary,properties:[{label:"Type",value:e.type},{label:"Updated",value:e.updatedAt||null},{label:"Changed by",value:e.by?(0,t.jsx)(m.OwnerChip,{owner:e.by,className:"text-xs text-txt"}):null},{label:"File",value:(0,t.jsx)("span",{className:"truncate font-mono text-[11px] text-muted",children:e.file})}]}),(0,t.jsxs)("div",{className:"p-5",children:[e.body?(0,t.jsx)(a.MarkdownRenderer,{content:e.body}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No details."}),o]})]}):null}function w(e){return e?{type:e.type,summary:e.summary,body:e.body}:{type:"convention",summary:"",body:""}}var k=e.i(862249),C=e.i(675964),S=e.i(83790);let E={name:"git-commit-horizontal",size:24,node:[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],aliases:["git-commit"]};E.node;let $=(0,S.default)(E);function D({entryId:e}){let{rootParam:n}=(0,r.useApp)(),[a,i]=(0,s.useState)(!1),[l,o]=(0,s.useState)(null),[c,m]=(0,s.useState)(null),[u,x]=(0,s.useState)(null),p=`/api/memory/history${n}&entry=${encodeURIComponent(e)}`,h=async e=>{let t=await fetch(e),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error??`Request failed (${t.status})`);return s},f=async()=>{let e=!a;if(i(e),e&&!l)try{o(await h(p))}catch(e){m(e instanceof Error?e.message:String(e))}},b=async e=>{try{let{text:t}=await h(`${p}&sha=${e.sha}`);x({commit:e,text:t})}catch(e){m(e instanceof Error?e.message:String(e))}};return(0,t.jsxs)("section",{"aria-label":"History",className:"mt-4 border-t border-border pt-3",children:[(0,t.jsxs)("button",{type:"button",onClick:f,"aria-expanded":a,className:"flex items-center gap-1 rounded text-xs font-semibold text-txt outline-none focus-visible:ring-2 focus-visible:ring-accent",children:[(0,t.jsx)(C.ChevronRight,{className:(0,d.cn)("size-3.5 text-muted transition-transform",a&&"rotate-90"),"aria-hidden":!0}),"History"]}),a&&(0,t.jsxs)("div",{className:"mt-2 flex flex-col gap-2",children:[c&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:c}),!l&&!c&&(0,t.jsx)("p",{className:"text-xs text-muted",children:"Loading history…"}),l?.reason==="no-git"&&(0,t.jsx)("p",{className:"text-xs text-muted",children:"History needs git: this project is not a git repository."}),l&&!l.reason&&!l.history.length&&!l.uncommitted&&(0,t.jsx)("p",{className:"text-xs text-muted",children:"Not committed yet."}),l&&(l.uncommitted||l.history.length>0)&&(0,t.jsxs)("ul",{className:"flex flex-col",children:[l.uncommitted&&(0,t.jsxs)("li",{className:"flex items-center gap-2 px-2 py-1 text-xs text-muted",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-accent","aria-hidden":!0})," Uncommitted changes"]}),l.history.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>b(e),"aria-current":u?.commit.sha===e.sha?"true":void 0,className:(0,d.cn)("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-xs outline-none hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",u?.commit.sha===e.sha&&"bg-surface2"),children:[(0,t.jsx)($,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e.date.slice(0,10)}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-txt",children:e.subject}),(0,t.jsx)("span",{className:"shrink-0 text-muted",children:e.author})]})},e.sha))]}),u&&(0,t.jsxs)("div",{className:"rounded-md border border-border bg-bg",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-1.5 font-mono text-[11px] text-muted",children:[(0,t.jsxs)("span",{children:[u.commit.sha.slice(0,7)," · ",u.commit.date.slice(0,10)," · read-only"]}),(0,t.jsx)("button",{type:"button",onClick:()=>x(null),"aria-label":"Close version",className:"rounded p-0.5 hover:text-txt",children:(0,t.jsx)(y.X,{className:"size-3.5"})})]}),(0,t.jsx)("pre",{className:"max-h-72 overflow-auto whitespace-pre-wrap p-3 font-mono text-xs text-txt",children:u.text})]})]})]})}var M=e.i(211672),z=e.i(301702),A=e.i(464750),T=e.i(694628);let O={epic:-2,task:-1,entry:0,adr:1,doc:2},R={"--xy-background-color":"var(--color-bg)"};function I(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()}let _={mem:(0,s.memo)(function({data:e}){let{node:s,status:n,unlinked:r,dim:a,active:i}=e,l=k.KIND_ICON[s.kind];return(0,t.jsxs)("div",{title:s.path,style:{width:196},className:(0,d.cn)("flex items-center gap-2 rounded-md border bg-surface px-2.5 py-1.5 text-xs transition-opacity","entry"===s.kind?"border-border2":"border-border",i&&"border-accent ring-1 ring-accent",r&&"border-dashed opacity-60",a&&"opacity-25"),children:[["l","r"].map(e=>(0,t.jsxs)("span",{children:[(0,t.jsx)(M.Handle,{id:e,type:"source",position:"l"===e?z.Position.Left:z.Position.Right,isConnectable:!1,className:"opacity-0"}),(0,t.jsx)(M.Handle,{id:`${e}-t`,type:"target",position:"l"===e?z.Position.Left:z.Position.Right,isConnectable:!1,className:"opacity-0"})]},e)),n?(0,t.jsx)(A.StatusIcon,{status:n,className:"size-3.5 shrink-0"}):(0,t.jsx)(l,{className:(0,d.cn)("size-3.5 shrink-0","entry"===s.kind?"text-accent":"text-muted"),"aria-hidden":!0}),"doc"!==s.kind&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:s.id}),(0,t.jsx)("span",{className:(0,d.cn)("min-w-0 truncate","entry"===s.kind?"text-txt":"text-muted"),children:s.label})]})})};function L({entries:e,selectedId:n,onOpenEntry:a}){let{rootParam:i,summary:l,board:o}=(0,r.useApp)(),d=(0,k.useOpenNode)(a),[c,m]=(0,s.useState)(null),u=(0,s.useSyncExternalStore)(I,()=>document.documentElement.classList.contains("dark"),()=>!0);(0,s.useEffect)(()=>{let e=!0;return fetch(`/api/memory/graph${i}`).then(e=>e.json()).then(t=>{e&&m(t.nodes?t:{nodes:[],edges:[]})}).catch(t=>{console.warn("Loading the memory graph failed",t),e&&m({nodes:[],edges:[]})}),()=>{e=!1}},[i,l]);let{nodes:x,edges:p}=(0,s.useMemo)(()=>{if(!c)return{nodes:[],edges:[]};let t=function(e,t={}){let s={},n=e=>Number(e.replace(/\D/g,""))||0;e.nodes.filter(e=>"entry"===e.kind).sort((e,s)=>(t[e.id]??"").localeCompare(t[s.id]??"")||n(e.id)-n(s.id)).forEach((e,t)=>{s[e.id]={x:0,y:48*t}});let r=new Map;for(let{from:t,to:n}of e.edges)for(let[e,a]of[[t,n],[n,t]])s[a]&&!s[e]&&r.set(e,[...r.get(e)??[],s[a].y]);for(let t of["epic","task","adr","doc"]){let n=e.nodes.filter(e=>e.kind===t).map(e=>{let t=r.get(e.id)??[0];return{id:e.id,want:t.reduce((e,t)=>e+t,0)/t.length}}).sort((e,t)=>e.want-t.want||e.id.localeCompare(t.id,"en",{numeric:!0})),a=-1/0;for(let{id:e,want:r}of n){let n=Math.max(r,a);s[e]={x:240*O[t],y:n},a=n+48}}return s}(c,Object.fromEntries(e.map(e=>[e.id,e.type]))),s=new Map(Object.values(o??{}).flat().map(e=>[e.id,e])),r=new Set(c.edges.flatMap(e=>[e.from,e.to])),a=n&&t[n]?new Set([n,...c.edges.filter(e=>e.from===n||e.to===n).flatMap(e=>[e.from,e.to])]):null;return{nodes:c.nodes.map(e=>{let i="task"===e.kind?s.get(e.id):void 0;return{id:e.id,type:"mem",position:t[e.id]??{x:0,y:0},data:{node:e,status:i?(0,T.displayStatus)(i):void 0,unlinked:"entry"===e.kind&&!r.has(e.id),dim:!!a&&!a.has(e.id),active:e.id===n},draggable:!1}}),edges:c.edges.map(e=>{let s=t[e.from]?.x??0,r=t[e.to]?.x??0,i=r<s,l=!!a&&(e.from===n||e.to===n);return{id:`${e.from}->${e.to}`,source:e.from,target:e.to,sourceHandle:i?"l":"r",targetHandle:i||r===s?"r-t":"l-t",style:{stroke:l?"var(--color-accent)":"var(--color-border2)",strokeWidth:l?1.75:1,opacity:a&&!l?.15:1}}})}},[c,e,o,n]);return c?c.nodes.length?(0,t.jsx)("div",{"aria-label":"Memory graph",className:"h-[70vh] min-h-[420px] overflow-hidden rounded-xl border border-border",children:(0,t.jsxs)(M.ReactFlow,{nodes:x,edges:p,nodeTypes:_,onNodeClick:(e,t)=>d(t.data.node),nodesConnectable:!1,nodesDraggable:!1,deleteKeyCode:null,colorMode:u?"dark":"light",onlyRenderVisibleElements:x.length>150,fitView:!0,fitViewOptions:{padding:.1,minZoom:.8,maxZoom:1},minZoom:.1,style:R,children:[(0,t.jsx)(M.Background,{variant:M.BackgroundVariant.Dots,gap:20,size:1}),(0,t.jsx)(M.Controls,{showInteractive:!1})]})}):(0,t.jsx)("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted",children:"No entries to draw yet."}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"Loading graph…"})}var P=e.i(496385),K=e.i(314175),B=e.i(776639);function W(e,t){let s=[e,...t.filter(t=>t.id!==e.id)].map(e=>e.body.trim()).filter(Boolean).join("\n\n---\n\n");return{type:e.type,summary:e.summary,body:s}}function q({group:e,onClose:n,onApprove:r,returnFocus:a}){let i=[...e].sort((e,t)=>e.id.localeCompare(t.id,"en",{numeric:!0})),[l,o]=(0,s.useState)(i[0].id),[m,x]=(0,s.useState)(()=>W(i[0],i)),[p,h]=(0,s.useState)(null),[f,b]=(0,s.useState)(!1);async function g(){if(f||!m.summary.trim())return;b(!0);let e=await r({keepId:l,dropIds:i.filter(e=>e.id!==l).map(e=>e.id),...m});b(!1),e?h(e):n()}return(0,t.jsx)(B.Dialog,{open:!0,onOpenChange:e=>{e||n()},children:(0,t.jsxs)(B.DialogContent,{onCloseAutoFocus:e=>{let t=a?.current;t?.isConnected&&(e.preventDefault(),t.focus())},className:"max-h-[90vh] max-w-3xl overflow-y-auto border-border bg-surface text-txt shadow-xl shadow-black/20",children:[(0,t.jsx)(B.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Merge entries"}),(0,t.jsx)(B.DialogDescription,{className:"text-xs text-muted",children:"Pick the entry to keep and edit the merged text. The others are deleted; mentions of them point to the kept id."}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),g()},onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())},className:"flex min-w-0 flex-col gap-3",children:[(0,t.jsxs)("fieldset",{className:"grid min-w-0 gap-2 sm:grid-cols-2",children:[(0,t.jsx)("legend",{className:"sr-only",children:"Entry to keep"}),i.map(e=>(0,t.jsxs)("label",{className:(0,d.cn)("flex min-w-0 cursor-pointer flex-col gap-1.5 rounded-lg border bg-bg p-3 transition-colors duration-(--duration-fast)",e.id===l?"border-accent":"border-border hover:border-border2"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("input",{type:"radio",name:"keep",value:e.id,checked:e.id===l,onChange:()=>{var t;o(t=e.id),x(W(i.find(e=>e.id===t)??i[0],i))},className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted",children:e.id}),(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:e.type}),(0,t.jsx)("span",{className:"ml-auto text-muted",children:e.id===l?"Keep":"Delete"})]}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-txt",children:e.summary}),e.body&&(0,t.jsx)("span",{className:"line-clamp-6 whitespace-pre-wrap font-mono text-[11px] text-muted",children:e.body})]},e.id))]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,t.jsx)("select",{value:m.type,onChange:e=>x({...m,type:e.target.value}),className:"h-8 rounded-md border border-border bg-bg px-2 text-sm text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent",children:u.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged summary (one line)",(0,t.jsx)(c.Input,{value:m.summary,onChange:e=>x({...m,summary:e.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged details (markdown)",(0,t.jsx)("textarea",{value:m.body,onChange:e=>x({...m,body:e.target.value}),rows:8,className:"w-full resize-y rounded-md border border-border bg-bg px-3 py-2 font-mono text-xs text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent"})]}),p&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:p}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,t.jsx)("span",{className:"mr-auto font-mono text-[11px] text-muted",children:"⌘↵ approve · Esc cancel"}),(0,t.jsx)(j.Button,{type:"button",variant:"ghost",size:"sm",onClick:n,children:"Cancel"}),(0,t.jsx)(j.Button,{type:"submit",size:"sm",disabled:f||!m.summary.trim(),children:f?"Merging…":`Merge into ${l}`})]})]})]})})}let F=[{kind:"contradiction",label:"Contradicts the board"},{kind:"dangling-ref",label:"Missing items"},{kind:"duplicate",label:"Possible duplicates"},{kind:"stale",label:"Not recalled lately"}];function H({flags:e,entries:a,onDismiss:i,onMerge:l,onDelete:o,onOpenEntry:c,onClose:m}){let u=(0,n.useRouter)(),{board:x}=(0,r.useApp)(),[p,h]=(0,s.useState)(!1),[f,b]=(0,s.useState)(null),y=(0,s.useRef)(null),j=(0,s.useRef)(null),v=(0,s.useRef)(null),N=(0,s.useMemo)(()=>new Map(Object.values(x??{}).flat().map(e=>[e.id,e])),[x]),w=(0,s.useMemo)(()=>new Map((a??[]).map(e=>[e.id,e.summary])),[a]),k=(e??[]).filter(e=>p||!e.dismissed),C=f&&(a??[]).filter(e=>f.includes(e.id)),S=(e??[]).filter(e=>e.dismissed).length,E=k.map(e=>e.id).join(" ");(0,s.useEffect)(()=>{let e=j.current;if(!e||E.split(" ").includes(e.id))return;j.current=null;let t=v.current?.querySelectorAll("li[data-flag]")??[],s=t[Math.min(e.index,t.length-1)],n=s?.querySelector("button[data-action]")??v.current?.querySelector("h2");n?.focus()},[E]);let $=e=>{j.current={id:e.id,index:k.indexOf(e)}},D=e=>{let s=N.get(e),n=s?.title??w.get(e);return(0,t.jsxs)("button",{type:"button",onClick:()=>{e.startsWith("T")?u.push(`/board?task=${e}`):e.startsWith("R")?u.push(`/roadmap?item=${e}`):e.startsWith("E")&&c(e)},className:"inline-flex max-w-full items-center gap-1.5 rounded-sm px-1.5 py-0.5 text-left text-xs outline-none transition-colors duration-(--duration-fast) hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",children:[s&&(0,t.jsx)(A.StatusIcon,{status:(0,T.displayStatus)(s),className:"size-3.5 shrink-0"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e}),n&&(0,t.jsx)("span",{className:"min-w-0 truncate text-txt",children:n})]},e)},M=e=>{let s="warn"===e.severity?P.AlertTriangle:K.Info;return(0,t.jsxs)("li",{"data-flag":e.id,className:(0,d.cn)("flex items-start gap-2 rounded-lg border border-border bg-surface px-3 py-2.5",e.dismissed&&"opacity-60"),children:[(0,t.jsx)(s,{className:(0,d.cn)("mt-0.5 size-3.5 shrink-0","warn"!==e.severity||e.dismissed?"text-muted":"text-amber"),"aria-label":"warn"===e.severity?"Warning":"Note"}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,t.jsx)("p",{className:(0,d.cn)("text-[13px]",e.dismissed?"text-muted":"text-txt"),children:e.message.split(/\b([TRE]\d+)\b/).map((e,s)=>s%2?(0,t.jsx)("span",{className:"font-mono text-[12px]",children:e},s):e)}),e.refs.length>0&&(0,t.jsx)("div",{className:(0,d.cn)("-ml-1.5 flex gap-1","duplicate"===e.kind?"flex-col items-start":"flex-wrap"),children:e.refs.map(D)})]}),e.suggestion?.action==="merge"&&!e.dismissed&&(0,t.jsx)("button",{type:"button","data-action":!0,onClick:t=>{y.current=t.currentTarget,b(e.suggestion?.ids??null)},className:"h-6 shrink-0 rounded-md border border-border px-2 text-xs text-txt outline-none transition-colors duration-(--duration-fast) hover:border-border2 hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",children:"Merge…"}),e.suggestion?.action==="delete"&&!e.dismissed&&(0,t.jsxs)("button",{type:"button","data-action":!0,onClick:()=>{$(e),e.suggestion?.ids.forEach(o)},"aria-label":`Delete ${e.suggestion.ids.join(", ")}`,className:"inline-flex h-6 shrink-0 items-center gap-1 rounded-md border border-border px-2 text-xs text-txt outline-none transition-colors duration-(--duration-fast) hover:border-border2 hover:bg-surface2 hover:text-danger focus-visible:ring-2 focus-visible:ring-accent",children:[(0,t.jsx)(g.Trash2,{className:"size-3","aria-hidden":!0})," Delete"]}),e.dismissed?(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",title:"Dismissed on",children:["dismissed ",e.dismissed]}):(0,t.jsx)("button",{type:"button","data-action":!0,onClick:()=>{p||$(e),i(e)},className:"h-6 shrink-0 rounded-md px-2 text-xs text-muted outline-none transition-colors duration-(--duration-fast) hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",children:"Dismiss"})]},e.id)};return(0,t.jsxs)("section",{ref:v,"aria-label":"Cleanup",className:"min-w-0",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-baseline justify-between gap-3",children:[(0,t.jsx)("h2",{tabIndex:-1,className:"outline-none font-display text-base font-semibold tracking-tight",children:"Cleanup"}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[S>0&&(0,t.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs text-muted",children:[(0,t.jsx)("input",{type:"checkbox",checked:p,onChange:e=>h(e.target.checked),className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),"Show dismissed ",(0,t.jsx)("span",{className:"font-mono text-[10px]",children:S})]}),(0,t.jsx)("button",{type:"button",onClick:m,className:"text-xs text-muted underline-offset-2 outline-none hover:text-txt hover:underline focus-visible:ring-2 focus-visible:ring-accent",children:"Show the handoff"})]})]}),null===e?(0,t.jsx)("p",{className:"text-sm text-muted",children:"Checking memory…"}):k.length?(0,t.jsx)("div",{className:"flex flex-col gap-4",children:F.map(({kind:e,label:s})=>{let n=k.filter(t=>t.kind===e);return n.length?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("h3",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.06em] text-muted",children:[s," ",(0,t.jsx)("span",{children:n.filter(e=>!e.dismissed).length})]}),(0,t.jsx)("ul",{className:"flex flex-col gap-1.5",children:n.map(M)})]},e):null})}):(0,t.jsx)("p",{className:"rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:"Memory looks clean"}),C&&C.length>1&&(0,t.jsx)(q,{group:C,onClose:()=>b(null),onApprove:l,returnFocus:y},C.map(e=>e.id).join("+"))]})}function U({memory:e,entries:s,rootParam:n,selectedId:r,creating:l,onOpen:o,onNew:c,onClose:m,onSaved:u,onDelete:x,view:p,onView:h,flags:b,cleanup:g,onCleanup:y,onDismiss:j,onMerge:v,onDeleteStale:w}){let C=r?s?.find(e=>e.id===r):void 0,S=b?.filter(e=>!e.dismissed)??[],E=S.some(e=>"warn"===e.severity);return(0,t.jsxs)("div",{className:(0,d.cn)("grid items-start gap-6 p-6","graph"===p?"lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)]":"lg:grid-cols-[minmax(280px,380px)_minmax(0,42rem)]"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 lg:col-span-2",children:[(0,t.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Memory"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button","aria-pressed":g,onClick:()=>y(!g),className:(0,d.cn)("flex h-7 items-center gap-1.5 rounded-md border border-border px-2.5 text-xs font-medium text-muted outline-none transition-colors duration-(--duration-fast)","hover:border-border2 hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",g&&"border-border2 bg-surface2 text-txt"),children:[E&&(0,t.jsx)(P.AlertTriangle,{className:"size-3.5 text-amber","aria-hidden":!0}),"Cleanup ",(0,t.jsxs)("span",{className:"font-mono text-[11px]",children:["(",S.length,")"]})]}),(0,t.jsx)("div",{role:"group","aria-label":"Entries view",className:"flex rounded-md border border-border p-0.5",children:["list","graph"].map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":p===e,onClick:()=>h(e),className:(0,d.cn)("h-6 rounded-[5px] border border-transparent px-2.5 text-xs font-medium capitalize text-muted outline-none transition-colors","hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",p===e&&"border-border2 bg-surface2 text-txt"),children:e},e))})]})]}),s&&"graph"===p?(0,t.jsx)(L,{entries:s,selectedId:r,onOpenEntry:o}):s?(0,t.jsx)(f,{entries:s,selectedId:r,onOpen:o,onNew:c}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"Loading entries…"}),l||C?(0,t.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,t.jsx)(N,{entry:l?null:C??null,rootParam:n,onSaved:u,onDelete:x,onClose:m,children:C&&!l&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.EntryRelated,{entryId:C.id,onOpenEntry:o}),(0,t.jsx)(D,{entryId:C.id})]})},l?"new":C?.id)}):g?(0,t.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,t.jsx)(H,{flags:b,entries:s,onDismiss:j,onMerge:v,onDelete:w,onOpenEntry:o,onClose:()=>y(!1)})}):r&&s?(0,t.jsxs)("div",{role:"alert",className:"min-w-0 rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:["Entry ",r," not found."," ",(0,t.jsx)("button",{type:"button",onClick:m,className:"text-txt underline underline-offset-2",children:"Show the handoff"})]}):(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Session handoff"}),(0,t.jsx)("span",{className:"text-xs font-mono text-muted",children:"memory/MEMORY.md"})]}),e?.exists?(0,t.jsx)("div",{className:"bg-surface border border-border rounded-xl p-5",children:(0,t.jsx)(a.MarkdownRenderer,{content:e.content})}):(0,t.jsx)(i.EmptyState,{icon:"🧠",message:"No MEMORY.md yet.",subMessage:"AI will create one at the end of the first session.",bordered:!0}),(0,t.jsxs)("div",{className:"mt-4 p-4 bg-surface2 border border-border rounded-xl",children:[(0,t.jsx)("p",{className:"text-xs font-mono text-muted mb-2",children:"Add to your CLAUDE.md system prompt:"}),(0,t.jsx)("pre",{className:"text-xs font-mono text-accent/80 whitespace-pre-wrap leading-relaxed",children:`At session start:
3
+ ${e.body}`),score:0}))).map(e=>r.get(e.id)).filter(e=>!!e)},[e,i,b]),v=(0,s.useMemo)(()=>{let t={};for(let s of e)t[s.type]=(t[s.type]??0)+1;return t},[e]),j=p(i).length>0,N=(e,s,n)=>(0,t.jsxs)("button",{type:"button","aria-pressed":b===e,onClick:()=>g(e),className:(0,d.cn)("h-6 rounded-[5px] border border-transparent px-2 text-xs font-medium text-muted outline-none transition-colors","hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",b===e&&"border-border2 bg-surface2 text-txt"),children:[s," ",(0,t.jsx)("span",{className:"font-mono text-[10px] opacity-70",children:n})]},s);return(0,t.jsxs)("section",{"aria-label":"Knowledge entries",className:"flex min-w-0 flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,t.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Knowledge entries"}),(0,t.jsxs)("button",{type:"button",onClick:a,className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-muted outline-none hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",children:[(0,t.jsx)(l.Plus,{className:"size-3.5","aria-hidden":!0})," New entry"]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(o.Search,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted","aria-hidden":!0}),(0,t.jsx)(c.Input,{id:"memory-search",type:"search",value:i,onChange:e=>x(e.target.value),placeholder:"Search entries…","aria-label":"Search entries",className:"h-8 pl-8"})]}),(0,t.jsxs)("div",{role:"group","aria-label":"Filter by type",className:"flex flex-wrap gap-1",children:[N(null,"All",e.length),u.map(e=>N(e,e,v[e]??0))]}),0===e.length?(0,t.jsxs)("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted",children:["No knowledge entries yet. Agents save them with ",(0,t.jsx)("code",{className:"font-mono text-xs",children:"vibedoc_save_entry"}),"."]}):0===y.length?(0,t.jsxs)("p",{className:"p-2 text-sm text-muted",children:["No entries match ",j?`"${i.trim()}"`:"this filter","."]}):(0,t.jsx)("ul",{className:"flex flex-col divide-y divide-border rounded-xl border border-border bg-surface",children:y.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>r(e.id),"aria-current":e.id===n?"true":void 0,className:(0,d.cn)("flex w-full flex-col gap-0.5 px-3 py-2 text-left outline-none transition-colors hover:bg-surface2 focus-visible:bg-surface2",e.id===n&&"bg-surface2 shadow-[inset_2px_0_0_var(--color-accent-edge)]"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 font-mono text-[11px] text-muted",children:[(0,t.jsx)("span",{children:e.id}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:e.type}),(0,t.jsxs)("span",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)(m.OwnerChip,{owner:e.by,className:"font-sans"}),e.updatedAt]})]}),(0,t.jsx)("span",{className:"text-sm text-txt",children:e.summary})]})},e.id))})]})}var b=e.i(424991),g=e.i(458055),y=e.i(765470),v=e.i(519455),j=e.i(508540);function N({entry:e,rootParam:n,onSaved:r,onDelete:i,onClose:l,children:o}){let[d,x]=(0,s.useState)(null===e),[p,h]=(0,s.useState)(()=>w(e)),[f,k]=(0,s.useState)(null),[C,S]=(0,s.useState)(!1),E=()=>{e?(x(!1),k(null)):l()},M=async()=>{let t=function(e){let t;if(void 0!==e.id&&!function(e){let t=/^e(\d+)$/i.exec(e.trim());if(!t)return null;let s=Number(t[1]);return s>0?`E${String(s).padStart(3,"0")}`:null}(String(e.id)))return`Invalid id "${e.id}": expected E followed by a number, e.g. E001`;if(t=String(e.type??""),!u.includes(t))return`Invalid type "${e.type??""}": use one of ${u.join(", ")}`;let s=String(e.summary??"").trim();return s?/\n/.test(s)?"summary must be one line":s.length>120?`summary is ${s.length} characters; keep it to 120`:void 0!==e.body&&"string"!=typeof e.body?"body must be a string":null:"summary is required"}({...p,id:e?.id});if(t)return void k(t);S(!0),k(null);try{let t=await fetch(`/api/memory/entries/save${n}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...e?{id:e.id}:{},...p})}),s=await t.json().catch(()=>({}));if(!t.ok||!s.entry)throw Error(s.error??`Save failed (${t.status})`);x(!1),r(s.entry)}catch(e){k(e instanceof Error?e.message:String(e))}finally{S(!1)}};(0,s.useEffect)(()=>{if(d||!e)return;let t=t=>{if("Backspace"!==t.key&&"Delete"!==t.key||t.metaKey||t.ctrlKey||t.altKey)return;let s=t.target;s&&(s.isContentEditable||["INPUT","TEXTAREA","SELECT"].includes(s.tagName))||(t.preventDefault(),i(e))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[d,e,i]);let $=(0,t.jsx)("button",{type:"button",onClick:l,"aria-label":"Close entry",className:"rounded p-1 text-muted hover:bg-surface2 hover:text-txt",children:(0,t.jsx)(y.X,{className:"size-3.5"})});return d?(0,t.jsx)("section",{"aria-label":e?`Edit ${e.id}`:"New entry",className:"rounded-xl border border-border bg-surface",children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),M()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),E()),"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),M())},className:"flex flex-col gap-3 p-5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between font-mono text-[11px] text-muted",children:[(0,t.jsx)("span",{children:e?`${e.id} \xb7 editing`:"New entry"}),$]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,t.jsx)("select",{value:p.type,onChange:e=>h({...p,type:e.target.value}),className:"h-8 rounded-md border border-border bg-bg px-2 text-sm text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent",children:u.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Summary (one line)",(0,t.jsx)(c.Input,{autoFocus:!0,value:p.summary,onChange:e=>h({...p,summary:e.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Details (markdown)",(0,t.jsx)("textarea",{value:p.body,onChange:e=>h({...p,body:e.target.value}),rows:8,className:"w-full resize-y rounded-md border border-border bg-bg px-3 py-2 font-mono text-xs text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent"})]}),f&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:f}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,t.jsx)("span",{className:"mr-auto text-[11px] text-muted",children:"⌘↵ save · Esc cancel"}),(0,t.jsx)(v.Button,{type:"button",variant:"ghost",size:"sm",onClick:E,children:"Cancel"}),(0,t.jsx)(v.Button,{type:"submit",size:"sm",disabled:C,children:C?"Saving…":"Save"})]})]})}):e?(0,t.jsxs)("section",{"aria-label":e.id,className:"rounded-xl border border-border bg-surface",children:[(0,t.jsx)(j.ItemPanelHeader,{kicker:(0,t.jsxs)("span",{children:[e.id," · entry"]}),menu:(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)(v.Button,{variant:"ghost",size:"sm",onClick:()=>{h(w(e)),k(null),x(!0)},className:"h-7 px-2 text-xs",children:[(0,t.jsx)(b.Pencil,{className:"size-3.5"})," Edit"]}),(0,t.jsxs)(v.Button,{variant:"ghost",size:"sm",onClick:()=>i(e),title:"Delete (⌫)",className:"h-7 px-2 text-xs hover:text-danger",children:[(0,t.jsx)(g.Trash2,{className:"size-3.5"})," Delete"]}),$]}),title:e.summary,properties:[{label:"Type",value:e.type},{label:"Updated",value:e.updatedAt||null},{label:"Changed by",value:e.by?(0,t.jsx)(m.OwnerChip,{owner:e.by,className:"text-xs text-txt"}):null},{label:"File",value:(0,t.jsx)("span",{className:"truncate font-mono text-[11px] text-muted",children:e.file})}]}),(0,t.jsxs)("div",{className:"p-5",children:[e.body?(0,t.jsx)(a.MarkdownRenderer,{content:e.body}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No details."}),o]})]}):null}function w(e){return e?{type:e.type,summary:e.summary,body:e.body}:{type:"convention",summary:"",body:""}}var k=e.i(862249),C=e.i(675964),S=e.i(83790);let E={name:"git-commit-horizontal",size:24,node:[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],aliases:["git-commit"]};E.node;let M=(0,S.default)(E);function $({entryId:e}){let{rootParam:n}=(0,r.useApp)(),[a,i]=(0,s.useState)(!1),[l,o]=(0,s.useState)(null),[c,m]=(0,s.useState)(null),[u,x]=(0,s.useState)(null),p=`/api/memory/history${n}&entry=${encodeURIComponent(e)}`,h=async e=>{let t=await fetch(e),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error??`Request failed (${t.status})`);return s},f=async()=>{let e=!a;if(i(e),e&&!l)try{o(await h(p))}catch(e){m(e instanceof Error?e.message:String(e))}},b=async e=>{try{let{text:t}=await h(`${p}&sha=${e.sha}`);x({commit:e,text:t})}catch(e){m(e instanceof Error?e.message:String(e))}};return(0,t.jsxs)("section",{"aria-label":"History",className:"mt-4 border-t border-border pt-3",children:[(0,t.jsxs)("button",{type:"button",onClick:f,"aria-expanded":a,className:"flex items-center gap-1 rounded text-xs font-semibold text-txt outline-none focus-visible:ring-2 focus-visible:ring-accent",children:[(0,t.jsx)(C.ChevronRight,{className:(0,d.cn)("size-3.5 text-muted transition-transform",a&&"rotate-90"),"aria-hidden":!0}),"History"]}),a&&(0,t.jsxs)("div",{className:"mt-2 flex flex-col gap-2",children:[c&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:c}),!l&&!c&&(0,t.jsx)("p",{className:"text-xs text-muted",children:"Loading history…"}),l?.reason==="no-git"&&(0,t.jsx)("p",{className:"text-xs text-muted",children:"History needs git: this project is not a git repository."}),l&&!l.reason&&!l.history.length&&!l.uncommitted&&(0,t.jsx)("p",{className:"text-xs text-muted",children:"Not committed yet."}),l&&(l.uncommitted||l.history.length>0)&&(0,t.jsxs)("ul",{className:"flex flex-col",children:[l.uncommitted&&(0,t.jsxs)("li",{className:"flex items-center gap-2 px-2 py-1 text-xs text-muted",children:[(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-accent","aria-hidden":!0})," Uncommitted changes"]}),l.history.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>b(e),"aria-current":u?.commit.sha===e.sha?"true":void 0,className:(0,d.cn)("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-xs outline-none hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",u?.commit.sha===e.sha&&"bg-surface2"),children:[(0,t.jsx)(M,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e.date.slice(0,10)}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-txt",children:e.subject}),(0,t.jsx)("span",{className:"shrink-0 text-muted",children:e.author})]})},e.sha))]}),u&&(0,t.jsxs)("div",{className:"rounded-md border border-border bg-bg",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-1.5 font-mono text-[11px] text-muted",children:[(0,t.jsxs)("span",{children:[u.commit.sha.slice(0,7)," · ",u.commit.date.slice(0,10)," · read-only"]}),(0,t.jsx)("button",{type:"button",onClick:()=>x(null),"aria-label":"Close version",className:"rounded p-0.5 hover:text-txt",children:(0,t.jsx)(y.X,{className:"size-3.5"})})]}),(0,t.jsx)("pre",{className:"max-h-72 overflow-auto whitespace-pre-wrap p-3 font-mono text-xs text-txt",children:u.text})]})]})]})}var D=e.i(211672),R=e.i(301702),z=e.i(464750),A=e.i(694628);let O={epic:-2,task:-1,entry:0,adr:1,doc:2},T={"--xy-background-color":"var(--color-bg)"};function L(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()}let I={mem:(0,s.memo)(function({data:e}){let{node:s,status:n,unlinked:r,dim:a,active:i}=e,l=k.KIND_ICON[s.kind];return(0,t.jsxs)("div",{title:s.path,style:{width:196},className:(0,d.cn)("flex items-center gap-2 rounded-md border bg-surface px-2.5 py-1.5 text-xs transition-opacity","entry"===s.kind?"border-border2":"border-border",i&&"border-accent ring-1 ring-accent",r&&"border-dashed opacity-60",a&&"opacity-25"),children:[["l","r"].map(e=>(0,t.jsxs)("span",{children:[(0,t.jsx)(D.Handle,{id:e,type:"source",position:"l"===e?R.Position.Left:R.Position.Right,isConnectable:!1,className:"opacity-0"}),(0,t.jsx)(D.Handle,{id:`${e}-t`,type:"target",position:"l"===e?R.Position.Left:R.Position.Right,isConnectable:!1,className:"opacity-0"})]},e)),n?(0,t.jsx)(z.StatusIcon,{status:n,className:"size-3.5 shrink-0"}):(0,t.jsx)(l,{className:(0,d.cn)("size-3.5 shrink-0","entry"===s.kind?"text-accent":"text-muted"),"aria-hidden":!0}),"doc"!==s.kind&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:s.id}),(0,t.jsx)("span",{className:(0,d.cn)("min-w-0 truncate","entry"===s.kind?"text-txt":"text-muted"),children:s.label})]})})};function _({entries:e,selectedId:n,onOpenEntry:a}){let{rootParam:i,summary:l,board:o}=(0,r.useApp)(),d=(0,k.useOpenNode)(a),[c,m]=(0,s.useState)(null),u=(0,s.useSyncExternalStore)(L,()=>document.documentElement.classList.contains("dark"),()=>!0);(0,s.useEffect)(()=>{let e=!0;return fetch(`/api/memory/graph${i}`).then(e=>e.json()).then(t=>{e&&m(t.nodes?t:{nodes:[],edges:[]})}).catch(t=>{console.warn("Loading the memory graph failed",t),e&&m({nodes:[],edges:[]})}),()=>{e=!1}},[i,l]);let{nodes:x,edges:p}=(0,s.useMemo)(()=>{if(!c)return{nodes:[],edges:[]};let t=function(e,t={}){let s={},n=e=>Number(e.replace(/\D/g,""))||0;e.nodes.filter(e=>"entry"===e.kind).sort((e,s)=>(t[e.id]??"").localeCompare(t[s.id]??"")||n(e.id)-n(s.id)).forEach((e,t)=>{s[e.id]={x:0,y:48*t}});let r=new Map;for(let{from:t,to:n}of e.edges)for(let[e,a]of[[t,n],[n,t]])s[a]&&!s[e]&&r.set(e,[...r.get(e)??[],s[a].y]);for(let t of["epic","task","adr","doc"]){let n=e.nodes.filter(e=>e.kind===t).map(e=>{let t=r.get(e.id)??[0];return{id:e.id,want:t.reduce((e,t)=>e+t,0)/t.length}}).sort((e,t)=>e.want-t.want||e.id.localeCompare(t.id,"en",{numeric:!0})),a=-1/0;for(let{id:e,want:r}of n){let n=Math.max(r,a);s[e]={x:240*O[t],y:n},a=n+48}}return s}(c,Object.fromEntries(e.map(e=>[e.id,e.type]))),s=new Map(Object.values(o??{}).flat().map(e=>[e.id,e])),r=new Set(c.edges.flatMap(e=>[e.from,e.to])),a=n&&t[n]?new Set([n,...c.edges.filter(e=>e.from===n||e.to===n).flatMap(e=>[e.from,e.to])]):null;return{nodes:c.nodes.map(e=>{let i="task"===e.kind?s.get(e.id):void 0;return{id:e.id,type:"mem",position:t[e.id]??{x:0,y:0},data:{node:e,status:i?(0,A.displayStatus)(i):void 0,unlinked:"entry"===e.kind&&!r.has(e.id),dim:!!a&&!a.has(e.id),active:e.id===n},draggable:!1}}),edges:c.edges.map(e=>{let s=t[e.from]?.x??0,r=t[e.to]?.x??0,i=r<s,l=!!a&&(e.from===n||e.to===n);return{id:`${e.from}->${e.to}`,source:e.from,target:e.to,sourceHandle:i?"l":"r",targetHandle:i||r===s?"r-t":"l-t",style:{stroke:l?"var(--color-accent)":"var(--color-border2)",strokeWidth:l?1.75:1,opacity:a&&!l?.15:1}}})}},[c,e,o,n]);return c?c.nodes.length?(0,t.jsx)("div",{"aria-label":"Memory graph",className:"h-[70vh] min-h-[420px] overflow-hidden rounded-xl border border-border",children:(0,t.jsxs)(D.ReactFlow,{nodes:x,edges:p,nodeTypes:I,onNodeClick:(e,t)=>d(t.data.node),nodesConnectable:!1,nodesDraggable:!1,deleteKeyCode:null,colorMode:u?"dark":"light",onlyRenderVisibleElements:x.length>150,fitView:!0,fitViewOptions:{padding:.1,minZoom:.8,maxZoom:1},minZoom:.1,style:T,children:[(0,t.jsx)(D.Background,{variant:D.BackgroundVariant.Dots,gap:20,size:1}),(0,t.jsx)(D.Controls,{showInteractive:!1})]})}):(0,t.jsx)("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted",children:"No entries to draw yet."}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"Loading graph…"})}var P=e.i(496385),K=e.i(314175),B=e.i(776639);function H(e,t){let s=[e,...t.filter(t=>t.id!==e.id)].map(e=>e.body.trim()).filter(Boolean).join("\n\n---\n\n");return{type:e.type,summary:e.summary,body:s}}function q({group:e,onClose:n,onApprove:r,returnFocus:a}){let i=[...e].sort((e,t)=>e.id.localeCompare(t.id,"en",{numeric:!0})),[l,o]=(0,s.useState)(i[0].id),[m,x]=(0,s.useState)(()=>H(i[0],i)),[p,h]=(0,s.useState)(null),[f,b]=(0,s.useState)(!1);async function g(){if(f||!m.summary.trim())return;b(!0);let e=await r({keepId:l,dropIds:i.filter(e=>e.id!==l).map(e=>e.id),...m});b(!1),e?h(e):n()}return(0,t.jsx)(B.Dialog,{open:!0,onOpenChange:e=>{e||n()},children:(0,t.jsxs)(B.DialogContent,{onCloseAutoFocus:e=>{let t=a?.current;t?.isConnected&&(e.preventDefault(),t.focus())},className:"max-h-[90vh] max-w-3xl overflow-y-auto border-border bg-surface text-txt shadow-xl shadow-black/20",children:[(0,t.jsx)(B.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Merge entries"}),(0,t.jsx)(B.DialogDescription,{className:"text-xs text-muted",children:"Pick the entry to keep and edit the merged text. The others are deleted; mentions of them point to the kept id."}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),g()},onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())},className:"flex min-w-0 flex-col gap-3",children:[(0,t.jsxs)("fieldset",{className:"grid min-w-0 gap-2 sm:grid-cols-2",children:[(0,t.jsx)("legend",{className:"sr-only",children:"Entry to keep"}),i.map(e=>(0,t.jsxs)("label",{className:(0,d.cn)("flex min-w-0 cursor-pointer flex-col gap-1.5 rounded-lg border bg-bg p-3 transition-colors duration-(--duration-fast)",e.id===l?"border-accent":"border-border hover:border-border2"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("input",{type:"radio",name:"keep",value:e.id,checked:e.id===l,onChange:()=>{var t;o(t=e.id),x(H(i.find(e=>e.id===t)??i[0],i))},className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted",children:e.id}),(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:e.type}),(0,t.jsx)("span",{className:"ml-auto text-muted",children:e.id===l?"Keep":"Delete"})]}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-txt",children:e.summary}),e.body&&(0,t.jsx)("span",{className:"line-clamp-6 whitespace-pre-wrap font-mono text-[11px] text-muted",children:e.body})]},e.id))]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,t.jsx)("select",{value:m.type,onChange:e=>x({...m,type:e.target.value}),className:"h-8 rounded-md border border-border bg-bg px-2 text-sm text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent",children:u.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged summary (one line)",(0,t.jsx)(c.Input,{value:m.summary,onChange:e=>x({...m,summary:e.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged details (markdown)",(0,t.jsx)("textarea",{value:m.body,onChange:e=>x({...m,body:e.target.value}),rows:8,className:"w-full resize-y rounded-md border border-border bg-bg px-3 py-2 font-mono text-xs text-txt focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent"})]}),p&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:p}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,t.jsx)("span",{className:"mr-auto font-mono text-[11px] text-muted",children:"⌘↵ approve · Esc cancel"}),(0,t.jsx)(v.Button,{type:"button",variant:"ghost",size:"sm",onClick:n,children:"Cancel"}),(0,t.jsx)(v.Button,{type:"submit",size:"sm",disabled:f||!m.summary.trim(),children:f?"Merging…":`Merge into ${l}`})]})]})]})})}let U=[{kind:"contradiction",label:"Contradicts the board"},{kind:"dangling-ref",label:"Missing items"},{kind:"duplicate",label:"Possible duplicates"},{kind:"stale",label:"Not recalled lately"}];function W({flags:e,entries:a,onDismiss:i,onMerge:l,onDelete:o,onOpenEntry:c,onClose:m}){let u=(0,n.useRouter)(),{board:x}=(0,r.useApp)(),[p,h]=(0,s.useState)(!1),[f,b]=(0,s.useState)(null),y=(0,s.useRef)(null),v=(0,s.useRef)(null),j=(0,s.useRef)(null),N=(0,s.useMemo)(()=>new Map(Object.values(x??{}).flat().map(e=>[e.id,e])),[x]),w=(0,s.useMemo)(()=>new Map((a??[]).map(e=>[e.id,e.summary])),[a]),k=(e??[]).filter(e=>p||!e.dismissed),C=f&&(a??[]).filter(e=>f.includes(e.id)),S=(e??[]).filter(e=>e.dismissed).length,E=k.map(e=>e.id).join(" ");(0,s.useEffect)(()=>{let e=v.current;if(!e||E.split(" ").includes(e.id))return;v.current=null;let t=j.current?.querySelectorAll("li[data-flag]")??[],s=t[Math.min(e.index,t.length-1)],n=s?.querySelector("button[data-action]")??j.current?.querySelector("h2");n?.focus()},[E]);let M=e=>{v.current={id:e.id,index:k.indexOf(e)}},$=e=>{let s=N.get(e),n=s?.title??w.get(e);return(0,t.jsxs)("button",{type:"button",onClick:()=>{e.startsWith("T")?u.push(`/board?task=${e}`):e.startsWith("R")?u.push(`/roadmap?item=${e}`):e.startsWith("E")&&c(e)},className:"inline-flex max-w-full items-center gap-1.5 rounded-sm px-1.5 py-0.5 text-left text-xs outline-none transition-colors duration-(--duration-fast) hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",children:[s&&(0,t.jsx)(z.StatusIcon,{status:(0,A.displayStatus)(s),className:"size-3.5 shrink-0"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e}),n&&(0,t.jsx)("span",{className:"min-w-0 truncate text-txt",children:n})]},e)},D=e=>{let s="warn"===e.severity?P.AlertTriangle:K.Info;return(0,t.jsxs)("li",{"data-flag":e.id,className:(0,d.cn)("flex items-start gap-2 rounded-lg border border-border bg-surface px-3 py-2.5",e.dismissed&&"opacity-60"),children:[(0,t.jsx)(s,{className:(0,d.cn)("mt-0.5 size-3.5 shrink-0","warn"!==e.severity||e.dismissed?"text-muted":"text-amber"),"aria-label":"warn"===e.severity?"Warning":"Note"}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,t.jsx)("p",{className:(0,d.cn)("text-[13px]",e.dismissed?"text-muted":"text-txt"),children:e.message.split(/\b([TRE]\d+)\b/).map((e,s)=>s%2?(0,t.jsx)("span",{className:"font-mono text-[12px]",children:e},s):e)}),e.refs.length>0&&(0,t.jsx)("div",{className:(0,d.cn)("-ml-1.5 flex gap-1","duplicate"===e.kind?"flex-col items-start":"flex-wrap"),children:e.refs.map($)})]}),e.suggestion?.action==="merge"&&!e.dismissed&&(0,t.jsx)("button",{type:"button","data-action":!0,onClick:t=>{y.current=t.currentTarget,b(e.suggestion?.ids??null)},className:"h-6 shrink-0 rounded-md border border-border px-2 text-xs text-txt outline-none transition-colors duration-(--duration-fast) hover:border-border2 hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",children:"Merge…"}),e.suggestion?.action==="delete"&&!e.dismissed&&(0,t.jsxs)("button",{type:"button","data-action":!0,onClick:()=>{M(e),e.suggestion?.ids.forEach(o)},"aria-label":`Delete ${e.suggestion.ids.join(", ")}`,className:"inline-flex h-6 shrink-0 items-center gap-1 rounded-md border border-border px-2 text-xs text-txt outline-none transition-colors duration-(--duration-fast) hover:border-border2 hover:bg-surface2 hover:text-danger focus-visible:ring-2 focus-visible:ring-accent",children:[(0,t.jsx)(g.Trash2,{className:"size-3","aria-hidden":!0})," Delete"]}),e.dismissed?(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",title:"Dismissed on",children:["dismissed ",e.dismissed]}):(0,t.jsx)("button",{type:"button","data-action":!0,onClick:()=>{p||M(e),i(e)},className:"h-6 shrink-0 rounded-md px-2 text-xs text-muted outline-none transition-colors duration-(--duration-fast) hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",children:"Dismiss"})]},e.id)};return(0,t.jsxs)("section",{ref:j,"aria-label":"Cleanup",className:"min-w-0",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-baseline justify-between gap-3",children:[(0,t.jsx)("h2",{tabIndex:-1,className:"outline-none font-display text-base font-semibold tracking-tight",children:"Cleanup"}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[S>0&&(0,t.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs text-muted",children:[(0,t.jsx)("input",{type:"checkbox",checked:p,onChange:e=>h(e.target.checked),className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),"Show dismissed ",(0,t.jsx)("span",{className:"font-mono text-[10px]",children:S})]}),(0,t.jsx)("button",{type:"button",onClick:m,className:"text-xs text-muted underline-offset-2 outline-none hover:text-txt hover:underline focus-visible:ring-2 focus-visible:ring-accent",children:"Show the handoff"})]})]}),null===e?(0,t.jsx)("p",{className:"text-sm text-muted",children:"Checking memory…"}):k.length?(0,t.jsx)("div",{className:"flex flex-col gap-4",children:U.map(({kind:e,label:s})=>{let n=k.filter(t=>t.kind===e);return n.length?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("h3",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.06em] text-muted",children:[s," ",(0,t.jsx)("span",{children:n.filter(e=>!e.dismissed).length})]}),(0,t.jsx)("ul",{className:"flex flex-col gap-1.5",children:n.map(D)})]},e):null})}):(0,t.jsx)("p",{className:"rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:"Memory looks clean"}),C&&C.length>1&&(0,t.jsx)(q,{group:C,onClose:()=>b(null),onApprove:l,returnFocus:y},C.map(e=>e.id).join("+"))]})}let F={name:"rotate-ccw-clock",size:24,node:[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],aliases:["history"]};F.node;let V=(0,S.default)(F);var Y=e.i(608568),X=e.i(222581),Z=e.i(329090);function J({versions:e,current:n,rootParam:r,selectedId:a,onSelect:i,onClose:l,onRestore:o}){let[c,u]=(0,s.useState)(null),[x,p]=(0,s.useState)(!1),h=e?.find(e=>e.id===a)??null;(0,s.useEffect)(()=>{if(!a)return;let e=!0;return fetch(`/api/memory/versions${r}&id=${encodeURIComponent(a)}`).then(async t=>{let s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error??`Request failed (${t.status})`);e&&u({id:a,content:String(s.content??"")})}).catch(t=>{e&&u({id:a,error:t instanceof Error?t.message:String(t)})}),()=>{e=!1}},[a,r]),(0,s.useEffect)(()=>{let e=e=>{if("Escape"!==e.key||e.defaultPrevented)return;let t=e.target;t?.closest("input, textarea, select, [contenteditable=true], [role=dialog]")||l()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l]);let f=c&&c.id===a?c:null,b=(0,s.useMemo)(()=>f&&"content"in f?(0,Y.visibleHunks)((0,Y.lineDiff)(n,f.content)):[],[f,n]),g=b.filter(e=>"number"!=typeof e&&"+"===e.op).length,v=b.filter(e=>"number"!=typeof e&&"-"===e.op).length,j=g+v>0,N=async()=>{if(h){p(!0);try{await o(h)}finally{p(!1)}}};return(0,t.jsxs)("section",{"aria-label":"MEMORY.md history",className:"flex flex-col gap-3",children:[!e&&(0,t.jsx)("p",{className:"text-sm text-muted",children:"Loading history…"}),e?.length===0&&(0,t.jsx)("div",{className:"rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:"No earlier versions yet. VibeDoc saves one before each handoff."}),e&&e.length>0&&(0,t.jsx)("ul",{className:"flex flex-col rounded-xl border border-border bg-surface p-1",children:e.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>i(e.id===a?null:e.id),"aria-current":e.id===a?"true":void 0,className:(0,d.cn)("flex w-full min-w-0 flex-col gap-0.5 rounded-md px-2 py-1.5 text-left text-xs outline-none hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",e.id===a&&"bg-surface2"),children:[(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(V,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),(0,t.jsx)("time",{dateTime:e.at,title:new Date(e.at).toLocaleString(),className:"shrink-0 font-mono text-[11px] text-muted",children:(0,Z.timeAgo)(e.at)}),(0,t.jsx)(m.OwnerChip,{owner:(0,X.parseOwner)(e.actor),className:"shrink-0"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:"restore"===e.reason?"before restore":"before update"})]}),(0,t.jsx)("span",{className:(0,d.cn)("block truncate pl-5.5",e.excerpt?"text-txt":"italic text-muted"),children:e.excerpt||"No handoff"})]})},e.id))}),a&&e&&!h&&(0,t.jsxs)("p",{role:"alert",className:"text-xs text-muted",children:["Version ",(0,t.jsx)("span",{className:"font-mono",children:a})," is no longer saved."]}),h&&(0,t.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border bg-bg",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2 border-b border-border bg-surface2 px-3 py-1.5 font-mono text-[11px] text-muted",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-0.5",children:[(0,t.jsxs)("span",{title:new Date(h.at).toLocaleString(),children:[h.at.slice(0,16).replace("T"," "),"Z"]}),(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"text-danger",children:"− now"})," ",(0,t.jsx)("span",{className:"text-teal",children:"+ this version"})]}),f&&"content"in f&&(0,t.jsxs)("span",{className:"ml-auto",children:[(0,t.jsxs)("span",{className:"text-teal",children:["+",g]})," ",(0,t.jsxs)("span",{className:"text-danger",children:["−",v]})]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>i(null),"aria-label":"Close version",className:"shrink-0 rounded p-0.5 outline-none hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",children:(0,t.jsx)(y.X,{className:"size-3.5"})})]}),(0,t.jsxs)("div",{className:"max-h-96 overflow-auto font-mono text-[11px] leading-5",children:[!f&&(0,t.jsx)("div",{className:"px-3 py-1 text-muted",children:"Loading diff…"}),f&&"error"in f&&(0,t.jsx)("div",{role:"alert",className:"px-3 py-1 text-danger",children:f.error}),f&&"content"in f&&!j&&(0,t.jsx)("div",{className:"px-3 py-1 text-muted",children:"Same as the current file."}),b.map((e,s)=>"number"==typeof e?(0,t.jsxs)("div",{className:"bg-surface2/50 px-3 text-muted",children:["⋯ ",e," unchanged line",e>1?"s":""]},s):(0,t.jsxs)("div",{className:(0,d.cn)("whitespace-pre-wrap break-words px-3","+"===e.op&&"bg-teal/10 text-teal","-"===e.op&&"bg-danger/10 text-danger"),children:["-"===e.op?"−":e.op," ",e.text||" "]},s))]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-t border-border px-3 py-2",children:[(0,t.jsx)("button",{type:"button",onClick:N,disabled:x||!f||"error"in f||!j,className:"h-7 shrink-0 whitespace-nowrap rounded-md bg-accent px-2.5 text-xs font-medium text-accent-fg outline-none hover:bg-accent/90 focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg disabled:opacity-50",children:x?"Restoring…":"Restore this version"}),(0,t.jsx)("span",{className:"text-[11px] text-muted",children:"The current file is saved first, so you can undo."})]})]})]})}function G({memory:e,entries:s,rootParam:n,selectedId:r,creating:l,onOpen:o,onNew:c,onClose:m,onSaved:u,onDelete:x,view:p,onView:h,flags:b,cleanup:g,onCleanup:y,onDismiss:v,onMerge:j,onDeleteStale:w,versions:C,history:S,versionId:E,onHistory:M,onRestore:D}){let R=r?s?.find(e=>e.id===r):void 0,z=b?.filter(e=>!e.dismissed)??[],A=z.some(e=>"warn"===e.severity);return(0,t.jsxs)("div",{className:(0,d.cn)("grid items-start gap-6 p-6","graph"===p?"lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)]":"lg:grid-cols-[minmax(280px,380px)_minmax(0,42rem)]"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 lg:col-span-2",children:[(0,t.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Memory"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button","aria-pressed":g,onClick:()=>y(!g),className:(0,d.cn)("flex h-7 items-center gap-1.5 rounded-md border border-border px-2.5 text-xs font-medium text-muted outline-none transition-colors duration-(--duration-fast)","hover:border-border2 hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",g&&"border-border2 bg-surface2 text-txt"),children:[A&&(0,t.jsx)(P.AlertTriangle,{className:"size-3.5 text-amber","aria-hidden":!0}),"Cleanup ",(0,t.jsxs)("span",{className:"font-mono text-[11px]",children:["(",z.length,")"]})]}),(0,t.jsx)("div",{role:"group","aria-label":"Entries view",className:"flex rounded-md border border-border p-0.5",children:["list","graph"].map(e=>(0,t.jsx)("button",{type:"button","aria-pressed":p===e,onClick:()=>h(e),className:(0,d.cn)("h-6 rounded-[5px] border border-transparent px-2.5 text-xs font-medium capitalize text-muted outline-none transition-colors","hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",p===e&&"border-border2 bg-surface2 text-txt"),children:e},e))})]})]}),s&&"graph"===p?(0,t.jsx)(_,{entries:s,selectedId:r,onOpenEntry:o}):s?(0,t.jsx)(f,{entries:s,selectedId:r,onOpen:o,onNew:c}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"Loading entries…"}),l||R?(0,t.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,t.jsx)(N,{entry:l?null:R??null,rootParam:n,onSaved:u,onDelete:x,onClose:m,children:R&&!l&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.EntryRelated,{entryId:R.id,onOpenEntry:o}),(0,t.jsx)($,{entryId:R.id})]})},l?"new":R?.id)}):g?(0,t.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,t.jsx)(W,{flags:b,entries:s,onDismiss:v,onMerge:j,onDelete:w,onOpenEntry:o,onClose:()=>y(!1)})}):r&&s?(0,t.jsxs)("div",{role:"alert",className:"min-w-0 rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:["Entry ",r," not found."," ",(0,t.jsx)("button",{type:"button",onClick:m,className:"text-txt underline underline-offset-2",children:"Show the handoff"})]}):(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[(0,t.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Session handoff"}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-muted",children:"memory/MEMORY.md"}),(0,t.jsxs)("button",{type:"button","aria-pressed":S,onClick:()=>M(!S),className:(0,d.cn)("flex h-7 items-center gap-1.5 rounded-md border border-border px-2.5 text-xs font-medium text-muted outline-none transition-colors duration-(--duration-fast)","hover:border-border2 hover:bg-surface2 hover:text-txt focus-visible:ring-2 focus-visible:ring-accent",S&&"border-border2 bg-surface2 text-txt"),children:["History ",(0,t.jsxs)("span",{className:"font-mono text-[11px]",children:["(",C?.length??"…",")"]})]})]})]}),S?(0,t.jsx)(J,{versions:C,current:e?.exists?e.content:"",rootParam:n,selectedId:E,onSelect:e=>M(!0,e),onClose:()=>M(!1),onRestore:D}):e?.exists?(0,t.jsx)("div",{className:"bg-surface border border-border rounded-xl p-5",children:(0,t.jsx)(a.MarkdownRenderer,{content:e.content})}):(0,t.jsx)(i.EmptyState,{icon:"🧠",message:"No MEMORY.md yet.",subMessage:"AI will create one at the end of the first session.",bordered:!0}),(0,t.jsxs)("div",{className:"mt-4 p-4 bg-surface2 border border-border rounded-xl",children:[(0,t.jsx)("p",{className:"text-xs font-mono text-muted mb-2",children:"Add to your CLAUDE.md system prompt:"}),(0,t.jsx)("pre",{className:"text-xs font-mono text-accent/80 whitespace-pre-wrap leading-relaxed",children:`At session start:
4
4
  1. Call vibedoc_read_memory
5
5
  If it shows ⚠ Memory warnings, fix the handoff with vibedoc_update_memory first
6
6
  2. Call vibedoc_get_status
@@ -9,4 +9,4 @@ When you learn a fact that should still hold next week:
9
9
  - Call vibedoc_save_entry (convention, gotcha, decision, preference)
10
10
 
11
11
  At session end:
12
- - Call vibedoc_update_memory with full handoff`})]})]})]})}var V=e.i(673635);function J(){let{summary:e,rootParam:a}=(0,r.useApp)(),i=(0,n.useRouter)(),l=(0,n.useSearchParams)(),o=l.get("entry"),d="graph"===l.get("view")?"graph":"list",c="1"===l.get("cleanup"),[m,u]=(0,s.useState)(null),[x,p]=(0,s.useState)(!1),[h,f]=(0,s.useState)(null),b=(0,s.useCallback)(()=>{let e=!0;return fetch(`/api/memory/entries${a}`).then(e=>e.json()).then(t=>{e&&u(t.entries??[])}).catch(t=>{console.warn("Loading memory entries failed",t),e&&u([])}),()=>{e=!1}},[a]);(0,s.useEffect)(()=>b(),[b,e]);let g=(0,s.useCallback)(()=>{fetch(`/api/memory/health${a}&dismissed=1`).then(e=>e.json()).then(e=>f(e.flags??[])).catch(e=>{console.warn("Loading memory health failed",e),f([])})},[a]);(0,s.useEffect)(()=>{g();let e=e=>{let t=e.detail?.type??"";("memory_updated"===t||"roadmap_updated"===t||t.startsWith("task_"))&&g()};return window.addEventListener("vibedoc:sse",e),()=>window.removeEventListener("vibedoc:sse",e)},[g]);let y=(0,s.useCallback)(async e=>{let t=new Date().toLocaleDateString("en-CA");f(s=>(s??[]).map(s=>s.id===e.id?{...s,dismissed:t}:s));try{let t=await fetch(`/api/memory/health/dismiss${a}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:e.id})}),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error??`Request failed (${t.status})`)}catch(e){(0,V.toast)(`Dismiss failed: ${e instanceof Error?e.message:String(e)}`),g()}},[a,g]),j=(0,s.useCallback)((e,t,s=!1)=>{let n=new URLSearchParams;"graph"===t&&n.set("view","graph"),e&&n.set("entry",e),s&&n.set("cleanup","1"),i.replace(n.size?`/memory?${n}`:"/memory",{scroll:!1})},[i]),v=(0,s.useCallback)(e=>{p(!1),j(e,d)},[j,d]),N=(0,s.useCallback)(async(e,t)=>{let s=await fetch(`${e}${a}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)}),n=await s.json().catch(()=>({}));if(!s.ok)throw Error(n.error??`Request failed (${s.status})`);return n},[a]),w=(0,s.useCallback)(async e=>{try{let{file:t,raw:s}=await N("/api/memory/entries/delete",{id:e.id});u(t=>(t??[]).filter(t=>t.id!==e.id)),v(null),(0,V.undoToast)(`Deleted ${e.id}`,async()=>{await N("/api/memory/entries/restore",{file:t,raw:s}),b(),v(e.id)})}catch(e){(0,V.toast)(`Delete failed: ${e instanceof Error?e.message:String(e)}`)}},[N,v,b]),k=(0,s.useCallback)(async e=>{try{let{file:t,raw:s}=await N("/api/memory/entries/delete",{id:e});u(t=>(t??[]).filter(t=>t.id!==e)),f(t=>(t??[]).filter(t=>!("stale"===t.kind&&t.refs.includes(e)))),(0,V.undoToast)(`Deleted ${e}`,async()=>{await N("/api/memory/entries/restore",{file:t,raw:s}),b()})}catch(e){(0,V.toast)(`Delete failed: ${e instanceof Error?e.message:String(e)}`)}},[N,b]),C=(0,s.useCallback)(async e=>{try{let{entry:t,before:s}=await N("/api/memory/entries/merge",e);return u(s=>[...(s??[]).filter(s=>s.id!==t.id&&!e.dropIds.includes(s.id)),t]),v(t.id),(0,V.undoToast)(`Merged into ${t.id}`,async()=>{await N("/api/memory/entries/merge/undo",{before:s}),b(),v(t.id)}),null}catch(e){return e instanceof Error?e.message:String(e)}},[N,v,b]);return(0,t.jsx)(U,{memory:e?.memory??null,entries:m,rootParam:a,selectedId:x?null:o,creating:x,onOpen:v,onNew:()=>p(!0),onClose:()=>v(null),onDelete:w,view:d,onView:e=>j(o,e,c),flags:h,cleanup:c&&!x&&!o,onCleanup:e=>{p(!1),j(e?null:o,d,e)},onDismiss:y,onMerge:C,onDeleteStale:k,onSaved:e=>{u(t=>[...(t??[]).filter(t=>t.id!==e.id),e]),v(e.id)}})}e.s(["default",0,function(){return(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(J,{})})}],185914)}]);
12
+ - Call vibedoc_update_memory with full handoff`})]})]})]})}var Q=e.i(673635);function ee(){let{summary:e,rootParam:a,refresh:i}=(0,r.useApp)(),l=(0,n.useRouter)(),o=(0,n.useSearchParams)(),d=o.get("entry"),c="graph"===o.get("view")?"graph":"list",m="1"===o.get("cleanup"),u="1"===o.get("history"),x=u?o.get("version"):null,[p,h]=(0,s.useState)(null),[f,b]=(0,s.useState)(!1),[g,y]=(0,s.useState)(null),[v,j]=(0,s.useState)(null),N=(0,s.useCallback)(()=>{let e=!0;return fetch(`/api/memory/entries${a}`).then(e=>e.json()).then(t=>{e&&h(t.entries??[])}).catch(t=>{console.warn("Loading memory entries failed",t),e&&h([])}),()=>{e=!1}},[a]);(0,s.useEffect)(()=>N(),[N,e]);let w=(0,s.useCallback)(()=>{let e=!0;return fetch(`/api/memory/versions${a}`).then(e=>e.json()).then(t=>{e&&j(Array.isArray(t)?t:[])}).catch(t=>{console.warn("Loading memory versions failed",t),e&&j([])}),()=>{e=!1}},[a]);(0,s.useEffect)(()=>w(),[w,e]);let k=(0,s.useCallback)(()=>{fetch(`/api/memory/health${a}&dismissed=1`).then(e=>e.json()).then(e=>y(e.flags??[])).catch(e=>{console.warn("Loading memory health failed",e),y([])})},[a]);(0,s.useEffect)(()=>{k();let e=e=>{let t=e.detail?.type??"";("memory_updated"===t||"roadmap_updated"===t||t.startsWith("task_"))&&k()};return window.addEventListener("vibedoc:sse",e),()=>window.removeEventListener("vibedoc:sse",e)},[k]);let C=(0,s.useCallback)(async e=>{let t=new Date().toLocaleDateString("en-CA");y(s=>(s??[]).map(s=>s.id===e.id?{...s,dismissed:t}:s));try{let t=await fetch(`/api/memory/health/dismiss${a}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:e.id})}),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error??`Request failed (${t.status})`)}catch(e){(0,Q.toast)(`Dismiss failed: ${e instanceof Error?e.message:String(e)}`),k()}},[a,k]),S=(0,s.useCallback)((e,t,s=!1,n)=>{let r=new URLSearchParams;"graph"===t&&r.set("view","graph"),e&&r.set("entry",e),s&&r.set("cleanup","1"),void 0!==n&&r.set("history","1"),n&&r.set("version",n),l.replace(r.size?`/memory?${r}`:"/memory",{scroll:!1})},[l]),E=(0,s.useCallback)(e=>{b(!1),S(e,c)},[S,c]),M=(0,s.useCallback)(async(e,t)=>{let s=await fetch(`${e}${a}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)}),n=await s.json().catch(()=>({}));if(!s.ok)throw Error(n.error??`Request failed (${s.status})`);return n},[a]),$=(0,s.useCallback)(async e=>{try{let{file:t,raw:s}=await M("/api/memory/entries/delete",{id:e.id});h(t=>(t??[]).filter(t=>t.id!==e.id)),E(null),(0,Q.undoToast)(`Deleted ${e.id}`,async()=>{await M("/api/memory/entries/restore",{file:t,raw:s}),N(),E(e.id)})}catch(e){(0,Q.toast)(`Delete failed: ${e instanceof Error?e.message:String(e)}`)}},[M,E,N]),D=(0,s.useCallback)(async e=>{try{let{file:t,raw:s}=await M("/api/memory/entries/delete",{id:e});h(t=>(t??[]).filter(t=>t.id!==e)),y(t=>(t??[]).filter(t=>!("stale"===t.kind&&t.refs.includes(e)))),(0,Q.undoToast)(`Deleted ${e}`,async()=>{await M("/api/memory/entries/restore",{file:t,raw:s}),N()})}catch(e){(0,Q.toast)(`Delete failed: ${e instanceof Error?e.message:String(e)}`)}},[M,N]),R=(0,s.useCallback)(async e=>{try{let{entry:t,before:s}=await M("/api/memory/entries/merge",e);return h(s=>[...(s??[]).filter(s=>s.id!==t.id&&!e.dropIds.includes(s.id)),t]),E(t.id),(0,Q.undoToast)(`Merged into ${t.id}`,async()=>{await M("/api/memory/entries/merge/undo",{before:s}),N(),E(t.id)}),null}catch(e){return e instanceof Error?e.message:String(e)}},[M,E,N]),z=(0,s.useCallback)(async e=>{try{let{replacedId:t}=await M("/api/memory/restore",{id:e.id});S(null,c),await i(),w();let s=async()=>{await M("/api/memory/restore",{id:t}),await i(),w()};t?(0,Q.undoToast)("Restored MEMORY.md",s):(0,Q.toast)("Restored MEMORY.md")}catch(e){(0,Q.toast)(`Restore failed: ${e instanceof Error?e.message:String(e)}`)}},[M,S,c,i,w]);return(0,t.jsx)(G,{memory:e?.memory??null,entries:p,rootParam:a,selectedId:f?null:d,creating:f,onOpen:E,onNew:()=>b(!0),onClose:()=>E(null),onDelete:$,view:c,onView:e=>S(d,e,m),flags:g,cleanup:m&&!f&&!d,onCleanup:e=>{b(!1),S(e?null:d,c,e)},onDismiss:C,onMerge:R,onDeleteStale:D,versions:v,history:u,versionId:x,onHistory:(e,t)=>S(null,c,!1,e?t??null:void 0),onRestore:z,onSaved:e=>{h(t=>[...(t??[]).filter(t=>t.id!==e.id),e]),E(e.id)}})}e.s(["default",0,function(){return(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(ee,{})})}],185914)}]);
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,83790,e=>{"use strict";var t=e.i(180338);let n=(...e)=>e.filter((e,t,n)=>!!e&&""!==e.trim()&&n.indexOf(e)===t).join(" ").trim(),r={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},a=(0,t.createContext)({}),i=(0,t.forwardRef)(({color:e,size:i,width:s,height:l,strokeWidth:o,absoluteStrokeWidth:d,nonScalingStroke:c,className:u="",children:p,iconNode:h=[],icon:m={node:h,aliases:[],size:24},...f},g)=>{let{size:b=24,strokeWidth:x=2,absoluteStrokeWidth:k=!1,nonScalingStroke:y=!1,color:w="currentColor",className:v=""}=(0,t.useContext)(a)??{},S=!!p||(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(f),[N,A,j=[]]=function(e,t={}){return function(e,t={}){let a=t.attributeNames??{},i=e=>a[e]??e,s=e.size??e.width??r.width,l=e.size??e.height??r.height,o=e.aliases?.filter(e=>"string"==typeof e&&""!==e.trim()).map(e=>`lucide-${e}`)??[],d=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(" ").filter(Boolean)??[],u=!1===t.includeDefaultClasses?n(...c):n("lucide",...d,...c),p=t.absoluteStrokeWidth?Number(t.strokeWidth??r["stroke-width"])*Number(e.size??e.width??r.width)/Number(t.size??t.width??r.width):t.strokeWidth??r["stroke-width"];return["svg",{...Object.entries(r).reduce((e,[t,n])=>(e[i(t)]=n,e),{}),..."color"in t&&t.color&&{[i("stroke")]:t.color},..."size"in t&&null!=t.size&&{[i("width")]:t.size,[i("height")]:t.size},..."width"in t&&null!=t.width&&{[i("width")]:t.width},..."height"in t&&null!=t.height&&{[i("height")]:t.height},[i("stroke-width")]:p,...u&&{[i("class")]:u},[i("viewBox")]:`0 0 ${s} ${l}`,...!1===t.hasA11yProp?{[i("aria-hidden")]:"true"}:{},..."attributes"in t&&t.attributes},e.node.map(e=>{let[n,r,a]=e,s=t.nonScalingStroke?{[i("vector-effect")]:"non-scaling-stroke",...r}:r;return a?[n,s,a]:[n,s]})]}(e,{...t,attributeNames:{...t.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(m,{color:e??w,width:s??i??b,height:l??i??b,strokeWidth:o??x,absoluteStrokeWidth:d??k,nonScalingStroke:c??y,className:n(v,u),hasA11yProp:S,attributes:f});return(0,t.createElement)(N,{ref:g,...A},[...j.map(([e,n])=>(0,t.createElement)(e,n)),...Array.isArray(p)?p:[p]])});e.s(["default",0,function(e,n=[],r=[]){let a,s="string"==typeof e?function(e,t,n=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...n.length>0?{aliases:n}:{}}}(e,n,r):e,l=(0,t.forwardRef)(({className:e,...n},r)=>(0,t.createElement)(i,{ref:r,icon:s,className:e,...n}));return s.name&&(l.displayName=(a=(e=>{let t="",n=!1;for(let r of e){if("-"===r||"_"===r||r<=" "){n=t.length>0;continue}0===t.length?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t})(s.name)).charAt(0).toUpperCase()+a.slice(1)),l}],83790)},732460,e=>{"use strict";var t=e.i(83790);let n={name:"book-open",size:24,node:[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]};n.node;let r=(0,t.default)(n);e.s(["BookOpen",0,r],732460)},479432,e=>{"use strict";var t=e.i(83790);let n={name:"bot",size:24,node:[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]};n.node;let r=(0,t.default)(n);e.s(["Bot",0,r],479432)},837001,e=>{"use strict";var t=e.i(83790);let n={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]};n.node;let r=(0,t.default)(n);e.s(["Check",0,r],837001)},954034,e=>{"use strict";var t=e.i(83790);let n={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]};n.node;let r=(0,t.default)(n);e.s(["CircleCheck",0,r],954034)},737487,e=>{"use strict";var t=e.i(83790);let n={name:"circle",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};n.node;let r=(0,t.default)(n);e.s(["Circle",0,r],737487)},628137,e=>{"use strict";var t=e.i(83790);let n={name:"flag",size:24,node:[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]};n.node;let r=(0,t.default)(n);e.s(["Flag",0,r],628137)},520708,e=>{"use strict";var t=e.i(83790);let n={name:"lightbulb",size:24,node:[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]};n.node;let r=(0,t.default)(n);e.s(["Lightbulb",0,r],520708)},240595,e=>{"use strict";var t=e.i(83790);let n={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};n.node;let r=(0,t.default)(n);e.s(["Loader2",0,r],240595)},192871,e=>{"use strict";var t=e.i(83790);let n={name:"map",size:24,node:[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]};n.node;let r=(0,t.default)(n);e.s(["Map",0,r],192871)},678677,e=>{"use strict";var t=e.i(83790);let n={name:"scale",size:24,node:[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]};n.node;let r=(0,t.default)(n);e.s(["Scale",0,r],678677)},496016,e=>{"use strict";var t=e.i(83790);let n={name:"unlink",size:24,node:[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]};n.node;let r=(0,t.default)(n);e.s(["Unlink",0,r],496016)},343253,e=>{"use strict";var t=e.i(83790);let n={name:"user",size:24,node:[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]};n.node;let r=(0,t.default)(n);e.s(["User",0,r],343253)},862249,805102,e=>{"use strict";let t;var n=e.i(72345),r=e.i(180338),a=e.i(910172),i=e.i(732460),s=e.i(406952),l=e.i(628137),o=e.i(520708),d=e.i(678677),c=e.i(763371),u=e.i(464750),p=e.i(694628);let h=[{kind:"task",label:"Tasks"},{kind:"epic",label:"Epics"},{kind:"adr",label:"ADRs"},{kind:"doc",label:"Docs"},{kind:"entry",label:"Entries"}],m={epic:l.Flag,adr:d.Scale,doc:s.FileText,entry:o.Lightbulb,task:i.BookOpen};function f(e){let t=(0,a.useRouter)(),{openDoc:n}=(0,c.useApp)();return r=>{"task"===r.kind?t.push(`/board?task=${r.id}`):"epic"===r.kind?t.push(`/roadmap?item=${r.id}`):"entry"===r.kind?e(r.id):n(r.path)}}e.s(["EntryRelated",0,function({entryId:e,onOpenEntry:t}){let{rootParam:a,summary:i,board:s}=(0,c.useApp)(),l=f(t),[o,d]=(0,r.useState)(null);(0,r.useEffect)(()=>{let t=!0;return fetch(`/api/memory/graph${a}&entry=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>{t&&d(e.nodes?e:{nodes:[],edges:[]})}).catch(e=>{console.warn("Loading entry links failed",e),t&&d({nodes:[],edges:[]})}),()=>{t=!1}},[e,a,i]);let g=(0,r.useMemo)(()=>new Map(Object.values(s??{}).flat().map(e=>[e.id,e])),[s]),b=(0,r.useMemo)(()=>new Map((o?.nodes??[]).map(e=>[e.id,e])),[o]),x=e=>e.map(e=>b.get(e)).filter(e=>!!e),k=x((o?.edges??[]).filter(t=>t.from===e).map(e=>e.to)),y=x((o?.edges??[]).filter(t=>t.to===e).map(e=>e.from)),w=e=>{let t="task"===e.kind?g.get(e.id):void 0,r=t?(0,p.displayStatus)(t):"epic"===e.kind?e.status:void 0,a=m[e.kind];return(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button",onClick:()=>l(e),title:e.path,className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm outline-none hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",children:[r?(0,n.jsx)(u.StatusIcon,{status:r,className:"size-3.5 shrink-0"}):(0,n.jsx)(a,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),"doc"!==e.kind&&(0,n.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e.id}),(0,n.jsx)("span",{className:"min-w-0 truncate text-txt",children:e.label})]})},e.id)},v=(e,t)=>(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)("h4",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted",children:e}),h.map(({kind:e,label:r})=>{let a=t.filter(t=>t.kind===e);return a.length?(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"px-2 text-[11px] text-muted",children:r}),(0,n.jsx)("ul",{children:a.map(w)})]},e):null})]});return(0,n.jsxs)("section",{"aria-label":"Related",className:"mt-5 flex flex-col gap-3 border-t border-border pt-4",children:[(0,n.jsx)("h3",{className:"text-xs font-semibold text-txt",children:"Related"}),null===o?(0,n.jsx)("p",{className:"text-xs text-muted",children:"Loading links…"}):k.length||y.length?(0,n.jsxs)(n.Fragment,{children:[k.length>0&&v("Links to",k),y.length>0&&v("Linked from",y)]}):(0,n.jsx)("p",{className:"text-xs text-muted",children:"No links yet. Mention a task, epic or doc in the entry to link it."})]})},"GROUPS",0,h,"KIND_ICON",0,m,"useOpenNode",0,f],862249);let g=new Set(["doc_updated","doc_created","doc_deleted","doc_renamed","task_created","task_updated","roadmap_updated","memory_updated","decision_logged"]),b=0,x=new Set;function k(e){return x.add(e),()=>{x.delete(e)}}function y(){return(0,r.useSyncExternalStore)(k,()=>b,()=>0)}window.addEventListener("vibedoc:sse",function(e){g.has(e.detail?.type)&&(clearTimeout(t),t=setTimeout(()=>{b++,w.clear(),x.forEach(e=>e())},250))});let w=new Map;function v(e){let t=w.get(e);if(!t){let n=t=fetch(e).then(async e=>{let t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`${e.status} ${e.statusText}`);return t});n.catch(()=>{w.get(e)===n&&w.delete(e)}),w.set(e,n)}return t}e.s(["LINK_EVENTS",0,g,"fetchLinkJson",0,v,"useDocLinks",0,function(e){let{rootParam:t}=(0,c.useApp)(),[n,a]=(0,r.useState)(null),i=y();return(0,r.useEffect)(()=>{if(!e)return;let n=!0;return v(`/api/docs/links${t}&path=${encodeURIComponent(e)}`).then(t=>{n&&a({path:e,links:{out:t.out??[],in:t.in??[],broken:t.broken??[],stale:t.stale??[],targets:t.targets??{}}})}).catch(t=>{console.warn("Loading doc links failed",t),n&&a({path:e,links:{out:[],in:[],broken:[],stale:[],targets:{}}})}),()=>{n=!1}},[e,t,i]),e&&n?.path===e?n.links:null},"useLinkGeneration",0,y],805102)},35032,222581,e=>{"use strict";var t=e.i(72345),n=e.i(479432),r=e.i(343253),a=e.i(975157);function i(e){return"human"===e?"human":e?.startsWith("ai:")?"ai":"none"}function s(e){return"human"===e?"Human":e?.startsWith("ai:")?e.slice(3):"No owner"}e.s(["ownerKind",0,i,"ownerLabel",0,s,"parseOwner",0,function(e){let t=(e??"").trim().toLowerCase();if("human"===t)return"human";let n=t.match(/^ai(?::\s*([a-z0-9._-]+))?$/);return n?`ai:${n[1]??"agent"}`:null}],222581),e.s(["OwnerChip",0,function({owner:e,className:l}){let o=i(e);if("none"===o)return null;let d="ai"===o?n.Bot:r.User;return(0,t.jsxs)("span",{title:`Owner: ${s(e)}`,className:(0,a.cn)("inline-flex items-center gap-1 text-[11px] text-muted",l),children:[(0,t.jsx)(d,{className:(0,a.cn)("size-3.5 shrink-0","ai"===o&&"text-accent"),"aria-hidden":!0}),s(e)]})}],35032)},464750,e=>{"use strict";var t=e.i(72345),n=e.i(737487),r=e.i(954034),a=e.i(83790);let i={name:"circle-dot",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};i.node;let s=(0,a.default)(i),l={name:"circle-pause",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],aliases:["pause-circle"]};l.node;let o=(0,a.default)(l),d={name:"circle-slash",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]]};d.node;let c=(0,a.default)(d),u={name:"circle-x",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],aliases:["x-circle"]};u.node;let p=(0,a.default)(u),h={name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};h.node;let m=(0,a.default)(h);var f=e.i(975157),g=e.i(574990);let b={todo:{label:"Todo",icon:n.Circle,text:"text-muted",chip:"border-border2 text-muted"},"in-progress":{label:"In progress",icon:s,text:"text-amber",chip:"border-amber/30 bg-amber/5 text-amber"},review:{label:"Review",icon:m,text:"text-accent",chip:"border-accent/30 bg-accent/5 text-accent"},blocked:{label:"Blocked",icon:c,text:"text-danger",chip:"border-danger/30 bg-danger/5 text-danger"},paused:{label:"Paused",icon:o,text:"text-muted",chip:"border-border2 bg-surface2 text-muted"},done:{label:"Done",icon:r.CircleCheck,text:"text-teal",chip:"border-teal/30 bg-teal/5 text-teal"},cancelled:{label:"Cancelled",icon:p,text:"text-muted",chip:"border-border text-muted"}},x={gray:{text:"text-muted",chip:"border-border2 text-muted",bg:"bg-border2"},amber:{text:"text-amber",chip:"border-amber/30 bg-amber/5 text-amber",bg:"bg-amber"},accent:{text:"text-accent",chip:"border-accent/30 bg-accent/5 text-accent",bg:"bg-accent"},red:{text:"text-danger",chip:"border-danger/30 bg-danger/5 text-danger",bg:"bg-danger"},slate:{text:"text-muted",chip:"border-border2 bg-surface2 text-muted",bg:"bg-muted/60"},teal:{text:"text-teal",chip:"border-teal/30 bg-teal/5 text-teal",bg:"bg-teal"},blue:{text:"text-blue-600 dark:text-blue-400",chip:"border-blue-600/30 bg-blue-600/5 text-blue-600 dark:border-blue-400/30 dark:bg-blue-400/5 dark:text-blue-400",bg:"bg-blue-500 dark:bg-blue-400"},pink:{text:"text-pink-600 dark:text-pink-400",chip:"border-pink-600/30 bg-pink-600/5 text-pink-600 dark:border-pink-400/30 dark:bg-pink-400/5 dark:text-pink-400",bg:"bg-pink-500 dark:bg-pink-400"},green:{text:"text-green-600 dark:text-green-400",chip:"border-green-600/30 bg-green-600/5 text-green-600 dark:border-green-400/30 dark:bg-green-400/5 dark:text-green-400",bg:"bg-green-500 dark:bg-green-400"},orange:{text:"text-orange-600 dark:text-orange-400",chip:"border-orange-600/30 bg-orange-600/5 text-orange-600 dark:border-orange-400/30 dark:bg-orange-400/5 dark:text-orange-400",bg:"bg-orange-500 dark:bg-orange-400"}};function k(e){let t=(0,g.statusDefIn)((0,g.useStatusDefs)(),e);return{def:t,label:t.label,icon:b[t.category].icon,...x[t.color]}}e.s(["STATUS_COLOR_CLASS",0,x,"STATUS_META",0,b,"StatusChip",0,function({status:e,className:n}){let r=k(e),a=r.icon;return(0,t.jsxs)("span",{className:(0,f.cn)("inline-flex items-center gap-1 rounded-sm border px-1.5 py-0.5 text-[11px] leading-none",r.chip,n),children:[(0,t.jsx)(a,{className:"size-3","aria-hidden":!0}),r.label]})},"StatusIcon",0,function({status:e,className:n}){let r=k(e),a=r.icon;return(0,t.jsx)(a,{"aria-label":r.label,className:(0,f.cn)("size-3.5 shrink-0",r.text,n)})},"useStatusLabel",0,function(){let e=(0,g.useStatusDefs)();return t=>(0,g.statusDefIn)(e,t).label}],464750)},244267,702197,481523,844081,e=>{"use strict";var t=e.i(72345),n=e.i(180338),r=e.i(910172),a=e.i(763371),i=e.i(975157);function s(e){return Array.isArray(e)&&e.length>0&&e.every(e=>!!e&&"object"==typeof e&&"string"==typeof e.question&&"string"==typeof e.header&&Array.isArray(e.options)&&e.options.every(e=>!!e&&"object"==typeof e&&"string"==typeof e.label))}let l="\0other";function o(e,t){return["Answers:",...e.map((e,n)=>`- ${e.header}: ${t[n]}`)].join("\n")}e.s(["QuestionCard",0,function({set:e,disabled:r,onSubmit:a}){let[s,o]=(0,n.useState)(()=>e.questions.map(()=>[])),[d,c]=(0,n.useState)(()=>e.questions.map(()=>"")),u=!!e.answers,p=e.questions.map((e,t)=>{let n=e.options.map(e=>e.label).filter(e=>s[t].includes(e));return s[t].includes(l)&&d[t].trim()&&n.push(`Other: "${d[t].trim()}"`),n.join(", ")}),h=p.every(Boolean);return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden","data-question-card":!0,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Questions"}),u&&(0,t.jsx)("span",{className:"ml-auto text-[10px] font-mono text-accent",children:"✓ Answered"})]}),(0,t.jsxs)("div",{className:"p-2 space-y-3",children:[e.questions.map((n,r)=>(0,t.jsxs)("fieldset",{disabled:u,className:"space-y-1",children:[(0,t.jsxs)("legend",{className:"mb-1",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-sm bg-surface2 border border-border text-accent mr-1.5",children:n.header}),(0,t.jsx)("span",{className:"text-xs text-txt",children:n.question})]}),u?(0,t.jsx)("p",{className:"text-xs text-txt pl-1",children:e.answers?.[r]}):(0,t.jsxs)(t.Fragment,{children:[[...n.options,{label:"Other",value:l}].map(a=>{let l="value"in a?a.value:a.label,d=s[r].includes(l);return(0,t.jsxs)("label",{className:(0,i.cn)("flex gap-2 items-start rounded-sm px-1 py-0.5 cursor-pointer hover:bg-surface2",d&&"bg-surface2"),children:[(0,t.jsx)("input",{type:n.multiSelect?"checkbox":"radio",name:`${e.id}-${r}`,checked:d,onChange:()=>{var e;return e=n.multiSelect,void o(t=>t.map((t,n)=>n!==r?t:e?t.includes(l)?t.filter(e=>e!==l):[...t,l]:[l]))},className:"mt-0.5 accent-accent"}),(0,t.jsxs)("span",{className:"text-xs",children:[(0,t.jsx)("span",{className:"text-txt",children:a.label}),"description"in a&&a.description&&(0,t.jsx)("span",{className:"block text-muted",children:a.description})]})]},l)}),s[r].includes(l)&&(0,t.jsx)("input",{value:d[r],onChange:e=>c(t=>t.map((t,n)=>n===r?e.target.value:t)),placeholder:"Your answer","aria-label":`Other answer for ${n.header}`,className:"ml-6 w-[calc(100%-1.5rem)] rounded-sm bg-surface2 border border-border px-2 py-1 text-xs text-txt placeholder:text-muted focus:outline-hidden focus:border-accent"})]})]},r)),!u&&(0,t.jsx)("button",{onClick:()=>a(p),disabled:!h||r,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:"Submit"})]})]})},"formatAnswers",0,o,"isRenderableQuestions",0,s],702197);let d=e=>!!e&&"object"==typeof e&&!Array.isArray(e),c=e=>"string"==typeof e?e.trim():"";var u=e.i(956555);function p(e,t=Math.random()){return`c-${e.toString(36)}${t.toString(36).slice(2,6)}`}function h(e,t,n={}){var r;let a=n.now??new Date().toISOString();return[...e,{id:t,title:n.title??(n.attach?"epic"===(r=n.attach).kind?`Epic ${r.id}`:`Task ${r.id}`:"New chat"),messages:[],sessionId:null,busy:!1,notes:[],attach:n.attach??null,createdAt:a,updatedAt:a}]}function m(e,t,n){return e.map(e=>e.id===t?n(e):e)}let f={running:"Running","needs-answer":"Waiting for your answers",review:"Plan or edit to review",error:"Error",idle:"Idle"};function g(e){return e.messages.reduce((e,t)=>e+t.plans.filter(e=>"pending"===e.status).length+t.proposals.filter(e=>"pending"===e.status).length,0)}function b(e){if(e.busy)return"running";let t=e.messages[e.messages.length-1];if(t?.questions.some(e=>!e.answers))return"needs-answer";if(g(e))return"review";let n=e.messages.findLast(e=>"assistant"===e.role);return n?.error?"error":"idle"}function x(e,t){return!e.dismissed&&t-Date.parse(e.updatedAt)<864e5&&"error"===b(e)}let k=e=>"needs-answer"===e||"review"===e;function y(e,t,n={}){let{target:r=null,newChat:a=!1}=n,i=e=>"idle"===b(e)||"error"===b(e);if(r){let t=S(e,r);if(t&&!i(t))return{open:t.id}}if((n.running??e.filter(e=>e.busy).length)>=4)return{refused:"Too many agents running (4). Stop or close a chat, or wait."};if(r){let t=S(e,r);return t?{chatId:t.id}:{newChat:!0,attach:r}}let s=e.find(e=>e.id===t);return s&&!a&&!s.attach&&i(s)?{chatId:s.id}:{newChat:!0,attach:null}}let w=e=>`${e.kind}:${e.id}`;function v(e){return e.trim().match(/^Break down epic (R\d+)/i)?.[1].toUpperCase()??null}function S(e,t){return e.filter(e=>{let n;return n=e.attach,!!n&&!!t&&n.kind===t.kind&&n.id===t.id}).sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))[0]}let N={running:3,"needs-answer":2,review:1};function A(e){let t={};for(let n of e){let e=b(n);if(!n.attach||"idle"===e||"error"===e)continue;let r=w(n.attach),a=t[r];(!a||N[e]>N[a.status])&&(t[r]={status:e,chatId:n.id})}return t}function j(e){return"epic"===e.kind?`[This chat is about epic ${e.id}. Read it with vibedoc_get_roadmap (and its tasks with vibedoc_get_task) before answering.]`:`[This chat is about task ${e.id}. Read it with vibedoc_get_task before answering.]`}function $(e,t){let n=[...e].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),r={needsYou:[],errors:[],running:[],recent:[]};for(let e of n){let n=b(e);k(n)?r.needsYou.push(e):void 0!==t&&x(e,t)?r.errors.push(e):"running"===n?r.running.push(e):r.recent.push(e)}return r}function _(e,t){let n=$(e,t);return[...n.needsYou,...n.errors]}function E(e,t){let n=e.findIndex(e=>e.id===t);return e[n+1]}function C(e,t=Date.now()){let n=$(e,t);return n.needsYou[0]??n.errors[0]??n.running[0]??n.recent[0]}function z(e){return e.messages.length?{...e,busy:!1}:null}function T(e){if(!e||"string"!=typeof e.id||!Array.isArray(e.messages))return null;let t=e.messages[e.messages.length-1],n=t?.role!=="assistant"||t.text||t.error||t.tools?.length||t.plans?.length||t.proposals?.length||t.questions?.length?e.messages:[...e.messages.slice(0,-1),{...t,error:"Interrupted: the page reloaded while the agent was working."}],r=e.updatedAt??e.createdAt??new Date(0).toISOString();return{...e,messages:n,busy:!1,notes:e.notes??[],attach:e.attach??null,createdAt:e.createdAt??r,updatedAt:r}}function M(e,t){return t.flatMap(t=>{let n=b(t);return k(n)&&e[t.id]!==n?[{chat:t,status:n}]:[]})}function R(e,t){let n=e.replace(/^\(\d+\) /,"");return t>0?`(${t}) ${n}`:n}function I(e){let t=v(e);if(t)return`Break down ${t}`;let n=e.trim().split("\n")[0];return n.length>40?`${n.slice(0,40).trimEnd()}…`:n}e.s(["MAX_RUNNING_CHATS",0,4,"STATUS_LABEL",0,f,"addChat",0,h,"ago",0,function(e,t){let n=Math.max(0,Math.floor((t-Date.parse(e))/6e4));return n<1?"now":n<60?`${n}m`:n<1440?`${Math.floor(n/60)}h`:`${Math.floor(n/1440)}d`},"attachContext",0,j,"attachKey",0,w,"attentionQueue",0,_,"chatFor",0,S,"chatStatus",0,b,"chatTitle",0,I,"defaultChat",0,C,"epicOf",0,v,"fromSaved",0,T,"groupChats",0,$,"isActionableError",0,x,"isWaiting",0,k,"itemAgents",0,A,"newChatId",0,p,"newlyWaiting",0,M,"nextInQueue",0,E,"patchChat",0,m,"pendingReviews",0,g,"routeAsk",0,y,"shellStatus",0,function(e,t){let n=b(e);return"error"!==n||x(e,t)?n:"idle"},"suggestions",0,function(e){return e?"epic"===e.kind?[`Break down epic ${e.id} into tasks.`,"Summarize this epic's progress.","What is at risk in this epic?"]:["Refine this task's spec.","Split this task into smaller tasks.","What blocks this task?"]:["What should I work on next?","Plan a roadmap for this project.","What is blocked right now?"]},"toSaved",0,z,"waitingTitle",0,R],481523);let O=(e,t="")=>({role:e,text:t,tools:[],proposals:[],plans:[],questions:[]}),L=(0,n.createContext)(null),q=(0,n.createContext)({});e.s(["ChatProvider",0,function({children:e}){let{rootParam:i,activeProject:l,selectedDoc:f}=(0,a.useApp)(),w=(0,r.usePathname)(),N=(0,r.useRouter)(),[$,D]=(0,n.useState)([]),[W,P]=(0,n.useState)(!1),[U,B]=(0,n.useState)(null),[V,H]=(0,n.useState)(null),[K,F]=(0,n.useState)(null),G=(0,n.useRef)(new Map),J=(0,n.useRef)(new Set),Q=(0,n.useRef)({}),[Y,X]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{let e=setInterval(()=>X(Date.now()),6e4);return()=>clearInterval(e)},[]);let Z="/chat"===w,ee="/docs"===w?f?.path:void 0;(0,n.useEffect)(()=>{for(let e of G.current.values())e.abort();G.current.clear(),J.current.clear();let e=!1;return fetch(`/api/conversations${i}`).then(e=>e.ok?e.json():{chats:[]}).then(t=>{if(e)return;let n=(t.chats??[]).map(e=>T(e)).filter(e=>!!e);Q.current=Object.fromEntries(n.map(e=>[e.id,b(e)])),D(n),B(null),H(null),P(!0)}).catch(t=>{console.warn("[vibedoc] could not load chats:",t),e||(D([]),P(!0))}),()=>{e=!0}},[l,i]),(0,n.useEffect)(()=>{for(let e of[...J.current]){let t=$.find(t=>t.id===e);J.current.delete(e);let n=t&&z(t);n&&fetch(`/api/conversations${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat:n})}).catch(t=>console.warn(`[vibedoc] could not save chat ${e}:`,t))}},[$,i]);let et=(0,n.useRef)({key:"{}",value:{}}),en=(0,n.useMemo)(()=>{let e=A($),t=JSON.stringify(e);return t!==et.current.key&&(et.current={key:t,value:e}),et.current.value},[$]),er=$.filter(e=>e.busy).length,ea=$.filter(e=>k(b(e))).length,ei=$.filter(e=>x(e,Y)).length,es=(0,n.useMemo)(()=>_($,Y),[$,Y]);function el(e){J.current.add(e)}function eo(e={}){e.keep||D(e=>e.filter(e=>e.id!==U||e.messages.length>0)),B(null)}function ed(e){H(e),Z?(B(null),N.replace(`/chat?id=${encodeURIComponent(e)}`,{scroll:!1})):B(e)}function ec(e=null){let t=p(Date.now());return D(n=>h(n,t,{attach:e})),t}function eu(e,t){D(n=>m(n,e,e=>({...e,messages:[...e.messages.slice(0,-1),t(e.messages[e.messages.length-1])]})))}async function ep(e,t){let n=t.trim(),r=$.find(t=>t.id===e);if(!n||r?.busy)return;"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission().catch(()=>{});let a=!r?.messages.length,l=v(n),o=r?.attach??(l?{kind:"epic",id:l}:null);D(t=>m(t,e,e=>({...e,title:e.messages.length?e.title:I(n),attach:e.attach??o,busy:!0,dismissed:!1,notes:[],updatedAt:new Date().toISOString(),messages:[...e.messages,O("user",n),O("assistant")]}))),el(e);let c=[...a&&r?.attach?[j(r.attach)]:[],...r?.notes.length?[`[${r.notes.join(" ")}]`]:[]],u=c.length?`${c.join("\n")}
2
+
3
+ ${n}`:n,p=new AbortController;G.current.set(e,p);try{let t=await fetch(`/api/chat${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:u,sessionId:r?.sessionId??null,docPath:ee,conversationId:e}),signal:p.signal});if(!t.ok||!t.body){let e=await t.json().catch(()=>null);throw Error(e?.error??`Request failed (${t.status})`)}let n=t.body.getReader(),a=new TextDecoder,l="";for(;;){let{done:t,value:r}=await n.read();if(t)break;let i=(l+=a.decode(r,{stream:!0})).split("\n");for(let t of(l=i.pop()??"",i))if(t.trim())try{!function(e,t){if(t.session_id&&D(n=>m(n,e,e=>e.sessionId===t.session_id?e:{...e,sessionId:t.session_id})),"stream_event"===t.type){let n=t.event;n?.type==="message_start"?eu(e,e=>e.text&&!e.text.endsWith("\n\n")?{...e,text:e.text+"\n\n"}:e):n?.type==="content_block_delta"&&n.delta?.type==="text_delta"&&eu(e,e=>({...e,text:e.text+n.delta.text}))}else if("assistant"===t.type){let n=(t.message?.content??[]).filter(e=>"tool_use"===e.type),r=n.filter(e=>e.name.endsWith("vibedoc_propose_edit")&&"string"==typeof e.input?.path&&Array.isArray(e.input?.edits)).map(e=>({id:e.id,path:e.input.path,edits:e.input.edits,summary:"string"==typeof e.input.summary?e.input.summary:void 0,status:"pending"})),a=n.filter(e=>e.name.endsWith("vibedoc_propose_plan")).flatMap(e=>{let t=function(e){if(!d(e))return null;let t=(e,t)=>Array.isArray(e)&&e.every(e=>d(e)&&t.every(t=>"string"==typeof e[t])&&(void 0===e.dependsOn||Array.isArray(e.dependsOn)));if("breakdown"===e.kind){let n=void 0===e.epic||"string"==typeof e.epic,r=void 0===e.newEpic||d(e.newEpic)&&"string"==typeof e.newEpic.title&&"string"==typeof e.newEpic.parent;return n&&r&&t(e.tasks,["key","title"])&&e.tasks.length>0?e:null}if("roadmap"===e.kind){let n=e.horizons??[],r=e.epics??[];return t(n,["key","title"])&&t(r,["key","title","parent"])?{kind:"roadmap",horizons:n,epics:r}:null}return null}(e.input?.plan);return t?[{id:e.id,plan:t,status:"pending"}]:[]}),i=n.filter(e=>e.name.endsWith("vibedoc_ask_questions")&&s(e.input?.questions)).map(e=>({id:e.id,questions:e.input.questions})),l=["vibedoc_propose_edit","vibedoc_propose_plan","vibedoc_ask_questions"],o=n.filter(e=>!l.some(t=>e.name.endsWith(t))).map(e=>e.name.replace(/^mcp__vibedoc__vibedoc_/,""));(o.length||r.length||a.length||i.length)&&eu(e,e=>({...e,tools:[...e.tools,...o],proposals:[...e.proposals,...r],plans:[...e.plans,...a],questions:[...e.questions,...i]}))}else if("user"===t.type){let n=new Set((t.message?.content??[]).filter(e=>"tool_result"===e.type&&e.is_error).map(e=>e.tool_use_id));n.size&&eu(e,e=>({...e,proposals:e.proposals.filter(e=>!n.has(e.id)),plans:e.plans.filter(e=>!n.has(e.id)),questions:e.questions.filter(e=>!n.has(e.id))}))}else"result"===t.type&&t.is_error?eu(e,e=>({...e,error:t.result??t.subtype??"Agent error"})):"error"===t.type&&eu(e,e=>({...e,error:t.message}))}(e,JSON.parse(t))}catch{}}}catch(t){p.signal.aborted?eu(e,e=>e.text||e.error?e:{...e,error:"Stopped."}):eu(e,e=>({...e,error:t.message}))}finally{G.current.get(e)===p&&(G.current.delete(e),el(e)),D(t=>m(t,e,e=>({...e,busy:!1,updatedAt:new Date().toISOString()})))}}function eh(e){G.current.get(e)?.abort()}function em(e,t,n){D(r=>m(r,e,e=>({...e,notes:n?[...e.notes,n]:e.notes,messages:e.messages.map(t)}))),el(e)}return(0,n.useEffect)(()=>{document.title=R(document.title,es.length)},[es.length,w]),(0,n.useEffect)(()=>{let e=M(Q.current,$);if(Q.current=Object.fromEntries($.map(e=>[e.id,b(e)])),e.length&&document.hidden&&"Notification"in window&&"granted"===Notification.permission)for(let{chat:t,status:n}of e){let e=new Notification("needs-answer"===n?"Agent needs your answer":"Plan ready to review",{body:t.title,tag:t.id});e.onclick=()=>{window.focus(),(0,u.openAgentChat)(t.id),e.close()}}},[$]),(0,n.useEffect)(()=>{function e(e){let{message:t,newChat:n}=e.detail??{};if(!t)return;let r=v(t),a=y($,V,{target:r?{kind:"epic",id:r}:null,newChat:n,running:G.current.size});if("refused"in a)return F(a.refused);if(F(null),"open"in a)return n?void 0:ed(a.open);let i="chatId"in a?a.chatId:ec(a.attach);ep(i,t),n||ed(i)}function t(e){let t=e.detail?.chatId;t&&$.some(e=>e.id===t)&&ed(t)}return window.addEventListener(u.ASK_AGENT_EVENT,e),window.addEventListener(u.OPEN_CHAT_EVENT,t),()=>{window.removeEventListener(u.ASK_AGENT_EVENT,e),window.removeEventListener(u.OPEN_CHAT_EVENT,t)}}),(0,t.jsx)(L.Provider,{value:{chats:$,loaded:W,modalId:U,closeModal:eo,show:ed,showDefault:function(){let e=E(es,U??(Z?V:null));if(e)return ed(e.id);if(U)return eo();let t=C($,Y);ed(t?t.id:ec())},showAbout:function(e){let t=S($,e);ed(t?t.id:ec(e))},create:ec,send:ep,stop:eh,dismiss:function(e){D(t=>m(t,e,e=>({...e,dismissed:!0}))),el(e)},remove:function(e){let t=$.find(t=>t.id===e),n=t?g(t):0;return(!n||!!window.confirm(`Discard ${n} unreviewed proposal${1===n?"":"s"}?`))&&(eh(e),G.current.delete(e),J.current.delete(e),D(t=>t.filter(t=>t.id!==e)),U===e&&B(null),V===e&&H(null),fetch(`/api/conversations${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({delete:e})}).catch(t=>console.warn(`[vibedoc] could not delete chat ${e}:`,t)),!0)},resolveProposal:function(e,t,n,r){em(e,e=>({...e,proposals:e.proposals.map(e=>e.id===t?{...e,status:r}:e)}),`User ${r} your proposed edit to ${n}.`)},resolvePlan:function(e,t,n,r,a){var i;let s="breakdown"===t.plan.kind?c((i=t.plan).epic)?c(i.epic).toUpperCase():i.newEpic?`new epic "${c(i.newEpic.title)}"`:"no epic":"the roadmap";em(e,e=>({...e,plans:e.plans.map(e=>e.id===t.id?{...e,status:n,created:r}:e)}),"accepted"===n?`User accepted plan for ${s}: created ${r.map(e=>e.id).join(", ")}${a.length?` (unchecked: ${a.join(", ")})`:""}.`:`User rejected the plan for ${s}.`)},answerQuestions:function(e,t,n){$.find(t=>t.id===e)?.busy||(em(e,e=>({...e,questions:e.questions.map(e=>e.id===t.id?{...e,answers:n}:e)})),ep(e,o(t.questions,n)))},agents:en,runningCount:er,waitingCount:ea,errorCount:ei,queue:es,now:Y,notice:K,dismissNotice:()=>F(null)},children:(0,t.jsx)(q.Provider,{value:en,children:e})})},"useChats",0,function(){let e=(0,n.useContext)(L);if(!e)throw Error("useChats() must be used inside <ChatProvider>");return e},"useItemAgent",0,function(e){return(0,n.useContext)(q)[w(e)]}],244267);var D=e.i(240595),W=e.i(192871),P=e.i(83790);let U={name:"square-check",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-square-2"]};U.node;let B=(0,P.default)(U);e.s(["AttachLabel",0,function({attach:e,className:n}){let r="epic"===e.kind?W.Map:B;return(0,t.jsxs)("span",{className:(0,i.cn)("inline-flex items-center gap-1 font-mono text-[10px] leading-none",n),children:[(0,t.jsx)(r,{className:"size-3"}),e.id]})},"StatusMarker",0,function({status:e,showIdle:n=!1,label:r,className:a}){if("idle"===e&&!n)return null;let s=r??f[e];return(0,t.jsx)("span",{role:"img","aria-label":s,title:s,className:(0,i.cn)("inline-flex size-3 shrink-0 items-center justify-center",a),children:"running"===e?(0,t.jsx)(D.Loader2,{className:"size-3 animate-spin text-accent"}):(0,t.jsx)("span",{className:(0,i.cn)("size-1.5","review"===e?"size-2 rotate-45 rounded-[1px] bg-accent animate-pulse-dot":"rounded-full","needs-answer"===e&&"bg-amber animate-pulse-dot","error"===e&&"bg-danger","idle"===e&&"border border-muted/60")})})},"attachHref",0,function(e){return"epic"===e.kind?`/roadmap?item=${e.id}`:`/board?task=${e.id}`}],844081)},956555,e=>{"use strict";let t="vibedoc:ask-agent",n="vibedoc:open-chat";e.s(["ASK_AGENT_EVENT",0,t,"OPEN_CHAT_EVENT",0,n,"askAgent",0,function(e,n={}){window.dispatchEvent(new CustomEvent(t,{detail:{message:e,...n}}))},"openAgentChat",0,function(e){window.dispatchEvent(new CustomEvent(n,{detail:{chatId:e}}))}])},644138,e=>{"use strict";let t=new Set(["a","b","c","x","y","z","path","name","slug","title","foo","bar","wikilinks","example"]),n=e=>String(Number(e)).padStart(3,"0");function r(e){return e.startsWith("ADR-")?`ADR-${n(e.slice(4))}`:e.startsWith("E")?`E${n(e.slice(1))}`:e}function a(e,t){let n,a=function(e){let t=[];for(let n of e.replace(/\\/g,"/").split("/"))if(n&&"."!==n)if(".."===n){if(!t.length)return null;t.pop()}else t.push(n);return t.join("/")}(e)??e,i=(a.split("/").pop()??a).replace(/\.md$/i,""),s=(/^#\s+(.+?)\s*$/m.exec(t)?.[1]??"").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/g,(e,t,n)=>n??t).replace(/(\*\*|\*|~~|`)(\S(?:.*?\S)?)\1/g,"$2").replace(/(^|\W)(__|_)(\S(?:.*?\S)?)\2(?=\W|$)/g,"$1$3").replace(/<[^>]+>/g,"").trim(),l=/[^.][.!]$/.test(s)?"":s,o=e=>l.replace(RegExp(`^${e}\\s*[:—–-]\\s*`),"")||i;return(n=/^plans\/tasks\/(T\d{3,})[^/]*\.md$/.exec(a))?{id:n[1],kind:"task",label:o(n[1]),path:a}:(n=/^plans\/roadmap\/(R\d{3,})[^/]*\.md$/.exec(a))?{id:n[1],kind:"epic",label:o(n[1]),path:a}:(n=/^memory\/entries\/(E\d+)[^/]*\.md$/.exec(a))?{id:r(n[1]),kind:"entry",label:o(n[1]),path:a}:(n=/(?:^|\/)(ADR-\d+)[^/]*\.md$/.exec(a))?{id:r(n[1]),kind:"adr",label:o(n[1]),path:a}:{id:a,kind:"doc",label:l||i,path:a}}new WeakMap;let i=["doc","adr"],s=/^(?:Entry )?(E\d+|T\d{3,}|R\d{3,}|ADR-\d+)\b/,l=new Set(["doc_updated","doc_created"]);e.s(["GRAPH_DEFAULT_KINDS",0,i,"docNode",0,a,"graphHref",0,function(e){let t=new URLSearchParams({node:e,focus:"1"}),n=a(e,"").kind;return i.includes(n)||t.set("kinds",[...i,n].join(",")),`/graph?${t}`},"isExampleTarget",0,function(e){let n=(e.split("/").pop()??"").replace(/\.md$/i,"").replace(/^(?:ADR-\d+|[TRE]\d+)-/,"");return t.has(n.toLowerCase())},"touchedPaths",0,function(e,t,n){let r=new Map;for(let e of t)r.set(e.id,e.path),r.set(e.path,e.path);let a=new Set;for(let t of e){if(!(Date.parse(t.timestamp)>=n))continue;let e=[t.taskId,s.exec(t.title)?.[1]];for(let n of(l.has(t.type)&&e.push(t.detail),"doc_renamed"===t.type&&e.push(t.title.split(" → ")[1]),"memory_updated"!==t.type||t.title.startsWith("Entry ")||e.push("memory/MEMORY.md"),e)){let e=n?r.get(n.trim()):void 0;e&&a.add(e)}}return a}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,314175,e=>{"use strict";var t=e.i(83790);let a={name:"info",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]};a.node;let s=(0,t.default)(a);e.s(["Info",0,s],314175)},880790,e=>{"use strict";var t=e.i(83790);let a={name:"list-checks",size:24,node:[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]};a.node;let s=(0,t.default)(a);e.s(["ListChecks",0,s],880790)},424991,e=>{"use strict";var t=e.i(83790);let a={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};a.node;let s=(0,t.default)(a);e.s(["Pencil",0,s],424991)},496699,e=>{"use strict";var t=e.i(83790);let a={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};a.node;let s=(0,t.default)(a);e.s(["RefreshCw",0,s],496699)},496385,e=>{"use strict";var t=e.i(83790);let a={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};a.node;let s=(0,t.default)(a);e.s(["AlertTriangle",0,s],496385)},329090,e=>{"use strict";var t=e.i(72345),a=e.i(343253),s=e.i(83790);let i={name:"file-pen",size:24,node:[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]],aliases:["file-edit"]};i.node;let l=(0,s.default)(i);var d=e.i(760930);let n={name:"file-search",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]};n.node;let r=(0,s.default)(n);var c=e.i(406952);let m={name:"file-x",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14.5 12.5-5 5",key:"b62r18"}],["path",{d:"m9.5 12.5 5 5",key:"1rk7el"}]]};m.node;let o=(0,s.default)(m);var h=e.i(880790),x=e.i(192871),p=e.i(15205),u=e.i(496699),f=e.i(678677),y=e.i(737152),k=e.i(464750);let g={task_updated:h.ListChecks,decision_logged:f.Scale,memory_updated:y.Brain,doc_read:r,doc_created:d.FilePlus,doc_updated:c.FileText,doc_deleted:o,doc_renamed:l,session_start:p.Plug,registry_rebuilt:u.RefreshCw,roadmap_updated:x.Map},v=e=>new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hourCycle:"h23"});e.s(["ActivityEventRow",0,function({event:e,showActor:s=!1}){let i=g[e.type]??c.FileText;return(0,t.jsxs)("div",{className:"grid grid-cols-[2.75rem_1.5rem_minmax(0,1fr)] items-start py-1.5",children:[(0,t.jsx)("time",{dateTime:e.timestamp,title:new Date(e.timestamp).toLocaleString(),className:"pt-px text-right font-mono text-[11px] leading-5 text-muted tabular-nums",children:v(e.timestamp)}),(0,t.jsx)("span",{className:"flex justify-center pt-[3px]",children:"task_updated"===e.type&&e.taskStatus?(0,t.jsx)(k.StatusIcon,{status:e.taskStatus}):(0,t.jsx)(i,{className:"size-3.5 text-muted","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5 sm:flex-row sm:items-baseline sm:gap-2",children:[(0,t.jsx)("span",{className:"min-w-0 text-sm leading-5 text-txt sm:shrink-0 sm:max-w-[60%] sm:truncate",children:e.title}),e.detail&&(0,t.jsx)("span",{className:"min-w-0 truncate text-xs leading-5 text-muted",children:e.detail}),s&&"human"===e.actor&&(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 font-mono text-[10px] text-muted sm:ml-auto",children:[(0,t.jsx)(a.User,{className:"size-3","aria-hidden":!0}),"you"]})]})]})},"clock",0,v,"timeAgo",0,function(e){let t=(Date.now()-new Date(e).getTime())/1e3;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}],329090)},635743,e=>{"use strict";var t=e.i(72345),a=e.i(975157);e.s(["EmptyState",0,function({icon:e,message:s,subMessage:i,bordered:l}){return(0,t.jsxs)("div",{className:(0,a.cn)("text-center py-16 text-muted text-sm",l&&"border border-dashed border-border rounded-xl"),children:[(0,t.jsx)("p",{className:"text-3xl mb-3",children:e}),(0,t.jsx)("p",{children:s}),i&&(0,t.jsx)("p",{className:"text-xs mt-1",children:i})]})}])},508540,e=>{"use strict";var t=e.i(72345),a=e.i(975157);function s({properties:e,className:i,children:l}){let d=e.filter(e=>null!==e.value&&void 0!==e.value&&!1!==e.value);return 0!==d.length||l?(0,t.jsxs)("dl",{className:(0,a.cn)("grid grid-cols-[minmax(6.5rem,8.5rem)_minmax(0,1fr)] items-center gap-x-2 text-[13px]",i),children:[d.map(e=>(0,t.jsxs)("div",{className:"contents",children:[(0,t.jsxs)("dt",{className:"flex min-h-8 min-w-0 items-center gap-2 text-muted",children:[e.icon&&(0,t.jsx)(e.icon,{className:"size-3.5 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"min-w-0 truncate",children:e.label})]}),(0,t.jsx)("dd",{className:"flex min-h-8 min-w-0 items-center gap-2 text-txt",children:e.value})]},e.id??String(e.label))),l&&(0,t.jsx)("div",{className:"col-span-2 flex min-h-8 items-center",children:l})]}):null}e.s(["ItemPanelHeader",0,function({kicker:e,title:i,menu:l,properties:d,className:n,children:r}){return(0,t.jsxs)("header",{"data-item-header":!0,className:(0,a.cn)("flex shrink-0 flex-col gap-2 border-b border-border px-5 pb-4 pt-4",n),children:[(0,t.jsxs)("div",{className:"flex min-h-7 items-center gap-2 pr-8 font-mono text-[11px] text-muted",children:[(0,t.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:e}),l]}),(0,t.jsx)("div",{className:"text-base font-semibold leading-snug text-txt",children:i}),(0,t.jsx)(s,{properties:d,className:"-my-0.5"}),r]})},"PropertyRows",0,s])}]);