vibedoc 1.7.0 → 1.8.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 (638) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +42 -14
  5. package/.next/routes-manifest.json +54 -0
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/manual-tests/page/app-paths-manifest.json +3 -0
  17. package/.next/server/app/(app)/manual-tests/page/build-manifest.json +20 -0
  18. package/.next/server/app/(app)/manual-tests/page/next-font-manifest.json +11 -0
  19. package/.next/server/app/(app)/manual-tests/page/react-loadable-manifest.json +1 -0
  20. package/.next/server/app/(app)/manual-tests/page/server-reference-manifest.json +4 -0
  21. package/.next/server/app/(app)/manual-tests/page.js +15 -0
  22. package/.next/server/app/(app)/manual-tests/page.js.map +5 -0
  23. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -0
  24. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +3 -0
  25. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/_global-error.html +1 -1
  34. package/.next/server/app/_global-error.rsc +1 -1
  35. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  36. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  38. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  39. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/_not-found.html +1 -1
  41. package/.next/server/app/_not-found.rsc +3 -2
  42. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -2
  43. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -2
  44. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  45. package/.next/server/app/activity.html +1 -1
  46. package/.next/server/app/activity.rsc +20 -18
  47. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +7 -6
  48. package/.next/server/app/activity.segments/_full.segment.rsc +20 -18
  49. package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
  50. package/.next/server/app/api/activity/route.js +2 -2
  51. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  52. package/.next/server/app/api/backlinks/route.js +2 -2
  53. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  54. package/.next/server/app/api/chat/route.js +1 -1
  55. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  56. package/.next/server/app/api/context/route.js +2 -2
  57. package/.next/server/app/api/context/route.js.nft.json +1 -1
  58. package/.next/server/app/api/conversations/route.js +2 -2
  59. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  60. package/.next/server/app/api/decisions/route.js +2 -2
  61. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  62. package/.next/server/app/api/docs/route.js +1 -1
  63. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  64. package/.next/server/app/api/explorer/route.js +2 -2
  65. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  66. package/.next/server/app/api/mcp/route.js +1 -1
  67. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  68. package/.next/server/app/api/memory/route.js +2 -2
  69. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  70. package/.next/server/app/api/plan/apply/route.js +3 -3
  71. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  72. package/.next/server/app/api/projects/route.js +2 -2
  73. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  74. package/.next/server/app/api/registry/route.js +2 -2
  75. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  76. package/.next/server/app/api/roadmap/create/route.js +3 -3
  77. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  78. package/.next/server/app/api/roadmap/delete/route.js +3 -3
  79. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  80. package/.next/server/app/api/roadmap/generate/route.js +3 -3
  81. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  82. package/.next/server/app/api/roadmap/layout/route.js +3 -3
  83. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  84. package/.next/server/app/api/roadmap/restore/route/app-paths-manifest.json +3 -0
  85. package/.next/server/app/api/roadmap/restore/route/build-manifest.json +12 -0
  86. package/.next/server/app/api/roadmap/restore/route/server-reference-manifest.json +4 -0
  87. package/.next/server/app/api/roadmap/restore/route.js +9 -0
  88. package/.next/server/app/api/roadmap/restore/route.js.map +5 -0
  89. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -0
  90. package/.next/server/app/api/roadmap/restore/route_client-reference-manifest.js +3 -0
  91. package/.next/server/app/api/roadmap/route.js +3 -3
  92. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  93. package/.next/server/app/api/roadmap/update/route.js +3 -3
  94. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  95. package/.next/server/app/api/sessions/route.js +2 -2
  96. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  97. package/.next/server/app/api/settings/route.js +3 -3
  98. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  99. package/.next/server/app/api/setup/generate/route.js +1 -1
  100. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  101. package/.next/server/app/api/setup/write/route.js +2 -2
  102. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  103. package/.next/server/app/api/summary/route.js +2 -2
  104. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  105. package/.next/server/app/api/tasks/bulk/route/app-paths-manifest.json +3 -0
  106. package/.next/server/app/api/tasks/bulk/route/build-manifest.json +12 -0
  107. package/.next/server/app/api/tasks/bulk/route/server-reference-manifest.json +4 -0
  108. package/.next/server/app/api/tasks/bulk/route.js +9 -0
  109. package/.next/server/app/api/tasks/bulk/route.js.map +5 -0
  110. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -0
  111. package/.next/server/app/api/tasks/bulk/route_client-reference-manifest.js +3 -0
  112. package/.next/server/app/api/tasks/create/route.js +2 -2
  113. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  114. package/.next/server/app/api/tasks/delete/route/app-paths-manifest.json +3 -0
  115. package/.next/server/app/api/tasks/delete/route/build-manifest.json +12 -0
  116. package/.next/server/app/api/tasks/delete/route/server-reference-manifest.json +4 -0
  117. package/.next/server/app/api/tasks/delete/route.js +9 -0
  118. package/.next/server/app/api/tasks/delete/route.js.map +5 -0
  119. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -0
  120. package/.next/server/app/api/tasks/delete/route_client-reference-manifest.js +3 -0
  121. package/.next/server/app/api/tasks/manual-tests/route/app-paths-manifest.json +3 -0
  122. package/.next/server/app/api/tasks/manual-tests/route/build-manifest.json +12 -0
  123. package/.next/server/app/api/tasks/manual-tests/route/server-reference-manifest.json +4 -0
  124. package/.next/server/app/api/tasks/manual-tests/route.js +8 -0
  125. package/.next/server/app/api/tasks/manual-tests/route.js.map +5 -0
  126. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -0
  127. package/.next/server/app/api/tasks/manual-tests/route_client-reference-manifest.js +3 -0
  128. package/.next/server/app/api/tasks/restore/route/app-paths-manifest.json +3 -0
  129. package/.next/server/app/api/tasks/restore/route/build-manifest.json +12 -0
  130. package/.next/server/app/api/tasks/restore/route/server-reference-manifest.json +4 -0
  131. package/.next/server/app/api/tasks/restore/route.js +9 -0
  132. package/.next/server/app/api/tasks/restore/route.js.map +5 -0
  133. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -0
  134. package/.next/server/app/api/tasks/restore/route_client-reference-manifest.js +3 -0
  135. package/.next/server/app/api/tasks/review/route/app-paths-manifest.json +3 -0
  136. package/.next/server/app/api/tasks/review/route/build-manifest.json +12 -0
  137. package/.next/server/app/api/tasks/review/route/server-reference-manifest.json +4 -0
  138. package/.next/server/app/api/tasks/review/route.js +9 -0
  139. package/.next/server/app/api/tasks/review/route.js.map +5 -0
  140. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -0
  141. package/.next/server/app/api/tasks/review/route_client-reference-manifest.js +3 -0
  142. package/.next/server/app/api/tasks/route.js +2 -2
  143. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  144. package/.next/server/app/api/tasks/update/route/app-paths-manifest.json +3 -0
  145. package/.next/server/app/api/tasks/update/route/build-manifest.json +12 -0
  146. package/.next/server/app/api/tasks/update/route/server-reference-manifest.json +4 -0
  147. package/.next/server/app/api/tasks/update/route.js +9 -0
  148. package/.next/server/app/api/tasks/update/route.js.map +5 -0
  149. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -0
  150. package/.next/server/app/api/tasks/update/route_client-reference-manifest.js +3 -0
  151. package/.next/server/app/api/views/route/app-paths-manifest.json +3 -0
  152. package/.next/server/app/api/views/route/build-manifest.json +12 -0
  153. package/.next/server/app/api/views/route/server-reference-manifest.json +4 -0
  154. package/.next/server/app/api/views/route.js +9 -0
  155. package/.next/server/app/api/views/route.js.map +5 -0
  156. package/.next/server/app/api/views/route.js.nft.json +1 -0
  157. package/.next/server/app/api/views/route_client-reference-manifest.js +3 -0
  158. package/.next/server/app/board.html +1 -1
  159. package/.next/server/app/board.rsc +20 -18
  160. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +7 -6
  161. package/.next/server/app/board.segments/_full.segment.rsc +20 -18
  162. package/.next/server/app/board.segments/_tree.segment.rsc +3 -2
  163. package/.next/server/app/chat.html +1 -1
  164. package/.next/server/app/chat.rsc +20 -18
  165. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +12 -9
  166. package/.next/server/app/chat.segments/_full.segment.rsc +20 -18
  167. package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
  168. package/.next/server/app/docs.html +1 -1
  169. package/.next/server/app/docs.rsc +20 -18
  170. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -5
  171. package/.next/server/app/docs.segments/_full.segment.rsc +20 -18
  172. package/.next/server/app/docs.segments/_tree.segment.rsc +3 -2
  173. package/.next/server/app/explorer.html +1 -1
  174. package/.next/server/app/explorer.rsc +20 -18
  175. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +11 -9
  176. package/.next/server/app/explorer.segments/_full.segment.rsc +20 -18
  177. package/.next/server/app/explorer.segments/_tree.segment.rsc +3 -2
  178. package/.next/server/app/index.html +1 -1
  179. package/.next/server/app/index.rsc +3 -2
  180. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -2
  181. package/.next/server/app/index.segments/_full.segment.rsc +3 -2
  182. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  183. package/.next/server/app/manual-tests.html +1 -0
  184. package/.next/server/app/manual-tests.meta +31 -0
  185. package/.next/server/app/manual-tests.rsc +31 -0
  186. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +33 -0
  187. package/.next/server/app/manual-tests.segments/_full.segment.rsc +31 -0
  188. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +5 -0
  189. package/.next/server/app/memory.html +1 -1
  190. package/.next/server/app/memory.rsc +20 -18
  191. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +11 -9
  192. package/.next/server/app/memory.segments/_full.segment.rsc +20 -18
  193. package/.next/server/app/memory.segments/_tree.segment.rsc +3 -2
  194. package/.next/server/app/page.js.nft.json +1 -1
  195. package/.next/server/app/page_client-reference-manifest.js +1 -1
  196. package/.next/server/app/roadmap.html +1 -1
  197. package/.next/server/app/roadmap.rsc +20 -18
  198. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +6 -5
  199. package/.next/server/app/roadmap.segments/_full.segment.rsc +20 -18
  200. package/.next/server/app/roadmap.segments/_tree.segment.rsc +3 -2
  201. package/.next/server/app/settings.html +1 -1
  202. package/.next/server/app/settings.rsc +20 -18
  203. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +7 -6
  204. package/.next/server/app/settings.segments/_full.segment.rsc +20 -18
  205. package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  206. package/.next/server/app/setup.html +1 -1
  207. package/.next/server/app/setup.rsc +20 -18
  208. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +11 -9
  209. package/.next/server/app/setup.segments/_full.segment.rsc +20 -18
  210. package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  211. package/.next/server/app-paths-manifest.json +9 -0
  212. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js → 11mp_@anthropic-ai_sdk_00p3fu1._.js} +1 -1
  213. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js → 11mp_@anthropic-ai_sdk_01amtux._.js} +1 -1
  214. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js → 11mp_@anthropic-ai_sdk_01jjl08._.js} +1 -1
  215. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js → 11mp_@anthropic-ai_sdk_071zfm8._.js} +1 -1
  216. package/.next/server/chunks/11mp_@anthropic-ai_sdk_07v3boe._.js +3 -0
  217. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09iva72._.js +3 -0
  218. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0bom1b1._.js +3 -0
  219. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dvji7p._.js +3 -0
  220. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dzo8jn._.js +3 -0
  221. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hvqsqq._.js +3 -0
  222. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i7i-jw._.js +3 -0
  223. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k0iop5._.js +3 -0
  224. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l3-6aq._.js +3 -0
  225. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0oegm3y._.js +3 -0
  226. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0p5cyes._.js +3 -0
  227. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qw8i6_._.js +3 -0
  228. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yk-a7v._.js +3 -0
  229. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11fsqvb._.js +3 -0
  230. package/.next/server/chunks/11mp_@anthropic-ai_sdk_143_7ez._.js +3 -0
  231. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14a4-64._.js +3 -0
  232. package/.next/server/chunks/11mp_@anthropic-ai_sdk_17d_oma._.js +3 -0
  233. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18qwuyb._.js +3 -0
  234. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19au8y6._.js +3 -0
  235. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ak_hy5._.js +3 -0
  236. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cqa0nq._.js +3 -0
  237. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i-x_q0._.js +3 -0
  238. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js +3 -0
  239. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js.map +1 -0
  240. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js +3 -0
  241. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js.map +1 -0
  242. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js +3 -0
  243. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js.map +1 -0
  244. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js +3 -0
  245. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js.map +1 -0
  246. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js +3 -0
  247. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js.map +1 -0
  248. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js +3 -0
  249. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js.map +1 -0
  250. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js +3 -0
  251. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js.map +1 -0
  252. package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js +3 -0
  253. package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js.map +1 -0
  254. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js +3 -0
  255. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js +3 -0
  256. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js +3 -0
  257. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js +3 -0
  258. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js +3 -0
  259. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js +3 -0
  260. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js +3 -0
  261. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js +3 -0
  262. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js +3 -0
  263. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js +3 -0
  264. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js +3 -0
  265. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js +3 -0
  266. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js +3 -0
  267. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js +3 -0
  268. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js +3 -0
  269. package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js → [root-of-the-server]__0-pmfg2._.js} +2 -2
  270. package/.next/server/chunks/[root-of-the-server]__02co2yq._.js +3 -0
  271. package/.next/server/chunks/[root-of-the-server]__02co2yq._.js.map +1 -0
  272. package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js → [root-of-the-server]__04tibmn._.js} +2 -2
  273. package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js → [root-of-the-server]__05g5cgo._.js} +2 -2
  274. package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js → [root-of-the-server]__0b5pwze._.js} +2 -2
  275. package/.next/server/chunks/{[root-of-the-server]__142icjb._.js → [root-of-the-server]__0druay_._.js} +2 -2
  276. package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js → [root-of-the-server]__0p6ja6l._.js} +2 -2
  277. package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js +3 -0
  278. package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js.map +1 -0
  279. package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js +3 -0
  280. package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js.map +1 -0
  281. package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js → [root-of-the-server]__1-e3i_5._.js} +2 -2
  282. package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js +3 -0
  283. package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js.map +1 -0
  284. package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js +3 -0
  285. package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js.map +1 -0
  286. package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js → [root-of-the-server]__11c8641._.js} +2 -2
  287. package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js +3 -0
  288. package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js.map +1 -0
  289. package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js +3 -0
  290. package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js.map +1 -0
  291. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +30 -19
  292. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -1
  293. package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js → [root-of-the-server]__197vw9g._.js} +2 -2
  294. package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js → [root-of-the-server]__19k8t87._.js} +2 -2
  295. package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js → [root-of-the-server]__1ezzeji._.js} +2 -2
  296. package/.next/server/chunks/[root-of-the-server]__1mrmaf9._.js +3 -0
  297. package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js → [root-of-the-server]__1n68akx._.js} +2 -2
  298. package/.next/server/chunks/[root-of-the-server]__1n68akx._.js.map +1 -0
  299. package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js → [root-of-the-server]__1npya5q._.js} +2 -2
  300. package/.next/server/chunks/[root-of-the-server]__1npya5q._.js.map +1 -0
  301. package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js +3 -0
  302. package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js.map +1 -0
  303. package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js → [root-of-the-server]__1umrorf._.js} +2 -2
  304. package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js → [root-of-the-server]__1vh9g2o._.js} +2 -2
  305. package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js → [root-of-the-server]__1vq38ov._.js} +2 -2
  306. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +1 -1
  307. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js.map +1 -1
  308. package/.next/server/chunks/_04byth9._.js +24 -19
  309. package/.next/server/chunks/_04byth9._.js.map +1 -1
  310. package/.next/server/chunks/_1au4syj._.js +1 -1
  311. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  312. package/.next/server/chunks/_1b5fqxy._.js.map +1 -1
  313. package/.next/server/chunks/_1ivswa9._.js +3 -0
  314. package/.next/server/chunks/_1ivswa9._.js.map +1 -0
  315. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js +3 -0
  316. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js.map +1 -0
  317. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js +3 -0
  318. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js.map +1 -0
  319. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js +3 -0
  320. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js.map +1 -0
  321. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js +3 -0
  322. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js.map +1 -0
  323. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js +3 -0
  324. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js.map +1 -0
  325. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js +3 -0
  326. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js.map +1 -0
  327. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js +3 -0
  328. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js.map +1 -0
  329. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js +3 -0
  330. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js.map +1 -0
  331. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js +3 -0
  332. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js.map +1 -0
  333. 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
  334. package/.next/server/chunks/ssr/0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js.map +1 -0
  335. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_1z0p1bs._.js → 1u84_katex_dist_katex_mjs_1kb5xea._.js} +1 -1
  336. package/.next/server/chunks/ssr/1u84_katex_dist_katex_mjs_1kb5xea._.js.map +1 -0
  337. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js +1 -1
  338. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js.map +1 -1
  339. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js +3 -0
  340. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js.map +1 -0
  341. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js +3 -0
  342. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js.map +1 -0
  343. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js +3 -0
  344. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js.map +1 -0
  345. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js +3 -0
  346. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js.map +1 -0
  347. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js +3 -0
  348. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js.map +1 -0
  349. package/.next/server/chunks/ssr/[root-of-the-server]__0xt_0w2._.js.map +1 -1
  350. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  351. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  352. package/.next/server/chunks/ssr/_071j6mr._.js +4 -0
  353. package/.next/server/chunks/ssr/_071j6mr._.js.map +1 -0
  354. package/.next/server/chunks/ssr/_09b02z-._.js +3 -0
  355. package/.next/server/chunks/ssr/_09b02z-._.js.map +1 -0
  356. package/.next/server/chunks/ssr/_0d0f1s1._.js +3 -0
  357. package/.next/server/chunks/ssr/_0d0f1s1._.js.map +1 -0
  358. package/.next/server/chunks/ssr/_0idb-vo._.js +151 -0
  359. package/.next/server/chunks/ssr/_0idb-vo._.js.map +1 -0
  360. package/.next/server/chunks/ssr/_0lnt_va._.js +4 -0
  361. package/.next/server/chunks/ssr/_0lnt_va._.js.map +1 -0
  362. package/.next/server/chunks/ssr/_0qlymco._.js +3 -0
  363. package/.next/server/chunks/ssr/_0qlymco._.js.map +1 -0
  364. package/.next/server/chunks/ssr/_0qp3gu7._.js +3 -0
  365. package/.next/server/chunks/ssr/_0qp3gu7._.js.map +1 -0
  366. package/.next/server/chunks/ssr/_0sg1oeq._.js +3 -0
  367. package/.next/server/chunks/ssr/_0sg1oeq._.js.map +1 -0
  368. package/.next/server/chunks/ssr/_14emfpq._.js +3 -0
  369. package/.next/server/chunks/ssr/_14emfpq._.js.map +1 -0
  370. package/.next/server/chunks/ssr/_1ftruw6._.js +4 -0
  371. package/.next/server/chunks/ssr/_1ftruw6._.js.map +1 -0
  372. package/.next/server/chunks/ssr/_1gxjjvh._.js +1 -1
  373. package/.next/server/chunks/ssr/_1gxjjvh._.js.map +1 -1
  374. package/.next/server/chunks/ssr/_1ncdakv._.js +4 -0
  375. package/.next/server/chunks/ssr/_1ncdakv._.js.map +1 -0
  376. package/.next/server/chunks/ssr/_1t76zdx._.js +3 -0
  377. package/.next/server/chunks/ssr/_1t76zdx._.js.map +1 -0
  378. package/.next/server/chunks/ssr/_1x7ggg5._.js +4 -0
  379. package/.next/server/chunks/ssr/_1x7ggg5._.js.map +1 -0
  380. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js +3 -0
  381. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js.map +1 -0
  382. package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js → node_modules__pnpm_01bjcv9._.js} +1 -1
  383. package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js → node_modules__pnpm_03qrzdb._.js} +1 -1
  384. package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js → node_modules__pnpm_06d-fdo._.js} +2 -2
  385. package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js → node_modules__pnpm_0ctisl0._.js} +1 -1
  386. package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js → node_modules__pnpm_0fwp8jm._.js} +1 -1
  387. package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js → node_modules__pnpm_0kpu0-2._.js} +1 -1
  388. package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js → node_modules__pnpm_0vry74x._.js} +2 -2
  389. package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js → node_modules__pnpm_0ycbjbd._.js} +2 -2
  390. package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js → node_modules__pnpm_1-76qxg._.js} +1 -1
  391. package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js → node_modules__pnpm_1-r94f7._.js} +1 -1
  392. package/.next/server/chunks/ssr/{node_modules__pnpm_1yq90z7._.js → node_modules__pnpm_14piqi4._.js} +1 -1
  393. package/.next/server/chunks/ssr/node_modules__pnpm_14piqi4._.js.map +1 -0
  394. package/.next/server/chunks/ssr/{node_modules__pnpm_0dwi7mu._.js → node_modules__pnpm_16u1vfb._.js} +2 -2
  395. package/.next/server/chunks/ssr/node_modules__pnpm_16u1vfb._.js.map +1 -0
  396. package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js → node_modules__pnpm_17i6z2d._.js} +1 -1
  397. package/.next/server/chunks/ssr/{node_modules__pnpm_09_i2jk._.js → node_modules__pnpm_189m48n._.js} +1 -1
  398. package/.next/server/chunks/ssr/node_modules__pnpm_189m48n._.js.map +1 -0
  399. package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js → node_modules__pnpm_192f222._.js} +1 -1
  400. package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js → node_modules__pnpm_1a48_nl._.js} +1 -1
  401. package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js → node_modules__pnpm_1aa37e1._.js} +1 -1
  402. package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js → node_modules__pnpm_1f440kx._.js} +1 -1
  403. package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js → node_modules__pnpm_1fn3ejy._.js} +1 -1
  404. package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js → node_modules__pnpm_1min2jl._.js} +1 -1
  405. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js +3 -0
  406. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js.map +1 -0
  407. package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js → node_modules__pnpm_1q_hhr3._.js} +2 -2
  408. package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js → node_modules__pnpm_1qmkxyo._.js} +1 -1
  409. package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js → node_modules__pnpm_1qp_jvj._.js} +2 -2
  410. package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js → node_modules__pnpm_1ssjj4u._.js} +1 -1
  411. package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js → node_modules__pnpm_1txccoj._.js} +1 -1
  412. package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js → node_modules__pnpm_1uwkcin._.js} +1 -1
  413. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js +3 -0
  414. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js.map +1 -0
  415. package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js → node_modules__pnpm_1ygal0c._.js} +1 -1
  416. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js +1 -1
  417. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js.map +1 -1
  418. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +3 -0
  419. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -0
  420. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +1 -1
  421. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -1
  422. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
  423. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
  424. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js +3 -0
  425. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js.map +1 -0
  426. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +2 -2
  427. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -1
  428. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +2 -2
  429. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
  430. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js +1 -1
  431. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js.map +1 -1
  432. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +3 -0
  433. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -0
  434. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +2 -2
  435. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -1
  436. package/.next/server/middleware-build-manifest.js +3 -3
  437. package/.next/server/next-font-manifest.js +1 -1
  438. package/.next/server/next-font-manifest.json +4 -0
  439. package/.next/server/pages/404.html +1 -1
  440. package/.next/server/pages/500.html +1 -1
  441. package/.next/server/prefetch-hints.json +19 -0
  442. package/.next/server/server-reference-manifest.js +1 -1
  443. package/.next/server/server-reference-manifest.json +1 -1
  444. package/.next/static/chunks/02cj5_i9np4sg.js +3 -0
  445. package/.next/static/chunks/02i5hsdat1nuq.css +9 -0
  446. package/.next/static/chunks/0mgifb98wbesa.js +1 -0
  447. package/.next/static/chunks/0p1-hkgnm2ll2.js +1 -0
  448. package/.next/static/chunks/0pgu5q5vodev6.js +1 -0
  449. package/.next/static/chunks/0rqzvayflendx.js +2 -0
  450. package/.next/static/chunks/0vcfs7dii85tw.js +21 -0
  451. package/.next/static/chunks/13l4l-boqg8fx.js +1 -0
  452. package/.next/static/chunks/14hxe1qiaram9.js +1 -0
  453. package/.next/static/chunks/150y5rwg6gwvx.css +1 -0
  454. package/.next/static/chunks/16k196zyl-n9q.js +1 -0
  455. package/.next/static/chunks/18b5l8p0vd9f8.js +1 -0
  456. package/.next/static/chunks/1c_8t2kecjnua.js +1 -0
  457. package/.next/static/chunks/1fd43t9y42wd3.js +1 -0
  458. package/.next/static/chunks/1q50zh5z-fq2k.js +2 -0
  459. package/.next/static/chunks/1tu8lforstp1o.js +1 -0
  460. package/.next/static/chunks/23-xknrz6o748.js +1 -0
  461. package/.next/static/chunks/2_xpm7qhr69n8.js +2 -0
  462. package/.next/static/chunks/2ls_yp4-qgb42.js +1 -0
  463. package/.next/static/chunks/2zz0ip2l_29c3.js +3 -0
  464. package/.next/static/chunks/3ly7b47esdb7j.js +1 -0
  465. package/.next/static/chunks/3ruw8lu2_re-h.js +1 -0
  466. package/.next/static/chunks/3vf5nnd4xjo5_.js +1 -0
  467. package/.next/static/chunks/40jaenrnspnlh.js +68 -0
  468. package/.next/static/chunks/41oxcdcw-pcwt.js +1 -0
  469. package/README.md +2 -1
  470. package/package.json +1 -1
  471. package/skills/work-epic/SKILL.md +22 -3
  472. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +0 -3
  473. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +0 -3
  474. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +0 -3
  475. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +0 -3
  476. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +0 -3
  477. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +0 -3
  478. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +0 -3
  479. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +0 -3
  480. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +0 -3
  481. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +0 -3
  482. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +0 -3
  483. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +0 -3
  484. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +0 -3
  485. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +0 -3
  486. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +0 -3
  487. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +0 -3
  488. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +0 -3
  489. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +0 -3
  490. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +0 -3
  491. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +0 -3
  492. package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +0 -3
  493. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +0 -3
  494. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +0 -3
  495. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +0 -3
  496. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +0 -3
  497. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +0 -3
  498. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +0 -3
  499. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +0 -3
  500. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +0 -3
  501. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +0 -3
  502. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +0 -3
  503. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +0 -3
  504. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js.map +0 -1
  505. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +0 -3
  506. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +0 -1
  507. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +0 -3
  508. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +0 -1
  509. package/.next/server/chunks/ssr/_059qmur._.js +0 -3
  510. package/.next/server/chunks/ssr/_059qmur._.js.map +0 -1
  511. package/.next/server/chunks/ssr/_081irea._.js +0 -3
  512. package/.next/server/chunks/ssr/_081irea._.js.map +0 -1
  513. package/.next/server/chunks/ssr/_0d8t8l4._.js +0 -3
  514. package/.next/server/chunks/ssr/_0d8t8l4._.js.map +0 -1
  515. package/.next/server/chunks/ssr/_0dyvcdg._.js +0 -3
  516. package/.next/server/chunks/ssr/_0dyvcdg._.js.map +0 -1
  517. package/.next/server/chunks/ssr/_1-ghqy4._.js +0 -3
  518. package/.next/server/chunks/ssr/_1-ghqy4._.js.map +0 -1
  519. package/.next/server/chunks/ssr/_17jy5db._.js +0 -3
  520. package/.next/server/chunks/ssr/_17jy5db._.js.map +0 -1
  521. package/.next/server/chunks/ssr/_1c95ems._.js +0 -151
  522. package/.next/server/chunks/ssr/_1c95ems._.js.map +0 -1
  523. package/.next/server/chunks/ssr/_1dllfz5._.js +0 -4
  524. package/.next/server/chunks/ssr/_1dllfz5._.js.map +0 -1
  525. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +0 -3
  526. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +0 -1
  527. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js +0 -3
  528. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js.map +0 -1
  529. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +0 -3
  530. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +0 -1
  531. package/.next/server/chunks/ssr/src_components_14pwej-._.js +0 -3
  532. package/.next/server/chunks/ssr/src_components_14pwej-._.js.map +0 -1
  533. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js +0 -3
  534. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js.map +0 -1
  535. package/.next/static/chunks/0-z7kyblalrea.js +0 -1
  536. package/.next/static/chunks/050mq8l4e1ubn.js +0 -1
  537. package/.next/static/chunks/098le48845_fg.js +0 -3
  538. package/.next/static/chunks/0cw4-ebkoufdc.js +0 -1
  539. package/.next/static/chunks/0feo-go1w5nct.js +0 -1
  540. package/.next/static/chunks/0k2qhx29amdgs.js +0 -1
  541. package/.next/static/chunks/14sefb904pl64.js +0 -21
  542. package/.next/static/chunks/1fer-wulyrjrs.js +0 -3
  543. package/.next/static/chunks/1o7b1x4umy8a6.js +0 -1
  544. package/.next/static/chunks/1q_io1j58aukw.js +0 -1
  545. package/.next/static/chunks/1r7z33e9jk3vp.js +0 -1
  546. package/.next/static/chunks/1t-cgh4477hfo.js +0 -1
  547. package/.next/static/chunks/1u-1po1qesc9f.js +0 -1
  548. package/.next/static/chunks/1u5kegkgm0xoz.js +0 -1
  549. package/.next/static/chunks/24ygzsgd-moqy.js +0 -1
  550. package/.next/static/chunks/26folxgplfa9t.js +0 -68
  551. package/.next/static/chunks/2ocixvjhv34_3.js +0 -1
  552. package/.next/static/chunks/3_lsdgxa-h7ma.css +0 -10
  553. package/.next/static/chunks/3rmv-sb9w9i3e.js +0 -1
  554. package/.next/static/chunks/3smp1lj103j-l.js +0 -1
  555. package/.next/static/chunks/3ttzomivj48jh.js +0 -2
  556. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js.map → 11mp_@anthropic-ai_sdk_00p3fu1._.js.map} +0 -0
  557. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js.map → 11mp_@anthropic-ai_sdk_01amtux._.js.map} +0 -0
  558. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js.map → 11mp_@anthropic-ai_sdk_01jjl08._.js.map} +0 -0
  559. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js.map → 11mp_@anthropic-ai_sdk_071zfm8._.js.map} +0 -0
  560. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0am8bw2._.js.map → 11mp_@anthropic-ai_sdk_07v3boe._.js.map} +0 -0
  561. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0enefn6._.js.map → 11mp_@anthropic-ai_sdk_09iva72._.js.map} +0 -0
  562. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k3n_5f._.js.map → 11mp_@anthropic-ai_sdk_0bom1b1._.js.map} +0 -0
  563. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lcfjm4._.js.map → 11mp_@anthropic-ai_sdk_0dvji7p._.js.map} +0 -0
  564. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lfx9av._.js.map → 11mp_@anthropic-ai_sdk_0dzo8jn._.js.map} +0 -0
  565. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qau3qw._.js.map → 11mp_@anthropic-ai_sdk_0hvqsqq._.js.map} +0 -0
  566. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r1pmvm._.js.map → 11mp_@anthropic-ai_sdk_0i7i-jw._.js.map} +0 -0
  567. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11t-z2t._.js.map → 11mp_@anthropic-ai_sdk_0k0iop5._.js.map} +0 -0
  568. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15hyn79._.js.map → 11mp_@anthropic-ai_sdk_0l3-6aq._.js.map} +0 -0
  569. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_qk07x._.js.map → 11mp_@anthropic-ai_sdk_0oegm3y._.js.map} +0 -0
  570. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b2929e._.js.map → 11mp_@anthropic-ai_sdk_0p5cyes._.js.map} +0 -0
  571. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1e72c89._.js.map → 11mp_@anthropic-ai_sdk_0qw8i6_._.js.map} +0 -0
  572. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1eq7asn._.js.map → 11mp_@anthropic-ai_sdk_0yk-a7v._.js.map} +0 -0
  573. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fhdojs._.js.map → 11mp_@anthropic-ai_sdk_11fsqvb._.js.map} +0 -0
  574. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1htgzmb._.js.map → 11mp_@anthropic-ai_sdk_143_7ez._.js.map} +0 -0
  575. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lh_vwq._.js.map → 11mp_@anthropic-ai_sdk_14a4-64._.js.map} +0 -0
  576. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ludf-o._.js.map → 11mp_@anthropic-ai_sdk_17d_oma._.js.map} +0 -0
  577. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1m3luz3._.js.map → 11mp_@anthropic-ai_sdk_18qwuyb._.js.map} +0 -0
  578. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1x1iz3d._.js.map → 11mp_@anthropic-ai_sdk_19au8y6._.js.map} +0 -0
  579. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xsmwlh._.js.map → 11mp_@anthropic-ai_sdk_1ak_hy5._.js.map} +0 -0
  580. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_202spah._.js.map → 11mp_@anthropic-ai_sdk_1cqa0nq._.js.map} +0 -0
  581. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_215hw9u._.js.map → 11mp_@anthropic-ai_sdk_1i-x_q0._.js.map} +0 -0
  582. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js.map} +0 -0
  583. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js.map} +0 -0
  584. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js.map} +0 -0
  585. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js.map} +0 -0
  586. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js.map} +0 -0
  587. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js.map} +0 -0
  588. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js.map} +0 -0
  589. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js.map} +0 -0
  590. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js.map} +0 -0
  591. /package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js.map} +0 -0
  592. /package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js.map} +0 -0
  593. /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js.map} +0 -0
  594. /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_1z0p1bs._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js.map} +0 -0
  595. /package/.next/server/chunks/{ssr/node_modules__pnpm_09_i2jk._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js.map} +0 -0
  596. /package/.next/server/chunks/{ssr/node_modules__pnpm_0dwi7mu._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js.map} +0 -0
  597. /package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js.map → [root-of-the-server]__0-pmfg2._.js.map} +0 -0
  598. /package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js.map → [root-of-the-server]__04tibmn._.js.map} +0 -0
  599. /package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js.map → [root-of-the-server]__05g5cgo._.js.map} +0 -0
  600. /package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js.map → [root-of-the-server]__0b5pwze._.js.map} +0 -0
  601. /package/.next/server/chunks/{[root-of-the-server]__142icjb._.js.map → [root-of-the-server]__0druay_._.js.map} +0 -0
  602. /package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js.map → [root-of-the-server]__0p6ja6l._.js.map} +0 -0
  603. /package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js.map → [root-of-the-server]__1-e3i_5._.js.map} +0 -0
  604. /package/.next/server/chunks/{ssr/node_modules__pnpm_1yq90z7._.js.map → [root-of-the-server]__11c8641._.js.map} +0 -0
  605. /package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js.map → [root-of-the-server]__197vw9g._.js.map} +0 -0
  606. /package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js.map → [root-of-the-server]__19k8t87._.js.map} +0 -0
  607. /package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js.map → [root-of-the-server]__1ezzeji._.js.map} +0 -0
  608. /package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js.map → [root-of-the-server]__1mrmaf9._.js.map} +0 -0
  609. /package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js.map → [root-of-the-server]__1umrorf._.js.map} +0 -0
  610. /package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js.map → [root-of-the-server]__1vh9g2o._.js.map} +0 -0
  611. /package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js.map → [root-of-the-server]__1vq38ov._.js.map} +0 -0
  612. /package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js.map → node_modules__pnpm_01bjcv9._.js.map} +0 -0
  613. /package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js.map → node_modules__pnpm_03qrzdb._.js.map} +0 -0
  614. /package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js.map → node_modules__pnpm_06d-fdo._.js.map} +0 -0
  615. /package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js.map → node_modules__pnpm_0ctisl0._.js.map} +0 -0
  616. /package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js.map → node_modules__pnpm_0fwp8jm._.js.map} +0 -0
  617. /package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js.map → node_modules__pnpm_0kpu0-2._.js.map} +0 -0
  618. /package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js.map → node_modules__pnpm_0vry74x._.js.map} +0 -0
  619. /package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js.map → node_modules__pnpm_0ycbjbd._.js.map} +0 -0
  620. /package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js.map → node_modules__pnpm_1-76qxg._.js.map} +0 -0
  621. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js.map → node_modules__pnpm_1-r94f7._.js.map} +0 -0
  622. /package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js.map → node_modules__pnpm_17i6z2d._.js.map} +0 -0
  623. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js.map → node_modules__pnpm_192f222._.js.map} +0 -0
  624. /package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js.map → node_modules__pnpm_1a48_nl._.js.map} +0 -0
  625. /package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js.map → node_modules__pnpm_1aa37e1._.js.map} +0 -0
  626. /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js.map → node_modules__pnpm_1f440kx._.js.map} +0 -0
  627. /package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js.map → node_modules__pnpm_1fn3ejy._.js.map} +0 -0
  628. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js.map → node_modules__pnpm_1min2jl._.js.map} +0 -0
  629. /package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js.map → node_modules__pnpm_1q_hhr3._.js.map} +0 -0
  630. /package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js.map → node_modules__pnpm_1qmkxyo._.js.map} +0 -0
  631. /package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js.map → node_modules__pnpm_1qp_jvj._.js.map} +0 -0
  632. /package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js.map → node_modules__pnpm_1ssjj4u._.js.map} +0 -0
  633. /package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js.map → node_modules__pnpm_1txccoj._.js.map} +0 -0
  634. /package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js.map → node_modules__pnpm_1uwkcin._.js.map} +0 -0
  635. /package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js.map → node_modules__pnpm_1ygal0c._.js.map} +0 -0
  636. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → fGPda81_8-K4GmaNUE6KA}/_buildManifest.js +0 -0
  637. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → fGPda81_8-K4GmaNUE6KA}/_clientMiddlewareManifest.js +0 -0
  638. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → fGPda81_8-K4GmaNUE6KA}/_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/columns-3.ts","../../../../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/type.ts","../../../../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/moon.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]\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: '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: '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: '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: '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: '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"],"names":["__iconData","size","d","cx","fill","key","cy","r","Palette","node"],"mappings":"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","ignoreList":[8,9,10,11,12,13,14]}