chorus-codes 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +18 -0
- package/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js +206 -0
- package/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js.map +8 -0
- package/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js +500 -0
- package/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js.map +11 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_06e.r3r._.js +13 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_06e.r3r._.js.map +5 -0
- package/.next/build/chunks/[turbopack]_runtime.js +890 -0
- package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/build/chunks/node_modules__pnpm_0e-dfa2._.js +6681 -0
- package/.next/build/chunks/node_modules__pnpm_0e-dfa2._.js.map +47 -0
- package/.next/build/package.json +1 -0
- package/.next/build/postcss.js +6 -0
- package/.next/build/postcss.js.map +5 -0
- package/.next/build-manifest.json +21 -0
- package/.next/cache/.previewinfo +1 -0
- package/.next/cache/.rscinfo +1 -0
- package/.next/cache/.tsbuildinfo +1 -0
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0beh7rg._.js +6077 -0
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0beh7rg._.js.map +69 -0
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0pjsj.j._.js +6318 -0
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0pjsj.j._.js.map +71 -0
- package/.next/dev/types/cache-life.d.ts +145 -0
- package/.next/dev/types/routes.d.ts +84 -0
- package/.next/dev/types/validator.ts +178 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/diagnostics/route-bundle-stats.json +176 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +13 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +239 -0
- package/.next/required-server-files.js +332 -0
- package/.next/required-server-files.json +332 -0
- package/.next/routes-manifest.json +148 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +17 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +10 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +13 -0
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +16 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/api/daemon/[...path]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/daemon/[...path]/route/build-manifest.json +9 -0
- package/.next/server/app/api/daemon/[...path]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/daemon/[...path]/route.js +7 -0
- package/.next/server/app/api/daemon/[...path]/route.js.map +5 -0
- package/.next/server/app/api/daemon/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/daemon/[...path]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route/build-manifest.json +9 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route.js +6 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route.js.map +5 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route.js.nft.json +1 -0
- package/.next/server/app/api/run-artifacts/[chatId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/connect/page/app-paths-manifest.json +3 -0
- package/.next/server/app/connect/page/build-manifest.json +17 -0
- package/.next/server/app/connect/page/next-font-manifest.json +11 -0
- package/.next/server/app/connect/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/connect/page/server-reference-manifest.json +4 -0
- package/.next/server/app/connect/page.js +15 -0
- package/.next/server/app/connect/page.js.map +5 -0
- package/.next/server/app/connect/page.js.nft.json +1 -0
- package/.next/server/app/connect/page_client-reference-manifest.js +3 -0
- package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
- package/.next/server/app/favicon.ico/route.js +8 -0
- package/.next/server/app/favicon.ico/route.js.map +5 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
- package/.next/server/app/icon.svg/route/build-manifest.json +9 -0
- package/.next/server/app/icon.svg/route.js +7 -0
- package/.next/server/app/icon.svg/route.js.map +5 -0
- package/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/.next/server/app/icon.svg.body +6 -0
- package/.next/server/app/icon.svg.meta +1 -0
- package/.next/server/app/new/page/app-paths-manifest.json +3 -0
- package/.next/server/app/new/page/build-manifest.json +17 -0
- package/.next/server/app/new/page/next-font-manifest.json +11 -0
- package/.next/server/app/new/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/new/page/server-reference-manifest.json +4 -0
- package/.next/server/app/new/page.js +14 -0
- package/.next/server/app/new/page.js.map +5 -0
- package/.next/server/app/new/page.js.nft.json +1 -0
- package/.next/server/app/new/page_client-reference-manifest.js +3 -0
- package/.next/server/app/new.html +1 -0
- package/.next/server/app/new.meta +15 -0
- package/.next/server/app/new.rsc +22 -0
- package/.next/server/app/new.segments/_full.segment.rsc +22 -0
- package/.next/server/app/new.segments/_head.segment.rsc +6 -0
- package/.next/server/app/new.segments/_index.segment.rsc +5 -0
- package/.next/server/app/new.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/new.segments/new.segment.rsc +5 -0
- package/.next/server/app/onboarding/page/app-paths-manifest.json +3 -0
- package/.next/server/app/onboarding/page/build-manifest.json +17 -0
- package/.next/server/app/onboarding/page/next-font-manifest.json +11 -0
- package/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/onboarding/page/server-reference-manifest.json +4 -0
- package/.next/server/app/onboarding/page.js +14 -0
- package/.next/server/app/onboarding/page.js.map +5 -0
- package/.next/server/app/onboarding/page.js.nft.json +1 -0
- package/.next/server/app/onboarding/page_client-reference-manifest.js +3 -0
- package/.next/server/app/onboarding.html +1 -0
- package/.next/server/app/onboarding.meta +15 -0
- package/.next/server/app/onboarding.rsc +22 -0
- package/.next/server/app/onboarding.segments/_full.segment.rsc +22 -0
- package/.next/server/app/onboarding.segments/_head.segment.rsc +6 -0
- package/.next/server/app/onboarding.segments/_index.segment.rsc +5 -0
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +5 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +17 -0
- package/.next/server/app/page/next-font-manifest.json +11 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +4 -0
- package/.next/server/app/page.js +17 -0
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/server/app/personas/page/app-paths-manifest.json +3 -0
- package/.next/server/app/personas/page/build-manifest.json +17 -0
- package/.next/server/app/personas/page/next-font-manifest.json +11 -0
- package/.next/server/app/personas/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/personas/page/server-reference-manifest.json +4 -0
- package/.next/server/app/personas/page.js +14 -0
- package/.next/server/app/personas/page.js.map +5 -0
- package/.next/server/app/personas/page.js.nft.json +1 -0
- package/.next/server/app/personas/page_client-reference-manifest.js +3 -0
- package/.next/server/app/personas.html +1 -0
- package/.next/server/app/personas.meta +15 -0
- package/.next/server/app/personas.rsc +22 -0
- package/.next/server/app/personas.segments/_full.segment.rsc +22 -0
- package/.next/server/app/personas.segments/_head.segment.rsc +6 -0
- package/.next/server/app/personas.segments/_index.segment.rsc +5 -0
- package/.next/server/app/personas.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/personas.segments/personas.segment.rsc +5 -0
- package/.next/server/app/runs/[runId]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/runs/[runId]/page/build-manifest.json +17 -0
- package/.next/server/app/runs/[runId]/page/next-font-manifest.json +11 -0
- package/.next/server/app/runs/[runId]/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/runs/[runId]/page/server-reference-manifest.json +4 -0
- package/.next/server/app/runs/[runId]/page.js +16 -0
- package/.next/server/app/runs/[runId]/page.js.map +5 -0
- package/.next/server/app/runs/[runId]/page.js.nft.json +1 -0
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +3 -0
- package/.next/server/app/runs/page/app-paths-manifest.json +3 -0
- package/.next/server/app/runs/page/build-manifest.json +17 -0
- package/.next/server/app/runs/page/next-font-manifest.json +11 -0
- package/.next/server/app/runs/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/runs/page/server-reference-manifest.json +4 -0
- package/.next/server/app/runs/page.js +15 -0
- package/.next/server/app/runs/page.js.map +5 -0
- package/.next/server/app/runs/page.js.nft.json +1 -0
- package/.next/server/app/runs/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/page/build-manifest.json +17 -0
- package/.next/server/app/settings/page/next-font-manifest.json +11 -0
- package/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/settings/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/page.js +14 -0
- package/.next/server/app/settings/page.js.map +5 -0
- package/.next/server/app/settings/page.js.nft.json +1 -0
- package/.next/server/app/settings/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/permissions/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/permissions/page/build-manifest.json +17 -0
- package/.next/server/app/settings/permissions/page/next-font-manifest.json +11 -0
- package/.next/server/app/settings/permissions/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/settings/permissions/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/permissions/page.js +14 -0
- package/.next/server/app/settings/permissions/page.js.map +5 -0
- package/.next/server/app/settings/permissions/page.js.nft.json +1 -0
- package/.next/server/app/settings/permissions/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings.html +1 -0
- package/.next/server/app/settings.meta +15 -0
- package/.next/server/app/settings.rsc +22 -0
- package/.next/server/app/settings.segments/_full.segment.rsc +22 -0
- package/.next/server/app/settings.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings.segments/_index.segment.rsc +5 -0
- package/.next/server/app/settings.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings.segments/settings.segment.rsc +5 -0
- package/.next/server/app/templates/page/app-paths-manifest.json +3 -0
- package/.next/server/app/templates/page/build-manifest.json +17 -0
- package/.next/server/app/templates/page/next-font-manifest.json +11 -0
- package/.next/server/app/templates/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/templates/page/server-reference-manifest.json +4 -0
- package/.next/server/app/templates/page.js +14 -0
- package/.next/server/app/templates/page.js.map +5 -0
- package/.next/server/app/templates/page.js.nft.json +1 -0
- package/.next/server/app/templates/page_client-reference-manifest.js +3 -0
- package/.next/server/app/templates.html +1 -0
- package/.next/server/app/templates.meta +15 -0
- package/.next/server/app/templates.rsc +22 -0
- package/.next/server/app/templates.segments/_full.segment.rsc +22 -0
- package/.next/server/app/templates.segments/_head.segment.rsc +6 -0
- package/.next/server/app/templates.segments/_index.segment.rsc +5 -0
- package/.next/server/app/templates.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/templates.segments/templates.segment.rsc +5 -0
- package/.next/server/app-paths-manifest.json +18 -0
- package/.next/server/chunks/05w9_next_0xdex7s._.js +13 -0
- package/.next/server/chunks/05w9_next_0xdex7s._.js.map +1 -0
- package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0.73kst.js +3 -0
- package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0.73kst.js.map +1 -0
- package/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +3 -0
- package/.next/server/chunks/[externals]_next_dist_0arv.vj._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__02xvj_h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02xvj_h._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0i7ddmr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0i7ddmr._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0sxhm1i._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sxhm1i._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__12xxby8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__12xxby8._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/_next-internal_server_app_api_daemon_[___path]_route_actions_0a5g-ar.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_daemon_[___path]_route_actions_0a5g-ar.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_run-artifacts_[chatId]_route_actions_07e2ul1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_run-artifacts_[chatId]_route_actions_07e2ul1.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_0q4woef._.js +3 -0
- package/.next/server/chunks/ssr/05w9_next_dist_0q4woef._.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_0ybpwn1._.js +6 -0
- package/.next/server/chunks/ssr/05w9_next_dist_0ybpwn1._.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_0~859ji._.js +6 -0
- package/.next/server/chunks/ssr/05w9_next_dist_0~859ji._.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_12u3mib._.js +3 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_12u3mib._.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_forbidden_04fbe_..js +3 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_forbidden_04fbe_..js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_global-error_0brpl_..js +3 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_global-error_0brpl_..js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_unauthorized_0~2g66g.js +3 -0
- package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_unauthorized_0~2g66g.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0-f~6r1.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0-f~6r1.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_00czn99.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_00czn99.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_01nm1_6.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_01nm1_6.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0jcydv7.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0jcydv7.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0km.hvi.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0km.hvi.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0ln8_qt.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0ln8_qt.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0n3h-j1.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0n3h-j1.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0nc~v.o.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0nc~v.o.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0o6nct3.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0o6nct3.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0veve6-.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0veve6-.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0wh5tpo.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0wh5tpo.js.map +1 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_10~fsfu.js +4 -0
- package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_10~fsfu.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0-7oo8o._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0-7oo8o._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__01t9qm2._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__01t9qm2._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__076~t6~._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__076~t6~._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0_tow-j._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0_tow-j._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0bsym8v._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0bsym8v._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0bwjwxi._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0bwjwxi._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0c2e5js._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0c2e5js._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0d_59pi._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0d_59pi._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dxp2sg._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dxp2sg._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0e58.k_._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0e58.k_._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ek20dj._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ek20dj._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0h2o43u._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0h2o43u._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0hn95cc._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0hn95cc._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ic.~tw._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ic.~tw._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0jltd-t._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0jltd-t._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0k_96yx._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0k_96yx._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0l5ko41._.js +19 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0l5ko41._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0p~21w8._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0p~21w8._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0tc4gl8._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0tc4gl8._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0v73tbn._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0v73tbn._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0we1ana._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0we1ana._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xlzjhk._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xlzjhk._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ygksjc._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ygksjc._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0yhjl35._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0yhjl35._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0~cqs-9._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0~cqs-9._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__109.1j0._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__109.1j0._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10gepjv._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10gepjv._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/ssr/_01t~nag._.js +30 -0
- package/.next/server/chunks/ssr/_01t~nag._.js.map +1 -0
- package/.next/server/chunks/ssr/_097xk3e._.js +3 -0
- package/.next/server/chunks/ssr/_097xk3e._.js.map +1 -0
- package/.next/server/chunks/ssr/_0bxoss0._.js +30 -0
- package/.next/server/chunks/ssr/_0bxoss0._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ck1n8_._.js +7 -0
- package/.next/server/chunks/ssr/_0ck1n8_._.js.map +1 -0
- package/.next/server/chunks/ssr/_0d-304b._.js +30 -0
- package/.next/server/chunks/ssr/_0d-304b._.js.map +1 -0
- package/.next/server/chunks/ssr/_0p-_ahq._.js +30 -0
- package/.next/server/chunks/ssr/_0p-_ahq._.js.map +1 -0
- package/.next/server/chunks/ssr/_0qlx_85._.js +7 -0
- package/.next/server/chunks/ssr/_0qlx_85._.js.map +1 -0
- package/.next/server/chunks/ssr/_0y43gyn._.js +27 -0
- package/.next/server/chunks/ssr/_0y43gyn._.js.map +1 -0
- package/.next/server/chunks/ssr/_11i54x9._.js +30 -0
- package/.next/server/chunks/ssr/_11i54x9._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_connect_page_actions_0vb8s6u.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_connect_page_actions_0vb8s6u.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_new_page_actions_08q6mx5.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_new_page_actions_08q6mx5.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_onboarding_page_actions_0qdby58.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_onboarding_page_actions_0qdby58.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_personas_page_actions_08fq21v.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_personas_page_actions_08fq21v.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_runs_[runId]_page_actions_0z6r2tz.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_runs_[runId]_page_actions_0z6r2tz.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_runs_page_actions_04_e1xr.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_runs_page_actions_04_e1xr.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_permissions_page_actions_0cr.qtc.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_permissions_page_actions_0cr.qtc.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_templates_page_actions_0n8gow3.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_templates_page_actions_0n8gow3.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_0~j0k.e._.js +33 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_0~j0k.e._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_new_page_tsx_0av4n2k._.js +3 -0
- package/.next/server/chunks/ssr/src_app_new_page_tsx_0av4n2k._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +3 -0
- package/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_personas_page_tsx_0jx9vyh._.js +3 -0
- package/.next/server/chunks/ssr/src_app_personas_page_tsx_0jx9vyh._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +27 -0
- package/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_templates_page_tsx_0tml2wg._.js +3 -0
- package/.next/server/chunks/ssr/src_app_templates_page_tsx_0tml2wg._.js.map +1 -0
- package/.next/server/chunks/ssr/src_components_0j77o23._.js +3 -0
- package/.next/server/chunks/ssr/src_components_0j77o23._.js.map +1 -0
- package/.next/server/chunks/ssr/src_components_0lc2g58._.js +3 -0
- package/.next/server/chunks/ssr/src_components_0lc2g58._.js.map +1 -0
- package/.next/server/chunks/ssr/src_components_live-run-real_index_tsx_0zzsdt9._.js +3 -0
- package/.next/server/chunks/ssr/src_components_live-run-real_index_tsx_0zzsdt9._.js.map +1 -0
- package/.next/server/functions-config-manifest.json +6 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +21 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +51 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +5 -0
- package/.next/static/chunks/0-xxtuzaqzyzy.css +3 -0
- package/.next/static/chunks/0.dctgbd3j_xg.js +2 -0
- package/.next/static/chunks/0.~gqf.-9g-fh.js +1 -0
- package/.next/static/chunks/01as9r5n5k.xo.js +1 -0
- package/.next/static/chunks/034b~pjm7y20e.js +1 -0
- package/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.next/static/chunks/05o4oa_9xfaun.js +1 -0
- package/.next/static/chunks/08dnw-0gzytmy.js +5 -0
- package/.next/static/chunks/08f2b7tuf53ep.js +1 -0
- package/.next/static/chunks/0a_u3vdu6tc~f.js +1 -0
- package/.next/static/chunks/0am72irwq2bx0.js +5 -0
- package/.next/static/chunks/0c-d1bhb8byrx.js +1 -0
- package/.next/static/chunks/0s4~w2~is76y1.js +1 -0
- package/.next/static/chunks/0ue4qcctkv016.js +4 -0
- package/.next/static/chunks/0uok5~eqi6zku.js +1 -0
- package/.next/static/chunks/0v3lyuj75aq50.js +1 -0
- package/.next/static/chunks/0whnu9t5k-ij7.js +1 -0
- package/.next/static/chunks/0x00t3du13-u4.js +25 -0
- package/.next/static/chunks/0xs3ktzdh4rw4.js +1 -0
- package/.next/static/chunks/0~8r6nhrrl~f9.js +1 -0
- package/.next/static/chunks/10jdu00ksgu69.js +1 -0
- package/.next/static/chunks/10ld26~0f71ye.js +25 -0
- package/.next/static/chunks/11k2wbc04r__f.js +25 -0
- package/.next/static/chunks/13-.xgv2t5u6m.js +31 -0
- package/.next/static/chunks/152ec.u3_e~ya.js +25 -0
- package/.next/static/chunks/172tpttbumwi1.js +25 -0
- package/.next/static/chunks/turbopack-0-al833jv3to~.js +1 -0
- package/.next/static/dJlbRLlhISA0JGtHKVqgQ/_buildManifest.js +11 -0
- package/.next/static/dJlbRLlhISA0JGtHKVqgQ/_clientMiddlewareManifest.js +1 -0
- package/.next/static/dJlbRLlhISA0JGtHKVqgQ/_ssgManifest.js +1 -0
- package/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
- package/.next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
- package/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
- package/.next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
- package/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
- package/.next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
- package/.next/static/media/favicon.0i~66t__91s97.ico +0 -0
- package/.next/static/media/icon.15.86wme~cdlv.svg +6 -0
- package/.next/trace +1 -0
- package/.next/trace-build +1 -0
- package/.next/turbopack +0 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/routes.d.ts +83 -0
- package/.next/types/validator.ts +169 -0
- package/LICENSE +201 -0
- package/README.md +423 -0
- package/assets/slash-commands/chorus.md +35 -0
- package/bin/chorus.mjs +30 -0
- package/dist/lib/db/schema.sql +132 -0
- package/package.json +79 -0
- package/prompts/personas/accountant.md +27 -0
- package/prompts/personas/cartographer.md +28 -0
- package/prompts/personas/concierge.md +25 -0
- package/prompts/personas/conservator.md +27 -0
- package/prompts/personas/inspector.md +31 -0
- package/prompts/personas/librarian.md +29 -0
- package/prompts/personas/profiler.md +25 -0
- package/prompts/personas/quartermaster.md +25 -0
- package/prompts/personas/sentinel.md +28 -0
- package/prompts/personas/translator.md +28 -0
- package/scripts/postinstall.mjs +20 -0
- package/templates/README.md +71 -0
- package/templates/architect-review.yaml +52 -0
- package/templates/bug-diagnose.yaml +31 -0
- package/templates/code-review.yaml +46 -0
- package/templates/red-green.yaml +169 -0
- package/templates/review-only.yaml +73 -0
- package/templates/tri-review.yaml +41 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[3438,a=>{"use strict";let b=(0,a.i(91870).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],3438)},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},92415,a=>{"use strict";let b=process.env.CHORUS_DAEMON_URL||"http://127.0.0.1:7707",c="/api/v1";class d extends Error{code;statusCode;details;constructor(a,b,c,d){super(c),this.code=a,this.statusCode=b,this.details=d,this.name="DaemonError"}}async function e(a,f={}){let g=a.startsWith("/")?a:`/${a}`,h=g===c||g.startsWith(`${c}/`)?g:`${c}${g}`,i=`${b.replace(/\/$/,"")}${h}`;try{let a=await fetch(i,{...f,headers:{"Content-Type":"application/json",...f.headers}}),b=await a.json().catch(()=>({ok:!1,error:{code:"parse_error",message:"Failed to parse response"}}));if(!b.ok)throw new d(b.error?.code||"unknown",a.status,b.error?.message||"Unknown error",b.error?.details);return b.data}catch(a){if(a instanceof d)throw a;if(a instanceof TypeError&&a.message.includes("fetch"))throw new d("connection_failed",0,"Failed to connect to Chorus daemon. Is it running?");throw new d("unknown",0,a instanceof Error?a.message:"Unknown error")}}a.s(["DaemonError",0,d,"fetchFromDaemon",0,e])},64837,a=>{"use strict";let b=(0,a.i(91870).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],64837)},84623,a=>{"use strict";let b=(0,a.i(91870).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],84623)},26442,a=>{"use strict";var b=a.i(92415);async function c(){return(await (0,b.fetchFromDaemon)("/onboard/detect-clis")).items}async function d(a,c){return(0,b.fetchFromDaemon)("/onboard/validate-cli-path",{method:"POST",body:JSON.stringify({id:a,path:c})})}async function e(a,c){return(0,b.fetchFromDaemon)("/onboard/save-cli-path",{method:"POST",body:JSON.stringify({id:a,path:c})})}async function f(a){return(0,b.fetchFromDaemon)("/settings/permissions",{method:"PUT",body:JSON.stringify(a)})}async function g(a){return(0,b.fetchFromDaemon)("/settings",{method:"PUT",body:JSON.stringify(a)})}async function h(){return(0,b.fetchFromDaemon)("/settings/transport")}async function i(a){return(0,b.fetchFromDaemon)("/settings/transport",{method:"PUT",body:JSON.stringify(a)})}async function j(){return(0,b.fetchFromDaemon)("/settings/billing")}async function k(a){return(0,b.fetchFromDaemon)("/settings/billing",{method:"PUT",body:JSON.stringify(a)})}async function l(){return(0,b.fetchFromDaemon)("/settings/telemetry")}async function m(a){return(0,b.fetchFromDaemon)("/settings/telemetry",{method:"PUT",body:JSON.stringify({enabled:a})})}async function n(a,c){return(0,b.fetchFromDaemon)(`/secrets/${a}`,{method:"PUT",body:JSON.stringify(c)})}a.s(["detectInstalledClis",0,c,"getBillingMode",0,j,"getTelemetryStatus",0,l,"getTransport",0,h,"saveCliPath",0,e,"updateBillingMode",0,k,"updatePermissions",0,f,"updateSettings",0,g,"updateTelemetryEnabled",0,m,"updateTransport",0,i,"upsertSecret",0,n,"validateCliPath",0,d])},92632,a=>{"use strict";let b=(0,a.i(91870).default)("folder-lock",[["rect",{width:"8",height:"5",x:"14",y:"17",rx:"1",key:"19aais"}],["path",{d:"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5",key:"1w6v7t"}],["path",{d:"M20 17v-2a2 2 0 1 0-4 0v2",key:"pwaxnr"}]]);a.s(["FolderLock",0,b],92632)},53751,a=>{"use strict";var b=a.i(81673),c=a.i(76015),d=a.i(3438),e=a.i(84623),f=a.i(64837),g=a.i(91870);let h=(0,g.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var i=a.i(92632);let j=(0,g.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var k=a.i(26442);a.i(30005);var l=a.i(92415);let m=["strict","workspace","full"],n={strict:h,workspace:i.FolderLock,full:j};a.s(["PermissionsForm",0,function({initial:a}){let[g,h]=(0,c.useState)(a),[i,j]=(0,c.useState)(!1),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(null),s=g.profileDescriptions??a.profileDescriptions??{strict:{label:"Strict",description:""},workspace:{label:"Workspace",description:""},full:{label:"Full access",description:""}},t=(0,c.useCallback)(async a=>{j(!0),p(null);try{let b=await (0,k.updatePermissions)(a);h(b),r(Date.now())}catch(a){p(a instanceof l.DaemonError?a.message:"Failed to save — is the daemon running?")}finally{j(!1)}},[]);return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:"Sandbox profile"}),(0,b.jsx)("div",{className:"grid gap-3",children:m.map(a=>{let c=n[a],d=s[a]??{label:a,description:""},f=g.sandboxProfile===a;return(0,b.jsxs)("button",{type:"button",disabled:i,onClick:()=>t({sandboxProfile:a}),className:`group flex items-start gap-3 rounded-lg border p-4 text-left transition disabled:cursor-not-allowed ${f?"border-primary bg-primary/5":"border-border bg-card hover:border-primary/50"}`,children:[(0,b.jsx)(c,{className:`mt-0.5 h-5 w-5 shrink-0 ${f?"text-primary":"text-muted-foreground"}`}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:d.label}),f&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300",children:[(0,b.jsx)(e.Check,{className:"h-3 w-3"})," Active"]})]}),(0,b.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:d.description})]})]},a)})})]}),(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:"Auto-approve prompts"}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("input",{type:"checkbox",checked:g.autoApprovePrompts,disabled:i,onChange:a=>t({autoApprovePrompts:a.target.checked}),className:"mt-1 h-4 w-4 cursor-pointer accent-primary"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Skip permission prompts inside the spawned CLI"}),(0,b.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:["When on, chorus passes ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"--afk"})," to kimi, ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"--approval-mode auto_edit"}),"to gemini, and equivalent flags to other CLIs so reviewers don't hang on per-tool permission prompts. Turn off if you want every action to require an explicit “yes” inside the CLI's TUI (slower, but fully observable)."]})]})]})]}),(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:"Network access"}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("input",{type:"checkbox",checked:g.networkAccess,disabled:i,onChange:a=>t({networkAccess:a.target.checked}),className:"mt-1 h-4 w-4 cursor-pointer accent-primary"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Allow outbound network from reviewers"}),(0,b.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:"Off by default. Reviewers can't curl, npm install, or call external APIs. Templates that explicitly need network (e.g. fetching docs, gh CLI) override this per phase. Enable globally only if you trust every template you run."})]})]})]}),(0,b.jsxs)("div",{className:"flex h-6 items-center text-xs",children:[i&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[(0,b.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"})," Saving…"]}),!i&&o&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-destructive",children:[(0,b.jsx)(f.AlertTriangle,{className:"h-3 w-3"})," ",o]}),!i&&!o&&q&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-emerald-400",children:[(0,b.jsx)(e.Check,{className:"h-3 w-3"})," Saved"]})]})]})}],53751)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0bwjwxi._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/loader-circle.ts","../../../../src/lib/api/client.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../src/lib/api/settings.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-lock.ts","../../../../src/app/settings/permissions/permissions-form.tsx","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/globe.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield-check.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\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 LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","// Fetch wrapper with error handling and base URL management\nimport { ApiResponse } from \"@/lib/types\";\n\n// Server-side: hit the daemon directly on this host.\n// Browser-side: go through the Next.js proxy at /api/daemon (the browser\n// cannot reach 127.0.0.1 on the server).\n//\n// API_PREFIX freezes the wire shape at v0.7 — every path passed to\n// fetchFromDaemon is implicitly under /api/v1. v0.8 may add /api/v2\n// alongside without breaking existing consumers.\nconst SERVER_BASE =\n process.env.CHORUS_DAEMON_URL || \"http://127.0.0.1:7707\";\nconst CLIENT_BASE = \"/api/daemon\";\nconst API_PREFIX = \"/api/v1\";\n\nfunction getBaseUrl(): string {\n if (typeof window === \"undefined\") return SERVER_BASE;\n return new URL(CLIENT_BASE, window.location.origin).toString();\n}\n\nexport class DaemonError extends Error {\n constructor(\n public code: string,\n public statusCode: number,\n message: string,\n /**\n * Optional structured payload mirrored from the server envelope's\n * `error.details`. Used for zod-issue lists from /templates POST so\n * the cockpit can pin each error to the field it references.\n */\n public details?: Record<string, unknown>,\n ) {\n super(message);\n this.name = \"DaemonError\";\n }\n}\n\nexport async function fetchFromDaemon<T>(\n path: string,\n options: RequestInit = {},\n): Promise<T> {\n const base = getBaseUrl();\n // Normalise to a leading-slash form first so the prefix check can\n // anchor on `/api/v1` exactly. Without this, `api/v1/foo` (no leading\n // slash) gets double-prefixed → `/api/v1/api/v1/foo`.\n const normalised = path.startsWith(\"/\") ? path : `/${path}`;\n // Exact-segment match — naive `startsWith` would match `/api/v10/...`\n // or `/api/v1foo/...` and skip prepending.\n const isPrefixed =\n normalised === API_PREFIX || normalised.startsWith(`${API_PREFIX}/`);\n const versionedPath = isPrefixed ? normalised : `${API_PREFIX}${normalised}`;\n const url = `${base.replace(/\\/$/, \"\")}${versionedPath}`;\n\n try {\n const response = await fetch(url, {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n\n const data: ApiResponse<T> = await response.json().catch(() => ({\n ok: false,\n error: {\n code: \"parse_error\",\n message: \"Failed to parse response\",\n },\n }));\n\n if (!data.ok) {\n throw new DaemonError(\n data.error?.code || \"unknown\",\n response.status,\n data.error?.message || \"Unknown error\",\n data.error?.details,\n );\n }\n\n return data.data as T;\n } catch (error) {\n if (error instanceof DaemonError) {\n throw error;\n }\n\n if (error instanceof TypeError && error.message.includes(\"fetch\")) {\n throw new DaemonError(\n \"connection_failed\",\n 0,\n \"Failed to connect to Chorus daemon. Is it running?\",\n );\n }\n\n throw new DaemonError(\n \"unknown\",\n 0,\n error instanceof Error ? error.message : \"Unknown error\",\n );\n }\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n];\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\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 TriangleAlert = createLucideIcon('triangle-alert', __iconNode);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\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 Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","// Settings and secrets API endpoints\nimport type { ListEnvelope, Settings, Secret } from \"@/lib/types\";\nimport { fetchFromDaemon } from \"./client\";\n\nexport type SandboxProfile = \"strict\" | \"workspace\" | \"full\";\n\nexport interface PermissionSettings {\n sandboxProfile: SandboxProfile;\n autoApprovePrompts: boolean;\n networkAccess: boolean;\n profileDescriptions?: Record<SandboxProfile, { label: string; description: string }>;\n}\n\nexport async function getPermissions(): Promise<PermissionSettings> {\n return fetchFromDaemon<PermissionSettings>(\"/settings/permissions\");\n}\n\nexport type DetectableCliId =\n | \"claude-code\"\n | \"codex-cli\"\n | \"gemini-cli\"\n | \"opencode-cli\"\n | \"kimi-cli\";\n\nexport interface CliDetection {\n id: DetectableCliId;\n found: boolean;\n path?: string;\n source?: \"path\" | \"fallback\" | \"manual\";\n /** Populated on manual validation failures — surfaces \"no file at\n * that path\", \"binary doesn't look like the claude CLI\", etc. so\n * the UI can show a concrete reason inline. */\n reason?: string;\n}\n\nexport async function detectInstalledClis(): Promise<CliDetection[]> {\n const env = await fetchFromDaemon<ListEnvelope<CliDetection>>(\"/onboard/detect-clis\");\n return env.items;\n}\n\nexport async function validateCliPath(\n id: DetectableCliId,\n path: string,\n): Promise<CliDetection> {\n return fetchFromDaemon<CliDetection>(\"/onboard/validate-cli-path\", {\n method: \"POST\",\n body: JSON.stringify({ id, path }),\n });\n}\n\n/**\n * Persist a manual CLI path for the daemon to use across restarts.\n * Backend re-validates server-side, so a stale React state can't store a\n * path that no longer runs. Returns the saved absolute path.\n */\nexport async function saveCliPath(\n id: DetectableCliId,\n path: string,\n): Promise<{ id: string; path: string }> {\n return fetchFromDaemon<{ id: string; path: string }>(\n \"/onboard/save-cli-path\",\n {\n method: \"POST\",\n body: JSON.stringify({ id, path }),\n },\n );\n}\n\nexport async function getSavedCliPaths(): Promise<Record<string, string>> {\n return fetchFromDaemon<Record<string, string>>(\"/onboard/cli-paths\");\n}\n\nexport async function clearSavedCliPath(\n id: DetectableCliId,\n): Promise<{ id: string; cleared: boolean }> {\n return fetchFromDaemon<{ id: string; cleared: boolean }>(\n `/onboard/cli-paths/${encodeURIComponent(id)}`,\n { method: \"DELETE\" },\n );\n}\n\nexport async function updatePermissions(\n patch: Partial<Omit<PermissionSettings, \"profileDescriptions\">>,\n): Promise<PermissionSettings> {\n return fetchFromDaemon<PermissionSettings>(\"/settings/permissions\", {\n method: \"PUT\",\n body: JSON.stringify(patch),\n });\n}\n\nexport async function getSettings(): Promise<Settings> {\n return fetchFromDaemon<Settings>(\"/settings\");\n}\n\nexport async function updateSettings(patch: Partial<Settings>): Promise<Settings> {\n return fetchFromDaemon<Settings>(\"/settings\", {\n method: \"PUT\",\n body: JSON.stringify(patch),\n });\n}\n\nexport type Transport = \"headless\" | \"tmux\";\n\nexport interface TransportSettings {\n transport: Transport;\n descriptions?: Record<Transport, { label: string; description: string }>;\n /** False on Windows OR when the tmux binary isn't on PATH — cockpit\n * greys out the Tmux card and shows an install hint instead of letting\n * the user opt into a mode whose first chat would hang. */\n tmuxAvailable?: boolean;\n}\n\nexport async function getTransport(): Promise<TransportSettings> {\n return fetchFromDaemon<TransportSettings>(\"/settings/transport\");\n}\n\nexport async function updateTransport(\n patch: { transport: Transport },\n): Promise<TransportSettings> {\n return fetchFromDaemon<TransportSettings>(\"/settings/transport\", {\n method: \"PUT\",\n body: JSON.stringify(patch),\n });\n}\n\nexport type BillingMode = \"api\" | \"subscription\" | \"mixed\";\n\nexport interface BillingSettings {\n mode: BillingMode;\n descriptions?: Record<BillingMode, { label: string; description: string }>;\n}\n\nexport async function getBillingMode(): Promise<BillingSettings> {\n return fetchFromDaemon<BillingSettings>(\"/settings/billing\");\n}\n\nexport async function updateBillingMode(\n patch: { mode: BillingMode },\n): Promise<BillingSettings> {\n return fetchFromDaemon<BillingSettings>(\"/settings/billing\", {\n method: \"PUT\",\n body: JSON.stringify(patch),\n });\n}\n\nexport interface TelemetryStatus {\n enabled: boolean;\n envOverride: boolean;\n fileOverride: boolean;\n settingValue: boolean | undefined;\n endpoint: string;\n}\n\nexport async function getTelemetryStatus(): Promise<TelemetryStatus> {\n return fetchFromDaemon<TelemetryStatus>(\"/settings/telemetry\");\n}\n\nexport async function updateTelemetryEnabled(\n enabled: boolean,\n): Promise<TelemetryStatus> {\n return fetchFromDaemon<TelemetryStatus>(\"/settings/telemetry\", {\n method: \"PUT\",\n body: JSON.stringify({ enabled }),\n });\n}\n\nexport async function listSecrets(): Promise<Secret[]> {\n const env = await fetchFromDaemon<ListEnvelope<Secret>>(\"/secrets\");\n return env.items;\n}\n\nexport async function upsertSecret(\n provider: string,\n secret: Omit<Secret, \"provider\">,\n): Promise<Secret> {\n return fetchFromDaemon<Secret>(`/secrets/${provider}`, {\n method: \"PUT\",\n body: JSON.stringify(secret),\n });\n}\n\n/**\n * Idempotent rotation. Returns `{ deleted }` indicating whether a row\n * was actually removed (`false` if it didn't exist). Cockpit can show\n * an info toast on `false` (\"nothing to delete\") if it cares.\n */\nexport async function deleteSecret(\n provider: string,\n): Promise<{ provider: string; deleted: boolean }> {\n return fetchFromDaemon<{ provider: string; deleted: boolean }>(\n `/secrets/${encodeURIComponent(provider)}`,\n { method: \"DELETE\" },\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '8', height: '5', x: '14', y: '17', rx: '1', key: '19aais' }],\n [\n 'path',\n {\n d: 'M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5',\n key: '1w6v7t',\n },\n ],\n ['path', { d: 'M20 17v-2a2 2 0 1 0-4 0v2', key: 'pwaxnr' }],\n];\n\n/**\n * @component @name FolderLock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder-lock\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 FolderLock = createLucideIcon('folder-lock', __iconNode);\n\nexport default FolderLock;\n","\"use client\";\n\nimport { useCallback, useState } from \"react\";\nimport { Loader2, Check, AlertTriangle, ShieldCheck, FolderLock, Globe } from \"lucide-react\";\nimport {\n type PermissionSettings,\n type SandboxProfile,\n updatePermissions,\n} from \"@/lib/api/settings\";\nimport { DaemonError } from \"@/lib/api\";\n\ninterface Props {\n initial: PermissionSettings;\n}\n\nconst PROFILE_ORDER: SandboxProfile[] = [\"strict\", \"workspace\", \"full\"];\n\nconst PROFILE_ICON: Record<SandboxProfile, typeof ShieldCheck> = {\n strict: ShieldCheck,\n workspace: FolderLock,\n full: Globe,\n};\n\nexport function PermissionsForm({ initial }: Props) {\n const [state, setState] = useState<PermissionSettings>(initial);\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [savedAt, setSavedAt] = useState<number | null>(null);\n\n const descriptions: Record<SandboxProfile, { label: string; description: string }> =\n state.profileDescriptions ?? initial.profileDescriptions ?? {\n strict: { label: \"Strict\", description: \"\" },\n workspace: { label: \"Workspace\", description: \"\" },\n full: { label: \"Full access\", description: \"\" },\n };\n\n // useCallback so the React Compiler treats the body as deferred-\n // execution (event-handler time, not render time). Without this,\n // `Date.now()` is flagged as an impure call during render even\n // though it only fires when the user toggles a switch.\n const persist = useCallback(async (patch: Partial<PermissionSettings>) => {\n setBusy(true);\n setError(null);\n try {\n const next = await updatePermissions(patch);\n setState(next);\n setSavedAt(Date.now());\n } catch (err) {\n setError(\n err instanceof DaemonError\n ? err.message\n : \"Failed to save — is the daemon running?\",\n );\n } finally {\n setBusy(false);\n }\n }, []);\n\n return (\n <div className=\"space-y-6\">\n <section className=\"space-y-3\">\n <h2 className=\"text-sm font-semibold\">Sandbox profile</h2>\n <div className=\"grid gap-3\">\n {PROFILE_ORDER.map((profile) => {\n const Icon = PROFILE_ICON[profile];\n const meta = descriptions[profile] ?? {\n label: profile,\n description: \"\",\n };\n const selected = state.sandboxProfile === profile;\n return (\n <button\n key={profile}\n type=\"button\"\n disabled={busy}\n onClick={() => persist({ sandboxProfile: profile })}\n className={`group flex items-start gap-3 rounded-lg border p-4 text-left transition disabled:cursor-not-allowed ${\n selected\n ? \"border-primary bg-primary/5\"\n : \"border-border bg-card hover:border-primary/50\"\n }`}\n >\n <Icon\n className={`mt-0.5 h-5 w-5 shrink-0 ${\n selected ? \"text-primary\" : \"text-muted-foreground\"\n }`}\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">{meta.label}</span>\n {selected && (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300\">\n <Check className=\"h-3 w-3\" /> Active\n </span>\n )}\n </div>\n <p className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {meta.description}\n </p>\n </div>\n </button>\n );\n })}\n </div>\n </section>\n\n <section className=\"space-y-3\">\n <h2 className=\"text-sm font-semibold\">Auto-approve prompts</h2>\n <label className=\"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-4\">\n <input\n type=\"checkbox\"\n checked={state.autoApprovePrompts}\n disabled={busy}\n onChange={(e) => persist({ autoApprovePrompts: e.target.checked })}\n className=\"mt-1 h-4 w-4 cursor-pointer accent-primary\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-sm font-medium\">\n Skip permission prompts inside the spawned CLI\n </div>\n <p className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n When on, chorus passes <code className=\"rounded bg-muted px-1\">--afk</code> to\n kimi, <code className=\"rounded bg-muted px-1\">--approval-mode auto_edit</code> to\n gemini, and equivalent flags to other CLIs so reviewers don't hang on per-tool\n permission prompts. Turn off if you want every action to require an explicit\n “yes” inside the CLI's TUI (slower, but fully observable).\n </p>\n </div>\n </label>\n </section>\n\n <section className=\"space-y-3\">\n <h2 className=\"text-sm font-semibold\">Network access</h2>\n <label className=\"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-4\">\n <input\n type=\"checkbox\"\n checked={state.networkAccess}\n disabled={busy}\n onChange={(e) => persist({ networkAccess: e.target.checked })}\n className=\"mt-1 h-4 w-4 cursor-pointer accent-primary\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-sm font-medium\">Allow outbound network from reviewers</div>\n <p className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n Off by default. Reviewers can't curl, npm install, or call external APIs.\n Templates that explicitly need network (e.g. fetching docs, gh CLI) override this\n per phase. Enable globally only if you trust every template you run.\n </p>\n </div>\n </label>\n </section>\n\n <div className=\"flex h-6 items-center text-xs\">\n {busy && (\n <span className=\"inline-flex items-center gap-1 text-muted-foreground\">\n <Loader2 className=\"h-3 w-3 animate-spin\" /> Saving…\n </span>\n )}\n {!busy && error && (\n <span className=\"inline-flex items-center gap-1 text-destructive\">\n <AlertTriangle className=\"h-3 w-3\" /> {error}\n </span>\n )}\n {!busy && !error && savedAt && (\n <span className=\"inline-flex items-center gap-1 text-emerald-400\">\n <Check className=\"h-3 w-3\" /> Saved\n </span>\n )}\n </div>\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n];\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\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 Globe = createLucideIcon('globe', __iconNode);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n key: 'oel41y',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n];\n\n/**\n * @component @name ShieldCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/shield-check\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 ShieldCheck = createLucideIcon('shield-check', __iconNode);\n\nexport default ShieldCheck;\n"],"names":["SERVER_BASE","process","env","CHORUS_DAEMON_URL","CLIENT_BASE","API_PREFIX","getBaseUrl","DaemonError","Error","code","statusCode","message","details","name","fetchFromDaemon","path","options","base","normalised","startsWith","isPrefixed","versionedPath","url","replace","response","fetch","headers","data","json","catch","ok","error","status","TypeError","includes","getPermissions","detectInstalledClis","items","validateCliPath","id","method","body","JSON","stringify","saveCliPath","getSavedCliPaths","clearSavedCliPath","encodeURIComponent","updatePermissions","patch","getSettings","updateSettings","getTransport","updateTransport","getBillingMode","updateBillingMode","getTelemetryStatus","updateTelemetryEnabled","enabled","listSecrets","upsertSecret","provider","secret","deleteSecret"],"mappings":"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","ignoreList":[0,2,3,5,7,8]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},95832,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},54508,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},10585,a=>{a.v("/_next/static/media/favicon.0i~66t__91s97.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},68611,a=>{"use strict";let b={src:a.i(10585).default,width:48,height:48};a.s(["default",0,b])},7524,a=>{a.v("/_next/static/media/icon.15.86wme~cdlv.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},39375,a=>{"use strict";let b={src:a.i(7524).default,width:32,height:32};a.s(["default",0,b])},20338,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/app/onboarding/page.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/onboarding/page.tsx <module evaluation>","default")},87663,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/app/onboarding/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/onboarding/page.tsx","default")},73394,a=>{"use strict";a.i(20338);var b=a.i(87663);a.n(b)},9543,a=>{a.n(a.i(73394))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0c2e5js._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../src/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../src/app/icon.svg.mjs%20%28structured%20image%20object%29","../../../../src/app/onboarding/page.tsx/__nextjs-internal-proxy.mjs"],"sourcesContent":["export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","import src from \"IMAGE\";\nexport default { src, width: 32, height: 32 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/src/app/onboarding/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/app/onboarding/page.tsx\",\n \"default\",\n);\n"],"names":["InvariantError","Error","constructor","message","options","endsWith","name","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","src","width","height"],"mappings":"6QAAaA,iBAAAA,qCAAAA,IAAN,OAAMA,UAAuBC,MAClCC,YAAYC,CAAe,CAAEC,CAAsB,CAAE,CACnD,KAAK,CACH,CAAC,WAAW,EAAED,EAAQE,QAAQ,CAAC,KAAOF,EAAUA,EAAU,IAAI,0BAA0B,CAAC,CACzFC,GAEF,IAAI,CAACE,IAAI,CAAG,gBACd,CACF,gCCNA,SAASC,EAAyBC,CAAW,EACzC,GAAuB,YAAnB,OAAOC,QAAwB,OAAO,KAE1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAE3B,MAAO,CAACF,EAA2B,SAASC,CAAW,EACnD,OAAOA,EAAcG,EAAmBD,EAC5C,CAAC,CAAEF,EACP,CA0BAuB,EAAQC,CAAC,CAzBT,EAyBYpB,OAzBuBC,AAA1BD,CAA6B,CAAEJ,CAAW,EAC/C,GAAI,CAACA,GAAeK,GAAOA,EAAIC,UAAU,CAAE,OAAOD,EAClD,GAAY,OAARA,GAA+B,UAAf,OAAOA,GAAmC,YAAf,OAAOA,EAAoB,MAAO,CAAEE,QAASF,CAAI,EAEhG,IAAIG,EAAQT,EAAyBC,GAErC,GAAIQ,GAASA,EAAMC,GAAG,CAACJ,GAAM,OAAOG,EAAME,GAAG,CAACL,GAE9C,IAAIM,EAAS,CAAEC,UAAW,IAAK,EAC3BC,EAAwBC,OAAOC,cAAc,EAAID,OAAOE,wBAAwB,CAEpF,IAAK,IAAIC,KAAOZ,EACZ,EADiB,CACL,YAARY,GAAqBH,OAAOI,SAAS,CAACC,cAAc,CAACC,IAAI,CAACf,EAAKY,GAAM,CACrE,IAAII,EAAOR,EAAwBC,OAAOE,wBAAwB,CAACX,EAAKY,GAAO,KAC3EI,IAASA,EAAKX,EAAN,CAAS,EAAIW,EAAKC,GAAAA,AAAG,EAAGR,OAAOC,cAAc,CAACJ,EAAQM,EAAKI,GAClEV,CAAM,CAACM,EAAI,CAAGZ,CAAG,CAACY,EAAI,AAC/B,CAOJ,OAJAN,EAAOJ,OAAO,CAAGF,EAEbG,GAAOA,EAAMc,GAAG,CAACjB,EAAKM,GAEnBA,CACX,0ICnCe,CAAEc,IADjB,AACiBA,EADjB,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,2JCA7B,CAAEF,IADjB,AACiBA,EADjB,CAAA,CAAA,MACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,4ECC7B,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIlC,MAAM,6RAA+R,EAC5T,4DACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,yQAA2Q,EACxS,wCACA","ignoreList":[0,1,4]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},95832,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},54508,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},7524,a=>{a.v("/_next/static/media/icon.15.86wme~cdlv.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},39375,a=>{"use strict";let b={src:a.i(7524).default,width:32,height:32};a.s(["default",0,b])},10585,a=>{a.v("/_next/static/media/favicon.0i~66t__91s97.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},68611,a=>{"use strict";let b={src:a.i(10585).default,width:48,height:48};a.s(["default",0,b])},10346,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(80070);a.n(d("[project]/node_modules/.pnpm/next@16.2.4_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>"))},25584,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(80070);a.n(d("[project]/node_modules/.pnpm/next@16.2.4_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js"))},43955,a=>{"use strict";a.i(10346);var b=a.i(25584);a.n(b)},96092,a=>{a.n(a.i(43955))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0d_59pi._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../src/app/icon.svg.mjs%20%28structured%20image%20object%29","../../../../src/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/client/components/builtin/global-error.js/__nextjs-internal-proxy.cjs","../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/components/builtin/global-error.tsx"],"sourcesContent":["export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import src from \"IMAGE\";\nexport default { src, width: 32, height: 32 }\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/.pnpm/next@16.2.4_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js\"));\n","'use client'\n\nimport React from 'react'\nimport { handleISRError } from '../handle-isr-error'\nimport { errorStyles, errorThemeCss, WarningIcon } from './error-styles'\n\nexport type GlobalErrorComponent = React.ComponentType<{\n error: any\n reset: () => void\n unstable_retry: () => void\n}>\n\nfunction DefaultGlobalError({ error }: { error: any }) {\n const digest: string | undefined = error?.digest\n const isServerError = !!digest\n\n const message = isServerError\n ? 'A server error occurred. Reload to try again.'\n : 'Reload to try again, or go back.'\n\n handleISRError({ error })\n\n return (\n <html id=\"__next_error__\">\n <head>\n <style dangerouslySetInnerHTML={{ __html: errorThemeCss }} />\n </head>\n <body>\n <div style={errorStyles.container}>\n <div style={errorStyles.card}>\n <WarningIcon />\n <h1 style={errorStyles.title}>This page couldn’t load</h1>\n <p style={errorStyles.message}>{message}</p>\n <div style={errorStyles.buttonGroup}>\n <form style={errorStyles.form}>\n <button type=\"submit\" style={errorStyles.button}>\n Reload\n </button>\n </form>\n {!isServerError && (\n <button\n type=\"button\"\n style={errorStyles.buttonSecondary}\n onClick={() => {\n if (window.history.length > 1) {\n window.history.back()\n } else {\n window.location.href = '/'\n }\n }}\n >\n Back\n </button>\n )}\n </div>\n </div>\n </div>\n {digest && <p style={errorStyles.digestFooter}>ERROR {digest}</p>}\n </body>\n </html>\n )\n}\n\n// Exported so that the import signature in the loaders can be identical to user\n// supplied custom global error signatures.\nexport default DefaultGlobalError\n"],"names":["InvariantError","Error","constructor","message","options","endsWith","name","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","src","width","height","createClientModuleProxy","__turbopack_context__","n","DefaultGlobalError","error","digest","isServerError","handleISRError","html","id","head","style","dangerouslySetInnerHTML","__html","errorThemeCss","body","div","errorStyles","container","card","WarningIcon","h1","title","p","buttonGroup","form","button","type","buttonSecondary","onClick","window","history","length","back","location","href","digestFooter"],"mappings":"6QAAaA,iBAAAA,qCAAAA,IAAN,OAAMA,UAAuBC,MAClCC,YAAYC,CAAe,CAAEC,CAAsB,CAAE,CACnD,KAAK,CACH,CAAC,WAAW,EAAED,EAAQE,QAAQ,CAAC,KAAOF,EAAUA,EAAU,IAAI,0BAA0B,CAAC,CACzFC,GAEF,IAAI,CAACE,IAAI,CAAG,gBACd,CACF,gCCNA,SAASC,EAAyBC,CAAW,EACzC,GAAI,AAAmB,mBAAZC,QAAwB,OAAO,KAE1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAE3B,MAAO,CAACF,EAA2B,SAASC,CAAW,EACnD,OAAOA,EAAcG,EAAmBD,EAC5C,CAAC,CAAEF,EACP,CA0BAuB,EAAQC,CAAC,CAzBT,EAyBYpB,OAzBHA,AAA0BC,CAAG,CAAEL,CAAW,EAC/C,GAAI,CAACA,GAAeK,GAAOA,EAAIC,UAAU,CAAE,OAAOD,EAClD,GAAY,OAARA,GAA+B,UAAf,OAAOA,GAAmC,YAAf,OAAOA,EAAoB,MAAO,CAAEE,QAASF,CAAI,EAEhG,IAAIG,EAAQT,EAAyBC,GAErC,GAAIQ,GAASA,EAAMC,GAAG,CAACJ,GAAM,OAAOG,EAAME,GAAG,CAACL,GAE9C,IAAIM,EAAS,CAAEC,UAAW,IAAK,EAC3BC,EAAwBC,OAAOC,cAAc,EAAID,OAAOE,wBAAwB,CAEpF,IAAK,IAAIC,KAAOZ,EACZ,EADiB,CACL,YAARY,GAAqBH,OAAOI,SAAS,CAACC,cAAc,CAACC,IAAI,CAACf,EAAKY,GAAM,CACrE,IAAII,EAAOR,EAAwBC,OAAOE,wBAAwB,CAACX,EAAKY,GAAO,KAC3EI,IAASA,EAAKX,EAAN,CAAS,EAAIW,EAAKC,GAAAA,AAAG,EAAGR,OAAOC,cAAc,CAACJ,EAAQM,EAAKI,GAClEV,CAAM,CAACM,EAAI,CAAGZ,CAAG,CAACY,EAAI,AAC/B,CAOJ,OAJAN,EAAOJ,OAAO,CAAGF,EAEbG,GAAOA,EAAMc,GAAG,CAACjB,EAAKM,GAEnBA,CACX,sICnCe,CAAEc,IADjB,AACiBA,EADjB,CAAA,CAAA,MACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,+JCA7B,CAAEF,IADjB,AACiBA,EADjB,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,wCCA5C,GAAM,yBAAEC,CAAuB,CAAE,CAAA,EAAA,CAAA,CAAA,OAEjCC,EAAsBC,CAAC,CAACF,EAAwB,kNAFhD,GAAM,yBAAEA,CAAuB,CAAE,CAAA,EAAA,CAAA,CAAA,OAEjCC,EAAsBC,CAAC,CAACF,EAAwB","ignoreList":[0,1,4]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[84623,a=>{"use strict";let b=(0,a.i(91870).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],84623)},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},92415,a=>{"use strict";let b=process.env.CHORUS_DAEMON_URL||"http://127.0.0.1:7707",c="/api/v1";class d extends Error{code;statusCode;details;constructor(a,b,c,d){super(c),this.code=a,this.statusCode=b,this.details=d,this.name="DaemonError"}}async function e(a,f={}){let g=a.startsWith("/")?a:`/${a}`,h=g===c||g.startsWith(`${c}/`)?g:`${c}${g}`,i=`${b.replace(/\/$/,"")}${h}`;try{let a=await fetch(i,{...f,headers:{"Content-Type":"application/json",...f.headers}}),b=await a.json().catch(()=>({ok:!1,error:{code:"parse_error",message:"Failed to parse response"}}));if(!b.ok)throw new d(b.error?.code||"unknown",a.status,b.error?.message||"Unknown error",b.error?.details);return b.data}catch(a){if(a instanceof d)throw a;if(a instanceof TypeError&&a.message.includes("fetch"))throw new d("connection_failed",0,"Failed to connect to Chorus daemon. Is it running?");throw new d("unknown",0,a instanceof Error?a.message:"Unknown error")}}a.s(["DaemonError",0,d,"fetchFromDaemon",0,e])},64837,a=>{"use strict";let b=(0,a.i(91870).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],64837)},3438,a=>{"use strict";let b=(0,a.i(91870).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],3438)},23596,a=>{"use strict";let b=(0,a.i(91870).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,b],23596)},88923,a=>{"use strict";let b={anthropic:"Claude",openai:"Codex",google:"Gemini",opencode:"OpenCode",moonshot:"Kimi"},c={anthropic:"bg-violet-400",openai:"bg-orange-400",google:"bg-blue-400",opencode:"bg-emerald-400",moonshot:"bg-pink-400"},d={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode",kimi:"Kimi",openrouter:"OpenRouter"},e={claude:"bg-violet-400",codex:"bg-orange-400",gemini:"bg-blue-400",opencode:"bg-emerald-400",kimi:"bg-pink-400",openrouter:"bg-cyan-400"},f={claude:"claude-opus-4-7",codex:"gpt-5.5",gemini:"gemini-3.1-pro-preview",opencode:"kimi-k2.6",kimi:"kimi-k2.6",openrouter:""};a.s(["LINEAGE_LABEL",0,b,"UI_LINEAGE_BRAND",0,{claude:{dot:"bg-violet-400",ring:"ring-violet-400/40",gradient:"bg-gradient-to-b from-violet-500/15 to-card"},codex:{dot:"bg-orange-400",ring:"ring-orange-400/40",gradient:"bg-gradient-to-b from-orange-500/15 to-card"},gemini:{dot:"bg-blue-400",ring:"ring-blue-400/40",gradient:"bg-gradient-to-b from-blue-500/15 to-card"},opencode:{dot:"bg-emerald-400",ring:"ring-emerald-400/40",gradient:"bg-gradient-to-b from-emerald-500/15 to-card"},kimi:{dot:"bg-pink-400",ring:"ring-pink-400/40",gradient:"bg-gradient-to-b from-pink-500/15 to-card"},openrouter:{dot:"bg-cyan-400",ring:"ring-cyan-400/40",gradient:"bg-gradient-to-b from-cyan-500/15 to-card"}},"UI_LINEAGE_DEFAULT_MODEL",0,f,"UI_LINEAGE_LABEL",0,d,"lineageDot",0,function(a){return a?c[a]??"bg-muted":"bg-muted"},"lineageLabel",0,function(a){return a?b[a]??a:""},"uiLineageDefaultModel",0,function(a){if(a)return f[a]},"uiLineageDot",0,function(a){return a?e[a]??"bg-muted":"bg-muted"},"uiLineageLabel",0,function(a){return a?d[a]??a:""}])},24897,a=>{"use strict";var b=a.i(92415);async function c(a){return(await (0,b.fetchFromDaemon)(`/voices${function(a){if(!a)return"";let b=[];return a.lineage&&b.push(`lineage=${encodeURIComponent(a.lineage)}`),a.source&&b.push(`source=${encodeURIComponent(a.source)}`),a.provider&&b.push(`provider=${encodeURIComponent(a.provider)}`),void 0!==a.enabled&&b.push(`enabled=${a.enabled?"true":"false"}`),0===b.length?"":`?${b.join("&")}`}(a)}`)).items}async function d(a,c){return(0,b.fetchFromDaemon)(`/voices/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify(c)})}async function e(a){return(0,b.fetchFromDaemon)("/voices",{method:"POST",body:JSON.stringify(a)})}a.s(["createVoice",0,e,"listVoices",0,c,"updateVoice",0,d])},57966,a=>{"use strict";var b=a.i(92415);async function c(a){return(0,b.fetchFromDaemon)(`/orchestrators/${a}/connect`,{method:"POST"})}async function d(){return(0,b.fetchFromDaemon)("/orchestrators/opencode/models")}a.s(["connectOrchestrator",0,c,"listOpencodeModels",0,d])},39908,16215,a=>{"use strict";let b=(0,a.i(91870).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],39908);var c=a.i(92415);async function d(a){return(0,c.fetchFromDaemon)("/openrouter/save-key",{method:"POST",body:JSON.stringify({apiKey:a})})}async function e(){return(0,c.fetchFromDaemon)("/openrouter/models")}async function f(a,b){return(0,c.fetchFromDaemon)("/openrouter/voices",{method:"POST",body:JSON.stringify(b?{modelIds:a,apiKey:b}:{modelIds:a})})}a.s(["addOpenRouterVoices",0,f,"listOpenRouterModels",0,e,"saveOpenRouterKey",0,d],16215)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0dxp2sg._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../src/lib/api/client.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/loader-circle.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/search.ts","../../../../src/lib/lineage-maps.ts","../../../../src/lib/api/voices.ts","../../../../src/lib/api/orchestrators.ts","../../../../src/lib/api/openrouter.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\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 Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","// Fetch wrapper with error handling and base URL management\nimport { ApiResponse } from \"@/lib/types\";\n\n// Server-side: hit the daemon directly on this host.\n// Browser-side: go through the Next.js proxy at /api/daemon (the browser\n// cannot reach 127.0.0.1 on the server).\n//\n// API_PREFIX freezes the wire shape at v0.7 — every path passed to\n// fetchFromDaemon is implicitly under /api/v1. v0.8 may add /api/v2\n// alongside without breaking existing consumers.\nconst SERVER_BASE =\n process.env.CHORUS_DAEMON_URL || \"http://127.0.0.1:7707\";\nconst CLIENT_BASE = \"/api/daemon\";\nconst API_PREFIX = \"/api/v1\";\n\nfunction getBaseUrl(): string {\n if (typeof window === \"undefined\") return SERVER_BASE;\n return new URL(CLIENT_BASE, window.location.origin).toString();\n}\n\nexport class DaemonError extends Error {\n constructor(\n public code: string,\n public statusCode: number,\n message: string,\n /**\n * Optional structured payload mirrored from the server envelope's\n * `error.details`. Used for zod-issue lists from /templates POST so\n * the cockpit can pin each error to the field it references.\n */\n public details?: Record<string, unknown>,\n ) {\n super(message);\n this.name = \"DaemonError\";\n }\n}\n\nexport async function fetchFromDaemon<T>(\n path: string,\n options: RequestInit = {},\n): Promise<T> {\n const base = getBaseUrl();\n // Normalise to a leading-slash form first so the prefix check can\n // anchor on `/api/v1` exactly. Without this, `api/v1/foo` (no leading\n // slash) gets double-prefixed → `/api/v1/api/v1/foo`.\n const normalised = path.startsWith(\"/\") ? path : `/${path}`;\n // Exact-segment match — naive `startsWith` would match `/api/v10/...`\n // or `/api/v1foo/...` and skip prepending.\n const isPrefixed =\n normalised === API_PREFIX || normalised.startsWith(`${API_PREFIX}/`);\n const versionedPath = isPrefixed ? normalised : `${API_PREFIX}${normalised}`;\n const url = `${base.replace(/\\/$/, \"\")}${versionedPath}`;\n\n try {\n const response = await fetch(url, {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n\n const data: ApiResponse<T> = await response.json().catch(() => ({\n ok: false,\n error: {\n code: \"parse_error\",\n message: \"Failed to parse response\",\n },\n }));\n\n if (!data.ok) {\n throw new DaemonError(\n data.error?.code || \"unknown\",\n response.status,\n data.error?.message || \"Unknown error\",\n data.error?.details,\n );\n }\n\n return data.data as T;\n } catch (error) {\n if (error instanceof DaemonError) {\n throw error;\n }\n\n if (error instanceof TypeError && error.message.includes(\"fetch\")) {\n throw new DaemonError(\n \"connection_failed\",\n 0,\n \"Failed to connect to Chorus daemon. Is it running?\",\n );\n }\n\n throw new DaemonError(\n \"unknown\",\n 0,\n error instanceof Error ? error.message : \"Unknown error\",\n );\n }\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n];\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\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 TriangleAlert = createLucideIcon('triangle-alert', __iconNode);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\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 LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\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 Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","/**\n * Single source of truth for lineage display labels and colour swatches.\n *\n * Two parallel maps because the data flows from two directions:\n * - Templates use the daemon-side YAML schema lineage names (\"anthropic\",\n * \"openai\", \"google\", \"opencode\", \"moonshot\"). UI helpers translate\n * these to the cockpit-side ReviewerLineage names (\"claude\", \"codex\",\n * \"gemini\", \"opencode\", \"kimi\") via UI_LINEAGE_MAP / mapLineage.\n * - Personas use the daemon-side names directly via recommended_lineage.\n *\n * Keep both maps keyed by the daemon-side names; let callers translate\n * inputs once at the boundary and look up via the canonical key.\n */\n\nexport type DaemonLineage =\n | \"anthropic\"\n | \"openai\"\n | \"google\"\n | \"opencode\"\n | \"moonshot\";\n\nexport const LINEAGE_LABEL: Record<DaemonLineage, string> = {\n anthropic: \"Claude\",\n openai: \"Codex\",\n google: \"Gemini\",\n opencode: \"OpenCode\",\n moonshot: \"Kimi\",\n};\n\n/** Tailwind background colour class for the small lineage dot indicator. */\nconst LINEAGE_DOT: Record<DaemonLineage, string> = {\n anthropic: \"bg-violet-400\",\n openai: \"bg-orange-400\",\n google: \"bg-blue-400\",\n opencode: \"bg-emerald-400\",\n moonshot: \"bg-pink-400\",\n};\n\n/** Returns the human label for a lineage, falling back to the raw key. */\nexport function lineageLabel(lineage: string | undefined): string {\n if (!lineage) return \"\";\n return LINEAGE_LABEL[lineage as DaemonLineage] ?? lineage;\n}\n\n/** Returns the dot colour class, falling back to a neutral muted dot. */\nexport function lineageDot(lineage: string | undefined): string {\n if (!lineage) return \"bg-muted\";\n return LINEAGE_DOT[lineage as DaemonLineage] ?? \"bg-muted\";\n}\n\n/**\n * UI-side lineage names — used by cockpit components that operate on the\n * `ReviewerLineage` enum (claude/codex/gemini/opencode/kimi). Kept in sync\n * with the daemon-side maps above; the cockpit calls these directly without\n * a translation step.\n */\nexport type UILineage =\n | \"claude\"\n | \"codex\"\n | \"gemini\"\n | \"opencode\"\n | \"kimi\"\n | \"openrouter\";\n\nexport const UI_LINEAGE_LABEL: Record<UILineage, string> = {\n claude: \"Claude\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n opencode: \"OpenCode\",\n kimi: \"Kimi\",\n // Meta-lineage for HTTP-dispatched voices. The real underlying lineage\n // (anthropic/openai/google/etc.) is preserved on the voices table for\n // diversity scoring; this label is what the cockpit cards show because\n // the runner creates `reviewer-openrouter-N` dirs regardless of the\n // underlying model.\n openrouter: \"OpenRouter\",\n};\n\nconst UI_LINEAGE_DOT: Record<UILineage, string> = {\n claude: \"bg-violet-400\",\n codex: \"bg-orange-400\",\n gemini: \"bg-blue-400\",\n opencode: \"bg-emerald-400\",\n kimi: \"bg-pink-400\",\n // Cyan picked over amber — amber reads as \"warning/in-progress\" in UI\n // convention, which clashed with lineage-as-brand semantics. Cyan is\n // brand-distinct without state ambiguity.\n openrouter: \"bg-cyan-400\",\n};\n\nexport function uiLineageLabel(lineage: string | undefined): string {\n if (!lineage) return \"\";\n return UI_LINEAGE_LABEL[lineage as UILineage] ?? lineage;\n}\n\nexport function uiLineageDot(lineage: string | undefined): string {\n if (!lineage) return \"bg-muted\";\n return UI_LINEAGE_DOT[lineage as UILineage] ?? \"bg-muted\";\n}\n\n/**\n * Default model per UI lineage when a template's `models: []` is empty.\n * Mirrors the per-lineage defaults used by phase-editor and new-template-dialog;\n * lifted here so the run page can show the actual model on cards even when\n * the YAML omits it.\n */\nexport const UI_LINEAGE_DEFAULT_MODEL: Record<UILineage, string> = {\n claude: \"claude-opus-4-7\",\n codex: \"gpt-5.5\",\n gemini: \"gemini-3.1-pro-preview\",\n opencode: \"kimi-k2.6\",\n kimi: \"kimi-k2.6\",\n // No sensible default for openrouter — user explicitly selects a model.\n // Empty string lets `models?.[0] ?? defaultModel` resolve to \"\" which\n // the run page treats as \"no model\" (skips the · model · separator).\n openrouter: \"\",\n};\n\n/**\n * Curated model lists per CLI. Used as a fallback when the CLI doesn't\n * expose a live model-listing command (claude / gemini / kimi today). For\n * codex we run `codex debug models` at seed time and prefer the live\n * catalog; the list below is the safety net if that probe fails.\n *\n * Cross-checked against `opencode models` (which aggregates upstream\n * provider names) and `codex debug models` so entries here are real\n * model ids the corresponding CLI accepts. Don't list speculative names —\n * a wrong entry here is what makes the home page look unprofessional.\n *\n * Order = recommended first; the first entry is the canonical default\n * and matches UI_LINEAGE_DEFAULT_MODEL.\n *\n * OpenCode is omitted because it's always discovered live via\n * `opencode models` (gateway-aware). Cursor/Windsurf are IDE\n * orchestrators with no model selection of their own.\n */\nexport const UI_LINEAGE_AVAILABLE_MODELS: Partial<Record<UILineage, string[]>> = {\n claude: [\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"claude-sonnet-4-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-5\",\n ],\n codex: [\n \"gpt-5.5\",\n \"gpt-5.4\",\n \"gpt-5.4-mini\",\n \"gpt-5.3-codex\",\n \"gpt-5.2\",\n ],\n // Gemini list verified 2026-05-04 by `gemini -p \"ok\" --model <X>`.\n // gemini-3-flash returned ModelNotFoundError; only the names below\n // are accepted by the current Gemini CLI version.\n gemini: [\n \"gemini-3.1-pro-preview\",\n \"gemini-2.5-pro\",\n \"gemini-2.5-flash\",\n ],\n // Kimi list cross-checked against the official kimi-cli docs +\n // source (2026-05-04):\n // - CHANGELOG.md: kimi-k2.6, kimi-k2-thinking\n // - klips/klip-6: kimi-k2-thinking-turbo (recommended turbo flagship)\n // - sdks/kimi-sdk/README.md, klips/klip-7: kimi-k2-turbo-preview\n // - Welcome screen dropped hardcoded kimi-k2.5, but it still works\n // Not end-to-end probed because the dedicated kimi CLI needs a\n // separate Moonshot account login; cross-referenced from official docs\n // is the next-best signal.\n // Index 0 must match UI_LINEAGE_DEFAULT_MODEL.kimi to keep the seed's\n // immutable provider row pointed at the same default. kimi-k2.6 has\n // been the chorus default since v0.7; not auto-rotating to the\n // turbo-thinking variant here so existing installs don't silently\n // change behavior. Users can still toggle the turbo entries on.\n kimi: [\n \"kimi-k2.6\",\n \"kimi-k2-thinking-turbo\",\n \"kimi-k2-turbo-preview\",\n \"kimi-k2-thinking\",\n \"kimi-k2.5\",\n ],\n};\n\nexport function uiLineageDefaultModel(lineage: string | undefined): string | undefined {\n if (!lineage) return undefined;\n return UI_LINEAGE_DEFAULT_MODEL[lineage as UILineage];\n}\n\n/**\n * Per-CLI brand identity. ONE place to adjust colors so the violet=Claude,\n * blue=Gemini, etc. mapping never drifts across the run page, template\n * editor, sidebar, and connect surfaces. Add new CLIs here, not in callers.\n */\nexport interface LineageBrand {\n /** 400-shade for solid dots/swatches. */\n dot: string;\n /** 500-shade for ring/border accents. */\n ring: string;\n /** Subtle vertical gradient applied to participant cards. */\n gradient: string;\n}\n\nexport const UI_LINEAGE_BRAND: Record<UILineage, LineageBrand> = {\n claude: {\n dot: \"bg-violet-400\",\n ring: \"ring-violet-400/40\",\n gradient: \"bg-gradient-to-b from-violet-500/15 to-card\",\n },\n codex: {\n dot: \"bg-orange-400\",\n ring: \"ring-orange-400/40\",\n gradient: \"bg-gradient-to-b from-orange-500/15 to-card\",\n },\n gemini: {\n dot: \"bg-blue-400\",\n ring: \"ring-blue-400/40\",\n gradient: \"bg-gradient-to-b from-blue-500/15 to-card\",\n },\n opencode: {\n dot: \"bg-emerald-400\",\n ring: \"ring-emerald-400/40\",\n gradient: \"bg-gradient-to-b from-emerald-500/15 to-card\",\n },\n kimi: {\n dot: \"bg-pink-400\",\n ring: \"ring-pink-400/40\",\n gradient: \"bg-gradient-to-b from-pink-500/15 to-card\",\n },\n openrouter: {\n dot: \"bg-cyan-400\",\n ring: \"ring-cyan-400/40\",\n gradient: \"bg-gradient-to-b from-cyan-500/15 to-card\",\n },\n};\n\n","// Voices API client — talks to /voices on the daemon.\n//\n// See planning/voices.md for the abstraction's design rationale.\n\nimport type { ListEnvelope } from \"@/lib/types\";\nimport { fetchFromDaemon } from \"./client\";\n\nexport type VoiceLineage = \"anthropic\" | \"openai\" | \"google\" | \"opencode\" | \"moonshot\";\nexport type VoiceSource = \"cli\" | \"api\";\n\nexport interface Voice {\n id: string;\n label: string;\n source: VoiceSource;\n provider: string;\n model_id: string;\n lineage: VoiceLineage;\n vendor_family: string | null;\n input_cost_per_mtok: number | null;\n output_cost_per_mtok: number | null;\n enabled: boolean;\n created_at: number;\n updated_at: number;\n}\n\nexport interface VoiceListFilter {\n lineage?: VoiceLineage;\n source?: VoiceSource;\n provider?: string;\n /** When undefined, returns ALL voices (enabled + disabled). */\n enabled?: boolean;\n}\n\nexport interface VoiceUpdate {\n label?: string;\n enabled?: boolean;\n input_cost_per_mtok?: number | null;\n output_cost_per_mtok?: number | null;\n}\n\nexport interface VoiceCreate {\n provider: string;\n model_id: string;\n label: string;\n lineage: VoiceLineage;\n source?: VoiceSource;\n vendor_family?: string | null;\n input_cost_per_mtok?: number | null;\n output_cost_per_mtok?: number | null;\n enabled?: boolean;\n}\n\nfunction buildQuery(filter?: VoiceListFilter): string {\n if (!filter) return \"\";\n const parts: string[] = [];\n if (filter.lineage) parts.push(`lineage=${encodeURIComponent(filter.lineage)}`);\n if (filter.source) parts.push(`source=${encodeURIComponent(filter.source)}`);\n if (filter.provider) parts.push(`provider=${encodeURIComponent(filter.provider)}`);\n if (filter.enabled !== undefined) parts.push(`enabled=${filter.enabled ? \"true\" : \"false\"}`);\n return parts.length === 0 ? \"\" : `?${parts.join(\"&\")}`;\n}\n\nexport async function listVoices(filter?: VoiceListFilter): Promise<Voice[]> {\n const env = await fetchFromDaemon<ListEnvelope<Voice>>(`/voices${buildQuery(filter)}`);\n return env.items;\n}\n\nexport async function updateVoice(id: string, patch: VoiceUpdate): Promise<Voice> {\n return fetchFromDaemon<Voice>(`/voices/${encodeURIComponent(id)}`, {\n method: \"PUT\",\n body: JSON.stringify(patch),\n });\n}\n\nexport async function createVoice(input: VoiceCreate): Promise<Voice> {\n return fetchFromDaemon<Voice>(\"/voices\", {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n}\n\n","// Orchestrator integrations API — used by the /connect page to surface\n// \"is Claude Code wired up?\" status and the one-click \"Connect\" button.\nimport type { ListEnvelope } from \"@/lib/types\";\nimport { fetchFromDaemon } from \"./client\";\n\nexport type OrchestratorName =\n | \"claude\"\n | \"codex\"\n | \"gemini\"\n | \"opencode\"\n | \"kimi\"\n | \"cursor\"\n | \"windsurf\";\n\nexport interface OrchestratorStatus {\n name: OrchestratorName;\n label: string;\n connected: boolean;\n approvedTools: number;\n totalTools: number;\n note: string;\n supported: boolean;\n firstCallBehavior: \"auto\" | \"prompts_once\" | \"inherits_global\";\n}\n\nexport interface ConnectResult {\n added: string[];\n alreadyPresent: string[];\n configPath: string;\n status: OrchestratorStatus;\n}\n\nexport async function listOrchestrators(): Promise<OrchestratorStatus[]> {\n const env = await fetchFromDaemon<ListEnvelope<OrchestratorStatus>>(\"/orchestrators\");\n return env.items;\n}\n\nexport async function connectOrchestrator(\n name: OrchestratorName,\n): Promise<ConnectResult> {\n return fetchFromDaemon<ConnectResult>(`/orchestrators/${name}/connect`, {\n method: \"POST\",\n });\n}\n\nexport interface OpencodeModelsResult {\n /** Models grouped by gateway prefix (`opencode-go`, `opencode-zen`, ...). */\n gateways: Record<string, string[]>;\n /** Flat list of all models (`opencode-go/kimi-k2.6`, ...). */\n flat: string[];\n /** Sensible default picks (kimi + deepseek if present in `flat`). */\n defaultPicks: string[];\n}\n\n/**\n * List models the local `opencode` CLI knows about. Used by the onboarding\n * flow so the user can tick which subscription models they want chorus to\n * expose as voices.\n */\nexport async function listOpencodeModels(): Promise<OpencodeModelsResult> {\n return fetchFromDaemon<OpencodeModelsResult>(\"/orchestrators/opencode/models\");\n}\n","// OpenRouter API client — talks to /openrouter/* on the daemon.\n//\n// Purpose: validate the user's OpenRouter API key, fetch the model\n// catalog, and multi-add chosen models as voices. The daemon side is\n// in src/daemon/openrouter.ts; the chat-completions HTTP shim lives in\n// a follow-up.\n\nimport { fetchFromDaemon } from \"./client\";\n\nexport interface OpenRouterModel {\n id: string;\n name: string;\n contextLength?: number;\n inputCostPerMtok?: number;\n outputCostPerMtok?: number;\n}\n\nexport async function saveOpenRouterKey(\n apiKey: string,\n): Promise<{ valid: boolean; error?: string }> {\n return fetchFromDaemon(\"/openrouter/save-key\", {\n method: \"POST\",\n body: JSON.stringify({ apiKey }),\n });\n}\n\nexport async function listOpenRouterModels(): Promise<{\n models: OpenRouterModel[];\n}> {\n return fetchFromDaemon(\"/openrouter/models\");\n}\n\nexport async function addOpenRouterVoices(\n modelIds: string[],\n apiKey?: string,\n): Promise<{ added: string[]; skipped: string[] }> {\n return fetchFromDaemon(\"/openrouter/voices\", {\n method: \"POST\",\n body: JSON.stringify(apiKey ? { modelIds, apiKey } : { modelIds }),\n });\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\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 ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n"],"names":["SERVER_BASE","process","env","CHORUS_DAEMON_URL","CLIENT_BASE","API_PREFIX","getBaseUrl","DaemonError","Error","code","statusCode","message","details","name","fetchFromDaemon","path","options","base","normalised","startsWith","isPrefixed","versionedPath","url","replace","response","fetch","headers","data","json","catch","ok","error","status","TypeError","includes","LINEAGE_LABEL","anthropic","openai","google","opencode","moonshot","LINEAGE_DOT","lineageLabel","lineage","lineageDot","UI_LINEAGE_LABEL","claude","codex","gemini","kimi","openrouter","UI_LINEAGE_DOT","uiLineageLabel","uiLineageDot","UI_LINEAGE_DEFAULT_MODEL","UI_LINEAGE_AVAILABLE_MODELS","uiLineageDefaultModel","undefined","UI_LINEAGE_BRAND","dot","ring","gradient","buildQuery","filter","parts","push","encodeURIComponent","source","provider","enabled","length","join","listVoices","items","updateVoice","id","patch","method","body","JSON","stringify","createVoice","input","listOrchestrators","connectOrchestrator","listOpencodeModels","key"],"mappings":"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","ignoreList":[0,2,3,4,9]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},95832,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},54508,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},11140,a=>{"use strict";a.s(["AppSidebar",()=>c,"SidebarBody",()=>d]);var b=a.i(80070);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/app-sidebar.tsx <module evaluation>","AppSidebar"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarBody() from the server but SidebarBody is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/app-sidebar.tsx <module evaluation>","SidebarBody")},4313,a=>{"use strict";a.s(["AppSidebar",()=>c,"SidebarBody",()=>d]);var b=a.i(80070);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/app-sidebar.tsx","AppSidebar"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarBody() from the server but SidebarBody is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/app-sidebar.tsx","SidebarBody")},9460,a=>{"use strict";a.i(11140);var b=a.i(4313);a.n(b)},31742,a=>{"use strict";a.s(["MobileTopBar",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call MobileTopBar() from the server but MobileTopBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/mobile-top-bar.tsx <module evaluation>","MobileTopBar")},54317,a=>{"use strict";a.s(["MobileTopBar",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call MobileTopBar() from the server but MobileTopBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/mobile-top-bar.tsx","MobileTopBar")},62759,a=>{"use strict";a.i(31742);var b=a.i(54317);a.n(b)},10401,66392,a=>{"use strict";var b=a.i(4613),c=a.i(9460),d=a.i(62759);a.s(["AppShell",0,function({children:a}){return(0,b.jsxs)("div",{className:"flex h-screen w-screen overflow-hidden bg-background text-foreground",children:[(0,b.jsx)(c.AppSidebar,{}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,b.jsx)(d.MobileTopBar,{}),(0,b.jsx)("main",{className:"flex-1 overflow-y-auto",children:a})]})]})}],10401);let e=process.env.CHORUS_DAEMON_URL||"http://127.0.0.1:7707",f="/api/v1";class g extends Error{code;statusCode;details;constructor(a,b,c,d){super(c),this.code=a,this.statusCode=b,this.details=d,this.name="DaemonError"}}async function h(a,b={}){let c=a.startsWith("/")?a:`/${a}`,d=c===f||c.startsWith(`${f}/`)?c:`${f}${c}`,i=`${e.replace(/\/$/,"")}${d}`;try{let a=await fetch(i,{...b,headers:{"Content-Type":"application/json",...b.headers}}),c=await a.json().catch(()=>({ok:!1,error:{code:"parse_error",message:"Failed to parse response"}}));if(!c.ok)throw new g(c.error?.code||"unknown",a.status,c.error?.message||"Unknown error",c.error?.details);return c.data}catch(a){if(a instanceof g)throw a;if(a instanceof TypeError&&a.message.includes("fetch"))throw new g("connection_failed",0,"Failed to connect to Chorus daemon. Is it running?");throw new g("unknown",0,a instanceof Error?a.message:"Unknown error")}}a.s(["DaemonError",0,g,"fetchFromDaemon",0,h],66392)},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},86379,a=>{"use strict";var b=a.i(66392);function c(a){let b;if(a.attached_files)try{let c=JSON.parse(a.attached_files);Array.isArray(c)&&(b=c)}catch{}return{id:a.id,slug:a.slug??void 0,work:a.work,templateId:a.template_id,status:a.status,currentPhaseIdx:a.current_phase_idx??0,yolo:!!a.yolo,attachedFiles:b,repoPath:a.repo_path??void 0,prUrl:a.pr_url??void 0,shipError:a.ship_error??void 0,artifact:a.artifact??void 0,verdict:a.verdict??void 0,createdAt:a.created_at,updatedAt:a.updated_at,finishedAt:a.finished_at??void 0}}async function d(a){let d=new URLSearchParams;a?.limit&&d.append("limit",a.limit.toString()),a?.offset&&d.append("offset",a.offset.toString()),a?.status&&d.append("status",a.status);let e=d.toString();return(await (0,b.fetchFromDaemon)(`/chats${e?`?${e}`:""}`)).items.map(c)}async function e(a){return c(await (0,b.fetchFromDaemon)(`/chats/${a}`))}a.s(["getChat",0,e,"listChats",0,d])},7524,a=>{a.v("/_next/static/media/icon.15.86wme~cdlv.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},39375,a=>{"use strict";let b={src:a.i(7524).default,width:32,height:32};a.s(["default",0,b])},10585,a=>{a.v("/_next/static/media/favicon.0i~66t__91s97.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},68611,a=>{"use strict";let b={src:a.i(10585).default,width:48,height:48};a.s(["default",0,b])},83138,a=>{"use strict";a.s(["LiveRunReal",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call LiveRunReal() from the server but LiveRunReal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/live-run-real/index.tsx <module evaluation>","LiveRunReal")},56252,a=>{"use strict";a.s(["LiveRunReal",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call LiveRunReal() from the server but LiveRunReal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/live-run-real/index.tsx","LiveRunReal")},9599,a=>{"use strict";a.i(83138);var b=a.i(56252);a.n(b)},60925,a=>{"use strict";var b=a.i(4613),c=a.i(2157),d=a.i(50227),e=a.i(60526);a.i(12214);var f=a.i(87255),g=a.i(10401),h=a.i(9599);a.i(54440);var i=a.i(86379),j=a.i(81952),k=a.i(66392);async function l(a){let b;try{b=await (0,i.getChat)(a)}catch(a){throw a instanceof k.DaemonError?a:Error("Failed to load chat")}let c=null;try{c=await (0,j.getTemplate)(b.templateId)}catch{}return{chat:b,template:c}}let m={"claude-code":"claude","codex-cli":"codex","gemini-cli":"gemini","opencode-cli":"opencode","kimi-cli":"kimi",openrouter:"openrouter"};async function n({params:a}){let{runId:i}=await a,{chat:j,template:k}=await l(i);j||(0,f.notFound)();let o=function(a){let b=d.default.join(e.default.homedir(),".chorus","chats",a);if(!c.default.existsSync(b))return[];let f=c.default.readdirSync(b,{withFileTypes:!0}).filter(a=>a.isDirectory()&&a.name.startsWith("round-")),g=[];for(let a of f){let e=parseInt(a.name.replace("round-",""),10);if(!Number.isFinite(e))continue;let f=d.default.join(b,a.name),h=c.default.readdirSync(f,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>{let b,e,g,h,i,j,k=a.name.startsWith("doer-")?"doer":"reviewer",l=a.name.replace(/^(doer-|reviewer-)/,"").replace(/-\d+$/,""),n=m[l]??"claude",o=d.default.join(f,a.name,"answer.md"),p=!1;if(c.default.existsSync(o))try{b=c.default.readFileSync(o,"utf-8"),(p=/\n##\s*DONE\s*\n?$/i.test(b.trimEnd()))&&(e=b.split("\n").filter(a=>a.trim().length>0&&!a.startsWith("##")).slice(0,4).map(a=>a.length>90?a.slice(0,90)+"…":a))}catch{b=void 0}let q=d.default.join(f,a.name,"_meta.json");if(c.default.existsSync(q))try{let a=JSON.parse(c.default.readFileSync(q,"utf-8"));"string"==typeof a.binary&&(g=a.binary),"string"==typeof a.model&&(h=a.model)}catch{}let r=d.default.join(f,a.name,"_stats.json");if(c.default.existsSync(r))try{let a=JSON.parse(c.default.readFileSync(r,"utf-8"));if("number"==typeof a.durationMs&&(i=a.durationMs),a.usage&&"object"==typeof a.usage){let b={};"number"==typeof a.usage.inputTokens&&(b.inputTokens=a.usage.inputTokens),"number"==typeof a.usage.outputTokens&&(b.outputTokens=a.usage.outputTokens),"number"==typeof a.usage.cachedInputTokens&&(b.cachedInputTokens=a.usage.cachedInputTokens),"number"==typeof a.usage.costUsd&&(b.costUsd=a.usage.costUsd),Object.keys(b).length>0&&(j=b)}}catch{}return{participant:a.name,role:k,agentName:l,lineage:n,hasAnswer:p,answer:b,findingsPreview:e,binaryUsed:g,modelUsed:h,durationMs:i,usage:j}});g.push({round:e,participants:h})}return g.sort((a,b)=>a.round-b.round)}(j.id);return(0,b.jsx)(g.AppShell,{children:(0,b.jsx)(h.LiveRunReal,{chatId:j.id,initialStatus:j.status,initialRounds:o,template:k,templateId:j.templateId,work:j.work,initialPrUrl:j.prUrl,initialShipError:j.shipError,initialVerdict:j.verdict})})}a.s(["default",0,n,"dynamic",0,"force-dynamic"])},61282,a=>{a.n(a.i(60925))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0e58.k_._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../src/components/app-sidebar.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/mobile-top-bar.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/app-shell.tsx","../../../../src/lib/api/client.ts","../../../../src/lib/api/chats.ts","../../../../src/app/icon.svg.mjs%20%28structured%20image%20object%29","../../../../src/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../src/components/live-run-real/index.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/runs/%5BrunId%5D/page.tsx"],"sourcesContent":["export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppSidebar = registerClientReference(\n function() { throw new Error(\"Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/app-sidebar.tsx\",\n \"AppSidebar\",\n);\nexport const SidebarBody = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarBody() from the server but SidebarBody is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/app-sidebar.tsx\",\n \"SidebarBody\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const MobileTopBar = registerClientReference(\n function() { throw new Error(\"Attempted to call MobileTopBar() from the server but MobileTopBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/mobile-top-bar.tsx\",\n \"MobileTopBar\",\n);\n","import { AppSidebar } from \"./app-sidebar\";\nimport { MobileTopBar } from \"./mobile-top-bar\";\n\ninterface AppShellProps {\n children: React.ReactNode;\n}\n\n/**\n * App shell. The desktop top bar was retired — Search + New Chat now live\n * inside the sidebar so the run page (and every other text-heavy page)\n * gets the full vertical space. Mobile still needs a thin top bar with\n * just the hamburger that opens the mobile nav.\n */\nexport function AppShell({ children }: AppShellProps) {\n return (\n <div className=\"flex h-screen w-screen overflow-hidden bg-background text-foreground\">\n <AppSidebar />\n <div className=\"flex flex-1 flex-col overflow-hidden\">\n <MobileTopBar />\n <main className=\"flex-1 overflow-y-auto\">{children}</main>\n </div>\n </div>\n );\n}\n","// Fetch wrapper with error handling and base URL management\nimport { ApiResponse } from \"@/lib/types\";\n\n// Server-side: hit the daemon directly on this host.\n// Browser-side: go through the Next.js proxy at /api/daemon (the browser\n// cannot reach 127.0.0.1 on the server).\n//\n// API_PREFIX freezes the wire shape at v0.7 — every path passed to\n// fetchFromDaemon is implicitly under /api/v1. v0.8 may add /api/v2\n// alongside without breaking existing consumers.\nconst SERVER_BASE =\n process.env.CHORUS_DAEMON_URL || \"http://127.0.0.1:7707\";\nconst CLIENT_BASE = \"/api/daemon\";\nconst API_PREFIX = \"/api/v1\";\n\nfunction getBaseUrl(): string {\n if (typeof window === \"undefined\") return SERVER_BASE;\n return new URL(CLIENT_BASE, window.location.origin).toString();\n}\n\nexport class DaemonError extends Error {\n constructor(\n public code: string,\n public statusCode: number,\n message: string,\n /**\n * Optional structured payload mirrored from the server envelope's\n * `error.details`. Used for zod-issue lists from /templates POST so\n * the cockpit can pin each error to the field it references.\n */\n public details?: Record<string, unknown>,\n ) {\n super(message);\n this.name = \"DaemonError\";\n }\n}\n\nexport async function fetchFromDaemon<T>(\n path: string,\n options: RequestInit = {},\n): Promise<T> {\n const base = getBaseUrl();\n // Normalise to a leading-slash form first so the prefix check can\n // anchor on `/api/v1` exactly. Without this, `api/v1/foo` (no leading\n // slash) gets double-prefixed → `/api/v1/api/v1/foo`.\n const normalised = path.startsWith(\"/\") ? path : `/${path}`;\n // Exact-segment match — naive `startsWith` would match `/api/v10/...`\n // or `/api/v1foo/...` and skip prepending.\n const isPrefixed =\n normalised === API_PREFIX || normalised.startsWith(`${API_PREFIX}/`);\n const versionedPath = isPrefixed ? normalised : `${API_PREFIX}${normalised}`;\n const url = `${base.replace(/\\/$/, \"\")}${versionedPath}`;\n\n try {\n const response = await fetch(url, {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers,\n },\n });\n\n const data: ApiResponse<T> = await response.json().catch(() => ({\n ok: false,\n error: {\n code: \"parse_error\",\n message: \"Failed to parse response\",\n },\n }));\n\n if (!data.ok) {\n throw new DaemonError(\n data.error?.code || \"unknown\",\n response.status,\n data.error?.message || \"Unknown error\",\n data.error?.details,\n );\n }\n\n return data.data as T;\n } catch (error) {\n if (error instanceof DaemonError) {\n throw error;\n }\n\n if (error instanceof TypeError && error.message.includes(\"fetch\")) {\n throw new DaemonError(\n \"connection_failed\",\n 0,\n \"Failed to connect to Chorus daemon. Is it running?\",\n );\n }\n\n throw new DaemonError(\n \"unknown\",\n 0,\n error instanceof Error ? error.message : \"Unknown error\",\n );\n }\n}\n","// Chat API endpoints\nimport type { Chat, ListEnvelope } from \"@/lib/types\";\nimport { fetchFromDaemon } from \"./client\";\n\ninterface RawChatRow {\n id: string;\n /** URL-friendly slug — present on chats created after the slug\n * migration, null on legacy rows the daemon couldn't backfill. */\n slug?: string | null;\n work: string;\n template_id: string;\n status: Chat[\"status\"];\n current_phase_idx?: number;\n yolo?: number | boolean;\n attached_files?: string | null;\n repo_path?: string | null;\n pr_url?: string | null;\n ship_error?: string | null;\n artifact?: string | null;\n verdict?: string | null;\n created_at: number;\n updated_at: number;\n finished_at?: number | null;\n}\n\n/**\n * Daemon stores chats with snake_case columns; the UI contract is camelCase.\n * Translate at the boundary so the rest of the app doesn't care.\n */\nfunction fromRow(row: RawChatRow): Chat {\n let attached: string[] | undefined;\n if (row.attached_files) {\n try {\n const parsed = JSON.parse(row.attached_files);\n if (Array.isArray(parsed)) attached = parsed;\n } catch {\n // ignore — leave undefined\n }\n }\n return {\n id: row.id,\n slug: row.slug ?? undefined,\n work: row.work,\n templateId: row.template_id,\n status: row.status,\n currentPhaseIdx: row.current_phase_idx ?? 0,\n yolo: Boolean(row.yolo),\n attachedFiles: attached,\n repoPath: row.repo_path ?? undefined,\n prUrl: row.pr_url ?? undefined,\n shipError: row.ship_error ?? undefined,\n artifact: row.artifact ?? undefined,\n verdict: row.verdict ?? undefined,\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n finishedAt: row.finished_at ?? undefined,\n };\n}\n\nexport async function listChats(options?: {\n limit?: number;\n offset?: number;\n status?: string;\n}): Promise<Chat[]> {\n const params = new URLSearchParams();\n if (options?.limit) params.append(\"limit\", options.limit.toString());\n if (options?.offset) params.append(\"offset\", options.offset.toString());\n if (options?.status) params.append(\"status\", options.status);\n\n const query = params.toString();\n const env = await fetchFromDaemon<ListEnvelope<RawChatRow>>(\n `/chats${query ? `?${query}` : \"\"}`,\n );\n return env.items.map(fromRow);\n}\n\nexport async function getChat(id: string): Promise<Chat> {\n const row = await fetchFromDaemon<RawChatRow>(`/chats/${id}`);\n return fromRow(row);\n}\n\nexport async function createChat(options: {\n work: string;\n templateId: string;\n files?: string[];\n /** Optional absolute path to user's repo. Enables Ship phase. */\n repoPath?: string;\n /** Required when the chosen template's first phase is review_only.\n * Capped at the template's phase.artifact.maxBytes (default 1 MiB) by\n * the daemon — caller is expected to pre-check that. */\n artifact?: string;\n /** Skip every ask-user gate for this run. Today the daemon only honours\n * this on the ship phase; safe to pass on review-only runs but with no\n * effect there. */\n yolo?: boolean;\n}): Promise<Chat> {\n const row = await fetchFromDaemon<RawChatRow>(\"/chats\", {\n method: \"POST\",\n body: JSON.stringify(options),\n });\n return fromRow(row);\n}\n\n","import src from \"IMAGE\";\nexport default { src, width: 32, height: 32 }\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const LiveRunReal = registerClientReference(\n function() { throw new Error(\"Attempted to call LiveRunReal() from the server but LiveRunReal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/live-run-real/index.tsx\",\n \"LiveRunReal\",\n);\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { notFound } from \"next/navigation\";\nimport { AppShell } from \"@/components/app-shell\";\nimport { LiveRunReal } from \"@/components/live-run-real\";\nimport { getChat, getTemplate, DaemonError } from \"@/lib/api\";\n\nexport const dynamic = \"force-dynamic\";\n\ninterface RunPageProps {\n params: Promise<{ runId: string }>;\n}\n\nasync function getRunData(runId: string) {\n // Chat row + template are loaded independently. Template lookup is allowed\n // to fail (template deleted after the chat ran) — the chat is immutable\n // history and shouldn't 500 just because the user removed the template.\n // LiveRunReal accepts `template: Template | null` and degrades to a\n // template-less render (no phase stepper labels) when it's missing.\n let chat;\n try {\n chat = await getChat(runId);\n } catch (err) {\n throw err instanceof DaemonError ? err : new Error(\"Failed to load chat\");\n }\n let template = null;\n try {\n template = await getTemplate(chat.templateId);\n } catch {\n // Template was deleted — chat still renders, just without template-\n // derived UI (placeholder reviewer cards from candidate definitions,\n // phase names, etc.). Recorded participants still come from disk via\n // /api/run-artifacts.\n }\n return { chat, template };\n}\n\nconst AGENT_TO_LINEAGE: Record<string, \"claude\" | \"codex\" | \"gemini\" | \"opencode\" | \"kimi\" | \"openrouter\"> = {\n \"claude-code\": \"claude\",\n \"codex-cli\": \"codex\",\n \"gemini-cli\": \"gemini\",\n \"opencode-cli\": \"opencode\",\n \"kimi-cli\": \"kimi\",\n // HTTP-dispatched shim — runner creates `reviewer-openrouter-N` dirs;\n // without this entry the lineage fell through to \"claude\" and rendered\n // OpenRouter answers with the wrong brand on the run page.\n openrouter: \"openrouter\",\n};\n\ninterface ParticipantSnapshot {\n participant: string;\n role: \"doer\" | \"reviewer\";\n agentName: string;\n lineage: \"claude\" | \"codex\" | \"gemini\" | \"opencode\" | \"kimi\" | \"openrouter\";\n hasAnswer: boolean;\n answer?: string;\n findingsPreview?: string[];\n binaryUsed?: string;\n modelUsed?: string;\n durationMs?: number;\n usage?: {\n inputTokens?: number;\n outputTokens?: number;\n cachedInputTokens?: number;\n costUsd?: number;\n };\n}\n\ninterface RoundSnapshot {\n round: number;\n participants: ParticipantSnapshot[];\n}\n\nfunction readChatRounds(chatId: string): RoundSnapshot[] {\n const chatDir = path.join(os.homedir(), \".chorus\", \"chats\", chatId);\n if (!fs.existsSync(chatDir)) return [];\n\n const entries = fs\n .readdirSync(chatDir, { withFileTypes: true })\n .filter((d) => d.isDirectory() && d.name.startsWith(\"round-\"));\n\n const rounds: RoundSnapshot[] = [];\n for (const entry of entries) {\n const roundNum = parseInt(entry.name.replace(\"round-\", \"\"), 10);\n if (!Number.isFinite(roundNum)) continue;\n\n const roundDir = path.join(chatDir, entry.name);\n const participants: ParticipantSnapshot[] = fs\n .readdirSync(roundDir, { withFileTypes: true })\n .filter((d) => d.isDirectory())\n .map((d) => {\n const role: \"doer\" | \"reviewer\" = d.name.startsWith(\"doer-\") ? \"doer\" : \"reviewer\";\n const rawAgent = d.name.replace(/^(doer-|reviewer-)/, \"\").replace(/-\\d+$/, \"\");\n const lineage = AGENT_TO_LINEAGE[rawAgent] ?? \"claude\";\n const answerPath = path.join(roundDir, d.name, \"answer.md\");\n // hasAnswer must mirror the API route: gated on the `## DONE`\n // sentinel so a mid-stream doer doesn't render as \"done · no\n // output yet\" when the user lands on the page during a live run.\n let hasAnswer = false;\n let answer: string | undefined;\n let findingsPreview: string[] | undefined;\n if (fs.existsSync(answerPath)) {\n try {\n answer = fs.readFileSync(answerPath, \"utf-8\");\n hasAnswer = /\\n##\\s*DONE\\s*\\n?$/i.test(answer.trimEnd());\n if (hasAnswer) {\n findingsPreview = answer\n .split(\"\\n\")\n .filter((l) => l.trim().length > 0 && !l.startsWith(\"##\"))\n .slice(0, 4)\n .map((l) => (l.length > 90 ? l.slice(0, 90) + \"…\" : l));\n }\n } catch {\n answer = undefined;\n }\n }\n let binaryUsed: string | undefined;\n let modelUsed: string | undefined;\n const metaPath = path.join(roundDir, d.name, \"_meta.json\");\n if (fs.existsSync(metaPath)) {\n try {\n const meta = JSON.parse(fs.readFileSync(metaPath, \"utf-8\")) as {\n binary?: unknown;\n model?: unknown;\n };\n if (typeof meta.binary === \"string\") binaryUsed = meta.binary;\n if (typeof meta.model === \"string\") modelUsed = meta.model;\n } catch {\n /* informational sidecar; ignore parse errors */\n }\n }\n // Stats sidecar — runner writes `{durationMs, usage}` at\n // participant_done. Without reading it here, terminal chats\n // (which skip the live run-artifacts polling) render with\n // empty time/tokens/cost chips. Mirrors the same parse in\n // /api/run-artifacts/[chatId]/route.ts.\n let durationMs: number | undefined;\n let usage:\n | {\n inputTokens?: number;\n outputTokens?: number;\n cachedInputTokens?: number;\n costUsd?: number;\n }\n | undefined;\n const statsPath = path.join(roundDir, d.name, \"_stats.json\");\n if (fs.existsSync(statsPath)) {\n try {\n const stats = JSON.parse(fs.readFileSync(statsPath, \"utf-8\")) as {\n durationMs?: unknown;\n usage?: {\n inputTokens?: unknown;\n outputTokens?: unknown;\n cachedInputTokens?: unknown;\n costUsd?: unknown;\n };\n };\n if (typeof stats.durationMs === \"number\") durationMs = stats.durationMs;\n if (stats.usage && typeof stats.usage === \"object\") {\n const u: Record<string, number> = {};\n if (typeof stats.usage.inputTokens === \"number\")\n u.inputTokens = stats.usage.inputTokens;\n if (typeof stats.usage.outputTokens === \"number\")\n u.outputTokens = stats.usage.outputTokens;\n if (typeof stats.usage.cachedInputTokens === \"number\")\n u.cachedInputTokens = stats.usage.cachedInputTokens;\n if (typeof stats.usage.costUsd === \"number\")\n u.costUsd = stats.usage.costUsd;\n if (Object.keys(u).length > 0) usage = u;\n }\n } catch {\n /* informational sidecar; ignore parse errors */\n }\n }\n return {\n participant: d.name,\n role,\n agentName: rawAgent,\n lineage,\n hasAnswer,\n answer,\n findingsPreview,\n binaryUsed,\n modelUsed,\n durationMs,\n usage,\n };\n });\n\n rounds.push({ round: roundNum, participants });\n }\n\n return rounds.sort((a, b) => a.round - b.round);\n}\n\nexport default async function RunPage({ params }: RunPageProps) {\n const { runId } = await params;\n const { chat, template } = await getRunData(runId);\n\n if (!chat) {\n notFound();\n }\n\n const initialRounds = readChatRounds(chat.id);\n\n return (\n <AppShell>\n <LiveRunReal\n chatId={chat.id}\n initialStatus={chat.status}\n initialRounds={initialRounds}\n template={template}\n templateId={chat.templateId}\n work={chat.work}\n initialPrUrl={chat.prUrl}\n initialShipError={chat.shipError}\n initialVerdict={chat.verdict}\n />\n </AppShell>\n );\n}\n"],"names":["InvariantError","Error","constructor","message","options","endsWith","name","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","AppSidebar","SidebarBody","MobileTopBar","AppShell","children","className","fromRow","row","attached","attached_files","parsed","JSON","parse","Array","isArray","id","slug","undefined","work","templateId","template_id","status","currentPhaseIdx","current_phase_idx","yolo","Boolean","attachedFiles","repoPath","repo_path","prUrl","pr_url","shipError","ship_error","artifact","verdict","createdAt","created_at","updatedAt","updated_at","finishedAt","finished_at","listChats","params","URLSearchParams","limit","append","toString","offset","query","env","items","map","getChat","createChat","method","body","stringify","src","width","height","LiveRunReal","dynamic","getRunData","runId","chat","err","template","AGENT_TO_LINEAGE","openrouter","readChatRounds","chatId","chatDir","join","homedir","existsSync","entries","readdirSync","withFileTypes","filter","d","isDirectory","startsWith","rounds","entry","roundNum","parseInt","replace","Number","isFinite","roundDir","participants","role","rawAgent","lineage","answerPath","hasAnswer","answer","findingsPreview","readFileSync","test","trimEnd","split","l","trim","length","slice","binaryUsed","modelUsed","metaPath","meta","binary","model","durationMs","usage","statsPath","stats","u","inputTokens","outputTokens","cachedInputTokens","costUsd","keys","participant","agentName","push","round","sort","a","b","RunPage","initialRounds","initialStatus","initialPrUrl","initialShipError","initialVerdict"],"mappings":"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","ignoreList":[0,1,2,3,9]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[3438,a=>{"use strict";let b=(0,a.i(91870).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],3438)},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},92415,a=>{"use strict";let b=process.env.CHORUS_DAEMON_URL||"http://127.0.0.1:7707",c="/api/v1";class d extends Error{code;statusCode;details;constructor(a,b,c,d){super(c),this.code=a,this.statusCode=b,this.details=d,this.name="DaemonError"}}async function e(a,f={}){let g=a.startsWith("/")?a:`/${a}`,h=g===c||g.startsWith(`${c}/`)?g:`${c}${g}`,i=`${b.replace(/\/$/,"")}${h}`;try{let a=await fetch(i,{...f,headers:{"Content-Type":"application/json",...f.headers}}),b=await a.json().catch(()=>({ok:!1,error:{code:"parse_error",message:"Failed to parse response"}}));if(!b.ok)throw new d(b.error?.code||"unknown",a.status,b.error?.message||"Unknown error",b.error?.details);return b.data}catch(a){if(a instanceof d)throw a;if(a instanceof TypeError&&a.message.includes("fetch"))throw new d("connection_failed",0,"Failed to connect to Chorus daemon. Is it running?");throw new d("unknown",0,a instanceof Error?a.message:"Unknown error")}}a.s(["DaemonError",0,d,"fetchFromDaemon",0,e])},64837,a=>{"use strict";let b=(0,a.i(91870).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],64837)},84623,a=>{"use strict";let b=(0,a.i(91870).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",0,b],84623)},24897,a=>{"use strict";var b=a.i(92415);async function c(a){return(await (0,b.fetchFromDaemon)(`/voices${function(a){if(!a)return"";let b=[];return a.lineage&&b.push(`lineage=${encodeURIComponent(a.lineage)}`),a.source&&b.push(`source=${encodeURIComponent(a.source)}`),a.provider&&b.push(`provider=${encodeURIComponent(a.provider)}`),void 0!==a.enabled&&b.push(`enabled=${a.enabled?"true":"false"}`),0===b.length?"":`?${b.join("&")}`}(a)}`)).items}async function d(a,c){return(0,b.fetchFromDaemon)(`/voices/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify(c)})}async function e(a){return(0,b.fetchFromDaemon)("/voices",{method:"POST",body:JSON.stringify(a)})}a.s(["createVoice",0,e,"listVoices",0,c,"updateVoice",0,d])},26442,a=>{"use strict";var b=a.i(92415);async function c(){return(await (0,b.fetchFromDaemon)("/onboard/detect-clis")).items}async function d(a,c){return(0,b.fetchFromDaemon)("/onboard/validate-cli-path",{method:"POST",body:JSON.stringify({id:a,path:c})})}async function e(a,c){return(0,b.fetchFromDaemon)("/onboard/save-cli-path",{method:"POST",body:JSON.stringify({id:a,path:c})})}async function f(a){return(0,b.fetchFromDaemon)("/settings/permissions",{method:"PUT",body:JSON.stringify(a)})}async function g(a){return(0,b.fetchFromDaemon)("/settings",{method:"PUT",body:JSON.stringify(a)})}async function h(){return(0,b.fetchFromDaemon)("/settings/transport")}async function i(a){return(0,b.fetchFromDaemon)("/settings/transport",{method:"PUT",body:JSON.stringify(a)})}async function j(){return(0,b.fetchFromDaemon)("/settings/billing")}async function k(a){return(0,b.fetchFromDaemon)("/settings/billing",{method:"PUT",body:JSON.stringify(a)})}async function l(){return(0,b.fetchFromDaemon)("/settings/telemetry")}async function m(a){return(0,b.fetchFromDaemon)("/settings/telemetry",{method:"PUT",body:JSON.stringify({enabled:a})})}async function n(a,c){return(0,b.fetchFromDaemon)(`/secrets/${a}`,{method:"PUT",body:JSON.stringify(c)})}a.s(["detectInstalledClis",0,c,"getBillingMode",0,j,"getTelemetryStatus",0,l,"getTransport",0,h,"saveCliPath",0,e,"updateBillingMode",0,k,"updatePermissions",0,f,"updateSettings",0,g,"updateTelemetryEnabled",0,m,"updateTransport",0,i,"upsertSecret",0,n,"validateCliPath",0,d])},88923,a=>{"use strict";let b={anthropic:"Claude",openai:"Codex",google:"Gemini",opencode:"OpenCode",moonshot:"Kimi"},c={anthropic:"bg-violet-400",openai:"bg-orange-400",google:"bg-blue-400",opencode:"bg-emerald-400",moonshot:"bg-pink-400"},d={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode",kimi:"Kimi",openrouter:"OpenRouter"},e={claude:"bg-violet-400",codex:"bg-orange-400",gemini:"bg-blue-400",opencode:"bg-emerald-400",kimi:"bg-pink-400",openrouter:"bg-cyan-400"},f={claude:"claude-opus-4-7",codex:"gpt-5.5",gemini:"gemini-3.1-pro-preview",opencode:"kimi-k2.6",kimi:"kimi-k2.6",openrouter:""};a.s(["LINEAGE_LABEL",0,b,"UI_LINEAGE_BRAND",0,{claude:{dot:"bg-violet-400",ring:"ring-violet-400/40",gradient:"bg-gradient-to-b from-violet-500/15 to-card"},codex:{dot:"bg-orange-400",ring:"ring-orange-400/40",gradient:"bg-gradient-to-b from-orange-500/15 to-card"},gemini:{dot:"bg-blue-400",ring:"ring-blue-400/40",gradient:"bg-gradient-to-b from-blue-500/15 to-card"},opencode:{dot:"bg-emerald-400",ring:"ring-emerald-400/40",gradient:"bg-gradient-to-b from-emerald-500/15 to-card"},kimi:{dot:"bg-pink-400",ring:"ring-pink-400/40",gradient:"bg-gradient-to-b from-pink-500/15 to-card"},openrouter:{dot:"bg-cyan-400",ring:"ring-cyan-400/40",gradient:"bg-gradient-to-b from-cyan-500/15 to-card"}},"UI_LINEAGE_DEFAULT_MODEL",0,f,"UI_LINEAGE_LABEL",0,d,"lineageDot",0,function(a){return a?c[a]??"bg-muted":"bg-muted"},"lineageLabel",0,function(a){return a?b[a]??a:""},"uiLineageDefaultModel",0,function(a){if(a)return f[a]},"uiLineageDot",0,function(a){return a?e[a]??"bg-muted":"bg-muted"},"uiLineageLabel",0,function(a){return a?d[a]??a:""}])},7090,a=>{"use strict";let b=(0,a.i(91870).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);a.s(["ArrowRight",0,b],7090)},42261,90005,a=>{"use strict";var b=a.i(39337);let c=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,d=b.clsx;a.s(["cva",0,(a,b)=>e=>{var f;if((null==b?void 0:b.variants)==null)return d(a,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==e?void 0:e[a],d=null==h?void 0:h[a];if(null===b)return null;let f=c(b)||c(d);return g[a][f]}),j=e&&Object.entries(e).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return d(a,i,null==b||null==(f=b.compoundVariants)?void 0:f.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==e?void 0:e.class,null==e?void 0:e.className)}],42261);var e=a.i(92274);a.s(["Slot",0,e],90005)},91119,a=>{"use strict";var b=a.i(81673),c=a.i(68114);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",a),...d})}])},99570,a=>{"use strict";var b=a.i(81673),c=a.i(42261),d=a.i(90005),e=a.i(68114);let f=(0,c.cva)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});a.s(["Button",0,function({className:a,variant:c="default",size:g="default",asChild:h=!1,...i}){let j=h?d.Slot.Root:"button";return(0,b.jsx)(j,{"data-slot":"button","data-variant":c,"data-size":g,className:(0,e.cn)(f({variant:c,size:g,className:a})),...i})}])},57966,a=>{"use strict";var b=a.i(92415);async function c(a){return(0,b.fetchFromDaemon)(`/orchestrators/${a}/connect`,{method:"POST"})}async function d(){return(0,b.fetchFromDaemon)("/orchestrators/opencode/models")}a.s(["connectOrchestrator",0,c,"listOpencodeModels",0,d])},39908,16215,a=>{"use strict";let b=(0,a.i(91870).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],39908);var c=a.i(92415);async function d(a){return(0,c.fetchFromDaemon)("/openrouter/save-key",{method:"POST",body:JSON.stringify({apiKey:a})})}async function e(){return(0,c.fetchFromDaemon)("/openrouter/models")}async function f(a,b){return(0,c.fetchFromDaemon)("/openrouter/voices",{method:"POST",body:JSON.stringify(b?{modelIds:a,apiKey:b}:{modelIds:a})})}a.s(["addOpenRouterVoices",0,f,"listOpenRouterModels",0,e,"saveOpenRouterKey",0,d],16215)},46476,a=>{a.v(a=>Promise.resolve().then(()=>a(24897)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0ek20dj._.js.map
|