vibedoc 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (800) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +15 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +42 -14
  5. package/.next/routes-manifest.json +90 -0
  6. package/.next/server/app/(app)/activity/page.js +2 -2
  7. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  8. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(app)/board/page.js +2 -2
  10. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/chat/page.js +2 -2
  13. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  14. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(app)/docs/page.js +2 -2
  16. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(app)/explorer/page.js +2 -2
  19. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/manual-tests/page/app-paths-manifest.json +3 -0
  22. package/.next/server/app/(app)/manual-tests/page/build-manifest.json +20 -0
  23. package/.next/server/app/(app)/manual-tests/page/next-font-manifest.json +11 -0
  24. package/.next/server/app/(app)/manual-tests/page/react-loadable-manifest.json +1 -0
  25. package/.next/server/app/(app)/manual-tests/page/server-reference-manifest.json +4 -0
  26. package/.next/server/app/(app)/manual-tests/page.js +15 -0
  27. package/.next/server/app/(app)/manual-tests/page.js.map +5 -0
  28. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -0
  29. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +3 -0
  30. package/.next/server/app/(app)/memory/page.js +2 -2
  31. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(app)/roadmap/page.js +2 -2
  34. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  35. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(app)/settings/page.js +2 -2
  37. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  38. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(app)/setup/page.js +2 -2
  40. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  41. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/_global-error/page.js +2 -2
  43. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  44. package/.next/server/app/_global-error.html +1 -1
  45. package/.next/server/app/_global-error.rsc +1 -1
  46. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  47. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  48. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  49. package/.next/server/app/_not-found/page.js +2 -2
  50. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  51. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/_not-found.html +1 -1
  53. package/.next/server/app/_not-found.rsc +3 -2
  54. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -2
  55. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -2
  56. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  57. package/.next/server/app/activity.html +1 -1
  58. package/.next/server/app/activity.rsc +13 -12
  59. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +12 -9
  60. package/.next/server/app/activity.segments/_full.segment.rsc +13 -12
  61. package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
  62. package/.next/server/app/api/activity/route.js +2 -2
  63. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  64. package/.next/server/app/api/backlinks/route.js +2 -2
  65. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  66. package/.next/server/app/api/chat/route.js +3 -3
  67. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  68. package/.next/server/app/api/context/route.js +2 -2
  69. package/.next/server/app/api/context/route.js.nft.json +1 -1
  70. package/.next/server/app/api/conversations/route.js +3 -3
  71. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  72. package/.next/server/app/api/decisions/route.js +3 -3
  73. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  74. package/.next/server/app/api/docs/route.js +3 -3
  75. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  76. package/.next/server/app/api/explorer/route.js +3 -3
  77. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  78. package/.next/server/app/api/mcp/route.js +3 -3
  79. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  80. package/.next/server/app/api/memory/entries/delete/route/app-paths-manifest.json +3 -0
  81. package/.next/server/app/api/memory/entries/delete/route/build-manifest.json +12 -0
  82. package/.next/server/app/api/memory/entries/delete/route/server-reference-manifest.json +4 -0
  83. package/.next/server/app/api/memory/entries/delete/route.js +9 -0
  84. package/.next/server/app/api/memory/entries/delete/route.js.map +5 -0
  85. package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -0
  86. package/.next/server/app/api/memory/entries/delete/route_client-reference-manifest.js +3 -0
  87. package/.next/server/app/api/memory/entries/restore/route/app-paths-manifest.json +3 -0
  88. package/.next/server/app/api/memory/entries/restore/route/build-manifest.json +12 -0
  89. package/.next/server/app/api/memory/entries/restore/route/server-reference-manifest.json +4 -0
  90. package/.next/server/app/api/memory/entries/restore/route.js +9 -0
  91. package/.next/server/app/api/memory/entries/restore/route.js.map +5 -0
  92. package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -0
  93. package/.next/server/app/api/memory/entries/restore/route_client-reference-manifest.js +3 -0
  94. package/.next/server/app/api/memory/entries/route/app-paths-manifest.json +3 -0
  95. package/.next/server/app/api/memory/entries/route/build-manifest.json +12 -0
  96. package/.next/server/app/api/memory/entries/route/server-reference-manifest.json +4 -0
  97. package/.next/server/app/api/memory/entries/route.js +8 -0
  98. package/.next/server/app/api/memory/entries/route.js.map +5 -0
  99. package/.next/server/app/api/memory/entries/route.js.nft.json +1 -0
  100. package/.next/server/app/api/memory/entries/route_client-reference-manifest.js +3 -0
  101. package/.next/server/app/api/memory/entries/save/route/app-paths-manifest.json +3 -0
  102. package/.next/server/app/api/memory/entries/save/route/build-manifest.json +12 -0
  103. package/.next/server/app/api/memory/entries/save/route/server-reference-manifest.json +4 -0
  104. package/.next/server/app/api/memory/entries/save/route.js +9 -0
  105. package/.next/server/app/api/memory/entries/save/route.js.map +5 -0
  106. package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -0
  107. package/.next/server/app/api/memory/entries/save/route_client-reference-manifest.js +3 -0
  108. package/.next/server/app/api/memory/graph/route/app-paths-manifest.json +3 -0
  109. package/.next/server/app/api/memory/graph/route/build-manifest.json +12 -0
  110. package/.next/server/app/api/memory/graph/route/server-reference-manifest.json +4 -0
  111. package/.next/server/app/api/memory/graph/route.js +9 -0
  112. package/.next/server/app/api/memory/graph/route.js.map +5 -0
  113. package/.next/server/app/api/memory/graph/route.js.nft.json +1 -0
  114. package/.next/server/app/api/memory/graph/route_client-reference-manifest.js +3 -0
  115. package/.next/server/app/api/memory/history/route/app-paths-manifest.json +3 -0
  116. package/.next/server/app/api/memory/history/route/build-manifest.json +12 -0
  117. package/.next/server/app/api/memory/history/route/server-reference-manifest.json +4 -0
  118. package/.next/server/app/api/memory/history/route.js +9 -0
  119. package/.next/server/app/api/memory/history/route.js.map +5 -0
  120. package/.next/server/app/api/memory/history/route.js.nft.json +1 -0
  121. package/.next/server/app/api/memory/history/route_client-reference-manifest.js +3 -0
  122. package/.next/server/app/api/memory/route.js +3 -3
  123. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  124. package/.next/server/app/api/plan/apply/route.js +4 -4
  125. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  126. package/.next/server/app/api/projects/route.js +2 -2
  127. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  128. package/.next/server/app/api/registry/route.js +3 -3
  129. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  130. package/.next/server/app/api/roadmap/create/route.js +4 -4
  131. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  132. package/.next/server/app/api/roadmap/delete/route.js +4 -4
  133. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  134. package/.next/server/app/api/roadmap/generate/route.js +4 -4
  135. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  136. package/.next/server/app/api/roadmap/layout/route.js +4 -4
  137. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  138. package/.next/server/app/api/roadmap/restore/route/app-paths-manifest.json +3 -0
  139. package/.next/server/app/api/roadmap/restore/route/build-manifest.json +12 -0
  140. package/.next/server/app/api/roadmap/restore/route/server-reference-manifest.json +4 -0
  141. package/.next/server/app/api/roadmap/restore/route.js +9 -0
  142. package/.next/server/app/api/roadmap/restore/route.js.map +5 -0
  143. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -0
  144. package/.next/server/app/api/roadmap/restore/route_client-reference-manifest.js +3 -0
  145. package/.next/server/app/api/roadmap/route.js +3 -3
  146. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  147. package/.next/server/app/api/roadmap/update/route.js +4 -4
  148. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  149. package/.next/server/app/api/sessions/route.js +2 -2
  150. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  151. package/.next/server/app/api/settings/route.js +3 -3
  152. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  153. package/.next/server/app/api/setup/generate/route.js +4 -4
  154. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  155. package/.next/server/app/api/setup/write/route.js +3 -3
  156. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  157. package/.next/server/app/api/summary/route.js +2 -2
  158. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  159. package/.next/server/app/api/tasks/bulk/route/app-paths-manifest.json +3 -0
  160. package/.next/server/app/api/tasks/bulk/route/build-manifest.json +12 -0
  161. package/.next/server/app/api/tasks/bulk/route/server-reference-manifest.json +4 -0
  162. package/.next/server/app/api/tasks/bulk/route.js +9 -0
  163. package/.next/server/app/api/tasks/bulk/route.js.map +5 -0
  164. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -0
  165. package/.next/server/app/api/tasks/bulk/route_client-reference-manifest.js +3 -0
  166. package/.next/server/app/api/tasks/create/route.js +3 -3
  167. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  168. package/.next/server/app/api/tasks/delete/route/app-paths-manifest.json +3 -0
  169. package/.next/server/app/api/tasks/delete/route/build-manifest.json +12 -0
  170. package/.next/server/app/api/tasks/delete/route/server-reference-manifest.json +4 -0
  171. package/.next/server/app/api/tasks/delete/route.js +9 -0
  172. package/.next/server/app/api/tasks/delete/route.js.map +5 -0
  173. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -0
  174. package/.next/server/app/api/tasks/delete/route_client-reference-manifest.js +3 -0
  175. package/.next/server/app/api/tasks/manual-tests/route/app-paths-manifest.json +3 -0
  176. package/.next/server/app/api/tasks/manual-tests/route/build-manifest.json +12 -0
  177. package/.next/server/app/api/tasks/manual-tests/route/server-reference-manifest.json +4 -0
  178. package/.next/server/app/api/tasks/manual-tests/route.js +8 -0
  179. package/.next/server/app/api/tasks/manual-tests/route.js.map +5 -0
  180. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -0
  181. package/.next/server/app/api/tasks/manual-tests/route_client-reference-manifest.js +3 -0
  182. package/.next/server/app/api/tasks/restore/route/app-paths-manifest.json +3 -0
  183. package/.next/server/app/api/tasks/restore/route/build-manifest.json +12 -0
  184. package/.next/server/app/api/tasks/restore/route/server-reference-manifest.json +4 -0
  185. package/.next/server/app/api/tasks/restore/route.js +9 -0
  186. package/.next/server/app/api/tasks/restore/route.js.map +5 -0
  187. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -0
  188. package/.next/server/app/api/tasks/restore/route_client-reference-manifest.js +3 -0
  189. package/.next/server/app/api/tasks/review/route/app-paths-manifest.json +3 -0
  190. package/.next/server/app/api/tasks/review/route/build-manifest.json +12 -0
  191. package/.next/server/app/api/tasks/review/route/server-reference-manifest.json +4 -0
  192. package/.next/server/app/api/tasks/review/route.js +9 -0
  193. package/.next/server/app/api/tasks/review/route.js.map +5 -0
  194. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -0
  195. package/.next/server/app/api/tasks/review/route_client-reference-manifest.js +3 -0
  196. package/.next/server/app/api/tasks/route.js +3 -3
  197. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  198. package/.next/server/app/api/tasks/update/route/app-paths-manifest.json +3 -0
  199. package/.next/server/app/api/tasks/update/route/build-manifest.json +12 -0
  200. package/.next/server/app/api/tasks/update/route/server-reference-manifest.json +4 -0
  201. package/.next/server/app/api/tasks/update/route.js +9 -0
  202. package/.next/server/app/api/tasks/update/route.js.map +5 -0
  203. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -0
  204. package/.next/server/app/api/tasks/update/route_client-reference-manifest.js +3 -0
  205. package/.next/server/app/api/views/route/app-paths-manifest.json +3 -0
  206. package/.next/server/app/api/views/route/build-manifest.json +12 -0
  207. package/.next/server/app/api/views/route/server-reference-manifest.json +4 -0
  208. package/.next/server/app/api/views/route.js +9 -0
  209. package/.next/server/app/api/views/route.js.map +5 -0
  210. package/.next/server/app/api/views/route.js.nft.json +1 -0
  211. package/.next/server/app/api/views/route_client-reference-manifest.js +3 -0
  212. package/.next/server/app/board.html +1 -1
  213. package/.next/server/app/board.rsc +13 -12
  214. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +7 -6
  215. package/.next/server/app/board.segments/_full.segment.rsc +13 -12
  216. package/.next/server/app/board.segments/_tree.segment.rsc +3 -2
  217. package/.next/server/app/chat.html +1 -1
  218. package/.next/server/app/chat.rsc +13 -12
  219. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +7 -6
  220. package/.next/server/app/chat.segments/_full.segment.rsc +13 -12
  221. package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
  222. package/.next/server/app/docs.html +1 -1
  223. package/.next/server/app/docs.rsc +13 -12
  224. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +7 -6
  225. package/.next/server/app/docs.segments/_full.segment.rsc +13 -12
  226. package/.next/server/app/docs.segments/_tree.segment.rsc +3 -2
  227. package/.next/server/app/explorer.html +1 -1
  228. package/.next/server/app/explorer.rsc +13 -12
  229. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +11 -9
  230. package/.next/server/app/explorer.segments/_full.segment.rsc +13 -12
  231. package/.next/server/app/explorer.segments/_tree.segment.rsc +3 -2
  232. package/.next/server/app/index.html +1 -1
  233. package/.next/server/app/index.rsc +3 -2
  234. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -2
  235. package/.next/server/app/index.segments/_full.segment.rsc +3 -2
  236. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  237. package/.next/server/app/manual-tests.html +1 -0
  238. package/.next/server/app/manual-tests.meta +31 -0
  239. package/.next/server/app/manual-tests.rsc +30 -0
  240. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +33 -0
  241. package/.next/server/app/manual-tests.segments/_full.segment.rsc +30 -0
  242. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +5 -0
  243. package/.next/server/app/memory.html +1 -1
  244. package/.next/server/app/memory.rsc +14 -12
  245. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +13 -9
  246. package/.next/server/app/memory.segments/_full.segment.rsc +14 -12
  247. package/.next/server/app/memory.segments/_tree.segment.rsc +4 -2
  248. package/.next/server/app/page.js +2 -2
  249. package/.next/server/app/page.js.nft.json +1 -1
  250. package/.next/server/app/page_client-reference-manifest.js +1 -1
  251. package/.next/server/app/roadmap.html +1 -1
  252. package/.next/server/app/roadmap.rsc +13 -12
  253. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +7 -6
  254. package/.next/server/app/roadmap.segments/_full.segment.rsc +13 -12
  255. package/.next/server/app/roadmap.segments/_tree.segment.rsc +3 -2
  256. package/.next/server/app/settings.html +1 -1
  257. package/.next/server/app/settings.rsc +13 -12
  258. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +11 -9
  259. package/.next/server/app/settings.segments/_full.segment.rsc +13 -12
  260. package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  261. package/.next/server/app/setup.html +1 -1
  262. package/.next/server/app/setup.rsc +13 -12
  263. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +11 -9
  264. package/.next/server/app/setup.segments/_full.segment.rsc +13 -12
  265. package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  266. package/.next/server/app-paths-manifest.json +15 -0
  267. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js → 11mp_@anthropic-ai_sdk_0-_cqh8._.js} +1 -1
  268. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js → 11mp_@anthropic-ai_sdk_00o5o78._.js} +1 -1
  269. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js → 11mp_@anthropic-ai_sdk_03cp17a._.js} +1 -1
  270. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js → 11mp_@anthropic-ai_sdk_07dk2er._.js} +1 -1
  271. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_e9zpr._.js +3 -0
  272. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_xx_qf._.js +3 -0
  273. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0aer9lc._.js +3 -0
  274. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ax30pe._.js +3 -0
  275. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gn7vgs._.js +3 -0
  276. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hye94a._.js +3 -0
  277. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ir5cgk._.js +3 -0
  278. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0je0_pa._.js +3 -0
  279. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0jfgh0o._.js +3 -0
  280. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0mha4x1._.js +3 -0
  281. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0n__boa._.js +3 -0
  282. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0sqv26_._.js +3 -0
  283. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wnc6g-._.js +3 -0
  284. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0xh0g59._.js +3 -0
  285. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-5wyhj._.js +3 -0
  286. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13ahm3n._.js +3 -0
  287. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13e6aq4._.js +3 -0
  288. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14eg0ld._.js +3 -0
  289. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15md1n2._.js +3 -0
  290. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16av8b9._.js +3 -0
  291. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16hjhv1._.js +3 -0
  292. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16txvf7._.js +3 -0
  293. package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js +3 -0
  294. package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js.map +1 -0
  295. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js +3 -0
  296. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js.map +1 -0
  297. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js +3 -0
  298. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js.map +1 -0
  299. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js +3 -0
  300. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js.map +1 -0
  301. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js +3 -0
  302. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js.map +1 -0
  303. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js +3 -0
  304. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js.map +1 -0
  305. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js +3 -0
  306. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js.map +1 -0
  307. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js +3 -0
  308. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js.map +1 -0
  309. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js +3 -0
  310. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js.map +1 -0
  311. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js +3 -0
  312. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js.map +1 -0
  313. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js +3 -0
  314. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js.map +1 -0
  315. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js +3 -0
  316. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js.map +1 -0
  317. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js +3 -0
  318. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js.map +1 -0
  319. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js +3 -0
  320. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js.map +1 -0
  321. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js +3 -0
  322. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js +3 -0
  323. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js +3 -0
  324. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js +3 -0
  325. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js +3 -0
  326. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js +3 -0
  327. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js +3 -0
  328. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js +3 -0
  329. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js +3 -0
  330. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js +3 -0
  331. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js +3 -0
  332. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js +3 -0
  333. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js +3 -0
  334. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js +3 -0
  335. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js +3 -0
  336. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js +3 -0
  337. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js +3 -0
  338. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js.map +1 -0
  339. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js +3 -0
  340. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js.map +1 -0
  341. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js +3 -0
  342. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js.map +1 -0
  343. package/.next/server/chunks/[root-of-the-server]__008focd._.js +3 -0
  344. package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js.map → [root-of-the-server]__008focd._.js.map} +1 -1
  345. package/.next/server/chunks/[root-of-the-server]__01xmabe._.js +3 -0
  346. package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js.map → [root-of-the-server]__01xmabe._.js.map} +1 -1
  347. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js +3 -0
  348. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js.map +1 -0
  349. package/.next/server/chunks/[root-of-the-server]__05us508._.js +3 -0
  350. package/.next/server/chunks/[root-of-the-server]__05us508._.js.map +1 -0
  351. package/.next/server/chunks/[root-of-the-server]__08yaps5._.js +3 -0
  352. package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js.map → [root-of-the-server]__08yaps5._.js.map} +1 -1
  353. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js → [root-of-the-server]__09oyvwa._.js} +2 -2
  354. package/.next/server/chunks/{[root-of-the-server]__1wr0m-s._.js.map → [root-of-the-server]__09oyvwa._.js.map} +1 -1
  355. package/.next/server/chunks/[root-of-the-server]__0axugex._.js +3 -0
  356. package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js.map → [root-of-the-server]__0axugex._.js.map} +1 -1
  357. package/.next/server/chunks/[root-of-the-server]__0b2488c._.js +3 -0
  358. package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js.map → [root-of-the-server]__0b2488c._.js.map} +1 -1
  359. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js +3 -0
  360. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js.map +1 -0
  361. package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js → [root-of-the-server]__0cbh1s-._.js} +2 -2
  362. package/.next/server/chunks/[root-of-the-server]__0cbh1s-._.js.map +1 -0
  363. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js +3 -0
  364. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js.map +1 -0
  365. package/.next/server/chunks/[root-of-the-server]__0gnil0m._.js +3 -0
  366. package/.next/server/chunks/{[root-of-the-server]__18kxo4a._.js.map → [root-of-the-server]__0gnil0m._.js.map} +1 -1
  367. package/.next/server/chunks/[root-of-the-server]__0hfyuhq._.js +3 -0
  368. package/.next/server/chunks/[root-of-the-server]__0hfyuhq._.js.map +1 -0
  369. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js +3 -0
  370. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js.map +1 -0
  371. package/.next/server/chunks/[root-of-the-server]__0ikbk15._.js +3 -0
  372. package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js.map → [root-of-the-server]__0ikbk15._.js.map} +1 -1
  373. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js +110 -0
  374. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js.map +1 -0
  375. package/.next/server/chunks/[root-of-the-server]__0khz7sy._.js +3 -0
  376. package/.next/server/chunks/{[root-of-the-server]__1jxu2x9._.js.map → [root-of-the-server]__0khz7sy._.js.map} +1 -1
  377. package/.next/server/chunks/[root-of-the-server]__0lf11mz._.js +3 -0
  378. package/.next/server/chunks/{[root-of-the-server]__1lj_2cv._.js.map → [root-of-the-server]__0lf11mz._.js.map} +1 -1
  379. package/.next/server/chunks/[root-of-the-server]__0m8hmg0._.js +3 -0
  380. package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js.map → [root-of-the-server]__0m8hmg0._.js.map} +1 -1
  381. package/.next/server/chunks/[root-of-the-server]__0qij7wy._.js +3 -0
  382. package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js.map → [root-of-the-server]__0qij7wy._.js.map} +1 -1
  383. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js +3 -0
  384. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js.map +1 -0
  385. package/.next/server/chunks/[root-of-the-server]__0x8wtot._.js +3 -0
  386. package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js.map → [root-of-the-server]__0x8wtot._.js.map} +1 -1
  387. package/.next/server/chunks/[root-of-the-server]__0y5usoz._.js +3 -0
  388. package/.next/server/chunks/[root-of-the-server]__0y5usoz._.js.map +1 -0
  389. package/.next/server/chunks/[root-of-the-server]__15c5snv._.js +3 -0
  390. package/.next/server/chunks/{[root-of-the-server]__05l6129._.js.map → [root-of-the-server]__15c5snv._.js.map} +1 -1
  391. package/.next/server/chunks/[root-of-the-server]__16u25oa._.js +3 -0
  392. package/.next/server/chunks/{[root-of-the-server]__142icjb._.js.map → [root-of-the-server]__16u25oa._.js.map} +1 -1
  393. package/.next/server/chunks/[root-of-the-server]__18dt3sr._.js +3 -0
  394. package/.next/server/chunks/{[root-of-the-server]__14aeqoi._.js.map → [root-of-the-server]__18dt3sr._.js.map} +1 -1
  395. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js +110 -0
  396. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js.map +1 -0
  397. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js +3 -0
  398. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js.map +1 -0
  399. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js +3 -0
  400. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js.map +1 -0
  401. package/.next/server/chunks/[root-of-the-server]__1b448u7._.js +3 -0
  402. package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js.map → [root-of-the-server]__1b448u7._.js.map} +1 -1
  403. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js +3 -0
  404. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js.map +1 -0
  405. package/.next/server/chunks/[root-of-the-server]__1gvv2xp._.js +3 -0
  406. package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js.map → [root-of-the-server]__1gvv2xp._.js.map} +1 -1
  407. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js +3 -0
  408. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js.map +1 -0
  409. package/.next/server/chunks/[root-of-the-server]__1jz98vb._.js +3 -0
  410. package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js.map → [root-of-the-server]__1jz98vb._.js.map} +1 -1
  411. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js +3 -0
  412. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js.map +1 -0
  413. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js +3 -0
  414. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js.map +1 -0
  415. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js +110 -0
  416. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js.map +1 -0
  417. package/.next/server/chunks/[root-of-the-server]__1r_0uma._.js +3 -0
  418. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js.map → [root-of-the-server]__1r_0uma._.js.map} +1 -1
  419. package/.next/server/chunks/[root-of-the-server]__1ssunti._.js +3 -0
  420. package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js.map → [root-of-the-server]__1ssunti._.js.map} +1 -1
  421. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js +3 -0
  422. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js.map +1 -0
  423. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js +3 -0
  424. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js.map +1 -0
  425. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js +3 -0
  426. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js.map +1 -0
  427. package/.next/server/chunks/[root-of-the-server]__1z3tswg._.js +3 -0
  428. package/.next/server/chunks/[root-of-the-server]__1z3tswg._.js.map +1 -0
  429. package/.next/server/chunks/_04byth9._.js +34 -19
  430. package/.next/server/chunks/_04byth9._.js.map +1 -1
  431. package/.next/server/chunks/_0safx0g._.js +10 -0
  432. package/.next/server/chunks/_0safx0g._.js.map +1 -0
  433. package/.next/server/chunks/_1au4syj._.js +1 -1
  434. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  435. package/.next/server/chunks/_1b5fqxy._.js.map +1 -1
  436. package/.next/server/chunks/_1ivswa9._.js +3 -0
  437. package/.next/server/chunks/_1ivswa9._.js.map +1 -0
  438. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js +3 -0
  439. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js.map +1 -0
  440. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js +3 -0
  441. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js.map +1 -0
  442. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js +3 -0
  443. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js.map +1 -0
  444. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js +3 -0
  445. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js.map +1 -0
  446. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js +3 -0
  447. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js.map +1 -0
  448. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js +3 -0
  449. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js.map +1 -0
  450. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js +3 -0
  451. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js.map +1 -0
  452. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js +3 -0
  453. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js.map +1 -0
  454. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js +3 -0
  455. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js.map +1 -0
  456. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js +3 -0
  457. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js.map +1 -0
  458. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js +3 -0
  459. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js.map +1 -0
  460. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js +3 -0
  461. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js.map +1 -0
  462. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js +3 -0
  463. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js.map +1 -0
  464. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js +3 -0
  465. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js.map +1 -0
  466. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js +3 -0
  467. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js.map +1 -0
  468. package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js → 0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js} +2 -2
  469. package/.next/server/chunks/ssr/0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js.map +1 -0
  470. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_1z0p1bs._.js → 1u84_katex_dist_katex_mjs_1kb5xea._.js} +1 -1
  471. package/.next/server/chunks/ssr/1u84_katex_dist_katex_mjs_1kb5xea._.js.map +1 -0
  472. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js +1 -1
  473. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js.map +1 -1
  474. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js +3 -0
  475. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js.map +1 -0
  476. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js +3 -0
  477. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js.map +1 -0
  478. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js +3 -0
  479. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js.map +1 -0
  480. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js +3 -0
  481. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js.map +1 -0
  482. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js +3 -0
  483. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js.map +1 -0
  484. package/.next/server/chunks/ssr/[root-of-the-server]__0opgo3t._.js +14 -0
  485. package/.next/server/chunks/ssr/{[root-of-the-server]__0noc5ay._.js.map → [root-of-the-server]__0opgo3t._.js.map} +1 -1
  486. package/.next/server/chunks/ssr/[root-of-the-server]__0xt_0w2._.js.map +1 -1
  487. package/.next/server/chunks/ssr/[root-of-the-server]__1jv5ug1._.js +3 -0
  488. package/.next/server/chunks/ssr/{[root-of-the-server]__1pk-w2i._.js.map → [root-of-the-server]__1jv5ug1._.js.map} +1 -1
  489. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  490. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  491. package/.next/server/chunks/ssr/_071j6mr._.js +4 -0
  492. package/.next/server/chunks/ssr/_071j6mr._.js.map +1 -0
  493. package/.next/server/chunks/ssr/_0i75x-o._.js +3 -0
  494. package/.next/server/chunks/ssr/_0i75x-o._.js.map +1 -0
  495. package/.next/server/chunks/ssr/_0idb-vo._.js +151 -0
  496. package/.next/server/chunks/ssr/_0idb-vo._.js.map +1 -0
  497. package/.next/server/chunks/ssr/_0qp3gu7._.js +3 -0
  498. package/.next/server/chunks/ssr/_0qp3gu7._.js.map +1 -0
  499. package/.next/server/chunks/ssr/_15qpb4z._.js +3 -0
  500. package/.next/server/chunks/ssr/_15qpb4z._.js.map +1 -0
  501. package/.next/server/chunks/ssr/_1fg0usp._.js +3 -0
  502. package/.next/server/chunks/ssr/_1fg0usp._.js.map +1 -0
  503. package/.next/server/chunks/ssr/_1gxjjvh._.js +1 -1
  504. package/.next/server/chunks/ssr/_1gxjjvh._.js.map +1 -1
  505. package/.next/server/chunks/ssr/_1h0wfpz._.js +3 -0
  506. package/.next/server/chunks/ssr/_1h0wfpz._.js.map +1 -0
  507. package/.next/server/chunks/ssr/_1ncdakv._.js +4 -0
  508. package/.next/server/chunks/ssr/_1ncdakv._.js.map +1 -0
  509. package/.next/server/chunks/ssr/_1ocnpth._.js +3 -0
  510. package/.next/server/chunks/ssr/_1ocnpth._.js.map +1 -0
  511. package/.next/server/chunks/ssr/_1t76zdx._.js +3 -0
  512. package/.next/server/chunks/ssr/_1t76zdx._.js.map +1 -0
  513. package/.next/server/chunks/ssr/_1uno162._.js +3 -0
  514. package/.next/server/chunks/ssr/_1uno162._.js.map +1 -0
  515. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js +3 -0
  516. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js.map +1 -0
  517. package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js → node_modules__pnpm_01bjcv9._.js} +1 -1
  518. package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js → node_modules__pnpm_03qrzdb._.js} +1 -1
  519. package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js → node_modules__pnpm_06d-fdo._.js} +2 -2
  520. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js +3 -0
  521. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js.map +1 -0
  522. package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js +4 -0
  523. package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js.map +1 -0
  524. package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js → node_modules__pnpm_0ctisl0._.js} +1 -1
  525. package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js → node_modules__pnpm_0fwp8jm._.js} +1 -1
  526. package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js → node_modules__pnpm_0kpu0-2._.js} +1 -1
  527. package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js → node_modules__pnpm_0vry74x._.js} +2 -2
  528. package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js → node_modules__pnpm_0ycbjbd._.js} +2 -2
  529. package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js → node_modules__pnpm_1-76qxg._.js} +1 -1
  530. package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js → node_modules__pnpm_1-r94f7._.js} +1 -1
  531. package/.next/server/chunks/ssr/{node_modules__pnpm_1yq90z7._.js → node_modules__pnpm_14piqi4._.js} +1 -1
  532. package/.next/server/chunks/ssr/node_modules__pnpm_14piqi4._.js.map +1 -0
  533. package/.next/server/chunks/ssr/{node_modules__pnpm_0dwi7mu._.js → node_modules__pnpm_16u1vfb._.js} +2 -2
  534. package/.next/server/chunks/ssr/node_modules__pnpm_16u1vfb._.js.map +1 -0
  535. package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js → node_modules__pnpm_17i6z2d._.js} +1 -1
  536. package/.next/server/chunks/ssr/{node_modules__pnpm_09_i2jk._.js → node_modules__pnpm_189m48n._.js} +1 -1
  537. package/.next/server/chunks/ssr/node_modules__pnpm_189m48n._.js.map +1 -0
  538. package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js → node_modules__pnpm_192f222._.js} +1 -1
  539. package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js → node_modules__pnpm_1a48_nl._.js} +1 -1
  540. package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js → node_modules__pnpm_1aa37e1._.js} +1 -1
  541. package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js → node_modules__pnpm_1f440kx._.js} +1 -1
  542. package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js → node_modules__pnpm_1fn3ejy._.js} +1 -1
  543. package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js → node_modules__pnpm_1min2jl._.js} +1 -1
  544. package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js → node_modules__pnpm_1q_hhr3._.js} +2 -2
  545. package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js → node_modules__pnpm_1qmkxyo._.js} +1 -1
  546. package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js → node_modules__pnpm_1qp_jvj._.js} +2 -2
  547. package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js → node_modules__pnpm_1ssjj4u._.js} +1 -1
  548. package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js → node_modules__pnpm_1txccoj._.js} +1 -1
  549. package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js → node_modules__pnpm_1uwkcin._.js} +1 -1
  550. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js +3 -0
  551. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js.map +1 -0
  552. package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js → node_modules__pnpm_1ygal0c._.js} +1 -1
  553. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js +1 -1
  554. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js.map +1 -1
  555. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +3 -0
  556. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -0
  557. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +1 -1
  558. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -1
  559. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
  560. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
  561. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js +3 -0
  562. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js.map +1 -0
  563. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +13 -0
  564. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -0
  565. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +2 -2
  566. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -1
  567. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +2 -2
  568. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
  569. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js +1 -1
  570. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js.map +1 -1
  571. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js +3 -0
  572. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js.map +1 -0
  573. package/.next/server/chunks/ssr/src_components_1s861m8._.js +3 -0
  574. package/.next/server/chunks/ssr/src_components_1s861m8._.js.map +1 -0
  575. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +3 -0
  576. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -0
  577. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +2 -2
  578. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -1
  579. package/.next/server/middleware-build-manifest.js +3 -3
  580. package/.next/server/next-font-manifest.js +1 -1
  581. package/.next/server/next-font-manifest.json +4 -0
  582. package/.next/server/pages/404.html +1 -1
  583. package/.next/server/pages/500.html +1 -1
  584. package/.next/server/prefetch-hints.json +19 -0
  585. package/.next/server/server-reference-manifest.js +1 -1
  586. package/.next/server/server-reference-manifest.json +1 -1
  587. package/.next/static/chunks/02cj5_i9np4sg.js +3 -0
  588. package/.next/static/chunks/02i5hsdat1nuq.css +9 -0
  589. package/.next/static/chunks/0b547y6rqct9z.js +1 -0
  590. package/.next/static/chunks/0e3ha56i_0j05.css +1 -0
  591. package/.next/static/chunks/0f32hudp0yir7.js +2 -0
  592. package/.next/static/chunks/0mgifb98wbesa.js +1 -0
  593. package/.next/static/chunks/0rsmz1jgro1kj.js +1 -0
  594. package/.next/static/chunks/0wnq_kh8-6wc1.js +2 -0
  595. package/.next/static/chunks/13l4l-boqg8fx.js +1 -0
  596. package/.next/static/chunks/14hxe1qiaram9.js +1 -0
  597. package/.next/static/chunks/16k196zyl-n9q.js +1 -0
  598. package/.next/static/chunks/18b5l8p0vd9f8.js +1 -0
  599. package/.next/static/chunks/1acpfyut6j4e2.js +1 -0
  600. package/.next/static/chunks/1c_8t2kecjnua.js +1 -0
  601. package/.next/static/chunks/{1xyepk9227yej.js → 1l_dys0-y5-r7.js} +6 -6
  602. package/.next/static/chunks/1rko_88i85yqb.js +21 -0
  603. package/.next/static/chunks/1tu8lforstp1o.js +1 -0
  604. package/.next/static/chunks/20mdcup14_0yi.js +11 -0
  605. package/.next/static/chunks/23-xknrz6o748.js +1 -0
  606. package/.next/static/chunks/24u_rc2tbkhai.js +3 -0
  607. package/.next/static/chunks/2p-pkveutoh75.js +1 -0
  608. package/.next/static/chunks/329sozud9-tvr.js +1 -0
  609. package/.next/static/chunks/3ly7b47esdb7j.js +1 -0
  610. package/.next/static/chunks/3qqvn9vv6i0gy.js +68 -0
  611. package/.next/static/chunks/3ruw8lu2_re-h.js +1 -0
  612. package/.next/static/chunks/3xqcluqa32mjv.js +2 -0
  613. package/README.md +13 -5
  614. package/package.json +1 -1
  615. package/skills/work-epic/SKILL.md +22 -3
  616. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +0 -3
  617. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +0 -3
  618. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +0 -3
  619. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +0 -3
  620. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +0 -3
  621. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +0 -3
  622. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +0 -3
  623. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +0 -3
  624. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +0 -3
  625. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +0 -3
  626. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +0 -3
  627. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +0 -3
  628. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +0 -3
  629. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +0 -3
  630. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +0 -3
  631. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +0 -3
  632. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +0 -3
  633. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +0 -3
  634. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +0 -3
  635. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +0 -3
  636. package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +0 -3
  637. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +0 -3
  638. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +0 -3
  639. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +0 -3
  640. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +0 -3
  641. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +0 -3
  642. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +0 -3
  643. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +0 -3
  644. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +0 -3
  645. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +0 -3
  646. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +0 -3
  647. package/.next/server/chunks/[root-of-the-server]__05l6129._.js +0 -3
  648. package/.next/server/chunks/[root-of-the-server]__06zf_sh._.js +0 -3
  649. package/.next/server/chunks/[root-of-the-server]__093hlkh._.js +0 -3
  650. package/.next/server/chunks/[root-of-the-server]__0aynzrb._.js +0 -3
  651. package/.next/server/chunks/[root-of-the-server]__0e59y5j._.js +0 -3
  652. package/.next/server/chunks/[root-of-the-server]__0eqd-tw._.js +0 -3
  653. package/.next/server/chunks/[root-of-the-server]__0nfvvy9._.js +0 -3
  654. package/.next/server/chunks/[root-of-the-server]__106gpvh._.js +0 -3
  655. package/.next/server/chunks/[root-of-the-server]__11s76m8._.js +0 -3
  656. package/.next/server/chunks/[root-of-the-server]__142icjb._.js +0 -3
  657. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js +0 -3
  658. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +0 -88
  659. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +0 -1
  660. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js +0 -10
  661. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js.map +0 -1
  662. package/.next/server/chunks/[root-of-the-server]__17p0rkn._.js +0 -3
  663. package/.next/server/chunks/[root-of-the-server]__17xb02p._.js +0 -3
  664. package/.next/server/chunks/[root-of-the-server]__18kxo4a._.js +0 -3
  665. package/.next/server/chunks/[root-of-the-server]__1j0rrps._.js +0 -3
  666. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +0 -3
  667. package/.next/server/chunks/[root-of-the-server]__1lj_2cv._.js +0 -3
  668. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +0 -3
  669. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js.map +0 -1
  670. package/.next/server/chunks/[root-of-the-server]__1q4ahvz._.js +0 -3
  671. package/.next/server/chunks/[root-of-the-server]__1u_q61h._.js +0 -3
  672. package/.next/server/chunks/[root-of-the-server]__1wr0m-s._.js +0 -3
  673. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +0 -3
  674. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js.map +0 -1
  675. package/.next/server/chunks/[root-of-the-server]__1y-tt29._.js +0 -3
  676. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +0 -3
  677. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +0 -1
  678. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +0 -3
  679. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +0 -1
  680. package/.next/server/chunks/ssr/[root-of-the-server]__0noc5ay._.js +0 -14
  681. package/.next/server/chunks/ssr/[root-of-the-server]__1pk-w2i._.js +0 -3
  682. package/.next/server/chunks/ssr/_059qmur._.js +0 -3
  683. package/.next/server/chunks/ssr/_059qmur._.js.map +0 -1
  684. package/.next/server/chunks/ssr/_081irea._.js +0 -3
  685. package/.next/server/chunks/ssr/_081irea._.js.map +0 -1
  686. package/.next/server/chunks/ssr/_0d8t8l4._.js +0 -3
  687. package/.next/server/chunks/ssr/_0d8t8l4._.js.map +0 -1
  688. package/.next/server/chunks/ssr/_0dyvcdg._.js +0 -3
  689. package/.next/server/chunks/ssr/_0dyvcdg._.js.map +0 -1
  690. package/.next/server/chunks/ssr/_1-ghqy4._.js +0 -3
  691. package/.next/server/chunks/ssr/_1-ghqy4._.js.map +0 -1
  692. package/.next/server/chunks/ssr/_17jy5db._.js +0 -3
  693. package/.next/server/chunks/ssr/_17jy5db._.js.map +0 -1
  694. package/.next/server/chunks/ssr/_1c95ems._.js +0 -151
  695. package/.next/server/chunks/ssr/_1c95ems._.js.map +0 -1
  696. package/.next/server/chunks/ssr/_1dllfz5._.js +0 -4
  697. package/.next/server/chunks/ssr/_1dllfz5._.js.map +0 -1
  698. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +0 -3
  699. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +0 -1
  700. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js +0 -3
  701. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js.map +0 -1
  702. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +0 -3
  703. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +0 -1
  704. package/.next/server/chunks/ssr/src_1lkod9y._.js +0 -8
  705. package/.next/server/chunks/ssr/src_1lkod9y._.js.map +0 -1
  706. package/.next/server/chunks/ssr/src_components_14pwej-._.js +0 -3
  707. package/.next/server/chunks/ssr/src_components_14pwej-._.js.map +0 -1
  708. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js +0 -3
  709. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js.map +0 -1
  710. package/.next/static/chunks/0-z7kyblalrea.js +0 -1
  711. package/.next/static/chunks/050mq8l4e1ubn.js +0 -1
  712. package/.next/static/chunks/098le48845_fg.js +0 -3
  713. package/.next/static/chunks/0cw4-ebkoufdc.js +0 -1
  714. package/.next/static/chunks/0feo-go1w5nct.js +0 -1
  715. package/.next/static/chunks/0k2qhx29amdgs.js +0 -1
  716. package/.next/static/chunks/14sefb904pl64.js +0 -21
  717. package/.next/static/chunks/1fer-wulyrjrs.js +0 -3
  718. package/.next/static/chunks/1o7b1x4umy8a6.js +0 -1
  719. package/.next/static/chunks/1q_io1j58aukw.js +0 -1
  720. package/.next/static/chunks/1r7z33e9jk3vp.js +0 -1
  721. package/.next/static/chunks/1t-cgh4477hfo.js +0 -1
  722. package/.next/static/chunks/1u-1po1qesc9f.js +0 -1
  723. package/.next/static/chunks/1u5kegkgm0xoz.js +0 -1
  724. package/.next/static/chunks/24ygzsgd-moqy.js +0 -1
  725. package/.next/static/chunks/26folxgplfa9t.js +0 -68
  726. package/.next/static/chunks/2ocixvjhv34_3.js +0 -1
  727. package/.next/static/chunks/3_lsdgxa-h7ma.css +0 -10
  728. package/.next/static/chunks/3h4ehgq7i44wb.js +0 -6
  729. package/.next/static/chunks/3rmv-sb9w9i3e.js +0 -1
  730. package/.next/static/chunks/3smp1lj103j-l.js +0 -1
  731. package/.next/static/chunks/3ttzomivj48jh.js +0 -2
  732. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js.map → 11mp_@anthropic-ai_sdk_0-_cqh8._.js.map} +0 -0
  733. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js.map → 11mp_@anthropic-ai_sdk_00o5o78._.js.map} +0 -0
  734. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js.map → 11mp_@anthropic-ai_sdk_03cp17a._.js.map} +0 -0
  735. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js.map → 11mp_@anthropic-ai_sdk_07dk2er._.js.map} +0 -0
  736. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0am8bw2._.js.map → 11mp_@anthropic-ai_sdk_0_e9zpr._.js.map} +0 -0
  737. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0enefn6._.js.map → 11mp_@anthropic-ai_sdk_0_xx_qf._.js.map} +0 -0
  738. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k3n_5f._.js.map → 11mp_@anthropic-ai_sdk_0aer9lc._.js.map} +0 -0
  739. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lcfjm4._.js.map → 11mp_@anthropic-ai_sdk_0ax30pe._.js.map} +0 -0
  740. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lfx9av._.js.map → 11mp_@anthropic-ai_sdk_0gn7vgs._.js.map} +0 -0
  741. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qau3qw._.js.map → 11mp_@anthropic-ai_sdk_0hye94a._.js.map} +0 -0
  742. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r1pmvm._.js.map → 11mp_@anthropic-ai_sdk_0ir5cgk._.js.map} +0 -0
  743. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11t-z2t._.js.map → 11mp_@anthropic-ai_sdk_0je0_pa._.js.map} +0 -0
  744. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15hyn79._.js.map → 11mp_@anthropic-ai_sdk_0jfgh0o._.js.map} +0 -0
  745. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_qk07x._.js.map → 11mp_@anthropic-ai_sdk_0mha4x1._.js.map} +0 -0
  746. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b2929e._.js.map → 11mp_@anthropic-ai_sdk_0n__boa._.js.map} +0 -0
  747. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1e72c89._.js.map → 11mp_@anthropic-ai_sdk_0sqv26_._.js.map} +0 -0
  748. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1eq7asn._.js.map → 11mp_@anthropic-ai_sdk_0wnc6g-._.js.map} +0 -0
  749. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fhdojs._.js.map → 11mp_@anthropic-ai_sdk_0xh0g59._.js.map} +0 -0
  750. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1htgzmb._.js.map → 11mp_@anthropic-ai_sdk_1-5wyhj._.js.map} +0 -0
  751. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lh_vwq._.js.map → 11mp_@anthropic-ai_sdk_13ahm3n._.js.map} +0 -0
  752. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ludf-o._.js.map → 11mp_@anthropic-ai_sdk_13e6aq4._.js.map} +0 -0
  753. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1m3luz3._.js.map → 11mp_@anthropic-ai_sdk_14eg0ld._.js.map} +0 -0
  754. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1x1iz3d._.js.map → 11mp_@anthropic-ai_sdk_15md1n2._.js.map} +0 -0
  755. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xsmwlh._.js.map → 11mp_@anthropic-ai_sdk_16av8b9._.js.map} +0 -0
  756. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_202spah._.js.map → 11mp_@anthropic-ai_sdk_16hjhv1._.js.map} +0 -0
  757. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_215hw9u._.js.map → 11mp_@anthropic-ai_sdk_16txvf7._.js.map} +0 -0
  758. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js.map} +0 -0
  759. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js.map} +0 -0
  760. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js.map} +0 -0
  761. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js.map} +0 -0
  762. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js.map} +0 -0
  763. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js.map} +0 -0
  764. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js.map} +0 -0
  765. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js.map} +0 -0
  766. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js.map} +0 -0
  767. /package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js.map} +0 -0
  768. /package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js.map} +0 -0
  769. /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js.map} +0 -0
  770. /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_1z0p1bs._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js.map} +0 -0
  771. /package/.next/server/chunks/{ssr/node_modules__pnpm_09_i2jk._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js.map} +0 -0
  772. /package/.next/server/chunks/{ssr/node_modules__pnpm_0dwi7mu._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js.map} +0 -0
  773. /package/.next/server/chunks/{ssr/node_modules__pnpm_1yq90z7._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js.map} +0 -0
  774. /package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js.map → node_modules__pnpm_01bjcv9._.js.map} +0 -0
  775. /package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js.map → node_modules__pnpm_03qrzdb._.js.map} +0 -0
  776. /package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js.map → node_modules__pnpm_06d-fdo._.js.map} +0 -0
  777. /package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js.map → node_modules__pnpm_0ctisl0._.js.map} +0 -0
  778. /package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js.map → node_modules__pnpm_0fwp8jm._.js.map} +0 -0
  779. /package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js.map → node_modules__pnpm_0kpu0-2._.js.map} +0 -0
  780. /package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js.map → node_modules__pnpm_0vry74x._.js.map} +0 -0
  781. /package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js.map → node_modules__pnpm_0ycbjbd._.js.map} +0 -0
  782. /package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js.map → node_modules__pnpm_1-76qxg._.js.map} +0 -0
  783. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js.map → node_modules__pnpm_1-r94f7._.js.map} +0 -0
  784. /package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js.map → node_modules__pnpm_17i6z2d._.js.map} +0 -0
  785. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js.map → node_modules__pnpm_192f222._.js.map} +0 -0
  786. /package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js.map → node_modules__pnpm_1a48_nl._.js.map} +0 -0
  787. /package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js.map → node_modules__pnpm_1aa37e1._.js.map} +0 -0
  788. /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js.map → node_modules__pnpm_1f440kx._.js.map} +0 -0
  789. /package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js.map → node_modules__pnpm_1fn3ejy._.js.map} +0 -0
  790. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js.map → node_modules__pnpm_1min2jl._.js.map} +0 -0
  791. /package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js.map → node_modules__pnpm_1q_hhr3._.js.map} +0 -0
  792. /package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js.map → node_modules__pnpm_1qmkxyo._.js.map} +0 -0
  793. /package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js.map → node_modules__pnpm_1qp_jvj._.js.map} +0 -0
  794. /package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js.map → node_modules__pnpm_1ssjj4u._.js.map} +0 -0
  795. /package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js.map → node_modules__pnpm_1txccoj._.js.map} +0 -0
  796. /package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js.map → node_modules__pnpm_1uwkcin._.js.map} +0 -0
  797. /package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js.map → node_modules__pnpm_1ygal0c._.js.map} +0 -0
  798. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → Q29Tn_NjyVms0d3pKn4Yx}/_buildManifest.js +0 -0
  799. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → Q29Tn_NjyVms0d3pKn4Yx}/_clientMiddlewareManifest.js +0 -0
  800. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → Q29Tn_NjyVms0d3pKn4Yx}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/settings/ThemeSettings.tsx","../../../../src/components/settings/EditorSettings.tsx","../../../../src/components/settings/ProjectSettings.tsx","../../../../src/components/settings/MCPSettings.tsx","../../../../src/components/settings/SkillsSettings.tsx","../../../../src/components/settings/AgentsSettings.tsx","../../../../src/app/%28app%29/settings/page.tsx","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/folder-cog.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/palette.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/plug.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/moon.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/type.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/sun.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/monitor.ts"],"sourcesContent":["\"use client\"\r\n\r\nimport { Moon, Sun, Monitor, Check } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { SANS_FONTS, MONO_FONTS, type AppSettings } from \"@/lib/settings\"\r\n\r\ninterface ThemeSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst ACCENT_COLORS = [\r\n { id: \"blue\", label: \"Blue\", class: \"bg-blue-500\" },\r\n { id: \"purple\", label: \"Purple\", class: \"bg-purple-500\" },\r\n { id: \"green\", label: \"Green\", class: \"bg-green-500\" },\r\n { id: \"orange\", label: \"Orange\", class: \"bg-orange-500\" },\r\n] as const\r\n\r\nconst FONT_SIZES = [\r\n { id: \"small\", label: \"Small\" },\r\n { id: \"medium\", label: \"Medium\" },\r\n { id: \"large\", label: \"Large\" },\r\n] as const\r\n\r\nexport function ThemeSettings({ settings, onSave }: ThemeSettingsProps) {\r\n return (\r\n <div className=\"space-y-8\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Appearance</h2>\r\n <p className=\"text-sm text-muted\">Customize the look and feel of the app.</p>\r\n </div>\r\n\r\n {/* Theme */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Theme</label>\r\n <div className=\"grid grid-cols-3 gap-3\">\r\n {[\r\n { id: \"dark\", label: \"Dark\", icon: Moon },\r\n { id: \"light\", label: \"Light\", icon: Sun },\r\n { id: \"system\", label: \"System\", icon: Monitor },\r\n ].map(theme => {\r\n const Icon = theme.icon\r\n const isActive = settings.theme === theme.id\r\n return (\r\n <button\r\n key={theme.id}\r\n onClick={() => onSave({ ...settings, theme: theme.id as AppSettings[\"theme\"] })}\r\n className={cn(\r\n \"flex flex-col items-center gap-2 p-4 rounded-lg border transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10\"\r\n : \"border-border hover:border-accent/50\"\r\n )}\r\n >\r\n <Icon className={cn(\"w-5 h-5\", isActive ? \"text-accent\" : \"text-muted\")} />\r\n <span className={cn(\"text-sm\", isActive ? \"text-accent font-medium\" : \"text-muted\")}>\r\n {theme.label}\r\n </span>\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Accent Color */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Accent Color</label>\r\n <div className=\"flex gap-3\">\r\n {ACCENT_COLORS.map(color => {\r\n const isActive = settings.accentColor === color.id\r\n return (\r\n <button\r\n key={color.id}\r\n onClick={() => onSave({ ...settings, accentColor: color.id as AppSettings[\"accentColor\"] })}\r\n className={cn(\r\n \"w-10 h-10 rounded-full flex items-center justify-center transition-transform\",\r\n color.class,\r\n isActive ? \"ring-2 ring-offset-2 ring-offset-bg ring-white scale-110\" : \"hover:scale-105\"\r\n )}\r\n title={color.label}\r\n >\r\n {isActive && <Check className=\"w-5 h-5 text-white\" />}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Font Size */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Font Size</label>\r\n <div className=\"flex gap-2\">\r\n {FONT_SIZES.map(size => {\r\n const isActive = settings.fontSize === size.id\r\n return (\r\n <button\r\n key={size.id}\r\n onClick={() => onSave({ ...settings, fontSize: size.id as AppSettings[\"fontSize\"] })}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {size.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Font family — each option previews in its own font */}\r\n {([\r\n { key: \"fontSans\", label: \"Interface Font\", fonts: SANS_FONTS, fallback: \"system-ui\", sample: \"Ship the roadmap by Friday\" },\r\n { key: \"fontMono\", label: \"Code Font\", fonts: MONO_FONTS, fallback: \"ui-monospace, Menlo, Consolas, monospace\", sample: \"const id = 0O1lI;\" },\r\n ] as const).map(group => (\r\n <div key={group.key} className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">{group.label}</label>\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-2\">\r\n {group.fonts.map(font => {\r\n const isActive = settings[group.key] === font.id\r\n return (\r\n <button\r\n key={font.id}\r\n onClick={() => onSave({ ...settings, [group.key]: font.id })}\r\n className={cn(\r\n \"text-left p-3 rounded-lg border transition-colors\",\r\n isActive ? \"border-accent bg-accent/10\" : \"border-border hover:border-accent/50\"\r\n )}\r\n >\r\n <div\r\n className=\"text-base text-txt truncate\"\r\n style={{ fontFamily: font.id === \"system\" ? group.fallback : `var(--font-${font.id})` }}\r\n >\r\n {group.sample}\r\n </div>\r\n <div className={cn(\"mt-1 text-xs\", isActive ? \"text-accent font-medium\" : \"text-txt\")}>{font.label}</div>\r\n <div className=\"text-xs text-muted\">{font.note}</div>\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport type { AppSettings } from \"@/lib/settings\"\r\n\r\ninterface EditorSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst AUTO_SAVE_OPTIONS = [\r\n { value: 0, label: \"Off\" },\r\n { value: 5, label: \"5 seconds\" },\r\n { value: 10, label: \"10 seconds\" },\r\n { value: 30, label: \"30 seconds\" },\r\n]\r\n\r\nconst PREVIEW_MODES = [\r\n { id: \"split\", label: \"Split View\" },\r\n { id: \"tab\", label: \"Tab View\" },\r\n { id: \"preview\", label: \"Preview Only\" },\r\n] as const\r\n\r\nexport function EditorSettings({ settings, onSave }: EditorSettingsProps) {\r\n const updateEditor = (key: keyof AppSettings[\"editor\"], value: unknown) => {\r\n onSave({\r\n ...settings,\r\n editor: { ...settings.editor, [key]: value },\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Editor</h2>\r\n <p className=\"text-sm text-muted\">Configure the markdown editor behavior.</p>\r\n </div>\r\n\r\n {/* Auto-save */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Auto-save</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {AUTO_SAVE_OPTIONS.map(option => {\r\n const isActive = settings.editor.autoSave === option.value\r\n return (\r\n <button\r\n key={option.value}\r\n onClick={() => updateEditor(\"autoSave\", option.value)}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {option.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Preview Mode */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Preview Mode</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {PREVIEW_MODES.map(mode => {\r\n const isActive = settings.editor.previewMode === mode.id\r\n return (\r\n <button\r\n key={mode.id}\r\n onClick={() => updateEditor(\"previewMode\", mode.id)}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {mode.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Toggles */}\r\n <div className=\"space-y-4\">\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">Word Wrap</div>\r\n <div className=\"text-xs text-muted\">Wrap long lines in the editor</div>\r\n </div>\r\n <button\r\n onClick={() => updateEditor(\"wordWrap\", !settings.editor.wordWrap)}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n settings.editor.wordWrap ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n settings.editor.wordWrap ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n </div>\r\n\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">Line Numbers</div>\r\n <div className=\"text-xs text-muted\">Show line numbers in the editor</div>\r\n </div>\r\n <button\r\n onClick={() => updateEditor(\"lineNumbers\", !settings.editor.lineNumbers)}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n settings.editor.lineNumbers ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n settings.editor.lineNumbers ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport type { AppSettings } from \"@/lib/settings\"\r\n\r\ninterface ProjectSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst REFRESH_OPTIONS = [\r\n { value: 0, label: \"Off\" },\r\n { value: 5, label: \"5 seconds\" },\r\n { value: 10, label: \"10 seconds\" },\r\n { value: 30, label: \"30 seconds\" },\r\n]\r\n\r\nexport function ProjectSettings({ settings, onSave }: ProjectSettingsProps) {\r\n const updateProject = (key: keyof AppSettings[\"project\"], value: unknown) => {\r\n onSave({\r\n ...settings,\r\n project: { ...settings.project, [key]: value },\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Project</h2>\r\n <p className=\"text-sm text-muted\">Configure project-level settings.</p>\r\n </div>\r\n\r\n {/* Auto-refresh */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Auto-refresh Interval</label>\r\n <p className=\"text-xs text-muted\">How often to check for changes in the project files.</p>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {REFRESH_OPTIONS.map(option => {\r\n const isActive = settings.project.autoRefresh === option.value\r\n return (\r\n <button\r\n key={option.value}\r\n onClick={() => updateProject(\"autoRefresh\", option.value)}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {option.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Show Hidden Files */}\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">Show Hidden Files</div>\r\n <div className=\"text-xs text-muted\">Display files starting with a dot</div>\r\n </div>\r\n <button\r\n onClick={() => updateProject(\"showHidden\", !settings.project.showHidden)}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n settings.project.showHidden ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n settings.project.showHidden ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { Plug, Check, X, Copy, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Input } from \"@/components/ui/input\"\nimport { resolveMcpEndpoint, type AppSettings } from \"@/lib/settings\"\nimport { useOrigin } from \"@/hooks/use-origin\"\n\ninterface MCPSettingsProps {\n settings: AppSettings\n onSave: (settings: AppSettings) => void\n}\n\nconst AGENT_CONFIGS = {\n \"claude-code\": {\n name: \"Claude Code\",\n config: `{\n \"mcpServers\": {\n \"vibedoc\": {\n \"url\": \"{{ENDPOINT}}\"\n }\n }\n}`,\n path: \"~/.claude/claude.json\",\n },\n cursor: {\n name: \"Cursor\",\n config: `{\n \"mcp\": {\n \"servers\": {\n \"vibedoc\": {\n \"url\": \"{{ENDPOINT}}\"\n }\n }\n }\n}`,\n path: \".cursor/mcp.json\",\n },\n windsurf: {\n name: \"Windsurf\",\n config: `{\n \"mcpServers\": {\n \"vibedoc\": {\n \"url\": \"{{ENDPOINT}}\"\n }\n }\n}`,\n path: \".windsurf/mcp.json\",\n },\n}\n\nexport function MCPSettings({ settings, onSave }: MCPSettingsProps) {\n const [testing, setTesting] = useState(false)\n const [testResult, setTestResult] = useState<\"success\" | \"error\" | null>(null)\n const [copied, setCopied] = useState<string | null>(null)\n const endpoint = resolveMcpEndpoint(settings.mcp.endpoint, useOrigin())\n\n const updateMcp = (key: keyof AppSettings[\"mcp\"], value: string) => {\n onSave({\n ...settings,\n mcp: { ...settings.mcp, [key]: value },\n })\n }\n\n const testConnection = async () => {\n setTesting(true)\n setTestResult(null)\n try {\n const res = await fetch(endpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: 1,\n method: \"tools/list\",\n }),\n })\n if (res.ok) {\n setTestResult(\"success\")\n } else {\n setTestResult(\"error\")\n }\n } catch {\n setTestResult(\"error\")\n }\n setTesting(false)\n }\n\n const copyConfig = async (agentId: string) => {\n const agent = AGENT_CONFIGS[agentId as keyof typeof AGENT_CONFIGS]\n const config = agent.config.replace(\"{{ENDPOINT}}\", endpoint)\n await navigator.clipboard.writeText(config)\n setCopied(agentId)\n setTimeout(() => setCopied(null), 2000)\n }\n\n return (\n <div className=\"space-y-8\">\n <div>\n <h2 className=\"text-xl font-semibold text-txt mb-1\">MCP Connection</h2>\n <p className=\"text-sm text-muted\">Configure the Model Context Protocol server for AI agents.</p>\n </div>\n\n {/* Endpoint */}\n <div className=\"space-y-3\">\n <label className=\"block text-sm font-medium text-txt\">MCP Endpoint</label>\n <div className=\"flex gap-2\">\n <Input\n value={endpoint}\n onChange={(e) => updateMcp(\"endpoint\", e.target.value)}\n className=\"bg-surface2 font-mono text-sm\"\n />\n <button\n onClick={testConnection}\n disabled={testing}\n className=\"px-4 py-2 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50 flex items-center gap-2\"\n >\n {testing ? (\n <Loader2 className=\"w-4 h-4 animate-spin\" />\n ) : (\n <Plug className=\"w-4 h-4\" />\n )}\n Test\n </button>\n </div>\n {testResult && (\n <div className={cn(\n \"flex items-center gap-2 text-sm\",\n testResult === \"success\" ? \"text-green-400\" : \"text-red-400\"\n )}>\n {testResult === \"success\" ? (\n <>\n <Check className=\"w-4 h-4\" />\n Connection successful\n </>\n ) : (\n <>\n <X className=\"w-4 h-4\" />\n Connection failed\n </>\n )}\n </div>\n )}\n </div>\n\n {/* Agent Configs */}\n <div className=\"space-y-3\">\n <label className=\"block text-sm font-medium text-txt\">Agent Configuration</label>\n <p className=\"text-xs text-muted\">Copy the configuration for your coding agent:</p>\n <div className=\"space-y-2\">\n {Object.entries(AGENT_CONFIGS).map(([id, agent]) => (\n <div\n key={id}\n className=\"flex items-center justify-between p-3 border border-border rounded-lg\"\n >\n <div>\n <div className=\"text-sm font-medium text-txt\">{agent.name}</div>\n <div className=\"text-xs text-muted font-mono\">{agent.path}</div>\n </div>\n <button\n onClick={() => copyConfig(id)}\n className={cn(\n \"flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm transition-colors\",\n copied === id\n ? \"bg-green-500/20 text-green-400\"\n : \"bg-surface2 text-muted hover:text-txt\"\n )}\n >\n {copied === id ? (\n <>\n <Check className=\"w-3.5 h-3.5\" />\n Copied\n </>\n ) : (\n <>\n <Copy className=\"w-3.5 h-3.5\" />\n Copy\n </>\n )}\n </button>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Plus, Pencil, Trash2, X, Check, Zap } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport type { Skill } from \"@/lib/settings\"\r\n\r\ninterface SkillsSettingsProps {\r\n skills: Skill[]\r\n onSave: (skills: Skill[]) => void\r\n}\r\n\r\nconst AVAILABLE_TOOLS = [\r\n \"vibedoc_read_doc\",\r\n \"vibedoc_write_doc\",\r\n \"vibedoc_search_docs\",\r\n \"vibedoc_list_docs\",\r\n \"vibedoc_get_status\",\r\n \"vibedoc_list_tasks\",\r\n \"vibedoc_update_task\",\r\n \"vibedoc_read_memory\",\r\n \"vibedoc_update_memory\",\r\n]\r\n\r\nconst SKILL_ICONS = [\"🔧\", \"📝\", \"🧪\", \"🔍\", \"📊\", \"🔒\", \"⚡\", \"🎯\", \"💡\", \"🚀\"]\r\n\r\nexport function SkillsSettings({ skills, onSave }: SkillsSettingsProps) {\r\n const [editing, setEditing] = useState<string | null>(null)\r\n const [editForm, setEditForm] = useState<Skill | null>(null)\r\n const [isNew, setIsNew] = useState(false)\r\n\r\n const startEdit = (skill: Skill) => {\r\n setEditing(skill.id)\r\n setEditForm({ ...skill })\r\n setIsNew(false)\r\n }\r\n\r\n const startNew = () => {\r\n const newSkill: Skill = {\r\n id: `skill-${Date.now()}`,\r\n name: \"\",\r\n description: \"\",\r\n trigger: \"/\",\r\n prompt: \"\",\r\n tools: [],\r\n icon: \"⚡\",\r\n }\r\n setEditing(newSkill.id)\r\n setEditForm(newSkill)\r\n setIsNew(true)\r\n }\r\n\r\n const cancelEdit = () => {\r\n setEditing(null)\r\n setEditForm(null)\r\n setIsNew(false)\r\n }\r\n\r\n const saveEdit = () => {\r\n if (!editForm || !editForm.name.trim()) return\r\n \r\n if (isNew) {\r\n onSave([...skills, editForm])\r\n } else {\r\n onSave(skills.map(s => s.id === editForm.id ? editForm : s))\r\n }\r\n cancelEdit()\r\n }\r\n\r\n const deleteSkill = (id: string) => {\r\n if (!confirm(\"Delete this skill?\")) return\r\n onSave(skills.filter(s => s.id !== id))\r\n }\r\n\r\n const toggleTool = (tool: string) => {\r\n if (!editForm) return\r\n const tools = editForm.tools.includes(tool)\r\n ? editForm.tools.filter(t => t !== tool)\r\n : [...editForm.tools, tool]\r\n setEditForm({ ...editForm, tools })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Skills</h2>\r\n <p className=\"text-sm text-muted\">Reusable capabilities for AI agents.</p>\r\n </div>\r\n <button\r\n onClick={startNew}\r\n className=\"flex items-center gap-2 px-3 py-2 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\r\n >\r\n <Plus className=\"w-4 h-4\" />\r\n Add Skill\r\n </button>\r\n </div>\r\n\r\n <div className=\"space-y-3\">\r\n {skills.map(skill => (\r\n <div key={skill.id}>\r\n {editing === skill.id && editForm ? (\r\n <div className=\"border border-accent rounded-lg p-4 space-y-4 bg-accent/5\">\r\n <div className=\"flex items-center gap-3\">\r\n <select\r\n value={editForm.icon || \"⚡\"}\r\n onChange={(e) => setEditForm({ ...editForm, icon: e.target.value })}\r\n className=\"w-12 h-10 text-center text-xl bg-surface2 border border-border rounded-lg\"\r\n >\r\n {SKILL_ICONS.map(icon => (\r\n <option key={icon} value={icon}>{icon}</option>\r\n ))}\r\n </select>\r\n <Input\r\n value={editForm.name}\r\n onChange={(e) => setEditForm({ ...editForm, name: e.target.value })}\r\n placeholder=\"Skill name\"\r\n className=\"bg-surface2\"\r\n />\r\n </div>\r\n \r\n <Input\r\n value={editForm.description}\r\n onChange={(e) => setEditForm({ ...editForm, description: e.target.value })}\r\n placeholder=\"Description\"\r\n className=\"bg-surface2\"\r\n />\r\n\r\n <div className=\"flex gap-3\">\r\n <div className=\"flex-1\">\r\n <label className=\"text-xs text-muted mb-1 block\">Trigger</label>\r\n <Input\r\n value={editForm.trigger}\r\n onChange={(e) => setEditForm({ ...editForm, trigger: e.target.value })}\r\n placeholder=\"/command\"\r\n className=\"bg-surface2 font-mono\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-1 block\">System Prompt</label>\r\n <textarea\r\n value={editForm.prompt}\r\n onChange={(e) => setEditForm({ ...editForm, prompt: e.target.value })}\r\n placeholder=\"Instructions for the AI when this skill is activated...\"\r\n rows={4}\r\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm resize-none\"\r\n />\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-2 block\">Available Tools</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {AVAILABLE_TOOLS.map(tool => (\r\n <button\r\n key={tool}\r\n onClick={() => toggleTool(tool)}\r\n className={cn(\r\n \"px-2 py-1 rounded-sm text-xs font-mono transition-colors\",\r\n editForm.tools.includes(tool)\r\n ? \"bg-accent/20 text-accent\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n {tool.replace(\"vibedoc_\", \"\")}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex justify-end gap-2\">\r\n <button\r\n onClick={cancelEdit}\r\n className=\"px-3 py-1.5 text-sm text-muted hover:text-txt transition-colors\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n onClick={saveEdit}\r\n disabled={!editForm.name.trim()}\r\n className=\"flex items-center gap-2 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50\"\r\n >\r\n <Check className=\"w-4 h-4\" />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"flex items-start gap-3 p-4 border border-border rounded-lg hover:border-accent/30 transition-colors group\">\r\n <div className=\"w-10 h-10 rounded-lg bg-surface2 flex items-center justify-center text-xl shrink-0\">\r\n {skill.icon || \"⚡\"}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"font-medium text-txt\">{skill.name}</span>\r\n <code className=\"text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-accent\">\r\n {skill.trigger}\r\n </code>\r\n </div>\r\n <p className=\"text-sm text-muted mt-0.5\">{skill.description}</p>\r\n {skill.tools.length > 0 && (\r\n <div className=\"flex flex-wrap gap-1 mt-2\">\r\n {skill.tools.map(tool => (\r\n <span key={tool} className=\"text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-muted\">\r\n {tool.replace(\"vibedoc_\", \"\")}\r\n </span>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <button\r\n onClick={() => startEdit(skill)}\r\n className=\"p-1.5 rounded-sm hover:bg-surface2 text-muted hover:text-txt transition-colors\"\r\n >\r\n <Pencil className=\"w-4 h-4\" />\r\n </button>\r\n <button\r\n onClick={() => deleteSkill(skill.id)}\r\n className=\"p-1.5 rounded-sm hover:bg-red-500/10 text-muted hover:text-red-400 transition-colors\"\r\n >\r\n <Trash2 className=\"w-4 h-4\" />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n\r\n {isNew && editForm && (\r\n <div className=\"border border-accent rounded-lg p-4 space-y-4 bg-accent/5\">\r\n {/* Same form as editing */}\r\n <div className=\"flex items-center gap-3\">\r\n <select\r\n value={editForm.icon || \"⚡\"}\r\n onChange={(e) => setEditForm({ ...editForm, icon: e.target.value })}\r\n className=\"w-12 h-10 text-center text-xl bg-surface2 border border-border rounded-lg\"\r\n >\r\n {SKILL_ICONS.map(icon => (\r\n <option key={icon} value={icon}>{icon}</option>\r\n ))}\r\n </select>\r\n <Input\r\n value={editForm.name}\r\n onChange={(e) => setEditForm({ ...editForm, name: e.target.value })}\r\n placeholder=\"Skill name\"\r\n className=\"bg-surface2\"\r\n />\r\n </div>\r\n \r\n <Input\r\n value={editForm.description}\r\n onChange={(e) => setEditForm({ ...editForm, description: e.target.value })}\r\n placeholder=\"Description\"\r\n className=\"bg-surface2\"\r\n />\r\n\r\n <div className=\"flex gap-3\">\r\n <div className=\"flex-1\">\r\n <label className=\"text-xs text-muted mb-1 block\">Trigger</label>\r\n <Input\r\n value={editForm.trigger}\r\n onChange={(e) => setEditForm({ ...editForm, trigger: e.target.value })}\r\n placeholder=\"/command\"\r\n className=\"bg-surface2 font-mono\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-1 block\">System Prompt</label>\r\n <textarea\r\n value={editForm.prompt}\r\n onChange={(e) => setEditForm({ ...editForm, prompt: e.target.value })}\r\n placeholder=\"Instructions for the AI when this skill is activated...\"\r\n rows={4}\r\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm resize-none\"\r\n />\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-2 block\">Available Tools</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {AVAILABLE_TOOLS.map(tool => (\r\n <button\r\n key={tool}\r\n onClick={() => toggleTool(tool)}\r\n className={cn(\r\n \"px-2 py-1 rounded-sm text-xs font-mono transition-colors\",\r\n editForm.tools.includes(tool)\r\n ? \"bg-accent/20 text-accent\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n {tool.replace(\"vibedoc_\", \"\")}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex justify-end gap-2\">\r\n <button\r\n onClick={cancelEdit}\r\n className=\"px-3 py-1.5 text-sm text-muted hover:text-txt transition-colors\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n onClick={saveEdit}\r\n disabled={!editForm.name.trim()}\r\n className=\"flex items-center gap-2 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50\"\r\n >\r\n <Check className=\"w-4 h-4\" />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {skills.length === 0 && !isNew && (\r\n <div className=\"text-center py-8 text-muted\">\r\n <Zap className=\"w-10 h-10 mx-auto mb-3 opacity-30\" />\r\n <p className=\"text-sm\">No skills configured</p>\r\n <p className=\"text-xs mt-1\">Add a skill to give your agents capabilities</p>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Plus, Pencil, Trash2, Check, Bot } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport type { Agent, Skill } from \"@/lib/settings\"\r\n\r\ninterface AgentsSettingsProps {\r\n agents: Agent[]\r\n skills: Skill[]\r\n onSave: (agents: Agent[]) => void\r\n}\r\n\r\nconst AGENT_ICONS = [\"🤖\", \"📚\", \"🔒\", \"🧪\", \"📝\", \"🔧\", \"💡\", \"🎯\", \"🚀\", \"⚡\"]\r\n\r\nexport function AgentsSettings({ agents, skills, onSave }: AgentsSettingsProps) {\r\n const [editing, setEditing] = useState<string | null>(null)\r\n const [editForm, setEditForm] = useState<Agent | null>(null)\r\n const [isNew, setIsNew] = useState(false)\r\n\r\n const startEdit = (agent: Agent) => {\r\n setEditing(agent.id)\r\n setEditForm({ ...agent })\r\n setIsNew(false)\r\n }\r\n\r\n const startNew = () => {\r\n const newAgent: Agent = {\r\n id: `agent-${Date.now()}`,\r\n name: \"\",\r\n icon: \"🤖\",\r\n description: \"\",\r\n skills: [],\r\n prompt: \"\",\r\n active: true,\r\n }\r\n setEditing(newAgent.id)\r\n setEditForm(newAgent)\r\n setIsNew(true)\r\n }\r\n\r\n const cancelEdit = () => {\r\n setEditing(null)\r\n setEditForm(null)\r\n setIsNew(false)\r\n }\r\n\r\n const saveEdit = () => {\r\n if (!editForm || !editForm.name.trim()) return\r\n \r\n if (isNew) {\r\n onSave([...agents, editForm])\r\n } else {\r\n onSave(agents.map(a => a.id === editForm.id ? editForm : a))\r\n }\r\n cancelEdit()\r\n }\r\n\r\n const deleteAgent = (id: string) => {\r\n if (!confirm(\"Delete this agent?\")) return\r\n onSave(agents.filter(a => a.id !== id))\r\n }\r\n\r\n const toggleActive = (id: string) => {\r\n onSave(agents.map(a => a.id === id ? { ...a, active: !a.active } : a))\r\n }\r\n\r\n const toggleSkill = (skillId: string) => {\r\n if (!editForm) return\r\n const newSkills = editForm.skills.includes(skillId)\r\n ? editForm.skills.filter(s => s !== skillId)\r\n : [...editForm.skills, skillId]\r\n setEditForm({ ...editForm, skills: newSkills })\r\n }\r\n\r\n const renderForm = (form: Agent) => (\r\n <div className=\"border border-accent rounded-lg p-4 space-y-4 bg-accent/5\">\r\n <div className=\"flex items-center gap-3\">\r\n <select\r\n value={form.icon}\r\n onChange={(e) => setEditForm({ ...form, icon: e.target.value })}\r\n className=\"w-12 h-10 text-center text-xl bg-surface2 border border-border rounded-lg\"\r\n >\r\n {AGENT_ICONS.map(icon => (\r\n <option key={icon} value={icon}>{icon}</option>\r\n ))}\r\n </select>\r\n <Input\r\n value={form.name}\r\n onChange={(e) => setEditForm({ ...form, name: e.target.value })}\r\n placeholder=\"Agent name\"\r\n className=\"bg-surface2\"\r\n />\r\n </div>\r\n \r\n <Input\r\n value={form.description}\r\n onChange={(e) => setEditForm({ ...form, description: e.target.value })}\r\n placeholder=\"Description\"\r\n className=\"bg-surface2\"\r\n />\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-2 block\">Assigned Skills</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {skills.map(skill => (\r\n <button\r\n key={skill.id}\r\n onClick={() => toggleSkill(skill.id)}\r\n className={cn(\r\n \"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-sm transition-colors\",\r\n form.skills.includes(skill.id)\r\n ? \"bg-accent/20 text-accent\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n <span>{skill.icon || \"⚡\"}</span>\r\n {skill.name}\r\n </button>\r\n ))}\r\n {skills.length === 0 && (\r\n <span className=\"text-xs text-muted\">No skills available. Create skills first.</span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-1 block\">Custom System Prompt</label>\r\n <textarea\r\n value={form.prompt}\r\n onChange={(e) => setEditForm({ ...form, prompt: e.target.value })}\r\n placeholder=\"Additional instructions for this agent...\"\r\n rows={3}\r\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm resize-none\"\r\n />\r\n </div>\r\n\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-2\">\r\n <button\r\n onClick={() => setEditForm({ ...form, active: !form.active })}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n form.active ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n form.active ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n <span className=\"text-sm text-muted\">{form.active ? \"Active\" : \"Inactive\"}</span>\r\n </div>\r\n <div className=\"flex gap-2\">\r\n <button\r\n onClick={cancelEdit}\r\n className=\"px-3 py-1.5 text-sm text-muted hover:text-txt transition-colors\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n onClick={saveEdit}\r\n disabled={!form.name.trim()}\r\n className=\"flex items-center gap-2 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50\"\r\n >\r\n <Check className=\"w-4 h-4\" />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Agents</h2>\r\n <p className=\"text-sm text-muted\">AI agent profiles with assigned skills.</p>\r\n </div>\r\n <button\r\n onClick={startNew}\r\n className=\"flex items-center gap-2 px-3 py-2 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\r\n >\r\n <Plus className=\"w-4 h-4\" />\r\n Add Agent\r\n </button>\r\n </div>\r\n\r\n <div className=\"space-y-3\">\r\n {agents.map(agent => (\r\n <div key={agent.id}>\r\n {editing === agent.id && editForm ? (\r\n renderForm(editForm)\r\n ) : (\r\n <div className={cn(\r\n \"flex items-start gap-3 p-4 border rounded-lg transition-colors group\",\r\n agent.active ? \"border-border hover:border-accent/30\" : \"border-border/50 opacity-60\"\r\n )}>\r\n <div className=\"w-10 h-10 rounded-lg bg-surface2 flex items-center justify-center text-xl shrink-0\">\r\n {agent.icon}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"font-medium text-txt\">{agent.name}</span>\r\n {!agent.active && (\r\n <span className=\"text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-muted\">\r\n Inactive\r\n </span>\r\n )}\r\n </div>\r\n <p className=\"text-sm text-muted mt-0.5\">{agent.description}</p>\r\n {agent.skills.length > 0 && (\r\n <div className=\"flex flex-wrap gap-1 mt-2\">\r\n {agent.skills.map(skillId => {\r\n const skill = skills.find(s => s.id === skillId)\r\n return skill ? (\r\n <span key={skillId} className=\"flex items-center gap-1 text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-muted\">\r\n {skill.icon} {skill.name}\r\n </span>\r\n ) : null\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n <button\r\n onClick={() => toggleActive(agent.id)}\r\n className={cn(\r\n \"w-9 h-5 rounded-full transition-colors relative\",\r\n agent.active ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-0.5 w-4 h-4 rounded-full bg-white transition-transform\",\r\n agent.active ? \"left-4\" : \"left-0.5\"\r\n )}\r\n />\r\n </button>\r\n <div className=\"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <button\r\n onClick={() => startEdit(agent)}\r\n className=\"p-1.5 rounded-sm hover:bg-surface2 text-muted hover:text-txt transition-colors\"\r\n >\r\n <Pencil className=\"w-4 h-4\" />\r\n </button>\r\n <button\r\n onClick={() => deleteAgent(agent.id)}\r\n className=\"p-1.5 rounded-sm hover:bg-red-500/10 text-muted hover:text-red-400 transition-colors\"\r\n >\r\n <Trash2 className=\"w-4 h-4\" />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n\r\n {isNew && editForm && renderForm(editForm)}\r\n\r\n {agents.length === 0 && !isNew && (\r\n <div className=\"text-center py-8 text-muted\">\r\n <Bot className=\"w-10 h-10 mx-auto mb-3 opacity-30\" />\r\n <p className=\"text-sm\">No agents configured</p>\r\n <p className=\"text-xs mt-1\">Add an agent to define AI personas with skills</p>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState, useEffect, useCallback } from \"react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { Palette, Type, FolderCog, Plug, Zap, Bot, Settings } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { ThemeSettings } from \"@/components/settings/ThemeSettings\"\nimport { EditorSettings } from \"@/components/settings/EditorSettings\"\nimport { ProjectSettings } from \"@/components/settings/ProjectSettings\"\nimport { MCPSettings } from \"@/components/settings/MCPSettings\"\nimport { SkillsSettings } from \"@/components/settings/SkillsSettings\"\nimport { AgentsSettings } from \"@/components/settings/AgentsSettings\"\nimport type { AppSettings, Skill, Agent } from \"@/lib/settings\"\nimport { DEFAULT_SETTINGS, DEFAULT_SKILLS, DEFAULT_AGENTS } from \"@/lib/settings\"\nimport { applyTheme, applyAccent, applyFontSize, applyFonts } from \"@/lib/applySettings\"\n\nconst TABS = [\n { id: \"appearance\", label: \"Appearance\", icon: Palette },\n { id: \"editor\", label: \"Editor\", icon: Type },\n { id: \"project\", label: \"Project\", icon: FolderCog },\n { id: \"mcp\", label: \"MCP\", icon: Plug },\n { id: \"skills\", label: \"Skills\", icon: Zap },\n { id: \"agents\", label: \"Agents\", icon: Bot },\n]\n\nexport default function SettingsPage() {\n const { rootParam, setEditorSettings, setAutoRefreshSeconds } = useApp()\n const [activeTab, setActiveTab] = useState(\"appearance\")\n const [settings, setSettings] = useState<AppSettings>(DEFAULT_SETTINGS)\n const [skills, setSkills] = useState<Skill[]>(DEFAULT_SKILLS)\n const [agents, setAgents] = useState<Agent[]>(DEFAULT_AGENTS)\n const [loading, setLoading] = useState(true)\n const [saving, setSaving] = useState(false)\n\n const fetchAll = useCallback(async () => {\n try {\n const res = await fetch(`/api/settings${rootParam}&type=all`)\n const data = await res.json()\n setSettings({ ...DEFAULT_SETTINGS, ...data.settings })\n setSkills(data.skills || DEFAULT_SKILLS)\n setAgents(data.agents || DEFAULT_AGENTS)\n } catch {}\n setLoading(false)\n }, [rootParam])\n\n useEffect(() => {\n fetchAll()\n }, [fetchAll])\n\n const saveSettings = async (newSettings: AppSettings) => {\n setSaving(true)\n setSettings(newSettings)\n try {\n await fetch(`/api/settings${rootParam}&type=settings`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(newSettings),\n })\n applyTheme(newSettings.theme)\n applyAccent(newSettings.accentColor)\n applyFontSize(newSettings.fontSize)\n applyFonts(newSettings)\n setEditorSettings(newSettings.editor)\n setAutoRefreshSeconds(newSettings.project?.autoRefresh ?? 0)\n } catch {}\n setSaving(false)\n }\n\n const saveSkills = async (newSkills: Skill[]) => {\n setSaving(true)\n setSkills(newSkills)\n try {\n await fetch(`/api/settings${rootParam}&type=skills`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(newSkills),\n })\n } catch {}\n setSaving(false)\n }\n\n const saveAgents = async (newAgents: Agent[]) => {\n setSaving(true)\n setAgents(newAgents)\n try {\n await fetch(`/api/settings${rootParam}&type=agents`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(newAgents),\n })\n } catch {}\n setSaving(false)\n }\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-muted\">Loading settings...</div>\n </div>\n )\n }\n\n return (\n <div className=\"flex h-full\">\n {/* Sidebar */}\n <aside className=\"w-56 border-r border-border bg-sidebar shrink-0\">\n <div className=\"p-4 border-b border-border\">\n <div className=\"flex items-center gap-2\">\n <Settings className=\"w-5 h-5 text-accent\" />\n <h1 className=\"font-semibold text-txt\">Settings</h1>\n </div>\n </div>\n <nav className=\"p-2\">\n {TABS.map(tab => {\n const Icon = tab.icon\n return (\n <button\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n \"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors\",\n activeTab === tab.id\n ? \"bg-accent/10 text-accent font-medium\"\n : \"text-muted hover:text-txt hover:bg-surface2\"\n )}\n >\n <Icon className=\"w-4 h-4\" />\n {tab.label}\n </button>\n )\n })}\n </nav>\n </aside>\n\n {/* Content */}\n <div className=\"flex-1 overflow-y-auto\">\n <div className=\"max-w-2xl mx-auto p-6\">\n {saving && (\n <div className=\"fixed top-4 right-4 bg-accent text-white px-3 py-1.5 rounded-lg text-sm shadow-lg\">\n Saving...\n </div>\n )}\n\n {activeTab === \"appearance\" && (\n <ThemeSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"editor\" && (\n <EditorSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"project\" && (\n <ProjectSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"mcp\" && (\n <MCPSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"skills\" && (\n <SkillsSettings skills={skills} onSave={saveSkills} />\n )}\n {activeTab === \"agents\" && (\n <AgentsSettings agents={agents} skills={skills} onSave={saveAgents} />\n )}\n </div>\n </div>\n </div>\n )\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'folder-cog',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3',\n key: '128dxu',\n },\n ],\n ['path', { d: 'm14.305 19.53.923-.382', key: '3m78fa' }],\n ['path', { d: 'm15.228 16.852-.923-.383', key: 'npixar' }],\n ['path', { d: 'm16.852 15.228-.383-.923', key: '5xggr7' }],\n ['path', { d: 'm16.852 20.772-.383.924', key: 'dpfhf9' }],\n ['path', { d: 'm19.148 15.228.383-.923', key: '1reyyz' }],\n ['path', { d: 'm19.53 21.696-.382-.924', key: '1goivc' }],\n ['path', { d: 'm20.772 16.852.924-.383', key: 'htqkph' }],\n ['path', { d: 'm20.772 19.148.924.383', key: '9w9pjp' }],\n ['circle', { cx: '18', cy: '18', r: '3', key: '1xkwt0' }],\n ],\n aliases: ['folder-cog-2'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name FolderCog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMiIC8+CiAgPHBhdGggZD0ibTE0LjMwNSAxOS41My45MjMtLjM4MiIgLz4KICA8cGF0aCBkPSJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-cog\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderCog = createLucideIcon(__iconData);\n\nexport default FolderCog;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'palette',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z',\n key: 'e79jfc',\n },\n ],\n ['circle', { cx: '13.5', cy: '6.5', r: '.5', fill: 'currentColor', key: '1okk4w' }],\n ['circle', { cx: '17.5', cy: '10.5', r: '.5', fill: 'currentColor', key: 'f64h9f' }],\n ['circle', { cx: '6.5', cy: '12.5', r: '.5', fill: 'currentColor', key: 'qy21gx' }],\n ['circle', { cx: '8.5', cy: '7.5', r: '.5', fill: 'currentColor', key: 'fotxhn' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Palette\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoiIC8+CiAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjYuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTAuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/palette\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Palette = createLucideIcon(__iconData);\n\nexport default Palette;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'plug',\n size: 24,\n node: [\n ['path', { d: 'M12 22v-5', key: '1ega77' }],\n ['path', { d: 'M15 8V2', key: '18g5xt' }],\n [\n 'path',\n { d: 'M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z', key: '1xoxul' },\n ],\n ['path', { d: 'M9 8V2', key: '14iosj' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Plug\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE1IDhWMiIgLz4KICA8cGF0aCBkPSJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoiIC8+CiAgPHBhdGggZD0iTTkgOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/plug\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plug = createLucideIcon(__iconData);\n\nexport default Plug;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'moon',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n key: 'kfwtm',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Moon\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Moon = createLucideIcon(__iconData);\n\nexport default Moon;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'type',\n size: 24,\n node: [\n ['path', { d: 'M12 4v16', key: '1654pz' }],\n ['path', { d: 'M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2', key: 'e0r10z' }],\n ['path', { d: 'M9 20h6', key: 's66wpe' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Type\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNHYxNiIgLz4KICA8cGF0aCBkPSJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIiIC8+CiAgPHBhdGggZD0iTTkgMjBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/type\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Type = createLucideIcon(__iconData);\n\nexport default Type;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'sun',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '4', key: '4exip2' }],\n ['path', { d: 'M12 2v2', key: 'tus03m' }],\n ['path', { d: 'M12 20v2', key: '1lh1kg' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41', key: '149t6j' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41', key: 'ptbguv' }],\n ['path', { d: 'M2 12h2', key: '1t8f8n' }],\n ['path', { d: 'M20 12h2', key: '1q8mjw' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41', key: '1m8zz5' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41', key: '1shlcs' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Sun\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sun = createLucideIcon(__iconData);\n\nexport default Sun;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'monitor',\n size: 24,\n node: [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2', key: '48i651' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21', key: '1svkeh' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21', key: 'vw1qmm' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Monitor\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIyMSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTciIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Monitor = createLucideIcon(__iconData);\n\nexport default Monitor;\n"],"names":["size","d","cx","__iconData","fill","key","cy","r","Palette","node"],"mappings":"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","ignoreList":[7,8,9,10,11,12,13]}
