vibedoc 1.3.0 โ 1.4.1
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +1 -0
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/(app)/activity/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/activity/page.js +7 -6
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/board/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/board/page.js +7 -6
- package/.next/server/app/(app)/board/page.js.nft.json +1 -1
- package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/docs/page.js +7 -6
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/explorer/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/explorer/page.js +7 -6
- package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
- package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/memory/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/memory/page.js +7 -6
- package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
- package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/settings/page.js +7 -6
- package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/setup/page/build-manifest.json +3 -3
- package/.next/server/app/(app)/setup/page.js +7 -6
- package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
- package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/server/app/_not-found/page.js +6 -5
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +8 -8
- package/.next/server/app/_not-found.segments/_full.segment.rsc +8 -8
- package/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +20 -19
- package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/activity.segments/!KGFwcCk/activity.segment.rsc +3 -3
- package/.next/server/app/activity.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/activity.segments/_full.segment.rsc +20 -19
- package/.next/server/app/activity.segments/_head.segment.rsc +3 -3
- package/.next/server/app/activity.segments/_index.segment.rsc +4 -4
- package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/activity/route.js.nft.json +1 -1
- package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/decisions/route.js +1 -1
- package/.next/server/app/api/decisions/route.js.nft.json +1 -1
- package/.next/server/app/api/docs/route.js +1 -1
- package/.next/server/app/api/docs/route.js.nft.json +1 -1
- package/.next/server/app/api/explorer/route.js +1 -1
- package/.next/server/app/api/explorer/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/route.js +1 -1
- package/.next/server/app/api/registry/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/write/route.js +1 -1
- package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
- package/.next/server/app/api/summary/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/create/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/create/route/build-manifest.json +11 -0
- package/.next/server/app/api/tasks/create/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/create/route.js +7 -0
- package/.next/server/app/api/tasks/create/route.js.map +5 -0
- package/.next/server/app/api/tasks/create/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/create/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/tasks/route.js +1 -1
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +20 -19
- package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/board.segments/!KGFwcCk/board.segment.rsc +3 -3
- package/.next/server/app/board.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/board.segments/_full.segment.rsc +20 -19
- package/.next/server/app/board.segments/_head.segment.rsc +3 -3
- package/.next/server/app/board.segments/_index.segment.rsc +4 -4
- package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +20 -19
- package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/docs.segments/!KGFwcCk/docs.segment.rsc +3 -3
- package/.next/server/app/docs.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/docs.segments/_full.segment.rsc +20 -19
- package/.next/server/app/docs.segments/_head.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_index.segment.rsc +4 -4
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/explorer.html +1 -1
- package/.next/server/app/explorer.rsc +20 -19
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer.segment.rsc +3 -3
- package/.next/server/app/explorer.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/explorer.segments/_full.segment.rsc +20 -19
- package/.next/server/app/explorer.segments/_head.segment.rsc +3 -3
- package/.next/server/app/explorer.segments/_index.segment.rsc +4 -4
- package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +8 -8
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +8 -8
- package/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +20 -19
- package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/memory.segments/!KGFwcCk/memory.segment.rsc +3 -3
- package/.next/server/app/memory.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/memory.segments/_full.segment.rsc +20 -19
- package/.next/server/app/memory.segments/_head.segment.rsc +3 -3
- package/.next/server/app/memory.segments/_index.segment.rsc +4 -4
- package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page/build-manifest.json +3 -3
- package/.next/server/app/page.js +7 -7
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +20 -19
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +3 -3
- package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/settings.segments/_full.segment.rsc +20 -19
- package/.next/server/app/settings.segments/_head.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_index.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +20 -19
- package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/setup.segments/!KGFwcCk/setup.segment.rsc +3 -3
- package/.next/server/app/setup.segments/!KGFwcCk.segment.rsc +7 -6
- package/.next/server/app/setup.segments/_full.segment.rsc +20 -19
- package/.next/server/app/setup.segments/_head.segment.rsc +3 -3
- package/.next/server/app/setup.segments/_index.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app-paths-manifest.json +1 -0
- package/.next/server/chunks/{[root-of-the-server]__54666fd5._.js โ [root-of-the-server]__03edd537._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__e27393ea._.js โ [root-of-the-server]__1329130b._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__222d0fad._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__b4da5bcd._.js โ [root-of-the-server]__50974822._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__67fc5766._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__67fc5766._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__73d016a0._.js +24 -7
- package/.next/server/chunks/[root-of-the-server]__73d016a0._.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__a0a8fb65._.js โ [root-of-the-server]__7da508f8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__2d66d57b._.js โ [root-of-the-server]__9057030f._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__aa7a40ec._.js โ [root-of-the-server]__943256c8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__bacbf09e._.js โ [root-of-the-server]__c4a478c1._.js} +2 -2
- package/.next/server/chunks/_next-internal_server_app_api_tasks_create_route_actions_8f1c32d2.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__85b679c6._.js โ [root-of-the-server]__1940775f._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__194bb43b._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__194bb43b._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__575af34a._.js โ [root-of-the-server]__22325e4c._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__575af34a._.js.map โ [root-of-the-server]__22325e4c._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__346c6c2b._.js โ [root-of-the-server]__2ea2afb2._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__346c6c2b._.js.map โ [root-of-the-server]__2ea2afb2._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__0310d64d._.js โ [root-of-the-server]__718d62a3._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__8bc686d2._.js โ [root-of-the-server]__83981bf9._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__8f3ac062._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__4cd0cfe5._.js.map โ [root-of-the-server]__8f3ac062._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__a34f1253._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__a34f1253._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__e44bed76._.js โ [root-of-the-server]__a3f52a6e._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__add7ce25._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__7ccd69b2._.js.map โ [root-of-the-server]__add7ce25._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__cf263b75._.js โ [root-of-the-server]__c7aaf19e._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__c9c67a6a._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__38711845._.js.map โ [root-of-the-server]__c9c67a6a._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ccbe4f15._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__bdae2a0a._.js.map โ [root-of-the-server]__ccbe4f15._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__d9936fe0._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__d23d6dd8._.js.map โ [root-of-the-server]__d9936fe0._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ddf636f0._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__c754fc94._.js.map โ [root-of-the-server]__ddf636f0._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__dfd81d0e._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__ad4ab234._.js.map โ [root-of-the-server]__dfd81d0e._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__59ae98dc._.js โ [root-of-the-server]__e1cd2abc._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__59ae98dc._.js.map โ [root-of-the-server]__e1cd2abc._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f322b1c8._.js +3 -0
- package/.next/server/chunks/ssr/{_04bd0614._.js โ _02804d59._.js} +3 -3
- package/.next/server/chunks/ssr/_02804d59._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ee1f47f._.js +1 -1
- package/.next/server/chunks/ssr/_0ee1f47f._.js.map +1 -1
- package/.next/server/chunks/ssr/{_07ff42fd._.js โ _10c46cea._.js} +3 -3
- package/.next/server/chunks/ssr/_10c46cea._.js.map +1 -0
- package/.next/server/chunks/ssr/_15efe9a8._.js +3 -0
- package/.next/server/chunks/ssr/_15efe9a8._.js.map +1 -0
- package/.next/server/chunks/ssr/_46c690bf._.js +3 -0
- package/.next/server/chunks/ssr/_46c690bf._.js.map +1 -0
- package/.next/server/chunks/ssr/_50579c31._.js +3 -0
- package/.next/server/chunks/ssr/_50579c31._.js.map +1 -0
- package/.next/server/chunks/ssr/_5f998080._.js +4 -0
- package/.next/server/chunks/ssr/_5f998080._.js.map +1 -0
- package/.next/server/chunks/ssr/_692c5bbf._.js +1 -1
- package/.next/server/chunks/ssr/_692c5bbf._.js.map +1 -1
- package/.next/server/chunks/ssr/_acb63a7d._.js +1 -1
- package/.next/server/chunks/ssr/_acb63a7d._.js.map +1 -1
- package/.next/server/chunks/ssr/{_102fd465._.js โ _af7c883c._.js} +2 -2
- package/.next/server/chunks/ssr/{_85e5ab03._.js โ _afc4ce33._.js} +3 -3
- package/.next/server/chunks/ssr/_afc4ce33._.js.map +1 -0
- package/.next/server/chunks/ssr/{a5dda_next_dist_c6de1535._.js โ _b1542c0f._.js} +3 -3
- package/.next/server/chunks/ssr/_b1542c0f._.js.map +1 -0
- package/.next/server/chunks/ssr/_b226a79a._.js +4 -0
- package/.next/server/chunks/ssr/_b226a79a._.js.map +1 -0
- package/.next/server/chunks/ssr/_c2cff164._.js +3 -0
- package/.next/server/chunks/ssr/_c2cff164._.js.map +1 -0
- package/.next/server/chunks/ssr/_d411515a._.js +1 -1
- package/.next/server/chunks/ssr/_d411515a._.js.map +1 -1
- package/.next/server/chunks/ssr/{_83c6a2ff._.js โ _d7643298._.js} +3 -3
- package/.next/server/chunks/ssr/_d7643298._.js.map +1 -0
- package/.next/server/chunks/ssr/{_c4b742c5._.js โ _f0a06393._.js} +3 -3
- package/.next/server/chunks/ssr/_f0a06393._.js.map +1 -0
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_2139b88a._.js +3 -0
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_2139b88a._.js.map +1 -0
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_fd324e06._.js +3 -0
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_fd324e06._.js.map +1 -0
- package/.next/server/chunks/ssr/a5dda_next_dist_63172c0f._.js +4 -0
- package/.next/server/chunks/ssr/{a5dda_next_dist_c6de1535._.js.map โ a5dda_next_dist_63172c0f._.js.map} +1 -1
- package/.next/server/chunks/ssr/{a5dda_next_dist_esm_build_templates_app-page_d9140d2d.js โ a5dda_next_dist_esm_build_templates_app-page_20fe1d07.js} +3 -3
- package/.next/server/chunks/ssr/a5dda_next_dist_esm_build_templates_app-page_20fe1d07.js.map +1 -0
- package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_e93914b8._.js โ ec1cc_katex_dist_katex_mjs_1924e0db._.js} +1 -1
- package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_9f7bcf4a._.js โ ec1cc_katex_dist_katex_mjs_1e92da96._.js} +1 -1
- package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_a9aca746._.js โ ec1cc_katex_dist_katex_mjs_872ed7f8._.js} +1 -1
- package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_e7b66387._.js โ ec1cc_katex_dist_katex_mjs_c6b5470c._.js} +1 -1
- package/.next/server/chunks/ssr/ec1cc_katex_dist_katex_mjs_c6b5470c._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_9cdea683._.js โ node_modules__pnpm_00fba959._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_01f5d9da._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_44b70609._.js.map โ node_modules__pnpm_01f5d9da._.js.map} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_8b3ed63a._.js โ node_modules__pnpm_0ae7984c._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_60fef38e._.js โ node_modules__pnpm_0b2a59a5._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_70a08cdf._.js โ node_modules__pnpm_0b403dbf._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_8c13bdb7._.js โ node_modules__pnpm_0dc85bd5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_ba838a36._.js โ node_modules__pnpm_0f315216._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0322e068._.js โ node_modules__pnpm_0fcc2ade._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_df7dcb26._.js โ node_modules__pnpm_11602273._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_5c59b1ad._.js โ node_modules__pnpm_166528e5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_b6b9de46._.js โ node_modules__pnpm_1b6418c7._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_20308a0b._.js +7 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_20308a0b._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_39f460e8._.js โ node_modules__pnpm_203e2ae6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_d75e5d41._.js โ node_modules__pnpm_20667837._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_3f2cce74._.js โ node_modules__pnpm_22b45ca3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_8ba721df._.js โ node_modules__pnpm_233a9948._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_2871fff4._.js โ node_modules__pnpm_26c302ad._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_08cf1858._.js โ node_modules__pnpm_28f5917a._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_790c3b2e._.js โ node_modules__pnpm_29ef1122._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_7e98d14b._.js โ node_modules__pnpm_2b433d26._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_72235a6a._.js โ node_modules__pnpm_32dea2df._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_337eaf96._.js โ node_modules__pnpm_36314152._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_9ce450a4._.js โ node_modules__pnpm_383aee7b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_8f8943af._.js โ node_modules__pnpm_3f2da5a6._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_c402a901._.js โ node_modules__pnpm_49f81544._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_b50ae8f6._.js โ node_modules__pnpm_4d2bd21b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_63a4a328._.js โ node_modules__pnpm_4d5ddaac._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_42d2c2d2._.js โ node_modules__pnpm_4f088d93._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_f77bb209._.js โ node_modules__pnpm_5075b2c5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_6a7ed592._.js โ node_modules__pnpm_53135aed._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1790069e._.js โ node_modules__pnpm_55940107._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_423baddc._.js โ node_modules__pnpm_5a66db81._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_3d378674._.js โ node_modules__pnpm_660f6b48._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_36b5c2af._.js โ node_modules__pnpm_678a023d._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_c39c9496._.js โ node_modules__pnpm_69340952._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1dce0d3b._.js โ node_modules__pnpm_6a505c32._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_6fee60be._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_6fee60be._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_3dd8e608._.js โ node_modules__pnpm_73f60ed3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_87d282d9._.js โ node_modules__pnpm_73fa56d9._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_45bf67c8._.js โ node_modules__pnpm_7417f8a3._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_05da39c7._.js โ node_modules__pnpm_74702239._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_928932b1._.js โ node_modules__pnpm_76595790._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_8036c25f._.js โ node_modules__pnpm_7688cd8b._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_06db4ba2._.js โ node_modules__pnpm_77bef6b3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_08922392._.js โ node_modules__pnpm_7b9f7ded._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_c7ca55c9._.js โ node_modules__pnpm_7bc6fb3f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_e70a06f1._.js โ node_modules__pnpm_7bebd190._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_b2c6ca72._.js โ node_modules__pnpm_7cacc1cc._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_76204895._.js โ node_modules__pnpm_7d6096d0._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_75846ac9._.js โ node_modules__pnpm_810c12a3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_3601c997._.js โ node_modules__pnpm_917236c4._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_135db8bc._.js โ node_modules__pnpm_958d62cb._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_5768848c._.js โ node_modules__pnpm_97367937._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_d1c050d4._.js โ node_modules__pnpm_993eff2d._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_016e62a5._.js โ node_modules__pnpm_9bab8aaa._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0c377643._.js โ node_modules__pnpm_9d36940a._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0d80282c._.js โ node_modules__pnpm_9ddf8ec8._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_a23a1417._.js โ node_modules__pnpm_9de6944e._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_227802dc._.js โ node_modules__pnpm_9ed86539._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_c278eaac._.js โ node_modules__pnpm_a216f966._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_754137d0._.js โ node_modules__pnpm_a23053e0._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_7ca85e0d._.js โ node_modules__pnpm_a2c4f3d7._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_b18e7d84._.js โ node_modules__pnpm_a3c866a4._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_2e011da0._.js โ node_modules__pnpm_aa25e76f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_91a9fe44._.js โ node_modules__pnpm_aa53a759._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1c623592._.js โ node_modules__pnpm_ae8e01c6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_3394b2c5._.js โ node_modules__pnpm_aebdd762._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_4d03e476._.js โ node_modules__pnpm_af29ab68._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_d6cd0cb1._.js โ node_modules__pnpm_b28ba463._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_f505d304._.js โ node_modules__pnpm_b4adc2e7._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_75690281._.js โ node_modules__pnpm_b4bf1729._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_a4a74805._.js โ node_modules__pnpm_b75e6868._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_4cc41a2c._.js โ node_modules__pnpm_bc76cc53._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_140ed2b5._.js โ node_modules__pnpm_bcd2eb3a._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_85de6da6._.js โ node_modules__pnpm_c1b02576._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_8a0f76d5._.js โ node_modules__pnpm_c1b70c63._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_7de47ba7._.js โ node_modules__pnpm_c320dcf5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_67f40799._.js โ node_modules__pnpm_c4d0e703._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_f6f51e7a._.js โ node_modules__pnpm_c57f91df._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_55b7a1cf._.js โ node_modules__pnpm_c598b48c._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0631ec86._.js โ node_modules__pnpm_c683995e._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_db2dceff._.js โ node_modules__pnpm_c6a3a5ee._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_240c58bb._.js โ node_modules__pnpm_c8929f6f._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_aec9b3d2._.js โ node_modules__pnpm_c98f0170._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_96c7344a._.js โ node_modules__pnpm_cf36446c._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_93144bce._.js โ node_modules__pnpm_cf44f5d7._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_7a101d07._.js โ node_modules__pnpm_d10d6e8f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_076b3258._.js โ node_modules__pnpm_d237d54b._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_688ab9b4._.js โ node_modules__pnpm_d2ff1199._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_4edcc2cf._.js โ node_modules__pnpm_d58c5c9c._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_6c9a5a96._.js โ node_modules__pnpm_d65a8ec6._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_33344533._.js โ node_modules__pnpm_db9521f3._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_ebfee6f4._.js โ node_modules__pnpm_e07e25a1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_07f377f7._.js โ node_modules__pnpm_e084e8b5._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_6947736b._.js โ node_modules__pnpm_e7e16c44._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_00962046._.js โ node_modules__pnpm_e87f4c8f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_cd59b8c6._.js โ node_modules__pnpm_ee9378af._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_19e8c8a7._.js โ node_modules__pnpm_ef18e708._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_a714825b._.js โ node_modules__pnpm_ef613ec1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_2b6ac74b._.js โ node_modules__pnpm_f3d5816a._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_9927b752._.js โ node_modules__pnpm_f75286f3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_474a3a70._.js โ node_modules__pnpm_f952589a._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_fa1f464c._.js โ node_modules__pnpm_fb5a6095._.js} +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_error_tsx_8b5c3e3b._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_error_tsx_8b5c3e3b._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_752c26e2._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_752c26e2._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_effb3116._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_effb3116._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_global-error_tsx_aa661ba4._.js +3 -0
- package/.next/server/chunks/ssr/src_app_global-error_tsx_aa661ba4._.js.map +1 -0
- package/.next/server/chunks/ssr/src_components_docs_MarkdownRenderer_tsx_c2823695._.js +2 -2
- package/.next/server/chunks/ssr/src_components_docs_MarkdownRenderer_tsx_c2823695._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_3edfbcee._.js +3 -0
- package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_3edfbcee._.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/0a23222890789fc7.js +1 -0
- package/.next/static/chunks/{fcc2b1530d73e61e.js โ 13bb47148aab2650.js} +3 -3
- package/.next/static/chunks/260957bb921413ce.js +4 -0
- package/.next/static/chunks/26c0edacf913d566.js +1 -0
- package/.next/static/chunks/37e7fffb0c3f808a.js +1 -0
- package/.next/static/chunks/{a8d5f5dc2688fe30.js โ 4b85895b71381fe3.js} +1 -1
- package/.next/static/chunks/4c61fab7712ab14c.js +1 -0
- package/.next/static/chunks/58191ebe3f737b95.js +10 -0
- package/.next/static/chunks/{db20ec18c9fde107.js โ 61aeba246e853119.js} +1 -1
- package/.next/static/chunks/622d4f9dd738a19e.js +5 -0
- package/.next/static/chunks/656421e1c8420066.js +1 -0
- package/.next/static/chunks/{452e1bb12e7f0b85.js โ 76dd41a0a6e00541.js} +3 -3
- package/.next/static/chunks/88a9c5878c58c4c7.js +1 -0
- package/.next/static/chunks/918b80a98b47faa7.js +1 -0
- package/.next/static/chunks/937e067c90728448.js +21 -0
- package/.next/static/chunks/9ec5cc6e82dc4c95.js +1 -0
- package/.next/static/chunks/ab91a04173b72e7f.css +1 -0
- package/.next/static/chunks/{25d2e746e06b38ba.js โ c5cf10f92eba82e6.js} +2 -2
- package/.next/static/chunks/e9233bff3572a5ae.js +1 -0
- package/.next/static/chunks/{turbopack-2835ad6e71df73d8.js โ turbopack-d9f1831e5abe8b4e.js} +1 -1
- package/LICENSE +21 -0
- package/README.md +260 -167
- package/package.json +6 -2
- package/.next/server/chunks/[root-of-the-server]__dfd36dc0._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__38711845._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__4cd0cfe5._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__7ccd69b2._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__8edfd41f._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__93c50d95._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__93c50d95._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ad4ab234._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__bdae2a0a._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__c754fc94._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__d23d6dd8._.js +0 -3
- package/.next/server/chunks/ssr/_0324be5b._.js +0 -4
- package/.next/server/chunks/ssr/_0324be5b._.js.map +0 -1
- package/.next/server/chunks/ssr/_04bd0614._.js.map +0 -1
- package/.next/server/chunks/ssr/_07ff42fd._.js.map +0 -1
- package/.next/server/chunks/ssr/_189227ea._.js +0 -3
- package/.next/server/chunks/ssr/_189227ea._.js.map +0 -1
- package/.next/server/chunks/ssr/_39d9968d._.js +0 -4
- package/.next/server/chunks/ssr/_39d9968d._.js.map +0 -1
- package/.next/server/chunks/ssr/_7b129868._.js +0 -4
- package/.next/server/chunks/ssr/_7b129868._.js.map +0 -1
- package/.next/server/chunks/ssr/_83c6a2ff._.js.map +0 -1
- package/.next/server/chunks/ssr/_85e5ab03._.js.map +0 -1
- package/.next/server/chunks/ssr/_9f1b4c51._.js +0 -3
- package/.next/server/chunks/ssr/_9f1b4c51._.js.map +0 -1
- package/.next/server/chunks/ssr/_b4c946f7._.js +0 -7
- package/.next/server/chunks/ssr/_b4c946f7._.js.map +0 -1
- package/.next/server/chunks/ssr/_c4b742c5._.js.map +0 -1
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_b0ef93f6._.js +0 -3
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_b0ef93f6._.js.map +0 -1
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_folder_de463b3c.js +0 -3
- package/.next/server/chunks/ssr/a41dc_lucide-react_dist_esm_icons_folder_de463b3c.js.map +0 -1
- package/.next/server/chunks/ssr/a5dda_next_dist_client_components_builtin_global-error_88955b9a.js +0 -3
- package/.next/server/chunks/ssr/a5dda_next_dist_client_components_builtin_global-error_88955b9a.js.map +0 -1
- package/.next/server/chunks/ssr/a5dda_next_dist_esm_build_templates_app-page_d9140d2d.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_44b70609._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_9e807a6c._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_9e807a6c._.js.map +0 -1
- package/.next/static/chunks/13bdd4e22dd90816.js +0 -1
- package/.next/static/chunks/31fae4c58073753b.js +0 -1
- package/.next/static/chunks/429961c8e82cfbcb.css +0 -1
- package/.next/static/chunks/5066c1dec89e3cb6.js +0 -1
- package/.next/static/chunks/519aa8080f20453e.js +0 -10
- package/.next/static/chunks/6f01f5fee0eb2f66.js +0 -1
- package/.next/static/chunks/825ae09010d35407.js +0 -5
- package/.next/static/chunks/aad224af68aad5fb.js +0 -4
- package/.next/static/chunks/d0d8f8e7eb4550b4.js +0 -1
- package/.next/static/chunks/dc6d4ccd3cd8471c.js +0 -21
- package/.next/static/chunks/e6164bb2a2fa9b00.js +0 -1
- /package/.next/server/chunks/{[root-of-the-server]__54666fd5._.js.map โ [root-of-the-server]__03edd537._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__e27393ea._.js.map โ [root-of-the-server]__1329130b._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__dfd36dc0._.js.map โ [root-of-the-server]__222d0fad._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__b4da5bcd._.js.map โ [root-of-the-server]__50974822._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__a0a8fb65._.js.map โ [root-of-the-server]__7da508f8._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__2d66d57b._.js.map โ [root-of-the-server]__9057030f._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__aa7a40ec._.js.map โ [root-of-the-server]__943256c8._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__bacbf09e._.js.map โ [root-of-the-server]__c4a478c1._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/[root-of-the-server]__8edfd41f._.js.map โ _next-internal_server_app_api_tasks_create_route_actions_8f1c32d2.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__0310d64d._.js.map โ [root-of-the-server]__1940775f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__85b679c6._.js.map โ [root-of-the-server]__718d62a3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__8bc686d2._.js.map โ [root-of-the-server]__83981bf9._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__e44bed76._.js.map โ [root-of-the-server]__a3f52a6e._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__cf263b75._.js.map โ [root-of-the-server]__c7aaf19e._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_9f7bcf4a._.js.map โ [root-of-the-server]__f322b1c8._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{_102fd465._.js.map โ _af7c883c._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_a9aca746._.js.map โ ec1cc_katex_dist_katex_mjs_1924e0db._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_e7b66387._.js.map โ ec1cc_katex_dist_katex_mjs_1e92da96._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{ec1cc_katex_dist_katex_mjs_e93914b8._.js.map โ ec1cc_katex_dist_katex_mjs_872ed7f8._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0322e068._.js.map โ node_modules__pnpm_00fba959._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_55b7a1cf._.js.map โ node_modules__pnpm_0ae7984c._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0631ec86._.js.map โ node_modules__pnpm_0b2a59a5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_63a4a328._.js.map โ node_modules__pnpm_0b403dbf._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_2b6ac74b._.js.map โ node_modules__pnpm_0dc85bd5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_19e8c8a7._.js.map โ node_modules__pnpm_0f315216._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_39f460e8._.js.map โ node_modules__pnpm_0fcc2ade._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_3601c997._.js.map โ node_modules__pnpm_11602273._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1c623592._.js.map โ node_modules__pnpm_166528e5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_8c13bdb7._.js.map โ node_modules__pnpm_1b6418c7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_3dd8e608._.js.map โ node_modules__pnpm_203e2ae6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_05da39c7._.js.map โ node_modules__pnpm_20667837._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1dce0d3b._.js.map โ node_modules__pnpm_22b45ca3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_42d2c2d2._.js.map โ node_modules__pnpm_233a9948._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_2871fff4._.js.map โ node_modules__pnpm_26c302ad._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_08cf1858._.js.map โ node_modules__pnpm_28f5917a._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0c377643._.js.map โ node_modules__pnpm_29ef1122._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_227802dc._.js.map โ node_modules__pnpm_2b433d26._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_5c59b1ad._.js.map โ node_modules__pnpm_32dea2df._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_00962046._.js.map โ node_modules__pnpm_36314152._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_790c3b2e._.js.map โ node_modules__pnpm_383aee7b._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_87d282d9._.js.map โ node_modules__pnpm_3f2da5a6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_3f2cce74._.js.map โ node_modules__pnpm_49f81544._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_7a101d07._.js.map โ node_modules__pnpm_4d2bd21b._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_6a7ed592._.js.map โ node_modules__pnpm_4d5ddaac._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_45bf67c8._.js.map โ node_modules__pnpm_4f088d93._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_b50ae8f6._.js.map โ node_modules__pnpm_5075b2c5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_70a08cdf._.js.map โ node_modules__pnpm_53135aed._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1790069e._.js.map โ node_modules__pnpm_55940107._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_423baddc._.js.map โ node_modules__pnpm_5a66db81._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_07f377f7._.js.map โ node_modules__pnpm_660f6b48._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_36b5c2af._.js.map โ node_modules__pnpm_678a023d._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_140ed2b5._.js.map โ node_modules__pnpm_69340952._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_c402a901._.js.map โ node_modules__pnpm_6a505c32._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_9cdea683._.js.map โ node_modules__pnpm_73f60ed3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_8b3ed63a._.js.map โ node_modules__pnpm_73fa56d9._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_8ba721df._.js.map โ node_modules__pnpm_7417f8a3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_240c58bb._.js.map โ node_modules__pnpm_74702239._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_337eaf96._.js.map โ node_modules__pnpm_76595790._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_8036c25f._.js.map โ node_modules__pnpm_7688cd8b._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_06db4ba2._.js.map โ node_modules__pnpm_77bef6b3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_08922392._.js.map โ node_modules__pnpm_7b9f7ded._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_c7ca55c9._.js.map โ node_modules__pnpm_7bc6fb3f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_7de47ba7._.js.map โ node_modules__pnpm_7bebd190._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_72235a6a._.js.map โ node_modules__pnpm_7cacc1cc._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_4edcc2cf._.js.map โ node_modules__pnpm_7d6096d0._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_75846ac9._.js.map โ node_modules__pnpm_810c12a3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_df7dcb26._.js.map โ node_modules__pnpm_917236c4._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_135db8bc._.js.map โ node_modules__pnpm_958d62cb._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_5768848c._.js.map โ node_modules__pnpm_97367937._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_b6b9de46._.js.map โ node_modules__pnpm_993eff2d._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_016e62a5._.js.map โ node_modules__pnpm_9bab8aaa._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_9ce450a4._.js.map โ node_modules__pnpm_9d36940a._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_076b3258._.js.map โ node_modules__pnpm_9ddf8ec8._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_a23a1417._.js.map โ node_modules__pnpm_9de6944e._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_7e98d14b._.js.map โ node_modules__pnpm_9ed86539._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_474a3a70._.js.map โ node_modules__pnpm_a216f966._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_754137d0._.js.map โ node_modules__pnpm_a23053e0._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_7ca85e0d._.js.map โ node_modules__pnpm_a2c4f3d7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_b18e7d84._.js.map โ node_modules__pnpm_a3c866a4._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_2e011da0._.js.map โ node_modules__pnpm_aa25e76f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_91a9fe44._.js.map โ node_modules__pnpm_aa53a759._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_b2c6ca72._.js.map โ node_modules__pnpm_ae8e01c6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_3394b2c5._.js.map โ node_modules__pnpm_aebdd762._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0d80282c._.js.map โ node_modules__pnpm_af29ab68._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_c278eaac._.js.map โ node_modules__pnpm_b28ba463._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_f505d304._.js.map โ node_modules__pnpm_b4adc2e7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_4d03e476._.js.map โ node_modules__pnpm_b4bf1729._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_a4a74805._.js.map โ node_modules__pnpm_b75e6868._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_4cc41a2c._.js.map โ node_modules__pnpm_bc76cc53._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_c39c9496._.js.map โ node_modules__pnpm_bcd2eb3a._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_76204895._.js.map โ node_modules__pnpm_c1b02576._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_8a0f76d5._.js.map โ node_modules__pnpm_c1b70c63._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_e70a06f1._.js.map โ node_modules__pnpm_c320dcf5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_67f40799._.js.map โ node_modules__pnpm_c4d0e703._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_f6f51e7a._.js.map โ node_modules__pnpm_c57f91df._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_8f8943af._.js.map โ node_modules__pnpm_c598b48c._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_60fef38e._.js.map โ node_modules__pnpm_c683995e._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_db2dceff._.js.map โ node_modules__pnpm_c6a3a5ee._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_33344533._.js.map โ node_modules__pnpm_c8929f6f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_aec9b3d2._.js.map โ node_modules__pnpm_c98f0170._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_96c7344a._.js.map โ node_modules__pnpm_cf36446c._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_93144bce._.js.map โ node_modules__pnpm_cf44f5d7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_f77bb209._.js.map โ node_modules__pnpm_d10d6e8f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_75690281._.js.map โ node_modules__pnpm_d237d54b._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_688ab9b4._.js.map โ node_modules__pnpm_d2ff1199._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_85de6da6._.js.map โ node_modules__pnpm_d58c5c9c._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_3d378674._.js.map โ node_modules__pnpm_d65a8ec6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_d75e5d41._.js.map โ node_modules__pnpm_db9521f3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_ebfee6f4._.js.map โ node_modules__pnpm_e07e25a1._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_6c9a5a96._.js.map โ node_modules__pnpm_e084e8b5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_6947736b._.js.map โ node_modules__pnpm_e7e16c44._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_928932b1._.js.map โ node_modules__pnpm_e87f4c8f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_cd59b8c6._.js.map โ node_modules__pnpm_ee9378af._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_ba838a36._.js.map โ node_modules__pnpm_ef18e708._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_a714825b._.js.map โ node_modules__pnpm_ef613ec1._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_d1c050d4._.js.map โ node_modules__pnpm_f3d5816a._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_9927b752._.js.map โ node_modules__pnpm_f75286f3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_d6cd0cb1._.js.map โ node_modules__pnpm_f952589a._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_fa1f464c._.js.map โ node_modules__pnpm_fb5a6095._.js.map} +0 -0
- /package/.next/static/{0O_zNn9bF-68gq5ePCg2r โ 5YfD8cBCzJoKPTXc-Q0s5}/_buildManifest.js +0 -0
- /package/.next/static/{0O_zNn9bF-68gq5ePCg2r โ 5YfD8cBCzJoKPTXc-Q0s5}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{0O_zNn9bF-68gq5ePCg2r โ 5YfD8cBCzJoKPTXc-Q0s5}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
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","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/monitor.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/palette.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/type.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-cog.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/plug.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/moon.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/sun.ts","../../../../src/lib/settings.ts"],"sourcesContent":["\"use client\"\r\n\r\nimport { useState, useEffect, useCallback } from \"react\"\r\nimport { useApp } from \"@/context/AppContext\"\r\nimport { Palette, Type, FolderCog, Plug, Zap, Bot, Settings } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { ThemeSettings } from \"@/components/settings/ThemeSettings\"\r\nimport { EditorSettings } from \"@/components/settings/EditorSettings\"\r\nimport { ProjectSettings } from \"@/components/settings/ProjectSettings\"\r\nimport { MCPSettings } from \"@/components/settings/MCPSettings\"\r\nimport { SkillsSettings } from \"@/components/settings/SkillsSettings\"\r\nimport { AgentsSettings } from \"@/components/settings/AgentsSettings\"\r\nimport type { AppSettings, Skill, Agent } from \"@/lib/settings\"\r\nimport { DEFAULT_SETTINGS, DEFAULT_SKILLS, DEFAULT_AGENTS } from \"@/lib/settings\"\r\n\r\nconst TABS = [\r\n { id: \"appearance\", label: \"Appearance\", icon: Palette },\r\n { id: \"editor\", label: \"Editor\", icon: Type },\r\n { id: \"project\", label: \"Project\", icon: FolderCog },\r\n { id: \"mcp\", label: \"MCP\", icon: Plug },\r\n { id: \"skills\", label: \"Skills\", icon: Zap },\r\n { id: \"agents\", label: \"Agents\", icon: Bot },\r\n]\r\n\r\nexport default function SettingsPage() {\r\n const { rootParam } = useApp()\r\n const [activeTab, setActiveTab] = useState(\"appearance\")\r\n const [settings, setSettings] = useState<AppSettings>(DEFAULT_SETTINGS)\r\n const [skills, setSkills] = useState<Skill[]>(DEFAULT_SKILLS)\r\n const [agents, setAgents] = useState<Agent[]>(DEFAULT_AGENTS)\r\n const [loading, setLoading] = useState(true)\r\n const [saving, setSaving] = useState(false)\r\n\r\n const fetchAll = useCallback(async () => {\r\n try {\r\n const res = await fetch(`/api/settings${rootParam}&type=all`)\r\n const data = await res.json()\r\n setSettings(data.settings || DEFAULT_SETTINGS)\r\n setSkills(data.skills || DEFAULT_SKILLS)\r\n setAgents(data.agents || DEFAULT_AGENTS)\r\n } catch {}\r\n setLoading(false)\r\n }, [rootParam])\r\n\r\n useEffect(() => {\r\n fetchAll()\r\n }, [fetchAll])\r\n\r\n const saveSettings = async (newSettings: AppSettings) => {\r\n setSaving(true)\r\n setSettings(newSettings)\r\n try {\r\n await fetch(`/api/settings${rootParam}&type=settings`, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(newSettings),\r\n })\r\n } catch {}\r\n setSaving(false)\r\n }\r\n\r\n const saveSkills = async (newSkills: Skill[]) => {\r\n setSaving(true)\r\n setSkills(newSkills)\r\n try {\r\n await fetch(`/api/settings${rootParam}&type=skills`, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(newSkills),\r\n })\r\n } catch {}\r\n setSaving(false)\r\n }\r\n\r\n const saveAgents = async (newAgents: Agent[]) => {\r\n setSaving(true)\r\n setAgents(newAgents)\r\n try {\r\n await fetch(`/api/settings${rootParam}&type=agents`, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(newAgents),\r\n })\r\n } catch {}\r\n setSaving(false)\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <div className=\"flex items-center justify-center h-full\">\r\n <div className=\"text-muted\">Loading settings...</div>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <div className=\"flex h-full\">\r\n {/* Sidebar */}\r\n <aside className=\"w-56 border-r border-border bg-sidebar shrink-0\">\r\n <div className=\"p-4 border-b border-border\">\r\n <div className=\"flex items-center gap-2\">\r\n <Settings className=\"w-5 h-5 text-accent\" />\r\n <h1 className=\"font-semibold text-txt\">Settings</h1>\r\n </div>\r\n </div>\r\n <nav className=\"p-2\">\r\n {TABS.map(tab => {\r\n const Icon = tab.icon\r\n return (\r\n <button\r\n key={tab.id}\r\n onClick={() => setActiveTab(tab.id)}\r\n className={cn(\r\n \"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors\",\r\n activeTab === tab.id\r\n ? \"bg-accent/10 text-accent font-medium\"\r\n : \"text-muted hover:text-txt hover:bg-surface2\"\r\n )}\r\n >\r\n <Icon className=\"w-4 h-4\" />\r\n {tab.label}\r\n </button>\r\n )\r\n })}\r\n </nav>\r\n </aside>\r\n\r\n {/* Content */}\r\n <div className=\"flex-1 overflow-y-auto\">\r\n <div className=\"max-w-2xl mx-auto p-6\">\r\n {saving && (\r\n <div className=\"fixed top-4 right-4 bg-accent text-white px-3 py-1.5 rounded-lg text-sm shadow-lg\">\r\n Saving...\r\n </div>\r\n )}\r\n\r\n {activeTab === \"appearance\" && (\r\n <ThemeSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"editor\" && (\r\n <EditorSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"project\" && (\r\n <ProjectSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"mcp\" && (\r\n <MCPSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"skills\" && (\r\n <SkillsSettings skills={skills} onSave={saveSkills} />\r\n )}\r\n {activeTab === \"agents\" && (\r\n <AgentsSettings agents={agents} skills={skills} onSave={saveAgents} />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { Moon, Sun, Monitor, Check } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport 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=\"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-all\",\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=\"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=\"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 </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=\"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=\"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=\"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\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Plug, Check, X, Copy, Loader2 } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport type { AppSettings } from \"@/lib/settings\"\r\n\r\ninterface MCPSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst AGENT_CONFIGS = {\r\n \"claude-code\": {\r\n name: \"Claude Code\",\r\n config: `{\r\n \"mcpServers\": {\r\n \"vibedoc\": {\r\n \"url\": \"{{ENDPOINT}}\"\r\n }\r\n }\r\n}`,\r\n path: \"~/.claude/claude.json\",\r\n },\r\n cursor: {\r\n name: \"Cursor\",\r\n config: `{\r\n \"mcp\": {\r\n \"servers\": {\r\n \"vibedoc\": {\r\n \"url\": \"{{ENDPOINT}}\"\r\n }\r\n }\r\n }\r\n}`,\r\n path: \".cursor/mcp.json\",\r\n },\r\n windsurf: {\r\n name: \"Windsurf\",\r\n config: `{\r\n \"mcpServers\": {\r\n \"vibedoc\": {\r\n \"url\": \"{{ENDPOINT}}\"\r\n }\r\n }\r\n}`,\r\n path: \".windsurf/mcp.json\",\r\n },\r\n}\r\n\r\nexport function MCPSettings({ settings, onSave }: MCPSettingsProps) {\r\n const [testing, setTesting] = useState(false)\r\n const [testResult, setTestResult] = useState<\"success\" | \"error\" | null>(null)\r\n const [copied, setCopied] = useState<string | null>(null)\r\n\r\n const updateMcp = (key: keyof AppSettings[\"mcp\"], value: string) => {\r\n onSave({\r\n ...settings,\r\n mcp: { ...settings.mcp, [key]: value },\r\n })\r\n }\r\n\r\n const testConnection = async () => {\r\n setTesting(true)\r\n setTestResult(null)\r\n try {\r\n const res = await fetch(settings.mcp.endpoint, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n jsonrpc: \"2.0\",\r\n id: 1,\r\n method: \"tools/list\",\r\n }),\r\n })\r\n if (res.ok) {\r\n setTestResult(\"success\")\r\n } else {\r\n setTestResult(\"error\")\r\n }\r\n } catch {\r\n setTestResult(\"error\")\r\n }\r\n setTesting(false)\r\n }\r\n\r\n const copyConfig = async (agentId: string) => {\r\n const agent = AGENT_CONFIGS[agentId as keyof typeof AGENT_CONFIGS]\r\n const config = agent.config.replace(\"{{ENDPOINT}}\", settings.mcp.endpoint)\r\n await navigator.clipboard.writeText(config)\r\n setCopied(agentId)\r\n setTimeout(() => setCopied(null), 2000)\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\">MCP Connection</h2>\r\n <p className=\"text-sm text-muted\">Configure the Model Context Protocol server for AI agents.</p>\r\n </div>\r\n\r\n {/* Endpoint */}\r\n <div className=\"space-y-3\">\r\n <label className=\"text-sm font-medium text-txt\">MCP Endpoint</label>\r\n <div className=\"flex gap-2\">\r\n <Input\r\n value={settings.mcp.endpoint}\r\n onChange={(e) => updateMcp(\"endpoint\", e.target.value)}\r\n className=\"bg-surface2 font-mono text-sm\"\r\n />\r\n <button\r\n onClick={testConnection}\r\n disabled={testing}\r\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\"\r\n >\r\n {testing ? (\r\n <Loader2 className=\"w-4 h-4 animate-spin\" />\r\n ) : (\r\n <Plug className=\"w-4 h-4\" />\r\n )}\r\n Test\r\n </button>\r\n </div>\r\n {testResult && (\r\n <div className={cn(\r\n \"flex items-center gap-2 text-sm\",\r\n testResult === \"success\" ? \"text-green-400\" : \"text-red-400\"\r\n )}>\r\n {testResult === \"success\" ? (\r\n <>\r\n <Check className=\"w-4 h-4\" />\r\n Connection successful\r\n </>\r\n ) : (\r\n <>\r\n <X className=\"w-4 h-4\" />\r\n Connection failed\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Agent Configs */}\r\n <div className=\"space-y-3\">\r\n <label className=\"text-sm font-medium text-txt\">Agent Configuration</label>\r\n <p className=\"text-xs text-muted\">Copy the configuration for your coding agent:</p>\r\n <div className=\"space-y-2\">\r\n {Object.entries(AGENT_CONFIGS).map(([id, agent]) => (\r\n <div\r\n key={id}\r\n className=\"flex items-center justify-between p-3 border border-border rounded-lg\"\r\n >\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">{agent.name}</div>\r\n <div className=\"text-xs text-muted font-mono\">{agent.path}</div>\r\n </div>\r\n <button\r\n onClick={() => copyConfig(id)}\r\n className={cn(\r\n \"flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm transition-colors\",\r\n copied === id\r\n ? \"bg-green-500/20 text-green-400\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n {copied === id ? (\r\n <>\r\n <Check className=\"w-3.5 h-3.5\" />\r\n Copied\r\n </>\r\n ) : (\r\n <>\r\n <Copy className=\"w-3.5 h-3.5\" />\r\n Copy\r\n </>\r\n )}\r\n </button>\r\n </div>\r\n ))}\r\n </div>\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, 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 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 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 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 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 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 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 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 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 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 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","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Monitor\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('monitor', __iconNode);\n\nexport default Monitor;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Palette\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('palette', __iconNode);\n\nexport default Palette;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Type\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('type', __iconNode);\n\nexport default Type;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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\n/**\n * @component @name FolderCog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('folder-cog', __iconNode);\n\nexport default FolderCog;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Plug\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('plug', __iconNode);\n\nexport default Plug;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Moon\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('moon', __iconNode);\n\nexport default Moon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Sun\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('sun', __iconNode);\n\nexport default Sun;\n","export interface AppSettings {\r\n theme: 'dark' | 'light' | 'system'\r\n accentColor: 'blue' | 'purple' | 'green' | 'orange'\r\n fontSize: 'small' | 'medium' | 'large'\r\n editor: {\r\n autoSave: number // 0 = off, otherwise seconds\r\n wordWrap: boolean\r\n lineNumbers: boolean\r\n previewMode: 'split' | 'tab' | 'preview'\r\n }\r\n project: {\r\n autoRefresh: number // 0 = off, otherwise seconds\r\n showHidden: boolean\r\n }\r\n mcp: {\r\n endpoint: string\r\n }\r\n}\r\n\r\nexport interface Skill {\r\n id: string\r\n name: string\r\n description: string\r\n trigger: string\r\n prompt: string\r\n tools: string[]\r\n icon?: string\r\n}\r\n\r\nexport interface Agent {\r\n id: string\r\n name: string\r\n icon: string\r\n description: string\r\n skills: string[]\r\n prompt: string\r\n active: boolean\r\n}\r\n\r\nexport const DEFAULT_SETTINGS: AppSettings = {\r\n theme: 'dark',\r\n accentColor: 'blue',\r\n fontSize: 'medium',\r\n editor: {\r\n autoSave: 10,\r\n wordWrap: true,\r\n lineNumbers: true,\r\n previewMode: 'split',\r\n },\r\n project: {\r\n autoRefresh: 10,\r\n showHidden: false,\r\n },\r\n mcp: {\r\n endpoint: 'http://localhost:3000/api/mcp',\r\n },\r\n}\r\n\r\nexport const DEFAULT_SKILLS: Skill[] = [\r\n {\r\n id: 'code-review',\r\n name: 'Code Review',\r\n description: 'Analyzes code for quality, security, and performance issues',\r\n trigger: '/review',\r\n prompt: 'You are an expert code reviewer. Analyze the provided code for:\\n- Code quality and best practices\\n- Security vulnerabilities\\n- Performance issues\\n- Maintainability concerns\\n\\nProvide actionable feedback.',\r\n tools: ['vibedoc_read_doc', 'vibedoc_search_docs'],\r\n icon: '๐ง',\r\n },\r\n {\r\n id: 'doc-generator',\r\n name: 'Documentation Generator',\r\n description: 'Creates documentation from code and comments',\r\n trigger: '/docs',\r\n prompt: 'You are a technical documentation writer. Generate clear, comprehensive documentation for the provided code or feature.',\r\n tools: ['vibedoc_read_doc', 'vibedoc_write_doc'],\r\n icon: '๐',\r\n },\r\n {\r\n id: 'test-writer',\r\n name: 'Test Writer',\r\n description: 'Generates unit tests for functions and components',\r\n trigger: '/test',\r\n prompt: 'You are a testing expert. Write comprehensive unit tests for the provided code, covering edge cases and ensuring good test coverage.',\r\n tools: ['vibedoc_read_doc', 'vibedoc_search_docs'],\r\n icon: '๐งช',\r\n },\r\n]\r\n\r\nexport const DEFAULT_AGENTS: Agent[] = [\r\n {\r\n id: 'code-assistant',\r\n name: 'Code Assistant',\r\n icon: '๐ค',\r\n description: 'General-purpose coding help',\r\n skills: ['code-review', 'test-writer'],\r\n prompt: 'You are a helpful coding assistant. Help the user with their coding tasks.',\r\n active: true,\r\n },\r\n {\r\n id: 'doc-bot',\r\n name: 'Documentation Bot',\r\n icon: '๐',\r\n description: 'Focused on docs and comments',\r\n skills: ['doc-generator'],\r\n prompt: 'You are a documentation specialist. Focus on creating and improving documentation.',\r\n active: true,\r\n },\r\n]\r\n"],"names":[],"mappings":"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","ignoreList":[7,8,9,10,11,12,13]}
|
|
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%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/monitor.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/plug.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/type.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/sun.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/moon.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-cog.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/palette.ts"],"sourcesContent":["\"use client\"\r\n\r\nimport { Moon, Sun, Monitor, Check } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport 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=\"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-all\",\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=\"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=\"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 </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=\"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=\"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=\"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\"\r\n\r\nimport { useState } from \"react\"\r\nimport { Plug, Check, X, Copy, Loader2 } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport type { AppSettings } from \"@/lib/settings\"\r\n\r\ninterface MCPSettingsProps {\r\n settings: AppSettings\r\n onSave: (settings: AppSettings) => void\r\n}\r\n\r\nconst AGENT_CONFIGS = {\r\n \"claude-code\": {\r\n name: \"Claude Code\",\r\n config: `{\r\n \"mcpServers\": {\r\n \"vibedoc\": {\r\n \"url\": \"{{ENDPOINT}}\"\r\n }\r\n }\r\n}`,\r\n path: \"~/.claude/claude.json\",\r\n },\r\n cursor: {\r\n name: \"Cursor\",\r\n config: `{\r\n \"mcp\": {\r\n \"servers\": {\r\n \"vibedoc\": {\r\n \"url\": \"{{ENDPOINT}}\"\r\n }\r\n }\r\n }\r\n}`,\r\n path: \".cursor/mcp.json\",\r\n },\r\n windsurf: {\r\n name: \"Windsurf\",\r\n config: `{\r\n \"mcpServers\": {\r\n \"vibedoc\": {\r\n \"url\": \"{{ENDPOINT}}\"\r\n }\r\n }\r\n}`,\r\n path: \".windsurf/mcp.json\",\r\n },\r\n}\r\n\r\nexport function MCPSettings({ settings, onSave }: MCPSettingsProps) {\r\n const [testing, setTesting] = useState(false)\r\n const [testResult, setTestResult] = useState<\"success\" | \"error\" | null>(null)\r\n const [copied, setCopied] = useState<string | null>(null)\r\n\r\n const updateMcp = (key: keyof AppSettings[\"mcp\"], value: string) => {\r\n onSave({\r\n ...settings,\r\n mcp: { ...settings.mcp, [key]: value },\r\n })\r\n }\r\n\r\n const testConnection = async () => {\r\n setTesting(true)\r\n setTestResult(null)\r\n try {\r\n const res = await fetch(settings.mcp.endpoint, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n jsonrpc: \"2.0\",\r\n id: 1,\r\n method: \"tools/list\",\r\n }),\r\n })\r\n if (res.ok) {\r\n setTestResult(\"success\")\r\n } else {\r\n setTestResult(\"error\")\r\n }\r\n } catch {\r\n setTestResult(\"error\")\r\n }\r\n setTesting(false)\r\n }\r\n\r\n const copyConfig = async (agentId: string) => {\r\n const agent = AGENT_CONFIGS[agentId as keyof typeof AGENT_CONFIGS]\r\n const config = agent.config.replace(\"{{ENDPOINT}}\", settings.mcp.endpoint)\r\n await navigator.clipboard.writeText(config)\r\n setCopied(agentId)\r\n setTimeout(() => setCopied(null), 2000)\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\">MCP Connection</h2>\r\n <p className=\"text-sm text-muted\">Configure the Model Context Protocol server for AI agents.</p>\r\n </div>\r\n\r\n {/* Endpoint */}\r\n <div className=\"space-y-3\">\r\n <label className=\"text-sm font-medium text-txt\">MCP Endpoint</label>\r\n <div className=\"flex gap-2\">\r\n <Input\r\n value={settings.mcp.endpoint}\r\n onChange={(e) => updateMcp(\"endpoint\", e.target.value)}\r\n className=\"bg-surface2 font-mono text-sm\"\r\n />\r\n <button\r\n onClick={testConnection}\r\n disabled={testing}\r\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\"\r\n >\r\n {testing ? (\r\n <Loader2 className=\"w-4 h-4 animate-spin\" />\r\n ) : (\r\n <Plug className=\"w-4 h-4\" />\r\n )}\r\n Test\r\n </button>\r\n </div>\r\n {testResult && (\r\n <div className={cn(\r\n \"flex items-center gap-2 text-sm\",\r\n testResult === \"success\" ? \"text-green-400\" : \"text-red-400\"\r\n )}>\r\n {testResult === \"success\" ? (\r\n <>\r\n <Check className=\"w-4 h-4\" />\r\n Connection successful\r\n </>\r\n ) : (\r\n <>\r\n <X className=\"w-4 h-4\" />\r\n Connection failed\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Agent Configs */}\r\n <div className=\"space-y-3\">\r\n <label className=\"text-sm font-medium text-txt\">Agent Configuration</label>\r\n <p className=\"text-xs text-muted\">Copy the configuration for your coding agent:</p>\r\n <div className=\"space-y-2\">\r\n {Object.entries(AGENT_CONFIGS).map(([id, agent]) => (\r\n <div\r\n key={id}\r\n className=\"flex items-center justify-between p-3 border border-border rounded-lg\"\r\n >\r\n <div>\r\n <div className=\"text-sm font-medium text-txt\">{agent.name}</div>\r\n <div className=\"text-xs text-muted font-mono\">{agent.path}</div>\r\n </div>\r\n <button\r\n onClick={() => copyConfig(id)}\r\n className={cn(\r\n \"flex items-center gap-2 px-3 py-1.5 rounded-lg text-sm transition-colors\",\r\n copied === id\r\n ? \"bg-green-500/20 text-green-400\"\r\n : \"bg-surface2 text-muted hover:text-txt\"\r\n )}\r\n >\r\n {copied === id ? (\r\n <>\r\n <Check className=\"w-3.5 h-3.5\" />\r\n Copied\r\n </>\r\n ) : (\r\n <>\r\n <Copy className=\"w-3.5 h-3.5\" />\r\n Copy\r\n </>\r\n )}\r\n </button>\r\n </div>\r\n ))}\r\n </div>\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, 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 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 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 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 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 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 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 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 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 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 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\"\r\n\r\nimport { useState, useEffect, useCallback } from \"react\"\r\nimport { useApp } from \"@/context/AppContext\"\r\nimport { Palette, Type, FolderCog, Plug, Zap, Bot, Settings } from \"lucide-react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { ThemeSettings } from \"@/components/settings/ThemeSettings\"\r\nimport { EditorSettings } from \"@/components/settings/EditorSettings\"\r\nimport { ProjectSettings } from \"@/components/settings/ProjectSettings\"\r\nimport { MCPSettings } from \"@/components/settings/MCPSettings\"\r\nimport { SkillsSettings } from \"@/components/settings/SkillsSettings\"\r\nimport { AgentsSettings } from \"@/components/settings/AgentsSettings\"\r\nimport type { AppSettings, Skill, Agent } from \"@/lib/settings\"\r\nimport { DEFAULT_SETTINGS, DEFAULT_SKILLS, DEFAULT_AGENTS } from \"@/lib/settings\"\r\nimport { applyTheme, applyAccent, applyFontSize } from \"@/lib/applySettings\"\r\n\r\nconst TABS = [\r\n { id: \"appearance\", label: \"Appearance\", icon: Palette },\r\n { id: \"editor\", label: \"Editor\", icon: Type },\r\n { id: \"project\", label: \"Project\", icon: FolderCog },\r\n { id: \"mcp\", label: \"MCP\", icon: Plug },\r\n { id: \"skills\", label: \"Skills\", icon: Zap },\r\n { id: \"agents\", label: \"Agents\", icon: Bot },\r\n]\r\n\r\nexport default function SettingsPage() {\r\n const { rootParam, setEditorSettings, setAutoRefreshSeconds } = useApp()\r\n const [activeTab, setActiveTab] = useState(\"appearance\")\r\n const [settings, setSettings] = useState<AppSettings>(DEFAULT_SETTINGS)\r\n const [skills, setSkills] = useState<Skill[]>(DEFAULT_SKILLS)\r\n const [agents, setAgents] = useState<Agent[]>(DEFAULT_AGENTS)\r\n const [loading, setLoading] = useState(true)\r\n const [saving, setSaving] = useState(false)\r\n\r\n const fetchAll = useCallback(async () => {\r\n try {\r\n const res = await fetch(`/api/settings${rootParam}&type=all`)\r\n const data = await res.json()\r\n setSettings(data.settings || DEFAULT_SETTINGS)\r\n setSkills(data.skills || DEFAULT_SKILLS)\r\n setAgents(data.agents || DEFAULT_AGENTS)\r\n } catch {}\r\n setLoading(false)\r\n }, [rootParam])\r\n\r\n useEffect(() => {\r\n fetchAll()\r\n }, [fetchAll])\r\n\r\n const saveSettings = async (newSettings: AppSettings) => {\r\n setSaving(true)\r\n setSettings(newSettings)\r\n try {\r\n await fetch(`/api/settings${rootParam}&type=settings`, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(newSettings),\r\n })\r\n applyTheme(newSettings.theme)\r\n applyAccent(newSettings.accentColor)\r\n applyFontSize(newSettings.fontSize)\r\n setEditorSettings(newSettings.editor)\r\n setAutoRefreshSeconds(newSettings.project?.autoRefresh ?? 0)\r\n } catch {}\r\n setSaving(false)\r\n }\r\n\r\n const saveSkills = async (newSkills: Skill[]) => {\r\n setSaving(true)\r\n setSkills(newSkills)\r\n try {\r\n await fetch(`/api/settings${rootParam}&type=skills`, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(newSkills),\r\n })\r\n } catch {}\r\n setSaving(false)\r\n }\r\n\r\n const saveAgents = async (newAgents: Agent[]) => {\r\n setSaving(true)\r\n setAgents(newAgents)\r\n try {\r\n await fetch(`/api/settings${rootParam}&type=agents`, {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(newAgents),\r\n })\r\n } catch {}\r\n setSaving(false)\r\n }\r\n\r\n if (loading) {\r\n return (\r\n <div className=\"flex items-center justify-center h-full\">\r\n <div className=\"text-muted\">Loading settings...</div>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <div className=\"flex h-full\">\r\n {/* Sidebar */}\r\n <aside className=\"w-56 border-r border-border bg-sidebar shrink-0\">\r\n <div className=\"p-4 border-b border-border\">\r\n <div className=\"flex items-center gap-2\">\r\n <Settings className=\"w-5 h-5 text-accent\" />\r\n <h1 className=\"font-semibold text-txt\">Settings</h1>\r\n </div>\r\n </div>\r\n <nav className=\"p-2\">\r\n {TABS.map(tab => {\r\n const Icon = tab.icon\r\n return (\r\n <button\r\n key={tab.id}\r\n onClick={() => setActiveTab(tab.id)}\r\n className={cn(\r\n \"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors\",\r\n activeTab === tab.id\r\n ? \"bg-accent/10 text-accent font-medium\"\r\n : \"text-muted hover:text-txt hover:bg-surface2\"\r\n )}\r\n >\r\n <Icon className=\"w-4 h-4\" />\r\n {tab.label}\r\n </button>\r\n )\r\n })}\r\n </nav>\r\n </aside>\r\n\r\n {/* Content */}\r\n <div className=\"flex-1 overflow-y-auto\">\r\n <div className=\"max-w-2xl mx-auto p-6\">\r\n {saving && (\r\n <div className=\"fixed top-4 right-4 bg-accent text-white px-3 py-1.5 rounded-lg text-sm shadow-lg\">\r\n Saving...\r\n </div>\r\n )}\r\n\r\n {activeTab === \"appearance\" && (\r\n <ThemeSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"editor\" && (\r\n <EditorSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"project\" && (\r\n <ProjectSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"mcp\" && (\r\n <MCPSettings settings={settings} onSave={saveSettings} />\r\n )}\r\n {activeTab === \"skills\" && (\r\n <SkillsSettings skills={skills} onSave={saveSkills} />\r\n )}\r\n {activeTab === \"agents\" && (\r\n <AgentsSettings agents={agents} skills={skills} onSave={saveAgents} />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Monitor\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('monitor', __iconNode);\n\nexport default Monitor;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Plug\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('plug', __iconNode);\n\nexport default Plug;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Type\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('type', __iconNode);\n\nexport default Type;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Sun\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('sun', __iconNode);\n\nexport default Sun;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Moon\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('moon', __iconNode);\n\nexport default Moon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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\n/**\n * @component @name FolderCog\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('folder-cog', __iconNode);\n\nexport default FolderCog;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\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 * @component @name Palette\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - 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('palette', __iconNode);\n\nexport default Palette;\n"],"names":[],"mappings":"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","ignoreList":[7,8,9,10,11,12,13]}
|