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
  module.exports=[892519,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(544394),f=a.i(149350),g=a.i(21215),h=a.i(200382),i=a.i(72551),j=a.i(368114),k=a.i(866718),l=a.i(813722);let m=["convention","gotcha","decision","preference"],n=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 o(a){return a.toLowerCase().split(/[^a-z0-9]+/).filter(a=>a.length>1&&!n.has(a)).map(a=>a.length>3&&a.endsWith("s")&&!a.endsWith("ss")?a.slice(0,-1):a)}function p(a){return Math.ceil(a.length/4)}function q({entries:a,selectedId:d,onOpen:e,onNew:f}){let[g,n]=(0,c.useState)(""),[r,s]=(0,c.useState)(null),t=(0,c.useMemo)(()=>{var b,c;let d,e,f;return b=a,e=new Map((d=(c={query:g,type:r}).type?b.filter(a=>a.type===c.type):b).map(a=>[a.id,a])),(o(f=c.query??"").length?function(a,b,c={}){let d=[...new Set(o(b))];if(!d.length)return[];let e=[];for(let b of a){if(c.type&&b.type!==c.type)continue;let a=new Set(o(b.summary)),f=new Set(o(b.body)),g=new Set([b.id.toLowerCase(),...o(b.type)]),h=0;for(let b of d)a.has(b)&&(h+=3),g.has(b)&&(h+=2),f.has(b)&&(h+=1);h>0&&e.push({id:b.id,type:b.type,summary:b.summary,tokens:p(`${b.summary}
2
2
  ${b.body}`),score:h,updatedAt:b.updatedAt})}return e.sort((a,b)=>b.score-a.score||b.updatedAt.localeCompare(a.updatedAt)),e.slice(0,c.limit??10).map(({updatedAt:a,...b})=>b)}(d,f,{limit:d.length}):[...d].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)||a.id.localeCompare(b.id,"en",{numeric:!0})).map(a=>({id:a.id,type:a.type,summary:a.summary,tokens:p(`${a.summary}
3
- ${a.body}`),score:0}))).map(a=>e.get(a.id)).filter(a=>!!a)},[a,g,r]),u=(0,c.useMemo)(()=>{let b={};for(let c of a)b[c.type]=(b[c.type]??0)+1;return b},[a]),v=o(g).length>0,w=(a,c,d)=>(0,b.jsxs)("button",{type:"button","aria-pressed":r===a,onClick:()=>s(a),className:(0,j.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",r===a&&"border-border2 bg-surface2 text-txt"),children:[c," ",(0,b.jsx)("span",{className:"font-mono text-[10px] opacity-70",children:d})]},c);return(0,b.jsxs)("section",{"aria-label":"Knowledge entries",className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,b.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Knowledge entries"}),(0,b.jsxs)("button",{type:"button",onClick:f,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,b.jsx)(h.Plus,{className:"size-3.5","aria-hidden":!0})," New entry"]})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(i.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,b.jsx)(k.Input,{id:"memory-search",type:"search",value:g,onChange:a=>n(a.target.value),placeholder:"Search entries…","aria-label":"Search entries",className:"h-8 pl-8"})]}),(0,b.jsxs)("div",{role:"group","aria-label":"Filter by type",className:"flex flex-wrap gap-1",children:[w(null,"All",a.length),m.map(a=>w(a,a,u[a]??0))]}),0===a.length?(0,b.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,b.jsx)("code",{className:"font-mono text-xs",children:"vibedoc_save_entry"}),"."]}):0===t.length?(0,b.jsxs)("p",{className:"p-2 text-sm text-muted",children:["No entries match ",v?`"${g.trim()}"`:"this filter","."]}):(0,b.jsx)("ul",{className:"flex flex-col divide-y divide-border rounded-xl border border-border bg-surface",children:t.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),"aria-current":a.id===d?"true":void 0,className:(0,j.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",a.id===d&&"bg-surface2 shadow-[inset_2px_0_0_var(--color-accent-edge)]"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 font-mono text-[11px] text-muted",children:[(0,b.jsx)("span",{children:a.id}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.type}),(0,b.jsxs)("span",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)(l.OwnerChip,{owner:a.by,className:"font-sans"}),a.updatedAt]})]}),(0,b.jsx)("span",{className:"text-sm text-txt",children:a.summary})]})},a.id))})]})}var r=a.i(661661),s=a.i(28386),t=a.i(54165),u=a.i(699570),v=a.i(192698);function w({entry:a,rootParam:d,onSaved:e,onDelete:g,onClose:h,children:i}){let[j,n]=(0,c.useState)(null===a),[o,p]=(0,c.useState)(()=>x(a)),[q,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(!1),B=()=>{a?(n(!1),y(null)):h()},C=async()=>{let b=function(a){let b;if(void 0!==a.id&&!function(a){let b=/^e(\d+)$/i.exec(a.trim());if(!b)return null;let c=Number(b[1]);return c>0?`E${String(c).padStart(3,"0")}`:null}(String(a.id)))return`Invalid id "${a.id}": expected E followed by a number, e.g. E001`;if(b=String(a.type??""),!m.includes(b))return`Invalid type "${a.type??""}": use one of ${m.join(", ")}`;let c=String(a.summary??"").trim();return c?/\n/.test(c)?"summary must be one line":c.length>120?`summary is ${c.length} characters; keep it to 120`:void 0!==a.body&&"string"!=typeof a.body?"body must be a string":null:"summary is required"}({...o,id:a?.id});if(b)return void y(b);A(!0),y(null);try{let b=await fetch(`/api/memory/entries/save${d}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...a?{id:a.id}:{},...o})}),c=await b.json().catch(()=>({}));if(!b.ok||!c.entry)throw Error(c.error??`Save failed (${b.status})`);n(!1),e(c.entry)}catch(a){y(a instanceof Error?a.message:String(a))}finally{A(!1)}};(0,c.useEffect)(()=>{if(j||!a)return;let b=b=>{if("Backspace"!==b.key&&"Delete"!==b.key||b.metaKey||b.ctrlKey||b.altKey)return;let c=b.target;c&&(c.isContentEditable||["INPUT","TEXTAREA","SELECT"].includes(c.tagName))||(b.preventDefault(),g(a))};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[j,a,g]);let D=(0,b.jsx)("button",{type:"button",onClick:h,"aria-label":"Close entry",className:"rounded p-1 text-muted hover:bg-surface2 hover:text-txt",children:(0,b.jsx)(t.X,{className:"size-3.5"})});return j?(0,b.jsx)("section",{"aria-label":a?`Edit ${a.id}`:"New entry",className:"rounded-xl border border-border bg-surface",children:(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),C()},onKeyDown:a=>{"Escape"===a.key&&(a.preventDefault(),B()),"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),C())},className:"flex flex-col gap-3 p-5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between font-mono text-[11px] text-muted",children:[(0,b.jsx)("span",{children:a?`${a.id} \xb7 editing`:"New entry"}),D]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,b.jsx)("select",{value:o.type,onChange:a=>p({...o,type:a.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:m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Summary (one line)",(0,b.jsx)(k.Input,{autoFocus:!0,value:o.summary,onChange:a=>p({...o,summary:a.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Details (markdown)",(0,b.jsx)("textarea",{value:o.body,onChange:a=>p({...o,body:a.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"})]}),q&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-danger",children:q}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,b.jsx)("span",{className:"mr-auto text-[11px] text-muted",children:"⌘↵ save · Esc cancel"}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"sm",onClick:B,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",size:"sm",disabled:z,children:z?"Saving…":"Save"})]})]})}):a?(0,b.jsxs)("section",{"aria-label":a.id,className:"rounded-xl border border-border bg-surface",children:[(0,b.jsx)(v.ItemPanelHeader,{kicker:(0,b.jsxs)("span",{children:[a.id," · entry"]}),menu:(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsxs)(u.Button,{variant:"ghost",size:"sm",onClick:()=>{p(x(a)),y(null),n(!0)},className:"h-7 px-2 text-xs",children:[(0,b.jsx)(r.Pencil,{className:"size-3.5"})," Edit"]}),(0,b.jsxs)(u.Button,{variant:"ghost",size:"sm",onClick:()=>g(a),title:"Delete (⌫)",className:"h-7 px-2 text-xs hover:text-danger",children:[(0,b.jsx)(s.Trash2,{className:"size-3.5"})," Delete"]}),D]}),title:a.summary,properties:[{label:"Type",value:a.type},{label:"Updated",value:a.updatedAt||null},{label:"Changed by",value:a.by?(0,b.jsx)(l.OwnerChip,{owner:a.by,className:"text-xs text-txt"}):null},{label:"File",value:(0,b.jsx)("span",{className:"truncate font-mono text-[11px] text-muted",children:a.file})}]}),(0,b.jsxs)("div",{className:"p-5",children:[a.body?(0,b.jsx)(f.MarkdownRenderer,{content:a.body}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No details."}),i]})]}):null}function x(a){return a?{type:a.type,summary:a.summary,body:a.body}:{type:"convention",summary:"",body:""}}var y=a.i(731050),z=a.i(156298),A=a.i(256857);let B={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"]};B.node;let C=(0,A.default)(B);function D({entryId:a}){let{rootParam:d}=(0,e.useApp)(),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),o=`/api/memory/history${d}&entry=${encodeURIComponent(a)}`,p=async a=>{let b=await fetch(a),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error??`Request failed (${b.status})`);return c},q=async()=>{let a=!f;if(g(a),a&&!h)try{i(await p(o))}catch(a){l(a instanceof Error?a.message:String(a))}},r=async a=>{try{let{text:b}=await p(`${o}&sha=${a.sha}`);n({commit:a,text:b})}catch(a){l(a instanceof Error?a.message:String(a))}};return(0,b.jsxs)("section",{"aria-label":"History",className:"mt-4 border-t border-border pt-3",children:[(0,b.jsxs)("button",{type:"button",onClick:q,"aria-expanded":f,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,b.jsx)(z.ChevronRight,{className:(0,j.cn)("size-3.5 text-muted transition-transform",f&&"rotate-90"),"aria-hidden":!0}),"History"]}),f&&(0,b.jsxs)("div",{className:"mt-2 flex flex-col gap-2",children:[k&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-danger",children:k}),!h&&!k&&(0,b.jsx)("p",{className:"text-xs text-muted",children:"Loading history…"}),h?.reason==="no-git"&&(0,b.jsx)("p",{className:"text-xs text-muted",children:"History needs git: this project is not a git repository."}),h&&!h.reason&&!h.history.length&&!h.uncommitted&&(0,b.jsx)("p",{className:"text-xs text-muted",children:"Not committed yet."}),h&&(h.uncommitted||h.history.length>0)&&(0,b.jsxs)("ul",{className:"flex flex-col",children:[h.uncommitted&&(0,b.jsxs)("li",{className:"flex items-center gap-2 px-2 py-1 text-xs text-muted",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-accent","aria-hidden":!0})," Uncommitted changes"]}),h.history.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>r(a),"aria-current":m?.commit.sha===a.sha?"true":void 0,className:(0,j.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",m?.commit.sha===a.sha&&"bg-surface2"),children:[(0,b.jsx)(C,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a.date.slice(0,10)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-txt",children:a.subject}),(0,b.jsx)("span",{className:"shrink-0 text-muted",children:a.author})]})},a.sha))]}),m&&(0,b.jsxs)("div",{className:"rounded-md border border-border bg-bg",children:[(0,b.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,b.jsxs)("span",{children:[m.commit.sha.slice(0,7)," · ",m.commit.date.slice(0,10)," · read-only"]}),(0,b.jsx)("button",{type:"button",onClick:()=>n(null),"aria-label":"Close version",className:"rounded p-0.5 hover:text-txt",children:(0,b.jsx)(t.X,{className:"size-3.5"})})]}),(0,b.jsx)("pre",{className:"max-h-72 overflow-auto whitespace-pre-wrap p-3 font-mono text-xs text-txt",children:m.text})]})]})]})}var E=a.i(365465),F=a.i(152716),G=a.i(173628),H=a.i(147758);let I={epic:-2,task:-1,entry:0,adr:1,doc:2},J={"--xy-background-color":"var(--color-bg)"};function K(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let L={mem:(0,c.memo)(function({data:a}){let{node:c,status:d,unlinked:e,dim:f,active:g}=a,h=y.KIND_ICON[c.kind];return(0,b.jsxs)("div",{title:c.path,style:{width:196},className:(0,j.cn)("flex items-center gap-2 rounded-md border bg-surface px-2.5 py-1.5 text-xs transition-opacity","entry"===c.kind?"border-border2":"border-border",g&&"border-accent ring-1 ring-accent",e&&"border-dashed opacity-60",f&&"opacity-25"),children:[["l","r"].map(a=>(0,b.jsxs)("span",{children:[(0,b.jsx)(E.Handle,{id:a,type:"source",position:"l"===a?F.Position.Left:F.Position.Right,isConnectable:!1,className:"opacity-0"}),(0,b.jsx)(E.Handle,{id:`${a}-t`,type:"target",position:"l"===a?F.Position.Left:F.Position.Right,isConnectable:!1,className:"opacity-0"})]},a)),d?(0,b.jsx)(G.StatusIcon,{status:d,className:"size-3.5 shrink-0"}):(0,b.jsx)(h,{className:(0,j.cn)("size-3.5 shrink-0","entry"===c.kind?"text-accent":"text-muted"),"aria-hidden":!0}),"doc"!==c.kind&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:c.id}),(0,b.jsx)("span",{className:(0,j.cn)("min-w-0 truncate","entry"===c.kind?"text-txt":"text-muted"),children:c.label})]})})};function M({entries:a,selectedId:d,onOpenEntry:f}){let{rootParam:g,summary:h,board:i}=(0,e.useApp)(),j=(0,y.useOpenNode)(f),[k,l]=(0,c.useState)(null),m=(0,c.useSyncExternalStore)(K,()=>document.documentElement.classList.contains("dark"),()=>!0);(0,c.useEffect)(()=>{let a=!0;return fetch(`/api/memory/graph${g}`).then(a=>a.json()).then(b=>{a&&l(b.nodes?b:{nodes:[],edges:[]})}).catch(b=>{console.warn("Loading the memory graph failed",b),a&&l({nodes:[],edges:[]})}),()=>{a=!1}},[g,h]);let{nodes:n,edges:o}=(0,c.useMemo)(()=>{if(!k)return{nodes:[],edges:[]};let b=function(a,b={}){let c={},d=a=>Number(a.replace(/\D/g,""))||0;a.nodes.filter(a=>"entry"===a.kind).sort((a,c)=>(b[a.id]??"").localeCompare(b[c.id]??"")||d(a.id)-d(c.id)).forEach((a,b)=>{c[a.id]={x:0,y:48*b}});let e=new Map;for(let{from:b,to:d}of a.edges)for(let[a,f]of[[b,d],[d,b]])c[f]&&!c[a]&&e.set(a,[...e.get(a)??[],c[f].y]);for(let b of["epic","task","adr","doc"]){let d=a.nodes.filter(a=>a.kind===b).map(a=>{let b=e.get(a.id)??[0];return{id:a.id,want:b.reduce((a,b)=>a+b,0)/b.length}}).sort((a,b)=>a.want-b.want||a.id.localeCompare(b.id,"en",{numeric:!0})),f=-1/0;for(let{id:a,want:e}of d){let d=Math.max(e,f);c[a]={x:240*I[b],y:d},f=d+48}}return c}(k,Object.fromEntries(a.map(a=>[a.id,a.type]))),c=new Map(Object.values(i??{}).flat().map(a=>[a.id,a])),e=new Set(k.edges.flatMap(a=>[a.from,a.to])),f=d&&b[d]?new Set([d,...k.edges.filter(a=>a.from===d||a.to===d).flatMap(a=>[a.from,a.to])]):null;return{nodes:k.nodes.map(a=>{let g="task"===a.kind?c.get(a.id):void 0;return{id:a.id,type:"mem",position:b[a.id]??{x:0,y:0},data:{node:a,status:g?(0,H.displayStatus)(g):void 0,unlinked:"entry"===a.kind&&!e.has(a.id),dim:!!f&&!f.has(a.id),active:a.id===d},draggable:!1}}),edges:k.edges.map(a=>{let c=b[a.from]?.x??0,e=b[a.to]?.x??0,g=e<c,h=!!f&&(a.from===d||a.to===d);return{id:`${a.from}->${a.to}`,source:a.from,target:a.to,sourceHandle:g?"l":"r",targetHandle:g||e===c?"r-t":"l-t",style:{stroke:h?"var(--color-accent)":"var(--color-border2)",strokeWidth:h?1.75:1,opacity:f&&!h?.15:1}}})}},[k,a,i,d]);return k?k.nodes.length?(0,b.jsx)("div",{"aria-label":"Memory graph",className:"h-[70vh] min-h-[420px] overflow-hidden rounded-xl border border-border",children:(0,b.jsxs)(E.ReactFlow,{nodes:n,edges:o,nodeTypes:L,onNodeClick:(a,b)=>j(b.data.node),nodesConnectable:!1,nodesDraggable:!1,deleteKeyCode:null,colorMode:m?"dark":"light",onlyRenderVisibleElements:n.length>150,fitView:!0,fitViewOptions:{padding:.1,minZoom:.8,maxZoom:1},minZoom:.1,style:J,children:[(0,b.jsx)(E.Background,{variant:E.BackgroundVariant.Dots,gap:20,size:1}),(0,b.jsx)(E.Controls,{showInteractive:!1})]})}):(0,b.jsx)("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted",children:"No entries to draw yet."}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"Loading graph…"})}var N=a.i(340933),O=a.i(89032),P=a.i(814574);function Q(a,b){let c=[a,...b.filter(b=>b.id!==a.id)].map(a=>a.body.trim()).filter(Boolean).join("\n\n---\n\n");return{type:a.type,summary:a.summary,body:c}}function R({group:a,onClose:d,onApprove:e,returnFocus:f}){let g=[...a].sort((a,b)=>a.id.localeCompare(b.id,"en",{numeric:!0})),[h,i]=(0,c.useState)(g[0].id),[l,n]=(0,c.useState)(()=>Q(g[0],g)),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1);async function s(){if(q||!l.summary.trim())return;r(!0);let a=await e({keepId:h,dropIds:g.filter(a=>a.id!==h).map(a=>a.id),...l});r(!1),a?p(a):d()}return(0,b.jsx)(P.Dialog,{open:!0,onOpenChange:a=>{a||d()},children:(0,b.jsxs)(P.DialogContent,{onCloseAutoFocus:a=>{let b=f?.current;b?.isConnected&&(a.preventDefault(),b.focus())},className:"max-h-[90vh] max-w-3xl overflow-y-auto border-border bg-surface text-txt shadow-xl shadow-black/20",children:[(0,b.jsx)(P.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Merge entries"}),(0,b.jsx)(P.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,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),s()},onKeyDown:a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),s())},className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)("fieldset",{className:"grid min-w-0 gap-2 sm:grid-cols-2",children:[(0,b.jsx)("legend",{className:"sr-only",children:"Entry to keep"}),g.map(a=>(0,b.jsxs)("label",{className:(0,j.cn)("flex min-w-0 cursor-pointer flex-col gap-1.5 rounded-lg border bg-bg p-3 transition-colors duration-(--duration-fast)",a.id===h?"border-accent":"border-border hover:border-border2"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("input",{type:"radio",name:"keep",value:a.id,checked:a.id===h,onChange:()=>{var b;i(b=a.id),n(Q(g.find(a=>a.id===b)??g[0],g))},className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-muted",children:a.id}),(0,b.jsx)("span",{className:"font-mono text-[10px] text-muted",children:a.type}),(0,b.jsx)("span",{className:"ml-auto text-muted",children:a.id===h?"Keep":"Delete"})]}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-txt",children:a.summary}),a.body&&(0,b.jsx)("span",{className:"line-clamp-6 whitespace-pre-wrap font-mono text-[11px] text-muted",children:a.body})]},a.id))]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,b.jsx)("select",{value:l.type,onChange:a=>n({...l,type:a.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:m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged summary (one line)",(0,b.jsx)(k.Input,{value:l.summary,onChange:a=>n({...l,summary:a.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged details (markdown)",(0,b.jsx)("textarea",{value:l.body,onChange:a=>n({...l,body:a.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"})]}),o&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-danger",children:o}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,b.jsx)("span",{className:"mr-auto font-mono text-[11px] text-muted",children:"⌘↵ approve · Esc cancel"}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"sm",onClick:d,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",size:"sm",disabled:q||!l.summary.trim(),children:q?"Merging…":`Merge into ${h}`})]})]})]})})}let S=[{kind:"contradiction",label:"Contradicts the board"},{kind:"dangling-ref",label:"Missing items"},{kind:"duplicate",label:"Possible duplicates"},{kind:"stale",label:"Not recalled lately"}];function T({flags:a,entries:f,onDismiss:g,onMerge:h,onDelete:i,onOpenEntry:k,onClose:l}){let m=(0,d.useRouter)(),{board:n}=(0,e.useApp)(),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(null),t=(0,c.useRef)(null),u=(0,c.useRef)(null),v=(0,c.useRef)(null),w=(0,c.useMemo)(()=>new Map(Object.values(n??{}).flat().map(a=>[a.id,a])),[n]),x=(0,c.useMemo)(()=>new Map((f??[]).map(a=>[a.id,a.summary])),[f]),y=(a??[]).filter(a=>o||!a.dismissed),z=q&&(f??[]).filter(a=>q.includes(a.id)),A=(a??[]).filter(a=>a.dismissed).length,B=y.map(a=>a.id).join(" ");(0,c.useEffect)(()=>{let a=u.current;if(!a||B.split(" ").includes(a.id))return;u.current=null;let b=v.current?.querySelectorAll("li[data-flag]")??[],c=b[Math.min(a.index,b.length-1)],d=c?.querySelector("button[data-action]")??v.current?.querySelector("h2");d?.focus()},[B]);let C=a=>{u.current={id:a.id,index:y.indexOf(a)}},D=a=>{let c=w.get(a),d=c?.title??x.get(a);return(0,b.jsxs)("button",{type:"button",onClick:()=>{a.startsWith("T")?m.push(`/board?task=${a}`):a.startsWith("R")?m.push(`/roadmap?item=${a}`):a.startsWith("E")&&k(a)},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:[c&&(0,b.jsx)(G.StatusIcon,{status:(0,H.displayStatus)(c),className:"size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a}),d&&(0,b.jsx)("span",{className:"min-w-0 truncate text-txt",children:d})]},a)},E=a=>{let c="warn"===a.severity?N.AlertTriangle:O.Info;return(0,b.jsxs)("li",{"data-flag":a.id,className:(0,j.cn)("flex items-start gap-2 rounded-lg border border-border bg-surface px-3 py-2.5",a.dismissed&&"opacity-60"),children:[(0,b.jsx)(c,{className:(0,j.cn)("mt-0.5 size-3.5 shrink-0","warn"!==a.severity||a.dismissed?"text-muted":"text-amber"),"aria-label":"warn"===a.severity?"Warning":"Note"}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,b.jsx)("p",{className:(0,j.cn)("text-[13px]",a.dismissed?"text-muted":"text-txt"),children:a.message.split(/\b([TRE]\d+)\b/).map((a,c)=>c%2?(0,b.jsx)("span",{className:"font-mono text-[12px]",children:a},c):a)}),a.refs.length>0&&(0,b.jsx)("div",{className:(0,j.cn)("-ml-1.5 flex gap-1","duplicate"===a.kind?"flex-col items-start":"flex-wrap"),children:a.refs.map(D)})]}),a.suggestion?.action==="merge"&&!a.dismissed&&(0,b.jsx)("button",{type:"button","data-action":!0,onClick:b=>{t.current=b.currentTarget,r(a.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…"}),a.suggestion?.action==="delete"&&!a.dismissed&&(0,b.jsxs)("button",{type:"button","data-action":!0,onClick:()=>{C(a),a.suggestion?.ids.forEach(i)},"aria-label":`Delete ${a.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,b.jsx)(s.Trash2,{className:"size-3","aria-hidden":!0})," Delete"]}),a.dismissed?(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",title:"Dismissed on",children:["dismissed ",a.dismissed]}):(0,b.jsx)("button",{type:"button","data-action":!0,onClick:()=>{o||C(a),g(a)},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"})]},a.id)};return(0,b.jsxs)("section",{ref:v,"aria-label":"Cleanup",className:"min-w-0",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-baseline justify-between gap-3",children:[(0,b.jsx)("h2",{tabIndex:-1,className:"outline-none font-display text-base font-semibold tracking-tight",children:"Cleanup"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[A>0&&(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs text-muted",children:[(0,b.jsx)("input",{type:"checkbox",checked:o,onChange:a=>p(a.target.checked),className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),"Show dismissed ",(0,b.jsx)("span",{className:"font-mono text-[10px]",children:A})]}),(0,b.jsx)("button",{type:"button",onClick:l,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===a?(0,b.jsx)("p",{className:"text-sm text-muted",children:"Checking memory…"}):y.length?(0,b.jsx)("div",{className:"flex flex-col gap-4",children:S.map(({kind:a,label:c})=>{let d=y.filter(b=>b.kind===a);return d.length?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("h3",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.06em] text-muted",children:[c," ",(0,b.jsx)("span",{children:d.filter(a=>!a.dismissed).length})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1.5",children:d.map(E)})]},a):null})}):(0,b.jsx)("p",{className:"rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:"Memory looks clean"}),z&&z.length>1&&(0,b.jsx)(R,{group:z,onClose:()=>r(null),onApprove:h,returnFocus:t},z.map(a=>a.id).join("+"))]})}function U({memory:a,entries:c,rootParam:d,selectedId:e,creating:h,onOpen:i,onNew:k,onClose:l,onSaved:m,onDelete:n,view:o,onView:p,flags:r,cleanup:s,onCleanup:t,onDismiss:u,onMerge:v,onDeleteStale:x}){let z=e?c?.find(a=>a.id===e):void 0,A=r?.filter(a=>!a.dismissed)??[],B=A.some(a=>"warn"===a.severity);return(0,b.jsxs)("div",{className:(0,j.cn)("grid items-start gap-6 p-6","graph"===o?"lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)]":"lg:grid-cols-[minmax(280px,380px)_minmax(0,42rem)]"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4 lg:col-span-2",children:[(0,b.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Memory"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button","aria-pressed":s,onClick:()=>t(!s),className:(0,j.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:[B&&(0,b.jsx)(N.AlertTriangle,{className:"size-3.5 text-amber","aria-hidden":!0}),"Cleanup ",(0,b.jsxs)("span",{className:"font-mono text-[11px]",children:["(",A.length,")"]})]}),(0,b.jsx)("div",{role:"group","aria-label":"Entries view",className:"flex rounded-md border border-border p-0.5",children:["list","graph"].map(a=>(0,b.jsx)("button",{type:"button","aria-pressed":o===a,onClick:()=>p(a),className:(0,j.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",o===a&&"border-border2 bg-surface2 text-txt"),children:a},a))})]})]}),c&&"graph"===o?(0,b.jsx)(M,{entries:c,selectedId:e,onOpenEntry:i}):c?(0,b.jsx)(q,{entries:c,selectedId:e,onOpen:i,onNew:k}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"Loading entries…"}),h||z?(0,b.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,b.jsx)(w,{entry:h?null:z??null,rootParam:d,onSaved:m,onDelete:n,onClose:l,children:z&&!h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(y.EntryRelated,{entryId:z.id,onOpenEntry:i}),(0,b.jsx)(D,{entryId:z.id})]})},h?"new":z?.id)}):s?(0,b.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,b.jsx)(T,{flags:r,entries:c,onDismiss:u,onMerge:v,onDelete:x,onOpenEntry:i,onClose:()=>t(!1)})}):e&&c?(0,b.jsxs)("div",{role:"alert",className:"min-w-0 rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:["Entry ",e," not found."," ",(0,b.jsx)("button",{type:"button",onClick:l,className:"text-txt underline underline-offset-2",children:"Show the handoff"})]}):(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between mb-3",children:[(0,b.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Session handoff"}),(0,b.jsx)("span",{className:"text-xs font-mono text-muted",children:"memory/MEMORY.md"})]}),a?.exists?(0,b.jsx)("div",{className:"bg-surface border border-border rounded-xl p-5",children:(0,b.jsx)(f.MarkdownRenderer,{content:a.content})}):(0,b.jsx)(g.EmptyState,{icon:"🧠",message:"No MEMORY.md yet.",subMessage:"AI will create one at the end of the first session.",bordered:!0}),(0,b.jsxs)("div",{className:"mt-4 p-4 bg-surface2 border border-border rounded-xl",children:[(0,b.jsx)("p",{className:"text-xs font-mono text-muted mb-2",children:"Add to your CLAUDE.md system prompt:"}),(0,b.jsx)("pre",{className:"text-xs font-mono text-accent/80 whitespace-pre-wrap leading-relaxed",children:`At session start:
3
+ ${a.body}`),score:0}))).map(a=>e.get(a.id)).filter(a=>!!a)},[a,g,r]),u=(0,c.useMemo)(()=>{let b={};for(let c of a)b[c.type]=(b[c.type]??0)+1;return b},[a]),v=o(g).length>0,w=(a,c,d)=>(0,b.jsxs)("button",{type:"button","aria-pressed":r===a,onClick:()=>s(a),className:(0,j.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",r===a&&"border-border2 bg-surface2 text-txt"),children:[c," ",(0,b.jsx)("span",{className:"font-mono text-[10px] opacity-70",children:d})]},c);return(0,b.jsxs)("section",{"aria-label":"Knowledge entries",className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,b.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Knowledge entries"}),(0,b.jsxs)("button",{type:"button",onClick:f,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,b.jsx)(h.Plus,{className:"size-3.5","aria-hidden":!0})," New entry"]})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(i.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,b.jsx)(k.Input,{id:"memory-search",type:"search",value:g,onChange:a=>n(a.target.value),placeholder:"Search entries…","aria-label":"Search entries",className:"h-8 pl-8"})]}),(0,b.jsxs)("div",{role:"group","aria-label":"Filter by type",className:"flex flex-wrap gap-1",children:[w(null,"All",a.length),m.map(a=>w(a,a,u[a]??0))]}),0===a.length?(0,b.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,b.jsx)("code",{className:"font-mono text-xs",children:"vibedoc_save_entry"}),"."]}):0===t.length?(0,b.jsxs)("p",{className:"p-2 text-sm text-muted",children:["No entries match ",v?`"${g.trim()}"`:"this filter","."]}):(0,b.jsx)("ul",{className:"flex flex-col divide-y divide-border rounded-xl border border-border bg-surface",children:t.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),"aria-current":a.id===d?"true":void 0,className:(0,j.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",a.id===d&&"bg-surface2 shadow-[inset_2px_0_0_var(--color-accent-edge)]"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 font-mono text-[11px] text-muted",children:[(0,b.jsx)("span",{children:a.id}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.type}),(0,b.jsxs)("span",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)(l.OwnerChip,{owner:a.by,className:"font-sans"}),a.updatedAt]})]}),(0,b.jsx)("span",{className:"text-sm text-txt",children:a.summary})]})},a.id))})]})}var r=a.i(661661),s=a.i(28386),t=a.i(54165),u=a.i(699570),v=a.i(192698);function w({entry:a,rootParam:d,onSaved:e,onDelete:g,onClose:h,children:i}){let[j,n]=(0,c.useState)(null===a),[o,p]=(0,c.useState)(()=>x(a)),[q,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(!1),B=()=>{a?(n(!1),y(null)):h()},C=async()=>{let b=function(a){let b;if(void 0!==a.id&&!function(a){let b=/^e(\d+)$/i.exec(a.trim());if(!b)return null;let c=Number(b[1]);return c>0?`E${String(c).padStart(3,"0")}`:null}(String(a.id)))return`Invalid id "${a.id}": expected E followed by a number, e.g. E001`;if(b=String(a.type??""),!m.includes(b))return`Invalid type "${a.type??""}": use one of ${m.join(", ")}`;let c=String(a.summary??"").trim();return c?/\n/.test(c)?"summary must be one line":c.length>120?`summary is ${c.length} characters; keep it to 120`:void 0!==a.body&&"string"!=typeof a.body?"body must be a string":null:"summary is required"}({...o,id:a?.id});if(b)return void y(b);A(!0),y(null);try{let b=await fetch(`/api/memory/entries/save${d}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...a?{id:a.id}:{},...o})}),c=await b.json().catch(()=>({}));if(!b.ok||!c.entry)throw Error(c.error??`Save failed (${b.status})`);n(!1),e(c.entry)}catch(a){y(a instanceof Error?a.message:String(a))}finally{A(!1)}};(0,c.useEffect)(()=>{if(j||!a)return;let b=b=>{if("Backspace"!==b.key&&"Delete"!==b.key||b.metaKey||b.ctrlKey||b.altKey)return;let c=b.target;c&&(c.isContentEditable||["INPUT","TEXTAREA","SELECT"].includes(c.tagName))||(b.preventDefault(),g(a))};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[j,a,g]);let D=(0,b.jsx)("button",{type:"button",onClick:h,"aria-label":"Close entry",className:"rounded p-1 text-muted hover:bg-surface2 hover:text-txt",children:(0,b.jsx)(t.X,{className:"size-3.5"})});return j?(0,b.jsx)("section",{"aria-label":a?`Edit ${a.id}`:"New entry",className:"rounded-xl border border-border bg-surface",children:(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),C()},onKeyDown:a=>{"Escape"===a.key&&(a.preventDefault(),B()),"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),C())},className:"flex flex-col gap-3 p-5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between font-mono text-[11px] text-muted",children:[(0,b.jsx)("span",{children:a?`${a.id} \xb7 editing`:"New entry"}),D]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,b.jsx)("select",{value:o.type,onChange:a=>p({...o,type:a.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:m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Summary (one line)",(0,b.jsx)(k.Input,{autoFocus:!0,value:o.summary,onChange:a=>p({...o,summary:a.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Details (markdown)",(0,b.jsx)("textarea",{value:o.body,onChange:a=>p({...o,body:a.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"})]}),q&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-danger",children:q}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,b.jsx)("span",{className:"mr-auto text-[11px] text-muted",children:"⌘↵ save · Esc cancel"}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"sm",onClick:B,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",size:"sm",disabled:z,children:z?"Saving…":"Save"})]})]})}):a?(0,b.jsxs)("section",{"aria-label":a.id,className:"rounded-xl border border-border bg-surface",children:[(0,b.jsx)(v.ItemPanelHeader,{kicker:(0,b.jsxs)("span",{children:[a.id," · entry"]}),menu:(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsxs)(u.Button,{variant:"ghost",size:"sm",onClick:()=>{p(x(a)),y(null),n(!0)},className:"h-7 px-2 text-xs",children:[(0,b.jsx)(r.Pencil,{className:"size-3.5"})," Edit"]}),(0,b.jsxs)(u.Button,{variant:"ghost",size:"sm",onClick:()=>g(a),title:"Delete (⌫)",className:"h-7 px-2 text-xs hover:text-danger",children:[(0,b.jsx)(s.Trash2,{className:"size-3.5"})," Delete"]}),D]}),title:a.summary,properties:[{label:"Type",value:a.type},{label:"Updated",value:a.updatedAt||null},{label:"Changed by",value:a.by?(0,b.jsx)(l.OwnerChip,{owner:a.by,className:"text-xs text-txt"}):null},{label:"File",value:(0,b.jsx)("span",{className:"truncate font-mono text-[11px] text-muted",children:a.file})}]}),(0,b.jsxs)("div",{className:"p-5",children:[a.body?(0,b.jsx)(f.MarkdownRenderer,{content:a.body}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No details."}),i]})]}):null}function x(a){return a?{type:a.type,summary:a.summary,body:a.body}:{type:"convention",summary:"",body:""}}var y=a.i(731050),z=a.i(156298),A=a.i(256857);let B={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"]};B.node;let C=(0,A.default)(B);function D({entryId:a}){let{rootParam:d}=(0,e.useApp)(),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),o=`/api/memory/history${d}&entry=${encodeURIComponent(a)}`,p=async a=>{let b=await fetch(a),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error??`Request failed (${b.status})`);return c},q=async()=>{let a=!f;if(g(a),a&&!h)try{i(await p(o))}catch(a){l(a instanceof Error?a.message:String(a))}},r=async a=>{try{let{text:b}=await p(`${o}&sha=${a.sha}`);n({commit:a,text:b})}catch(a){l(a instanceof Error?a.message:String(a))}};return(0,b.jsxs)("section",{"aria-label":"History",className:"mt-4 border-t border-border pt-3",children:[(0,b.jsxs)("button",{type:"button",onClick:q,"aria-expanded":f,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,b.jsx)(z.ChevronRight,{className:(0,j.cn)("size-3.5 text-muted transition-transform",f&&"rotate-90"),"aria-hidden":!0}),"History"]}),f&&(0,b.jsxs)("div",{className:"mt-2 flex flex-col gap-2",children:[k&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-danger",children:k}),!h&&!k&&(0,b.jsx)("p",{className:"text-xs text-muted",children:"Loading history…"}),h?.reason==="no-git"&&(0,b.jsx)("p",{className:"text-xs text-muted",children:"History needs git: this project is not a git repository."}),h&&!h.reason&&!h.history.length&&!h.uncommitted&&(0,b.jsx)("p",{className:"text-xs text-muted",children:"Not committed yet."}),h&&(h.uncommitted||h.history.length>0)&&(0,b.jsxs)("ul",{className:"flex flex-col",children:[h.uncommitted&&(0,b.jsxs)("li",{className:"flex items-center gap-2 px-2 py-1 text-xs text-muted",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-accent","aria-hidden":!0})," Uncommitted changes"]}),h.history.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>r(a),"aria-current":m?.commit.sha===a.sha?"true":void 0,className:(0,j.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",m?.commit.sha===a.sha&&"bg-surface2"),children:[(0,b.jsx)(C,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a.date.slice(0,10)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-txt",children:a.subject}),(0,b.jsx)("span",{className:"shrink-0 text-muted",children:a.author})]})},a.sha))]}),m&&(0,b.jsxs)("div",{className:"rounded-md border border-border bg-bg",children:[(0,b.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,b.jsxs)("span",{children:[m.commit.sha.slice(0,7)," · ",m.commit.date.slice(0,10)," · read-only"]}),(0,b.jsx)("button",{type:"button",onClick:()=>n(null),"aria-label":"Close version",className:"rounded p-0.5 hover:text-txt",children:(0,b.jsx)(t.X,{className:"size-3.5"})})]}),(0,b.jsx)("pre",{className:"max-h-72 overflow-auto whitespace-pre-wrap p-3 font-mono text-xs text-txt",children:m.text})]})]})]})}var E=a.i(365465),F=a.i(152716),G=a.i(173628),H=a.i(147758);let I={epic:-2,task:-1,entry:0,adr:1,doc:2},J={"--xy-background-color":"var(--color-bg)"};function K(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let L={mem:(0,c.memo)(function({data:a}){let{node:c,status:d,unlinked:e,dim:f,active:g}=a,h=y.KIND_ICON[c.kind];return(0,b.jsxs)("div",{title:c.path,style:{width:196},className:(0,j.cn)("flex items-center gap-2 rounded-md border bg-surface px-2.5 py-1.5 text-xs transition-opacity","entry"===c.kind?"border-border2":"border-border",g&&"border-accent ring-1 ring-accent",e&&"border-dashed opacity-60",f&&"opacity-25"),children:[["l","r"].map(a=>(0,b.jsxs)("span",{children:[(0,b.jsx)(E.Handle,{id:a,type:"source",position:"l"===a?F.Position.Left:F.Position.Right,isConnectable:!1,className:"opacity-0"}),(0,b.jsx)(E.Handle,{id:`${a}-t`,type:"target",position:"l"===a?F.Position.Left:F.Position.Right,isConnectable:!1,className:"opacity-0"})]},a)),d?(0,b.jsx)(G.StatusIcon,{status:d,className:"size-3.5 shrink-0"}):(0,b.jsx)(h,{className:(0,j.cn)("size-3.5 shrink-0","entry"===c.kind?"text-accent":"text-muted"),"aria-hidden":!0}),"doc"!==c.kind&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:c.id}),(0,b.jsx)("span",{className:(0,j.cn)("min-w-0 truncate","entry"===c.kind?"text-txt":"text-muted"),children:c.label})]})})};function M({entries:a,selectedId:d,onOpenEntry:f}){let{rootParam:g,summary:h,board:i}=(0,e.useApp)(),j=(0,y.useOpenNode)(f),[k,l]=(0,c.useState)(null),m=(0,c.useSyncExternalStore)(K,()=>document.documentElement.classList.contains("dark"),()=>!0);(0,c.useEffect)(()=>{let a=!0;return fetch(`/api/memory/graph${g}`).then(a=>a.json()).then(b=>{a&&l(b.nodes?b:{nodes:[],edges:[]})}).catch(b=>{console.warn("Loading the memory graph failed",b),a&&l({nodes:[],edges:[]})}),()=>{a=!1}},[g,h]);let{nodes:n,edges:o}=(0,c.useMemo)(()=>{if(!k)return{nodes:[],edges:[]};let b=function(a,b={}){let c={},d=a=>Number(a.replace(/\D/g,""))||0;a.nodes.filter(a=>"entry"===a.kind).sort((a,c)=>(b[a.id]??"").localeCompare(b[c.id]??"")||d(a.id)-d(c.id)).forEach((a,b)=>{c[a.id]={x:0,y:48*b}});let e=new Map;for(let{from:b,to:d}of a.edges)for(let[a,f]of[[b,d],[d,b]])c[f]&&!c[a]&&e.set(a,[...e.get(a)??[],c[f].y]);for(let b of["epic","task","adr","doc"]){let d=a.nodes.filter(a=>a.kind===b).map(a=>{let b=e.get(a.id)??[0];return{id:a.id,want:b.reduce((a,b)=>a+b,0)/b.length}}).sort((a,b)=>a.want-b.want||a.id.localeCompare(b.id,"en",{numeric:!0})),f=-1/0;for(let{id:a,want:e}of d){let d=Math.max(e,f);c[a]={x:240*I[b],y:d},f=d+48}}return c}(k,Object.fromEntries(a.map(a=>[a.id,a.type]))),c=new Map(Object.values(i??{}).flat().map(a=>[a.id,a])),e=new Set(k.edges.flatMap(a=>[a.from,a.to])),f=d&&b[d]?new Set([d,...k.edges.filter(a=>a.from===d||a.to===d).flatMap(a=>[a.from,a.to])]):null;return{nodes:k.nodes.map(a=>{let g="task"===a.kind?c.get(a.id):void 0;return{id:a.id,type:"mem",position:b[a.id]??{x:0,y:0},data:{node:a,status:g?(0,H.displayStatus)(g):void 0,unlinked:"entry"===a.kind&&!e.has(a.id),dim:!!f&&!f.has(a.id),active:a.id===d},draggable:!1}}),edges:k.edges.map(a=>{let c=b[a.from]?.x??0,e=b[a.to]?.x??0,g=e<c,h=!!f&&(a.from===d||a.to===d);return{id:`${a.from}->${a.to}`,source:a.from,target:a.to,sourceHandle:g?"l":"r",targetHandle:g||e===c?"r-t":"l-t",style:{stroke:h?"var(--color-accent)":"var(--color-border2)",strokeWidth:h?1.75:1,opacity:f&&!h?.15:1}}})}},[k,a,i,d]);return k?k.nodes.length?(0,b.jsx)("div",{"aria-label":"Memory graph",className:"h-[70vh] min-h-[420px] overflow-hidden rounded-xl border border-border",children:(0,b.jsxs)(E.ReactFlow,{nodes:n,edges:o,nodeTypes:L,onNodeClick:(a,b)=>j(b.data.node),nodesConnectable:!1,nodesDraggable:!1,deleteKeyCode:null,colorMode:m?"dark":"light",onlyRenderVisibleElements:n.length>150,fitView:!0,fitViewOptions:{padding:.1,minZoom:.8,maxZoom:1},minZoom:.1,style:J,children:[(0,b.jsx)(E.Background,{variant:E.BackgroundVariant.Dots,gap:20,size:1}),(0,b.jsx)(E.Controls,{showInteractive:!1})]})}):(0,b.jsx)("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted",children:"No entries to draw yet."}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"Loading graph…"})}var N=a.i(340933),O=a.i(89032),P=a.i(814574);function Q(a,b){let c=[a,...b.filter(b=>b.id!==a.id)].map(a=>a.body.trim()).filter(Boolean).join("\n\n---\n\n");return{type:a.type,summary:a.summary,body:c}}function R({group:a,onClose:d,onApprove:e,returnFocus:f}){let g=[...a].sort((a,b)=>a.id.localeCompare(b.id,"en",{numeric:!0})),[h,i]=(0,c.useState)(g[0].id),[l,n]=(0,c.useState)(()=>Q(g[0],g)),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1);async function s(){if(q||!l.summary.trim())return;r(!0);let a=await e({keepId:h,dropIds:g.filter(a=>a.id!==h).map(a=>a.id),...l});r(!1),a?p(a):d()}return(0,b.jsx)(P.Dialog,{open:!0,onOpenChange:a=>{a||d()},children:(0,b.jsxs)(P.DialogContent,{onCloseAutoFocus:a=>{let b=f?.current;b?.isConnected&&(a.preventDefault(),b.focus())},className:"max-h-[90vh] max-w-3xl overflow-y-auto border-border bg-surface text-txt shadow-xl shadow-black/20",children:[(0,b.jsx)(P.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Merge entries"}),(0,b.jsx)(P.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,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),s()},onKeyDown:a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),s())},className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)("fieldset",{className:"grid min-w-0 gap-2 sm:grid-cols-2",children:[(0,b.jsx)("legend",{className:"sr-only",children:"Entry to keep"}),g.map(a=>(0,b.jsxs)("label",{className:(0,j.cn)("flex min-w-0 cursor-pointer flex-col gap-1.5 rounded-lg border bg-bg p-3 transition-colors duration-(--duration-fast)",a.id===h?"border-accent":"border-border hover:border-border2"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("input",{type:"radio",name:"keep",value:a.id,checked:a.id===h,onChange:()=>{var b;i(b=a.id),n(Q(g.find(a=>a.id===b)??g[0],g))},className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-muted",children:a.id}),(0,b.jsx)("span",{className:"font-mono text-[10px] text-muted",children:a.type}),(0,b.jsx)("span",{className:"ml-auto text-muted",children:a.id===h?"Keep":"Delete"})]}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-txt",children:a.summary}),a.body&&(0,b.jsx)("span",{className:"line-clamp-6 whitespace-pre-wrap font-mono text-[11px] text-muted",children:a.body})]},a.id))]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Type",(0,b.jsx)("select",{value:l.type,onChange:a=>n({...l,type:a.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:m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged summary (one line)",(0,b.jsx)(k.Input,{value:l.summary,onChange:a=>n({...l,summary:a.target.value}),maxLength:200,className:"h-8 text-txt"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Merged details (markdown)",(0,b.jsx)("textarea",{value:l.body,onChange:a=>n({...l,body:a.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"})]}),o&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-danger",children:o}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,b.jsx)("span",{className:"mr-auto font-mono text-[11px] text-muted",children:"⌘↵ approve · Esc cancel"}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"sm",onClick:d,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",size:"sm",disabled:q||!l.summary.trim(),children:q?"Merging…":`Merge into ${h}`})]})]})]})})}let S=[{kind:"contradiction",label:"Contradicts the board"},{kind:"dangling-ref",label:"Missing items"},{kind:"duplicate",label:"Possible duplicates"},{kind:"stale",label:"Not recalled lately"}];function T({flags:a,entries:f,onDismiss:g,onMerge:h,onDelete:i,onOpenEntry:k,onClose:l}){let m=(0,d.useRouter)(),{board:n}=(0,e.useApp)(),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(null),t=(0,c.useRef)(null),u=(0,c.useRef)(null),v=(0,c.useRef)(null),w=(0,c.useMemo)(()=>new Map(Object.values(n??{}).flat().map(a=>[a.id,a])),[n]),x=(0,c.useMemo)(()=>new Map((f??[]).map(a=>[a.id,a.summary])),[f]),y=(a??[]).filter(a=>o||!a.dismissed),z=q&&(f??[]).filter(a=>q.includes(a.id)),A=(a??[]).filter(a=>a.dismissed).length,B=y.map(a=>a.id).join(" ");(0,c.useEffect)(()=>{let a=u.current;if(!a||B.split(" ").includes(a.id))return;u.current=null;let b=v.current?.querySelectorAll("li[data-flag]")??[],c=b[Math.min(a.index,b.length-1)],d=c?.querySelector("button[data-action]")??v.current?.querySelector("h2");d?.focus()},[B]);let C=a=>{u.current={id:a.id,index:y.indexOf(a)}},D=a=>{let c=w.get(a),d=c?.title??x.get(a);return(0,b.jsxs)("button",{type:"button",onClick:()=>{a.startsWith("T")?m.push(`/board?task=${a}`):a.startsWith("R")?m.push(`/roadmap?item=${a}`):a.startsWith("E")&&k(a)},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:[c&&(0,b.jsx)(G.StatusIcon,{status:(0,H.displayStatus)(c),className:"size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a}),d&&(0,b.jsx)("span",{className:"min-w-0 truncate text-txt",children:d})]},a)},E=a=>{let c="warn"===a.severity?N.AlertTriangle:O.Info;return(0,b.jsxs)("li",{"data-flag":a.id,className:(0,j.cn)("flex items-start gap-2 rounded-lg border border-border bg-surface px-3 py-2.5",a.dismissed&&"opacity-60"),children:[(0,b.jsx)(c,{className:(0,j.cn)("mt-0.5 size-3.5 shrink-0","warn"!==a.severity||a.dismissed?"text-muted":"text-amber"),"aria-label":"warn"===a.severity?"Warning":"Note"}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,b.jsx)("p",{className:(0,j.cn)("text-[13px]",a.dismissed?"text-muted":"text-txt"),children:a.message.split(/\b([TRE]\d+)\b/).map((a,c)=>c%2?(0,b.jsx)("span",{className:"font-mono text-[12px]",children:a},c):a)}),a.refs.length>0&&(0,b.jsx)("div",{className:(0,j.cn)("-ml-1.5 flex gap-1","duplicate"===a.kind?"flex-col items-start":"flex-wrap"),children:a.refs.map(D)})]}),a.suggestion?.action==="merge"&&!a.dismissed&&(0,b.jsx)("button",{type:"button","data-action":!0,onClick:b=>{t.current=b.currentTarget,r(a.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…"}),a.suggestion?.action==="delete"&&!a.dismissed&&(0,b.jsxs)("button",{type:"button","data-action":!0,onClick:()=>{C(a),a.suggestion?.ids.forEach(i)},"aria-label":`Delete ${a.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,b.jsx)(s.Trash2,{className:"size-3","aria-hidden":!0})," Delete"]}),a.dismissed?(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",title:"Dismissed on",children:["dismissed ",a.dismissed]}):(0,b.jsx)("button",{type:"button","data-action":!0,onClick:()=>{o||C(a),g(a)},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"})]},a.id)};return(0,b.jsxs)("section",{ref:v,"aria-label":"Cleanup",className:"min-w-0",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-baseline justify-between gap-3",children:[(0,b.jsx)("h2",{tabIndex:-1,className:"outline-none font-display text-base font-semibold tracking-tight",children:"Cleanup"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[A>0&&(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs text-muted",children:[(0,b.jsx)("input",{type:"checkbox",checked:o,onChange:a=>p(a.target.checked),className:"size-3.5 accent-accent focus-visible:outline-2 focus-visible:outline-accent"}),"Show dismissed ",(0,b.jsx)("span",{className:"font-mono text-[10px]",children:A})]}),(0,b.jsx)("button",{type:"button",onClick:l,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===a?(0,b.jsx)("p",{className:"text-sm text-muted",children:"Checking memory…"}):y.length?(0,b.jsx)("div",{className:"flex flex-col gap-4",children:S.map(({kind:a,label:c})=>{let d=y.filter(b=>b.kind===a);return d.length?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("h3",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.06em] text-muted",children:[c," ",(0,b.jsx)("span",{children:d.filter(a=>!a.dismissed).length})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1.5",children:d.map(E)})]},a):null})}):(0,b.jsx)("p",{className:"rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:"Memory looks clean"}),z&&z.length>1&&(0,b.jsx)(R,{group:z,onClose:()=>r(null),onApprove:h,returnFocus:t},z.map(a=>a.id).join("+"))]})}let U={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"]};U.node;let V=(0,A.default)(U);var W=a.i(341225),X=a.i(853775),Y=a.i(578520);function Z({versions:a,current:d,rootParam:e,selectedId:f,onSelect:g,onClose:h,onRestore:i}){let[k,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),p=a?.find(a=>a.id===f)??null;(0,c.useEffect)(()=>{if(!f)return;let a=!0;return fetch(`/api/memory/versions${e}&id=${encodeURIComponent(f)}`).then(async b=>{let c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error??`Request failed (${b.status})`);a&&m({id:f,content:String(c.content??"")})}).catch(b=>{a&&m({id:f,error:b instanceof Error?b.message:String(b)})}),()=>{a=!1}},[f,e]),(0,c.useEffect)(()=>{let a=a=>{if("Escape"!==a.key||a.defaultPrevented)return;let b=a.target;b?.closest("input, textarea, select, [contenteditable=true], [role=dialog]")||h()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[h]);let q=k&&k.id===f?k:null,r=(0,c.useMemo)(()=>q&&"content"in q?(0,W.visibleHunks)((0,W.lineDiff)(d,q.content)):[],[q,d]),s=r.filter(a=>"number"!=typeof a&&"+"===a.op).length,u=r.filter(a=>"number"!=typeof a&&"-"===a.op).length,v=s+u>0,w=async()=>{if(p){o(!0);try{await i(p)}finally{o(!1)}}};return(0,b.jsxs)("section",{"aria-label":"MEMORY.md history",className:"flex flex-col gap-3",children:[!a&&(0,b.jsx)("p",{className:"text-sm text-muted",children:"Loading history…"}),a?.length===0&&(0,b.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."}),a&&a.length>0&&(0,b.jsx)("ul",{className:"flex flex-col rounded-xl border border-border bg-surface p-1",children:a.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>g(a.id===f?null:a.id),"aria-current":a.id===f?"true":void 0,className:(0,j.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",a.id===f&&"bg-surface2"),children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(V,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),(0,b.jsx)("time",{dateTime:a.at,title:new Date(a.at).toLocaleString(),className:"shrink-0 font-mono text-[11px] text-muted",children:(0,Y.timeAgo)(a.at)}),(0,b.jsx)(l.OwnerChip,{owner:(0,X.parseOwner)(a.actor),className:"shrink-0"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:"restore"===a.reason?"before restore":"before update"})]}),(0,b.jsx)("span",{className:(0,j.cn)("block truncate pl-5.5",a.excerpt?"text-txt":"italic text-muted"),children:a.excerpt||"No handoff"})]})},a.id))}),f&&a&&!p&&(0,b.jsxs)("p",{role:"alert",className:"text-xs text-muted",children:["Version ",(0,b.jsx)("span",{className:"font-mono",children:f})," is no longer saved."]}),p&&(0,b.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border bg-bg",children:[(0,b.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,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-0.5",children:[(0,b.jsxs)("span",{title:new Date(p.at).toLocaleString(),children:[p.at.slice(0,16).replace("T"," "),"Z"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"text-danger",children:"− now"})," ",(0,b.jsx)("span",{className:"text-teal",children:"+ this version"})]}),q&&"content"in q&&(0,b.jsxs)("span",{className:"ml-auto",children:[(0,b.jsxs)("span",{className:"text-teal",children:["+",s]})," ",(0,b.jsxs)("span",{className:"text-danger",children:["−",u]})]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>g(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,b.jsx)(t.X,{className:"size-3.5"})})]}),(0,b.jsxs)("div",{className:"max-h-96 overflow-auto font-mono text-[11px] leading-5",children:[!q&&(0,b.jsx)("div",{className:"px-3 py-1 text-muted",children:"Loading diff…"}),q&&"error"in q&&(0,b.jsx)("div",{role:"alert",className:"px-3 py-1 text-danger",children:q.error}),q&&"content"in q&&!v&&(0,b.jsx)("div",{className:"px-3 py-1 text-muted",children:"Same as the current file."}),r.map((a,c)=>"number"==typeof a?(0,b.jsxs)("div",{className:"bg-surface2/50 px-3 text-muted",children:["⋯ ",a," unchanged line",a>1?"s":""]},c):(0,b.jsxs)("div",{className:(0,j.cn)("whitespace-pre-wrap break-words px-3","+"===a.op&&"bg-teal/10 text-teal","-"===a.op&&"bg-danger/10 text-danger"),children:["-"===a.op?"−":a.op," ",a.text||" "]},c))]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 border-t border-border px-3 py-2",children:[(0,b.jsx)("button",{type:"button",onClick:w,disabled:n||!q||"error"in q||!v,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:n?"Restoring…":"Restore this version"}),(0,b.jsx)("span",{className:"text-[11px] text-muted",children:"The current file is saved first, so you can undo."})]})]})]})}function $({memory:a,entries:c,rootParam:d,selectedId:e,creating:h,onOpen:i,onNew:k,onClose:l,onSaved:m,onDelete:n,view:o,onView:p,flags:r,cleanup:s,onCleanup:t,onDismiss:u,onMerge:v,onDeleteStale:x,versions:z,history:A,versionId:B,onHistory:C,onRestore:E}){let F=e?c?.find(a=>a.id===e):void 0,G=r?.filter(a=>!a.dismissed)??[],H=G.some(a=>"warn"===a.severity);return(0,b.jsxs)("div",{className:(0,j.cn)("grid items-start gap-6 p-6","graph"===o?"lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)]":"lg:grid-cols-[minmax(280px,380px)_minmax(0,42rem)]"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4 lg:col-span-2",children:[(0,b.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Memory"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button","aria-pressed":s,onClick:()=>t(!s),className:(0,j.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:[H&&(0,b.jsx)(N.AlertTriangle,{className:"size-3.5 text-amber","aria-hidden":!0}),"Cleanup ",(0,b.jsxs)("span",{className:"font-mono text-[11px]",children:["(",G.length,")"]})]}),(0,b.jsx)("div",{role:"group","aria-label":"Entries view",className:"flex rounded-md border border-border p-0.5",children:["list","graph"].map(a=>(0,b.jsx)("button",{type:"button","aria-pressed":o===a,onClick:()=>p(a),className:(0,j.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",o===a&&"border-border2 bg-surface2 text-txt"),children:a},a))})]})]}),c&&"graph"===o?(0,b.jsx)(M,{entries:c,selectedId:e,onOpenEntry:i}):c?(0,b.jsx)(q,{entries:c,selectedId:e,onOpen:i,onNew:k}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"Loading entries…"}),h||F?(0,b.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,b.jsx)(w,{entry:h?null:F??null,rootParam:d,onSaved:m,onDelete:n,onClose:l,children:F&&!h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(y.EntryRelated,{entryId:F.id,onOpenEntry:i}),(0,b.jsx)(D,{entryId:F.id})]})},h?"new":F?.id)}):s?(0,b.jsx)("div",{className:"min-w-0 lg:sticky lg:top-6",children:(0,b.jsx)(T,{flags:r,entries:c,onDismiss:u,onMerge:v,onDelete:x,onOpenEntry:i,onClose:()=>t(!1)})}):e&&c?(0,b.jsxs)("div",{role:"alert",className:"min-w-0 rounded-xl border border-dashed border-border p-5 text-sm text-muted",children:["Entry ",e," not found."," ",(0,b.jsx)("button",{type:"button",onClick:l,className:"text-txt underline underline-offset-2",children:"Show the handoff"})]}):(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"mb-3 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[(0,b.jsx)("h2",{className:"font-display text-base font-semibold tracking-tight",children:"Session handoff"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("span",{className:"text-xs font-mono text-muted",children:"memory/MEMORY.md"}),(0,b.jsxs)("button",{type:"button","aria-pressed":A,onClick:()=>C(!A),className:(0,j.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",A&&"border-border2 bg-surface2 text-txt"),children:["History ",(0,b.jsxs)("span",{className:"font-mono text-[11px]",children:["(",z?.length??"…",")"]})]})]})]}),A?(0,b.jsx)(Z,{versions:z,current:a?.exists?a.content:"",rootParam:d,selectedId:B,onSelect:a=>C(!0,a),onClose:()=>C(!1),onRestore:E}):a?.exists?(0,b.jsx)("div",{className:"bg-surface border border-border rounded-xl p-5",children:(0,b.jsx)(f.MarkdownRenderer,{content:a.content})}):(0,b.jsx)(g.EmptyState,{icon:"🧠",message:"No MEMORY.md yet.",subMessage:"AI will create one at the end of the first session.",bordered:!0}),(0,b.jsxs)("div",{className:"mt-4 p-4 bg-surface2 border border-border rounded-xl",children:[(0,b.jsx)("p",{className:"text-xs font-mono text-muted mb-2",children:"Add to your CLAUDE.md system prompt:"}),(0,b.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,6 +9,6 @@ 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=a.i(269769);function W(){let{summary:a,rootParam:f}=(0,e.useApp)(),g=(0,d.useRouter)(),h=(0,d.useSearchParams)(),i=h.get("entry"),j="graph"===h.get("view")?"graph":"list",k="1"===h.get("cleanup"),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null),r=(0,c.useCallback)(()=>{let a=!0;return fetch(`/api/memory/entries${f}`).then(a=>a.json()).then(b=>{a&&m(b.entries??[])}).catch(b=>{console.warn("Loading memory entries failed",b),a&&m([])}),()=>{a=!1}},[f]);(0,c.useEffect)(()=>r(),[r,a]);let s=(0,c.useCallback)(()=>{fetch(`/api/memory/health${f}&dismissed=1`).then(a=>a.json()).then(a=>q(a.flags??[])).catch(a=>{console.warn("Loading memory health failed",a),q([])})},[f]);(0,c.useEffect)(()=>{s();let a=a=>{let b=a.detail?.type??"";("memory_updated"===b||"roadmap_updated"===b||b.startsWith("task_"))&&s()};return window.addEventListener("vibedoc:sse",a),()=>window.removeEventListener("vibedoc:sse",a)},[s]);let t=(0,c.useCallback)(async a=>{let b=new Date().toLocaleDateString("en-CA");q(c=>(c??[]).map(c=>c.id===a.id?{...c,dismissed:b}:c));try{let b=await fetch(`/api/memory/health/dismiss${f}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:a.id})}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error??`Request failed (${b.status})`)}catch(a){(0,V.toast)(`Dismiss failed: ${a instanceof Error?a.message:String(a)}`),s()}},[f,s]),u=(0,c.useCallback)((a,b,c=!1)=>{let d=new URLSearchParams;"graph"===b&&d.set("view","graph"),a&&d.set("entry",a),c&&d.set("cleanup","1"),g.replace(d.size?`/memory?${d}`:"/memory",{scroll:!1})},[g]),v=(0,c.useCallback)(a=>{o(!1),u(a,j)},[u,j]),w=(0,c.useCallback)(async(a,b)=>{let c=await fetch(`${a}${f}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>({}));if(!c.ok)throw Error(d.error??`Request failed (${c.status})`);return d},[f]),x=(0,c.useCallback)(async a=>{try{let{file:b,raw:c}=await w("/api/memory/entries/delete",{id:a.id});m(b=>(b??[]).filter(b=>b.id!==a.id)),v(null),(0,V.undoToast)(`Deleted ${a.id}`,async()=>{await w("/api/memory/entries/restore",{file:b,raw:c}),r(),v(a.id)})}catch(a){(0,V.toast)(`Delete failed: ${a instanceof Error?a.message:String(a)}`)}},[w,v,r]),y=(0,c.useCallback)(async a=>{try{let{file:b,raw:c}=await w("/api/memory/entries/delete",{id:a});m(b=>(b??[]).filter(b=>b.id!==a)),q(b=>(b??[]).filter(b=>!("stale"===b.kind&&b.refs.includes(a)))),(0,V.undoToast)(`Deleted ${a}`,async()=>{await w("/api/memory/entries/restore",{file:b,raw:c}),r()})}catch(a){(0,V.toast)(`Delete failed: ${a instanceof Error?a.message:String(a)}`)}},[w,r]),z=(0,c.useCallback)(async a=>{try{let{entry:b,before:c}=await w("/api/memory/entries/merge",a);return m(c=>[...(c??[]).filter(c=>c.id!==b.id&&!a.dropIds.includes(c.id)),b]),v(b.id),(0,V.undoToast)(`Merged into ${b.id}`,async()=>{await w("/api/memory/entries/merge/undo",{before:c}),r(),v(b.id)}),null}catch(a){return a instanceof Error?a.message:String(a)}},[w,v,r]);return(0,b.jsx)(U,{memory:a?.memory??null,entries:l,rootParam:f,selectedId:n?null:i,creating:n,onOpen:v,onNew:()=>o(!0),onClose:()=>v(null),onDelete:x,view:j,onView:a=>u(i,a,k),flags:p,cleanup:k&&!n&&!i,onCleanup:a=>{o(!1),u(a?null:i,j,a)},onDismiss:t,onMerge:z,onDeleteStale:y,onSaved:a=>{m(b=>[...(b??[]).filter(b=>b.id!==a.id),a]),v(a.id)}})}a.s(["default",0,function(){return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(W,{})})}],892519)}];
12
+ - Call vibedoc_update_memory with full handoff`})]})]})]})}var _=a.i(269769);function aa(){let{summary:a,rootParam:f,refresh:g}=(0,e.useApp)(),h=(0,d.useRouter)(),i=(0,d.useSearchParams)(),j=i.get("entry"),k="graph"===i.get("view")?"graph":"list",l="1"===i.get("cleanup"),m="1"===i.get("history"),n=m?i.get("version"):null,[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),w=(0,c.useCallback)(()=>{let a=!0;return fetch(`/api/memory/entries${f}`).then(a=>a.json()).then(b=>{a&&p(b.entries??[])}).catch(b=>{console.warn("Loading memory entries failed",b),a&&p([])}),()=>{a=!1}},[f]);(0,c.useEffect)(()=>w(),[w,a]);let x=(0,c.useCallback)(()=>{let a=!0;return fetch(`/api/memory/versions${f}`).then(a=>a.json()).then(b=>{a&&v(Array.isArray(b)?b:[])}).catch(b=>{console.warn("Loading memory versions failed",b),a&&v([])}),()=>{a=!1}},[f]);(0,c.useEffect)(()=>x(),[x,a]);let y=(0,c.useCallback)(()=>{fetch(`/api/memory/health${f}&dismissed=1`).then(a=>a.json()).then(a=>t(a.flags??[])).catch(a=>{console.warn("Loading memory health failed",a),t([])})},[f]);(0,c.useEffect)(()=>{y();let a=a=>{let b=a.detail?.type??"";("memory_updated"===b||"roadmap_updated"===b||b.startsWith("task_"))&&y()};return window.addEventListener("vibedoc:sse",a),()=>window.removeEventListener("vibedoc:sse",a)},[y]);let z=(0,c.useCallback)(async a=>{let b=new Date().toLocaleDateString("en-CA");t(c=>(c??[]).map(c=>c.id===a.id?{...c,dismissed:b}:c));try{let b=await fetch(`/api/memory/health/dismiss${f}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:a.id})}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error??`Request failed (${b.status})`)}catch(a){(0,_.toast)(`Dismiss failed: ${a instanceof Error?a.message:String(a)}`),y()}},[f,y]),A=(0,c.useCallback)((a,b,c=!1,d)=>{let e=new URLSearchParams;"graph"===b&&e.set("view","graph"),a&&e.set("entry",a),c&&e.set("cleanup","1"),void 0!==d&&e.set("history","1"),d&&e.set("version",d),h.replace(e.size?`/memory?${e}`:"/memory",{scroll:!1})},[h]),B=(0,c.useCallback)(a=>{r(!1),A(a,k)},[A,k]),C=(0,c.useCallback)(async(a,b)=>{let c=await fetch(`${a}${f}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>({}));if(!c.ok)throw Error(d.error??`Request failed (${c.status})`);return d},[f]),D=(0,c.useCallback)(async a=>{try{let{file:b,raw:c}=await C("/api/memory/entries/delete",{id:a.id});p(b=>(b??[]).filter(b=>b.id!==a.id)),B(null),(0,_.undoToast)(`Deleted ${a.id}`,async()=>{await C("/api/memory/entries/restore",{file:b,raw:c}),w(),B(a.id)})}catch(a){(0,_.toast)(`Delete failed: ${a instanceof Error?a.message:String(a)}`)}},[C,B,w]),E=(0,c.useCallback)(async a=>{try{let{file:b,raw:c}=await C("/api/memory/entries/delete",{id:a});p(b=>(b??[]).filter(b=>b.id!==a)),t(b=>(b??[]).filter(b=>!("stale"===b.kind&&b.refs.includes(a)))),(0,_.undoToast)(`Deleted ${a}`,async()=>{await C("/api/memory/entries/restore",{file:b,raw:c}),w()})}catch(a){(0,_.toast)(`Delete failed: ${a instanceof Error?a.message:String(a)}`)}},[C,w]),F=(0,c.useCallback)(async a=>{try{let{entry:b,before:c}=await C("/api/memory/entries/merge",a);return p(c=>[...(c??[]).filter(c=>c.id!==b.id&&!a.dropIds.includes(c.id)),b]),B(b.id),(0,_.undoToast)(`Merged into ${b.id}`,async()=>{await C("/api/memory/entries/merge/undo",{before:c}),w(),B(b.id)}),null}catch(a){return a instanceof Error?a.message:String(a)}},[C,B,w]),G=(0,c.useCallback)(async a=>{try{let{replacedId:b}=await C("/api/memory/restore",{id:a.id});A(null,k),await g(),x();let c=async()=>{await C("/api/memory/restore",{id:b}),await g(),x()};b?(0,_.undoToast)("Restored MEMORY.md",c):(0,_.toast)("Restored MEMORY.md")}catch(a){(0,_.toast)(`Restore failed: ${a instanceof Error?a.message:String(a)}`)}},[C,A,k,g,x]);return(0,b.jsx)($,{memory:a?.memory??null,entries:o,rootParam:f,selectedId:q?null:j,creating:q,onOpen:B,onNew:()=>r(!0),onClose:()=>B(null),onDelete:D,view:k,onView:a=>A(j,a,l),flags:s,cleanup:l&&!q&&!j,onCleanup:a=>{r(!1),A(a?null:j,k,a)},onDismiss:z,onMerge:F,onDeleteStale:E,versions:u,history:m,versionId:n,onHistory:(a,b)=>A(null,k,!1,a?b??null:void 0),onRestore:G,onSaved:a=>{p(b=>[...(b??[]).filter(b=>b.id!==a.id),a]),B(a.id)}})}a.s(["default",0,function(){return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(aa,{})})}],892519)}];
13
13
 
14
14
  //# sourceMappingURL=src_app_%28app%29_memory_page_tsx_19jhb1c._.js.map