1
+ {"version":3,"sources":["../../../../src/app/%28app%29/settings/page.tsx","../../../../src/components/settings/ThemeSettings.tsx","../../../../src/components/settings/EditorSettings.tsx","../../../../src/components/settings/ProjectSettings.tsx","../../../../src/components/settings/MCPSettings.tsx","../../../../src/components/settings/SkillsSettings.tsx","../../../../src/components/settings/AgentsSettings.tsx","../../../../src/components/settings/StatusesSettings.tsx","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/monitor.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/sun.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/columns-3.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/type.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/palette.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/moon.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/folder-cog.ts"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect, useCallback } from \"react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { Palette, Type, FolderCog, Plug, Zap, Bot, Settings, Columns3 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { ThemeSettings } from \"@/components/settings/ThemeSettings\"\nimport { EditorSettings } from \"@/components/settings/EditorSettings\"\nimport { ProjectSettings } from \"@/components/settings/ProjectSettings\"\nimport { MCPSettings } from \"@/components/settings/MCPSettings\"\nimport { SkillsSettings } from \"@/components/settings/SkillsSettings\"\nimport { AgentsSettings } from \"@/components/settings/AgentsSettings\"\nimport { StatusesSettings } from \"@/components/settings/StatusesSettings\"\nimport { setStatusDefs } from \"@/components/shared/status-defs\"\nimport { statusDefs } from \"@/lib/statuses\"\nimport type { AppSettings, Skill, Agent } from \"@/lib/settings\"\nimport { DEFAULT_SETTINGS, DEFAULT_SKILLS, DEFAULT_AGENTS } from \"@/lib/settings\"\nimport { applyTheme, applyAccent, applyFontSize, applyFonts } from \"@/lib/applySettings\"\n\nconst TABS = [\n { id: \"appearance\", label: \"Appearance\", icon: Palette },\n { id: \"editor\", label: \"Editor\", icon: Type },\n { id: \"project\", label: \"Project\", icon: FolderCog },\n { id: \"statuses\", label: \"Statuses\", icon: Columns3 },\n { id: \"mcp\", label: \"MCP\", icon: Plug },\n { id: \"skills\", label: \"Skills\", icon: Zap },\n { id: \"agents\", label: \"Agents\", icon: Bot },\n]\n\nexport default function SettingsPage() {\n const { rootParam, setEditorSettings, setAutoRefreshSeconds } = useApp()\n const [activeTab, setActiveTab] = useState(\"appearance\")\n const [settings, setSettings] = useState<AppSettings>(DEFAULT_SETTINGS)\n const [skills, setSkills] = useState<Skill[]>(DEFAULT_SKILLS)\n const [agents, setAgents] = useState<Agent[]>(DEFAULT_AGENTS)\n const [loading, setLoading] = useState(true)\n const [saving, setSaving] = useState(false)\n\n const fetchAll = useCallback(async () => {\n try {\n const res = await fetch(`/api/settings${rootParam}&type=all`)\n const data = await res.json()\n setSettings({ ...DEFAULT_SETTINGS, ...data.settings })\n setSkills(data.skills || DEFAULT_SKILLS)\n setAgents(data.agents || DEFAULT_AGENTS)\n } catch {}\n setLoading(false)\n }, [rootParam])\n\n useEffect(() => {\n fetchAll()\n }, [fetchAll])\n\n const saveSettings = async (newSettings: AppSettings) => {\n setSaving(true)\n setSettings(newSettings)\n try {\n await fetch(`/api/settings${rootParam}&type=settings`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(newSettings),\n })\n applyTheme(newSettings.theme)\n applyAccent(newSettings.accentColor)\n applyFontSize(newSettings.fontSize)\n applyFonts(newSettings)\n setEditorSettings(newSettings.editor)\n setAutoRefreshSeconds(newSettings.project?.autoRefresh ?? 0)\n setStatusDefs(statusDefs(newSettings.statuses))\n } catch {}\n setSaving(false)\n }\n\n const saveSkills = async (newSkills: Skill[]) => {\n setSaving(true)\n setSkills(newSkills)\n try {\n await fetch(`/api/settings${rootParam}&type=skills`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(newSkills),\n })\n } catch {}\n setSaving(false)\n }\n\n const saveAgents = async (newAgents: Agent[]) => {\n setSaving(true)\n setAgents(newAgents)\n try {\n await fetch(`/api/settings${rootParam}&type=agents`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(newAgents),\n })\n } catch {}\n setSaving(false)\n }\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-muted\">Loading settings...</div>\n </div>\n )\n }\n\n return (\n <div className=\"flex h-full\">\n {/* Sidebar */}\n <aside className=\"w-56 border-r border-border bg-sidebar shrink-0\">\n <div className=\"p-4 border-b border-border\">\n <div className=\"flex items-center gap-2\">\n <Settings className=\"w-5 h-5 text-accent\" />\n <h1 className=\"font-semibold text-txt\">Settings</h1>\n </div>\n </div>\n <nav className=\"p-2\">\n {TABS.map(tab => {\n const Icon = tab.icon\n return (\n <button\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n \"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors\",\n activeTab === tab.id\n ? \"bg-accent/10 text-accent font-medium\"\n : \"text-muted hover:text-txt hover:bg-surface2\"\n )}\n >\n <Icon className=\"w-4 h-4\" />\n {tab.label}\n </button>\n )\n })}\n </nav>\n </aside>\n\n {/* Content */}\n <div className=\"flex-1 overflow-y-auto\">\n <div className=\"max-w-2xl mx-auto p-6\">\n {saving && (\n <div className=\"fixed top-4 right-4 bg-accent text-accent-fg px-3 py-1.5 rounded-lg text-sm shadow-lg\">\n Saving...\n </div>\n )}\n\n {activeTab === \"appearance\" && (\n <ThemeSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"editor\" && (\n <EditorSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"project\" && (\n <ProjectSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"statuses\" && (\n <StatusesSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"mcp\" && (\n <MCPSettings settings={settings} onSave={saveSettings} />\n )}\n {activeTab === \"skills\" && (\n <SkillsSettings skills={skills} onSave={saveSkills} />\n )}\n {activeTab === \"agents\" && (\n <AgentsSettings agents={agents} skills={skills} onSave={saveAgents} />\n )}\n </div>\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport { Moon, Sun, Monitor, Check } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { SANS_FONTS, MONO_FONTS, type AppSettings } from \"@/lib/settings\"\r\n\r\ninterface ThemeSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst ACCENT_COLORS = [\r\n { id: \"blue\", label: \"Blue\", class: \"bg-blue-500\" },\r\n { id: \"purple\", label: \"Purple\", class: \"bg-purple-500\" },\r\n { id: \"green\", label: \"Green\", class: \"bg-green-500\" },\r\n { id: \"orange\", label: \"Orange\", class: \"bg-orange-500\" },\r\n] as const\r\n\r\nconst FONT_SIZES = [\r\n { id: \"small\", label: \"Small\" },\r\n { id: \"medium\", label: \"Medium\" },\r\n { id: \"large\", label: \"Large\" },\r\n] as const\r\n\r\nexport function ThemeSettings({ settings, onSave }: ThemeSettingsProps) {\r\n return (\r\n <div className=\"space-y-8\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Appearance</h2>\r\n <p className=\"text-sm text-muted\">Customize the look and feel of the app.</p>\r\n </div>\r\n\r\n {/* Theme */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Theme</label>\r\n <div className=\"grid grid-cols-3 gap-3\">\r\n {[\r\n { id: \"dark\", label: \"Dark\", icon: Moon },\r\n { id: \"light\", label: \"Light\", icon: Sun },\r\n { id: \"system\", label: \"System\", icon: Monitor },\r\n ].map(theme => {\r\n const Icon = theme.icon\r\n const isActive = settings.theme === theme.id\r\n return (\r\n <button\r\n key={theme.id}\r\n onClick={() => onSave({ ...settings, theme: theme.id as AppSettings[\"theme\"] })}\r\n className={cn(\r\n \"flex flex-col items-center gap-2 p-4 rounded-lg border transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10\"\r\n : \"border-border hover:border-accent/50\"\r\n )}\r\n >\r\n <Icon className={cn(\"w-5 h-5\", isActive ? \"text-accent\" : \"text-muted\")} />\r\n <span className={cn(\"text-sm\", isActive ? \"text-accent font-medium\" : \"text-muted\")}>\r\n {theme.label}\r\n </span>\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Accent Color */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Accent Color</label>\r\n <div className=\"flex gap-3\">\r\n {ACCENT_COLORS.map(color => {\r\n const isActive = settings.accentColor === color.id\r\n return (\r\n <button\r\n key={color.id}\r\n onClick={() => onSave({ ...settings, accentColor: color.id as AppSettings[\"accentColor\"] })}\r\n className={cn(\r\n \"w-10 h-10 rounded-full flex items-center justify-center transition-transform\",\r\n color.class,\r\n isActive ? \"ring-2 ring-offset-2 ring-offset-bg ring-white scale-110\" : \"hover:scale-105\"\r\n )}\r\n title={color.label}\r\n >\r\n {isActive && <Check className=\"w-5 h-5 text-white\" />}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Font Size */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Font Size</label>\r\n <div className=\"flex gap-2\">\r\n {FONT_SIZES.map(size => {\r\n const isActive = settings.fontSize === size.id\r\n return (\r\n <button\r\n key={size.id}\r\n onClick={() => onSave({ ...settings, fontSize: size.id as AppSettings[\"fontSize\"] })}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {size.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Font family — each option previews in its own font */}\r\n {([\r\n { key: \"fontSans\", label: \"Interface Font\", fonts: SANS_FONTS, fallback: \"system-ui\", sample: \"Ship the roadmap by Friday\" },\r\n { key: \"fontMono\", label: \"Code Font\", fonts: MONO_FONTS, fallback: \"ui-monospace, Menlo, Consolas, monospace\", sample: \"const id = 0O1lI;\" },\r\n ] as const).map(group => (\r\n <div key={group.key} className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">{group.label}</label>\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-2\">\r\n {group.fonts.map(font => {\r\n const isActive = settings[group.key] === font.id\r\n return (\r\n <button\r\n key={font.id}\r\n onClick={() => onSave({ ...settings, [group.key]: font.id })}\r\n className={cn(\r\n \"text-left p-3 rounded-lg border transition-colors\",\r\n isActive ? \"border-accent bg-accent/10\" : \"border-border hover:border-accent/50\"\r\n )}\r\n >\r\n <div\r\n className=\"text-base text-txt truncate\"\r\n style={{ fontFamily: font.id === \"system\" ? group.fallback : `var(--font-${font.id})` }}\r\n >\r\n {group.sample}\r\n </div>\r\n <div className={cn(\"mt-1 text-xs\", isActive ? \"text-accent font-medium\" : \"text-txt\")}>{font.label}</div>\r\n <div className=\"text-xs text-muted\">{font.note}</div>\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport type { AppSettings } from \"@/lib/settings\"\r\n\r\ninterface EditorSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst AUTO_SAVE_OPTIONS = [\r\n { value: 0, label: \"Off\" },\r\n { value: 5, label: \"5 seconds\" },\r\n { value: 10, label: \"10 seconds\" },\r\n { value: 30, label: \"30 seconds\" },\r\n]\r\n\r\nconst PREVIEW_MODES = [\r\n { id: \"split\", label: \"Split View\" },\r\n { id: \"tab\", label: \"Tab View\" },\r\n { id: \"preview\", label: \"Preview Only\" },\r\n] as const\r\n\r\nexport function EditorSettings({ settings, onSave }: EditorSettingsProps) {\r\n const updateEditor = (key: keyof AppSettings[\"editor\"], value: unknown) => {\r\n onSave({\r\n ...settings,\r\n editor: { ...settings.editor, [key]: value },\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Editor</h2>\r\n <p className=\"text-sm text-muted\">Configure the markdown editor behavior.</p>\r\n </div>\r\n\r\n {/* Auto-save */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Auto-save</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {AUTO_SAVE_OPTIONS.map(option => {\r\n const isActive = settings.editor.autoSave === option.value\r\n return (\r\n <button\r\n key={option.value}\r\n onClick={() => updateEditor(\"autoSave\", option.value)}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {option.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Preview Mode */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Preview Mode</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {PREVIEW_MODES.map(mode => {\r\n const isActive = settings.editor.previewMode === mode.id\r\n return (\r\n <button\r\n key={mode.id}\r\n onClick={() => updateEditor(\"previewMode\", mode.id)}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {mode.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Toggles */}\r\n <div className=\"space-y-4\">\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">Word Wrap</div>\r\n <div className=\"text-xs text-muted\">Wrap long lines in the editor</div>\r\n </div>\r\n <button\r\n onClick={() => updateEditor(\"wordWrap\", !settings.editor.wordWrap)}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n settings.editor.wordWrap ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n settings.editor.wordWrap ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n </div>\r\n\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">Line Numbers</div>\r\n <div className=\"text-xs text-muted\">Show line numbers in the editor</div>\r\n </div>\r\n <button\r\n onClick={() => updateEditor(\"lineNumbers\", !settings.editor.lineNumbers)}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n settings.editor.lineNumbers ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n settings.editor.lineNumbers ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport type { AppSettings } from \"@/lib/settings\"\r\n\r\ninterface ProjectSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst REFRESH_OPTIONS = [\r\n { value: 0, label: \"Off\" },\r\n { value: 5, label: \"5 seconds\" },\r\n { value: 10, label: \"10 seconds\" },\r\n { value: 30, label: \"30 seconds\" },\r\n]\r\n\r\nexport function ProjectSettings({ settings, onSave }: ProjectSettingsProps) {\r\n const updateProject = (key: keyof AppSettings[\"project\"], value: unknown) => {\r\n onSave({\r\n ...settings,\r\n project: { ...settings.project, [key]: value },\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Project</h2>\r\n <p className=\"text-sm text-muted\">Configure project-level settings.</p>\r\n </div>\r\n\r\n {/* Auto-refresh */}\r\n <div className=\"space-y-3\">\r\n <label className=\"block text-sm font-medium text-txt\">Auto-refresh Interval</label>\r\n <p className=\"text-xs text-muted\">How often to check for changes in the project files.</p>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {REFRESH_OPTIONS.map(option => {\r\n const isActive = settings.project.autoRefresh === option.value\r\n return (\r\n <button\r\n key={option.value}\r\n onClick={() => updateProject(\"autoRefresh\", option.value)}\r\n className={cn(\r\n \"px-4 py-2 rounded-lg border text-sm transition-colors\",\r\n isActive\r\n ? \"border-accent bg-accent/10 text-accent font-medium\"\r\n : \"border-border text-muted hover:border-accent/50\"\r\n )}\r\n >\r\n {option.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n </div>\r\n\r\n {/* Show Hidden Files */}\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">Show Hidden Files</div>\r\n <div className=\"text-xs text-muted\">Display files starting with a dot</div>\r\n </div>\r\n <button\r\n onClick={() => updateProject(\"showHidden\", !settings.project.showHidden)}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n settings.project.showHidden ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n settings.project.showHidden ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { Plug, Check, X, Copy, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Input } from \"@/components/ui/input\"\nimport { resolveMcpEndpoint, type AppSettings } from \"@/lib/settings\"\nimport { useOrigin } from \"@/hooks/use-origin\"\n\ninterface MCPSettingsProps {\n settings: AppSettings\n onSave: (settings: AppSettings) => void\n}\n\nconst AGENT_CONFIGS = {\n \"claude-code\": {\n name: \"Claude Code\",\n config: `{\n \"mcpServers\": {\n \"vibedoc\": {\n \"url\": \"{{ENDPOINT}}\"\n }\n }\n}`,\n path: \"~/.claude/claude.json\",\n },\n cursor: {\n name: \"Cursor\",\n config: `{\n \"mcp\": {\n \"servers\": {\n \"vibedoc\": {\n \"url\": \"{{ENDPOINT}}\"\n }\n }\n }\n}`,\n path: \".cursor/mcp.json\",\n },\n windsurf: {\n name: \"Windsurf\",\n config: `{\n \"mcpServers\": {\n \"vibedoc\": {\n \"url\": \"{{ENDPOINT}}\"\n }\n }\n}`,\n path: \".windsurf/mcp.json\",\n },\n}\n\nexport function MCPSettings({ settings, onSave }: MCPSettingsProps) {\n const [testing, setTesting] = useState(false)\n const [testResult, setTestResult] = useState<\"success\" | \"error\" | null>(null)\n const [copied, setCopied] = useState<string | null>(null)\n const endpoint = resolveMcpEndpoint(settings.mcp.endpoint, useOrigin())\n\n const updateMcp = (key: keyof AppSettings[\"mcp\"], value: string) => {\n onSave({\n ...settings,\n mcp: { ...settings.mcp, [key]: value },\n })\n }\n\n const testConnection = async () => {\n setTesting(true)\n setTestResult(null)\n try {\n const res = await fetch(endpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: 1,\n method: \"tools/list\",\n }),\n })\n if (res.ok) {\n setTestResult(\"success\")\n } else {\n setTestResult(\"error\")\n }\n } catch {\n setTestResult(\"error\")\n }\n setTesting(false)\n }\n\n const copyConfig = async (agentId: string) => {\n const agent = AGENT_CONFIGS[agentId as keyof typeof AGENT_CONFIGS]\n const config = agent.config.replace(\"{{ENDPOINT}}\", endpoint)\n await navigator.clipboard.writeText(config)\n setCopied(agentId)\n setTimeout(() => setCopied(null), 2000)\n }\n\n return (\n <div className=\"space-y-8\">\n <div>\n <h2 className=\"text-xl font-semibold text-txt mb-1\">MCP Connection</h2>\n <p className=\"text-sm text-muted\">Configure the Model Context Protocol server for AI agents.</p>\n </div>\n\n {/* Endpoint */}\n <div className=\"space-y-3\">\n <label className=\"block text-sm font-medium text-txt\">MCP Endpoint</label>\n <div className=\"flex gap-2\">\n <Input\n value={endpoint}\n onChange={(e) => updateMcp(\"endpoint\", e.target.value)}\n className=\"bg-surface2 font-mono text-sm\"\n />\n <button\n onClick={testConnection}\n disabled={testing}\n className=\"px-4 py-2 bg-accent text-accent-fg rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50 flex items-center gap-2\"\n >\n {testing ? (\n <Loader2 className=\"w-4 h-4 animate-spin\" />\n ) : (\n <Plug className=\"w-4 h-4\" />\n )}\n Test\n </button>\n </div>\n {testResult && (\n <div className={cn(\n \"flex items-center gap-2 text-sm\",\n testResult === \"success\" ? \"text-green-400\" : \"text-red-400\"\n )}>\n {testResult === \"success\" ? (\n <>\n <Check className=\"w-4 h-4\" />\n Connection successful\n </>\n ) : (\n <>\n <X className=\"w-4 h-4\" />\n Connection failed\n </>\n )}\n </div>\n )}\n </div>\n\n {/* Agent Configs */}\n <div className=\"space-y-3\">\n <label className=\"block text-sm font-medium text-txt\">Agent Configuration</label>\n <p className=\"text-xs text-muted\">Copy the configuration for your coding agent:</p>\n <div className=\"space-y-2\">\n {Object.entries(AGENT_CONFIGS).map(([id, agent]) => (\n <div\n key={id}\n className=\"flex items-center justify-between p-3 border border-border rounded-lg\"\n >\n <div>\n <div className=\"text-sm font-medium text-txt\">{agent.name}</div>\n <div className=\"text-xs text-muted font-mono\">{agent.path}</div>\n </div>\n <button\n onClick={() => copyConfig(id)}\n className={cn(\n \"flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm transition-colors\",\n copied === id\n ? \"bg-green-500/20 text-green-400\"\n : \"bg-surface2 text-muted hover:text-txt\"\n )}\n >\n {copied === id ? (\n <>\n <Check className=\"w-3.5 h-3.5\" />\n Copied\n </>\n ) : (\n <>\n <Copy className=\"w-3.5 h-3.5\" />\n Copy\n </>\n )}\n </button>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Plus, Pencil, Trash2, X, Check, Zap } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport type { Skill } from \"@/lib/settings\"\r\n\r\ninterface SkillsSettingsProps {\r\n skills: Skill[]\r\n onSave: (skills: Skill[]) => void\r\n}\r\n\r\nconst AVAILABLE_TOOLS = [\r\n \"vibedoc_read_doc\",\r\n \"vibedoc_write_doc\",\r\n \"vibedoc_search_docs\",\r\n \"vibedoc_list_docs\",\r\n \"vibedoc_get_status\",\r\n \"vibedoc_list_tasks\",\r\n \"vibedoc_update_task\",\r\n \"vibedoc_read_memory\",\r\n \"vibedoc_update_memory\",\r\n \"vibedoc_save_entry\",\r\n \"vibedoc_delete_entry\",\r\n]\r\n\r\nconst SKILL_ICONS = [\"🔧\", \"📝\", \"🧪\", \"🔍\", \"📊\", \"🔒\", \"⚡\", \"🎯\", \"💡\", \"🚀\"]\r\n\r\nexport function SkillsSettings({ skills, onSave }: SkillsSettingsProps) {\r\n const [editing, setEditing] = useState<string | null>(null)\r\n const [editForm, setEditForm] = useState<Skill | null>(null)\r\n const [isNew, setIsNew] = useState(false)\r\n\r\n const startEdit = (skill: Skill) => {\r\n setEditing(skill.id)\r\n setEditForm({ ...skill })\r\n setIsNew(false)\r\n }\r\n\r\n const startNew = () => {\r\n const newSkill: Skill = {\r\n id: `skill-${Date.now()}`,\r\n name: \"\",\r\n description: \"\",\r\n trigger: \"/\",\r\n prompt: \"\",\r\n tools: [],\r\n icon: \"⚡\",\r\n }\r\n setEditing(newSkill.id)\r\n setEditForm(newSkill)\r\n setIsNew(true)\r\n }\r\n\r\n const cancelEdit = () => {\r\n setEditing(null)\r\n setEditForm(null)\r\n setIsNew(false)\r\n }\r\n\r\n const saveEdit = () => {\r\n if (!editForm || !editForm.name.trim()) return\r\n \r\n if (isNew) {\r\n onSave([...skills, editForm])\r\n } else {\r\n onSave(skills.map(s => s.id === editForm.id ? editForm : s))\r\n }\r\n cancelEdit()\r\n }\r\n\r\n const deleteSkill = (id: string) => {\r\n if (!confirm(\"Delete this skill?\")) return\r\n onSave(skills.filter(s => s.id !== id))\r\n }\r\n\r\n const toggleTool = (tool: string) => {\r\n if (!editForm) return\r\n const tools = editForm.tools.includes(tool)\r\n ? editForm.tools.filter(t => t !== tool)\r\n : [...editForm.tools, tool]\r\n setEditForm({ ...editForm, tools })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Skills</h2>\r\n <p className=\"text-sm text-muted\">Reusable capabilities for AI agents.</p>\r\n </div>\r\n <button\r\n onClick={startNew}\r\n className=\"flex items-center gap-2 px-3 py-2 bg-accent text-accent-fg rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\r\n >\r\n <Plus className=\"w-4 h-4\" />\r\n Add Skill\r\n </button>\r\n </div>\r\n\r\n <div className=\"space-y-3\">\r\n {skills.map(skill => (\r\n <div key={skill.id}>\r\n {editing === skill.id && editForm ? (\r\n <div className=\"border border-accent rounded-lg p-4 space-y-4 bg-accent/5\">\r\n <div className=\"flex items-center gap-3\">\r\n <select\r\n value={editForm.icon || \"⚡\"}\r\n onChange={(e) => setEditForm({ ...editForm, icon: e.target.value })}\r\n className=\"w-12 h-10 text-center text-xl bg-surface2 border border-border rounded-lg\"\r\n >\r\n {SKILL_ICONS.map(icon => (\r\n <option key={icon} value={icon}>{icon}</option>\r\n ))}\r\n </select>\r\n <Input\r\n value={editForm.name}\r\n onChange={(e) => setEditForm({ ...editForm, name: e.target.value })}\r\n placeholder=\"Skill name\"\r\n className=\"bg-surface2\"\r\n />\r\n </div>\r\n \r\n <Input\r\n value={editForm.description}\r\n onChange={(e) => setEditForm({ ...editForm, description: e.target.value })}\r\n placeholder=\"Description\"\r\n className=\"bg-surface2\"\r\n />\r\n\r\n <div className=\"flex gap-3\">\r\n <div className=\"flex-1\">\r\n <label className=\"text-xs text-muted mb-1 block\">Trigger</label>\r\n <Input\r\n value={editForm.trigger}\r\n onChange={(e) => setEditForm({ ...editForm, trigger: e.target.value })}\r\n placeholder=\"/command\"\r\n className=\"bg-surface2 font-mono\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-1 block\">System Prompt</label>\r\n <textarea\r\n value={editForm.prompt}\r\n onChange={(e) => setEditForm({ ...editForm, prompt: e.target.value })}\r\n placeholder=\"Instructions for the AI when this skill is activated...\"\r\n rows={4}\r\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm resize-none\"\r\n />\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-2 block\">Available Tools</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {AVAILABLE_TOOLS.map(tool => (\r\n <button\r\n key={tool}\r\n onClick={() => toggleTool(tool)}\r\n className={cn(\r\n \"px-2 py-1 rounded-sm text-xs font-mono transition-colors\",\r\n editForm.tools.includes(tool)\r\n ? \"bg-accent/20 text-accent\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n {tool.replace(\"vibedoc_\", \"\")}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex justify-end gap-2\">\r\n <button\r\n onClick={cancelEdit}\r\n className=\"px-3 py-1.5 text-sm text-muted hover:text-txt transition-colors\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n onClick={saveEdit}\r\n disabled={!editForm.name.trim()}\r\n className=\"flex items-center gap-2 px-3 py-1.5 bg-accent text-accent-fg rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50\"\r\n >\r\n <Check className=\"w-4 h-4\" />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"flex items-start gap-3 p-4 border border-border rounded-lg hover:border-accent/30 transition-colors group\">\r\n <div className=\"w-10 h-10 rounded-lg bg-surface2 flex items-center justify-center text-xl shrink-0\">\r\n {skill.icon || \"⚡\"}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"font-medium text-txt\">{skill.name}</span>\r\n <code className=\"text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-accent\">\r\n {skill.trigger}\r\n </code>\r\n </div>\r\n <p className=\"text-sm text-muted mt-0.5\">{skill.description}</p>\r\n {skill.tools.length > 0 && (\r\n <div className=\"flex flex-wrap gap-1 mt-2\">\r\n {skill.tools.map(tool => (\r\n <span key={tool} className=\"text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-muted\">\r\n {tool.replace(\"vibedoc_\", \"\")}\r\n </span>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <button\r\n onClick={() => startEdit(skill)}\r\n className=\"p-1.5 rounded-sm hover:bg-surface2 text-muted hover:text-txt transition-colors\"\r\n >\r\n <Pencil className=\"w-4 h-4\" />\r\n </button>\r\n <button\r\n onClick={() => deleteSkill(skill.id)}\r\n className=\"p-1.5 rounded-sm hover:bg-red-500/10 text-muted hover:text-red-400 transition-colors\"\r\n >\r\n <Trash2 className=\"w-4 h-4\" />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n\r\n {isNew && editForm && (\r\n <div className=\"border border-accent rounded-lg p-4 space-y-4 bg-accent/5\">\r\n {/* Same form as editing */}\r\n <div className=\"flex items-center gap-3\">\r\n <select\r\n value={editForm.icon || \"⚡\"}\r\n onChange={(e) => setEditForm({ ...editForm, icon: e.target.value })}\r\n className=\"w-12 h-10 text-center text-xl bg-surface2 border border-border rounded-lg\"\r\n >\r\n {SKILL_ICONS.map(icon => (\r\n <option key={icon} value={icon}>{icon}</option>\r\n ))}\r\n </select>\r\n <Input\r\n value={editForm.name}\r\n onChange={(e) => setEditForm({ ...editForm, name: e.target.value })}\r\n placeholder=\"Skill name\"\r\n className=\"bg-surface2\"\r\n />\r\n </div>\r\n \r\n <Input\r\n value={editForm.description}\r\n onChange={(e) => setEditForm({ ...editForm, description: e.target.value })}\r\n placeholder=\"Description\"\r\n className=\"bg-surface2\"\r\n />\r\n\r\n <div className=\"flex gap-3\">\r\n <div className=\"flex-1\">\r\n <label className=\"text-xs text-muted mb-1 block\">Trigger</label>\r\n <Input\r\n value={editForm.trigger}\r\n onChange={(e) => setEditForm({ ...editForm, trigger: e.target.value })}\r\n placeholder=\"/command\"\r\n className=\"bg-surface2 font-mono\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-1 block\">System Prompt</label>\r\n <textarea\r\n value={editForm.prompt}\r\n onChange={(e) => setEditForm({ ...editForm, prompt: e.target.value })}\r\n placeholder=\"Instructions for the AI when this skill is activated...\"\r\n rows={4}\r\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm resize-none\"\r\n />\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-2 block\">Available Tools</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {AVAILABLE_TOOLS.map(tool => (\r\n <button\r\n key={tool}\r\n onClick={() => toggleTool(tool)}\r\n className={cn(\r\n \"px-2 py-1 rounded-sm text-xs font-mono transition-colors\",\r\n editForm.tools.includes(tool)\r\n ? \"bg-accent/20 text-accent\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n {tool.replace(\"vibedoc_\", \"\")}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex justify-end gap-2\">\r\n <button\r\n onClick={cancelEdit}\r\n className=\"px-3 py-1.5 text-sm text-muted hover:text-txt transition-colors\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n onClick={saveEdit}\r\n disabled={!editForm.name.trim()}\r\n className=\"flex items-center gap-2 px-3 py-1.5 bg-accent text-accent-fg rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50\"\r\n >\r\n <Check className=\"w-4 h-4\" />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {skills.length === 0 && !isNew && (\r\n <div className=\"text-center py-8 text-muted\">\r\n <Zap className=\"w-10 h-10 mx-auto mb-3 opacity-30\" />\r\n <p className=\"text-sm\">No skills configured</p>\r\n <p className=\"text-xs mt-1\">Add a skill to give your agents capabilities</p>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Plus, Pencil, Trash2, Check, Bot } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport type { Agent, Skill } from \"@/lib/settings\"\r\n\r\ninterface AgentsSettingsProps {\r\n agents: Agent[]\r\n skills: Skill[]\r\n onSave: (agents: Agent[]) => void\r\n}\r\n\r\nconst AGENT_ICONS = [\"🤖\", \"📚\", \"🔒\", \"🧪\", \"📝\", \"🔧\", \"💡\", \"🎯\", \"🚀\", \"⚡\"]\r\n\r\nexport function AgentsSettings({ agents, skills, onSave }: AgentsSettingsProps) {\r\n const [editing, setEditing] = useState<string | null>(null)\r\n const [editForm, setEditForm] = useState<Agent | null>(null)\r\n const [isNew, setIsNew] = useState(false)\r\n\r\n const startEdit = (agent: Agent) => {\r\n setEditing(agent.id)\r\n setEditForm({ ...agent })\r\n setIsNew(false)\r\n }\r\n\r\n const startNew = () => {\r\n const newAgent: Agent = {\r\n id: `agent-${Date.now()}`,\r\n name: \"\",\r\n icon: \"🤖\",\r\n description: \"\",\r\n skills: [],\r\n prompt: \"\",\r\n active: true,\r\n }\r\n setEditing(newAgent.id)\r\n setEditForm(newAgent)\r\n setIsNew(true)\r\n }\r\n\r\n const cancelEdit = () => {\r\n setEditing(null)\r\n setEditForm(null)\r\n setIsNew(false)\r\n }\r\n\r\n const saveEdit = () => {\r\n if (!editForm || !editForm.name.trim()) return\r\n \r\n if (isNew) {\r\n onSave([...agents, editForm])\r\n } else {\r\n onSave(agents.map(a => a.id === editForm.id ? editForm : a))\r\n }\r\n cancelEdit()\r\n }\r\n\r\n const deleteAgent = (id: string) => {\r\n if (!confirm(\"Delete this agent?\")) return\r\n onSave(agents.filter(a => a.id !== id))\r\n }\r\n\r\n const toggleActive = (id: string) => {\r\n onSave(agents.map(a => a.id === id ? { ...a, active: !a.active } : a))\r\n }\r\n\r\n const toggleSkill = (skillId: string) => {\r\n if (!editForm) return\r\n const newSkills = editForm.skills.includes(skillId)\r\n ? editForm.skills.filter(s => s !== skillId)\r\n : [...editForm.skills, skillId]\r\n setEditForm({ ...editForm, skills: newSkills })\r\n }\r\n\r\n const renderForm = (form: Agent) => (\r\n <div className=\"border border-accent rounded-lg p-4 space-y-4 bg-accent/5\">\r\n <div className=\"flex items-center gap-3\">\r\n <select\r\n value={form.icon}\r\n onChange={(e) => setEditForm({ ...form, icon: e.target.value })}\r\n className=\"w-12 h-10 text-center text-xl bg-surface2 border border-border rounded-lg\"\r\n >\r\n {AGENT_ICONS.map(icon => (\r\n <option key={icon} value={icon}>{icon}</option>\r\n ))}\r\n </select>\r\n <Input\r\n value={form.name}\r\n onChange={(e) => setEditForm({ ...form, name: e.target.value })}\r\n placeholder=\"Agent name\"\r\n className=\"bg-surface2\"\r\n />\r\n </div>\r\n \r\n <Input\r\n value={form.description}\r\n onChange={(e) => setEditForm({ ...form, description: e.target.value })}\r\n placeholder=\"Description\"\r\n className=\"bg-surface2\"\r\n />\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-2 block\">Assigned Skills</label>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {skills.map(skill => (\r\n <button\r\n key={skill.id}\r\n onClick={() => toggleSkill(skill.id)}\r\n className={cn(\r\n \"flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-sm transition-colors\",\r\n form.skills.includes(skill.id)\r\n ? \"bg-accent/20 text-accent\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n <span>{skill.icon || \"⚡\"}</span>\r\n {skill.name}\r\n </button>\r\n ))}\r\n {skills.length === 0 && (\r\n <span className=\"text-xs text-muted\">No skills available. Create skills first.</span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label className=\"text-xs text-muted mb-1 block\">Custom System Prompt</label>\r\n <textarea\r\n value={form.prompt}\r\n onChange={(e) => setEditForm({ ...form, prompt: e.target.value })}\r\n placeholder=\"Additional instructions for this agent...\"\r\n rows={3}\r\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm resize-none\"\r\n />\r\n </div>\r\n\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-2\">\r\n <button\r\n onClick={() => setEditForm({ ...form, active: !form.active })}\r\n className={cn(\r\n \"w-11 h-6 rounded-full transition-colors relative\",\r\n form.active ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-1 w-4 h-4 rounded-full bg-white transition-transform\",\r\n form.active ? \"left-6\" : \"left-1\"\r\n )}\r\n />\r\n </button>\r\n <span className=\"text-sm text-muted\">{form.active ? \"Active\" : \"Inactive\"}</span>\r\n </div>\r\n <div className=\"flex gap-2\">\r\n <button\r\n onClick={cancelEdit}\r\n className=\"px-3 py-1.5 text-sm text-muted hover:text-txt transition-colors\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n onClick={saveEdit}\r\n disabled={!form.name.trim()}\r\n className=\"flex items-center gap-2 px-3 py-1.5 bg-accent text-accent-fg rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors disabled:opacity-50\"\r\n >\r\n <Check className=\"w-4 h-4\" />\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div className=\"flex items-center justify-between\">\r\n <div>\r\n <h2 className=\"text-xl font-semibold text-txt mb-1\">Agents</h2>\r\n <p className=\"text-sm text-muted\">AI agent profiles with assigned skills.</p>\r\n </div>\r\n <button\r\n onClick={startNew}\r\n className=\"flex items-center gap-2 px-3 py-2 bg-accent text-accent-fg rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\r\n >\r\n <Plus className=\"w-4 h-4\" />\r\n Add Agent\r\n </button>\r\n </div>\r\n\r\n <div className=\"space-y-3\">\r\n {agents.map(agent => (\r\n <div key={agent.id}>\r\n {editing === agent.id && editForm ? (\r\n renderForm(editForm)\r\n ) : (\r\n <div className={cn(\r\n \"flex items-start gap-3 p-4 border rounded-lg transition-colors group\",\r\n agent.active ? \"border-border hover:border-accent/30\" : \"border-border/50 opacity-60\"\r\n )}>\r\n <div className=\"w-10 h-10 rounded-lg bg-surface2 flex items-center justify-center text-xl shrink-0\">\r\n {agent.icon}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"font-medium text-txt\">{agent.name}</span>\r\n {!agent.active && (\r\n <span className=\"text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-muted\">\r\n Inactive\r\n </span>\r\n )}\r\n </div>\r\n <p className=\"text-sm text-muted mt-0.5\">{agent.description}</p>\r\n {agent.skills.length > 0 && (\r\n <div className=\"flex flex-wrap gap-1 mt-2\">\r\n {agent.skills.map(skillId => {\r\n const skill = skills.find(s => s.id === skillId)\r\n return skill ? (\r\n <span key={skillId} className=\"flex items-center gap-1 text-xs bg-surface2 px-1.5 py-0.5 rounded-sm text-muted\">\r\n {skill.icon} {skill.name}\r\n </span>\r\n ) : null\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n <button\r\n onClick={() => toggleActive(agent.id)}\r\n className={cn(\r\n \"w-9 h-5 rounded-full transition-colors relative\",\r\n agent.active ? \"bg-accent\" : \"bg-border\"\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n \"absolute top-0.5 w-4 h-4 rounded-full bg-white transition-transform\",\r\n agent.active ? \"left-4\" : \"left-0.5\"\r\n )}\r\n />\r\n </button>\r\n <div className=\"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <button\r\n onClick={() => startEdit(agent)}\r\n className=\"p-1.5 rounded-sm hover:bg-surface2 text-muted hover:text-txt transition-colors\"\r\n >\r\n <Pencil className=\"w-4 h-4\" />\r\n </button>\r\n <button\r\n onClick={() => deleteAgent(agent.id)}\r\n className=\"p-1.5 rounded-sm hover:bg-red-500/10 text-muted hover:text-red-400 transition-colors\"\r\n >\r\n <Trash2 className=\"w-4 h-4\" />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n\r\n {isNew && editForm && renderForm(editForm)}\r\n\r\n {agents.length === 0 && !isNew && (\r\n <div className=\"text-center py-8 text-muted\">\r\n <Bot className=\"w-10 h-10 mx-auto mb-3 opacity-30\" />\r\n <p className=\"text-sm\">No agents configured</p>\r\n <p className=\"text-xs mt-1\">Add an agent to define AI personas with skills</p>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { ArrowDown, ArrowUp, Plus, Trash2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Input } from \"@/components/ui/input\"\nimport { useApp } from \"@/context/AppContext\"\nimport { toast } from \"@/components/ui/toast\"\nimport { STATUS_COLOR_CLASS, STATUS_META } from \"@/components/shared/StatusIcon\"\nimport { BUILTIN_STATUSES, STATUS_COLORS, invalidStatusId, statusDefs, type StatusColor, type StatusDef } from \"@/lib/statuses\"\nimport type { AppSettings } from \"@/lib/settings\"\nimport type { TaskStatus } from \"@/types\"\n\nconst FIELD = \"rounded-md border border-border bg-bg px-2 py-1.5 text-sm text-txt focus:outline-hidden focus:ring-1 focus:ring-accent disabled:opacity-50\"\nconst CATEGORY_HELP: Record<TaskStatus, string> = {\n todo: \"waiting to start\", \"in-progress\": \"being worked on\", review: \"waits for a human\", blocked: \"stuck\",\n paused: \"stopped on purpose\", done: \"finished\", cancelled: \"dropped\",\n}\nconst slug = (label: string) => label.toLowerCase().trim().replace(/[^a-z0-9]+/g, \"-\").replace(/^-|-$/g, \"\").slice(0, 40)\n\n/** The project's statuses: rename, recolor, reorder, add (mapped onto a built-in category) and delete custom ones. */\nexport function StatusesSettings({ settings, onSave }: { settings: AppSettings; onSave: (s: AppSettings) => Promise<void> | void }) {\n const { board, rootParam, refresh } = useApp()\n const defs = statusDefs(settings.statuses)\n const [label, setLabel] = useState(\"\")\n const [category, setCategory] = useState<TaskStatus>(\"review\")\n const [color, setColor] = useState<StatusColor>(\"blue\")\n const [removing, setRemoving] = useState<string | null>(null)\n const [moveTo, setMoveTo] = useState(\"todo\")\n\n const save = (next: StatusDef[]) => onSave({ ...settings, statuses: next })\n const patch = (id: string, p: Partial<StatusDef>) => save(defs.map((d) => (d.id === id ? { ...d, ...p } : d)))\n const move = (i: number, by: number) => {\n const next = [...defs]\n const [d] = next.splice(i, 1)\n next.splice(i + by, 0, d)\n save(next)\n }\n const tasksIn = (id: string) => Object.values(board ?? {}).flat().filter((t) => t.customStatus === id)\n\n const newId = slug(label)\n const idError = !label.trim() ? null : !newId ? \"Use letters or digits\" : defs.some((d) => d.id === newId) ? \"Already exists\" : invalidStatusId(newId)\n function add() {\n if (!label.trim() || idError) return\n save([...defs, { id: newId, label: label.trim(), color, category }])\n setLabel(\"\")\n }\n\n async function remove(id: string) {\n const ids = tasksIn(id).map((t) => t.id)\n if (ids.length) {\n const res = await fetch(`/api/tasks/bulk${rootParam}`, {\n method: \"POST\", headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ ids, action: { status: moveTo } }),\n })\n if (!res.ok) return toast((await res.json().catch(() => null))?.error ?? \"Could not move the tasks\")\n }\n await save(defs.filter((d) => d.id !== id))\n setRemoving(null)\n refresh()\n }\n\n return (\n <div className=\"space-y-8\">\n <div>\n <h2 className=\"mb-1 text-xl font-semibold text-txt\">Statuses</h2>\n <p className=\"text-sm text-muted\">\n Board columns, in order. A custom status works like the built-in category it maps to: agents, the work queue and progress read the category.\n Task files store the status id, so renaming never touches them.\n </p>\n </div>\n\n <ul className=\"flex flex-col gap-2\">\n {defs.map((d, i) => {\n const builtin = (BUILTIN_STATUSES as string[]).includes(d.id)\n const Icon = STATUS_META[d.category].icon\n const count = builtin ? 0 : tasksIn(d.id).length\n return (\n <li key={d.id} className=\"rounded-lg border border-border bg-surface p-2.5\">\n <div className=\"flex items-center gap-2\">\n <Icon className={cn(\"size-4 shrink-0\", STATUS_COLOR_CLASS[d.color].text)} aria-hidden />\n <Input\n aria-label={`Label for ${d.id}`}\n defaultValue={d.label}\n key={`${d.id}:${d.label}`}\n onBlur={(e) => { const v = e.target.value.trim(); if (v && v !== d.label) patch(d.id, { label: v }) }}\n onKeyDown={(e) => { if (e.key === \"Enter\") e.currentTarget.blur() }}\n className=\"h-8 w-40 border-border bg-bg text-txt\"\n />\n <span className=\"font-mono text-[11px] text-muted\">{d.id}</span>\n <select aria-label={`Color for ${d.id}`} value={d.color} onChange={(e) => patch(d.id, { color: e.target.value as StatusColor })} className={FIELD}>\n {STATUS_COLORS.map((c) => <option key={c} value={c}>{c}</option>)}\n </select>\n <select\n aria-label={`Category for ${d.id}`}\n value={d.category}\n disabled={builtin}\n title={builtin ? \"Built-in statuses keep their category\" : CATEGORY_HELP[d.category]}\n onChange={(e) => patch(d.id, { category: e.target.value as TaskStatus })}\n className={FIELD}\n >\n {BUILTIN_STATUSES.map((c) => <option key={c} value={c}>works like {c}</option>)}\n </select>\n <span className=\"flex-1\" />\n <button type=\"button\" aria-label={`Move ${d.id} up`} disabled={i === 0} onClick={() => move(i, -1)} className=\"grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt disabled:opacity-30\"><ArrowUp className=\"size-3.5\" /></button>\n <button type=\"button\" aria-label={`Move ${d.id} down`} disabled={i === defs.length - 1} onClick={() => move(i, 1)} className=\"grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt disabled:opacity-30\"><ArrowDown className=\"size-3.5\" /></button>\n {!builtin && (\n <button type=\"button\" aria-label={`Delete ${d.id}`} onClick={() => { setRemoving(d.id); setMoveTo(d.category) }} className=\"grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-danger\"><Trash2 className=\"size-3.5\" /></button>\n )}\n </div>\n {removing === d.id && (\n <div className=\"mt-2 flex flex-wrap items-center gap-2 border-t border-border pt-2 text-xs text-muted\">\n {count > 0 ? <>Move its {count} task{count === 1 ? \"\" : \"s\"} to</> : <>No tasks use it.</>}\n {count > 0 && (\n <select aria-label=\"Move its tasks to\" value={moveTo} onChange={(e) => setMoveTo(e.target.value)} className={FIELD}>\n {defs.filter((x) => x.id !== d.id).map((x) => <option key={x.id} value={x.id}>{x.label}</option>)}\n </select>\n )}\n <button type=\"button\" onClick={() => remove(d.id)} className=\"rounded-md border border-danger/40 px-2 py-1 text-danger hover:bg-danger/10\">Delete {d.label}</button>\n <button type=\"button\" onClick={() => setRemoving(null)} className=\"px-1 hover:text-txt\">Cancel</button>\n </div>\n )}\n </li>\n )\n })}\n </ul>\n\n <form onSubmit={(e) => { e.preventDefault(); add() }} className=\"space-y-2 rounded-lg border border-dashed border-border2 p-3\">\n <p className=\"text-sm font-medium text-txt\">Add a status</p>\n <div className=\"flex flex-wrap items-center gap-2\">\n <Input aria-label=\"New status label\" value={label} onChange={(e) => setLabel(e.target.value)} placeholder=\"QA\" className=\"h-8 w-40 border-border bg-bg text-txt\" />\n <select aria-label=\"New status category\" value={category} onChange={(e) => setCategory(e.target.value as TaskStatus)} className={FIELD}>\n {BUILTIN_STATUSES.map((c) => <option key={c} value={c}>works like {c} ({CATEGORY_HELP[c]})</option>)}\n </select>\n <select aria-label=\"New status color\" value={color} onChange={(e) => setColor(e.target.value as StatusColor)} className={FIELD}>\n {STATUS_COLORS.map((c) => <option key={c} value={c}>{c}</option>)}\n </select>\n <button type=\"submit\" disabled={!label.trim() || !!idError} className=\"inline-flex h-8 items-center gap-1.5 rounded-md bg-accent px-3 text-xs font-medium text-accent-fg hover:bg-accent/90 disabled:opacity-40\">\n <Plus className=\"size-3.5\" /> Add\n </button>\n </div>\n {label.trim() && <p className={cn(\"font-mono text-[11px]\", idError ? \"text-danger\" : \"text-muted\")}>{idError ?? `id: ${newId}`}</p>}\n </form>\n </div>\n )\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'monitor',\n size: 24,\n node: [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2', key: '48i651' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21', key: '1svkeh' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21', key: 'vw1qmm' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Monitor\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIyMSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTciIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Monitor = createLucideIcon(__iconData);\n\nexport default Monitor;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'sun',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '4', key: '4exip2' }],\n ['path', { d: 'M12 2v2', key: 'tus03m' }],\n ['path', { d: 'M12 20v2', key: '1lh1kg' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41', key: '149t6j' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41', key: 'ptbguv' }],\n ['path', { d: 'M2 12h2', key: '1t8f8n' }],\n ['path', { d: 'M20 12h2', key: '1q8mjw' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41', key: '1m8zz5' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41', key: '1shlcs' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Sun\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sun = createLucideIcon(__iconData);\n\nexport default Sun;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'columns-3',\n size: 24,\n node: [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M9 3v18', key: 'fh3hqa' }],\n ['path', { d: 'M15 3v18', key: '14nvp0' }],\n ],\n aliases: ['panels-left-right'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Columns3\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0iTTE1IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/columns-3\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Columns3 = createLucideIcon(__iconData);\n\nexport default Columns3;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'type',\n size: 24,\n node: [\n ['path', { d: 'M12 4v16', key: '1654pz' }],\n ['path', { d: 'M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2', key: 'e0r10z' }],\n ['path', { d: 'M9 20h6', key: 's66wpe' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Type\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNHYxNiIgLz4KICA8cGF0aCBkPSJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIiIC8+CiAgPHBhdGggZD0iTTkgMjBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/type\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Type = createLucideIcon(__iconData);\n\nexport default Type;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'palette',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z',\n key: 'e79jfc',\n },\n ],\n ['circle', { cx: '13.5', cy: '6.5', r: '.5', fill: 'currentColor', key: '1okk4w' }],\n ['circle', { cx: '17.5', cy: '10.5', r: '.5', fill: 'currentColor', key: 'f64h9f' }],\n ['circle', { cx: '6.5', cy: '12.5', r: '.5', fill: 'currentColor', key: 'qy21gx' }],\n ['circle', { cx: '8.5', cy: '7.5', r: '.5', fill: 'currentColor', key: 'fotxhn' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Palette\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoiIC8+CiAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjYuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTAuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/palette\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Palette = createLucideIcon(__iconData);\n\nexport default Palette;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'moon',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n key: 'kfwtm',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Moon\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Moon = createLucideIcon(__iconData);\n\nexport default Moon;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'folder-cog',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3',\n key: '128dxu',\n },\n ],\n ['path', { d: 'm14.305 19.53.923-.382', key: '3m78fa' }],\n ['path', { d: 'm15.228 16.852-.923-.383', key: 'npixar' }],\n ['path', { d: 'm16.852 15.228-.383-.923', key: '5xggr7' }],\n ['path', { d: 'm16.852 20.772-.383.924', key: 'dpfhf9' }],\n ['path', { d: 'm19.148 15.228.383-.923', key: '1reyyz' }],\n ['path', { d: 'm19.53 21.696-.382-.924', key: '1goivc' }],\n ['path', { d: 'm20.772 16.852.924-.383', key: 'htqkph' }],\n ['path', { d: 'm20.772 19.148.924.383', key: '9w9pjp' }],\n ['circle', { cx: '18', cy: '18', r: '3', key: '1xkwt0' }],\n ],\n aliases: ['folder-cog-2'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name FolderCog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMiIC8+CiAgPHBhdGggZD0ibTE0LjMwNSAxOS41My45MjMtLjM4MiIgLz4KICA8cGF0aCBkPSJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-cog\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderCog = createLucideIcon(__iconData);\n\nexport default FolderCog;\n"],"names":["__iconData","size","d","cx","fill","key","cy","r","Palette","node"],"mappings":"0DAEA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,mEYOQ,CCAA,ACAA,AFAA,AHAH,CAAA,0LGIkE,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,sBACzD,CAAA,AHAX,AKAA,CFAW,AEAX,ALAA,CAAA,mBGAsC,eAAgB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,eAClE,CEAH,AFAG,QAAW,CEAd,AFAc,CAAA,AEAd,YFA+B,CEAH,AFAG,IAAM,CEAJ,AFAI,CEAJ,AFAI,CEAJ,AFAI,CAAA,WAAgB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,YACrE,GAAA,0CAAqD,CAAA,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,GAOzC,CAAA,AELgB,CFKL,CEJlD,AFIkD,GAAA,2JDhBW,EAAU,0BAC1C,wPGKU,CLAD,AKAC,AJgBA,AEhBD,CHAA,AGAA,AEAC,CLAD,AGAA,AEAC,CAAA,oBAC7B,EAAA,8FAC8C,CFAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mCECL,CFAF,AEAE,CFAF,AEAE,CFAF,AEAE,KAAA,CAAU,CAAA,OFAN,CAAA,IECpC,CAAA,CAAA,CAAA,uBAA2B,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,EACvD,OAAQ,CLgBD,AKhBC,gCAAqC,CAAA,CAAA,CAAA,CAAA,IAAA,CAAU,CAAA,UAC7C,EAAG,8BAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACxD,CAAC,OAAQ,GAAK,qCAA+B,CAAU,CAAA,CACvD,CAAC,CAAA,CAAA,OAAU,IAAM,KAAM,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,EAAG,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAK,AAAL,QAAK,EAAU,CAC1D,SACS,CAAC,CAAA,CAAA,aAAc,AAC1B,CAAA,CAK4C,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAavD,CAAA,GAAA,EAAA,CAAA,EAAkB,CAAA,CAAA,OAAA,EAAiB,CAAA,CAAA,CdvCnC,IAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,uPACA,IAAA,EAAA,EAAA,CAAA,CAAA,mLaUA,EAK4C,EAAW,CAAA,ACJlD,AFAA,GAAA,KCiBC,EAAA,CAAA,EAAO,CDhBR,AEAQ,ADgBA,CAAA,OAAA,EAAA,kDJ1Bc,GAAA,qCACT,8DAEd,WAAc,CKAP,AFAA,ACAA,AJAO,CIAP,ACAA,AFAA,AHAO,CKAP,ADAA,ADAA,AHAO,CKAP,ADAA,ADAA,AHAO,CKAP,ALAO,AIAP,ADAA,CHAO,AGAP,ACAA,ACAA,CAAA,AFAA,AHAO,AIAP,CDAA,ACAA,ACAA,ALAO,CGAP,ACAA,ACAA,ALAO,CIAP,AJAO,AKAP,AFAA,CEAA,ALAO,AGAP,ACAA,CCAA,ALAO,AGAP,ACAA,8DJCiC,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,YACzC,UAAW,CAAA,GAAK,CAAA,CAAA,MAAA,CAAU,CAAA,qCACC,uGASD,CGLyC,AEAzB,ALKhB,CAAW,CKJlD,ALIkD,GAAA,CAavD,IAAA,EAAA,CAAA,EAAA,EAAA,OAAA,EAA6B,CAAA,AKhBX,iDNZI,CCAD,AEAH,AHAI,AEAA,IFAM,CEAA,ACAV,AFAS,ADAC,MAAQ,OAAS,IAAK,CCAA,CAAA,ADAG,CAAA,ACAH,ACAG,CDAH,ACAG,AFAA,CCAH,ACAG,AFAA,CEAA,ADAH,ADAG,GAAS,CEAA,AFAA,CEAA,AFAA,CEAA,AFAA,CAAA,AEAA,IFAU,CEAA,AFAA,CEAA,AFAA,CEAA,AFAA,CEAA,AFAA,CEAA,AFAA,CEAA,AFAA,CEAA,AFAA,CAAA,CEAU,AFAA,CAAA,aAC/D,OAAS,QAAU,KAAM,GAAI,CAAA,AGA9B,IHAoC,IAAK,CGAzC,AHAyC,SAAU,CGAH,AHC9D,CGD8D,CAAA,UHC/C,CAAA,ACA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","ignoreList":[8,9,10,11,12,13,14]}