chorus-codes 0.7.3 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -7
  3. package/.next/build-manifest.json +13 -14
  4. package/.next/cache/.previewinfo +1 -1
  5. package/.next/cache/.rscinfo +1 -1
  6. package/.next/cache/.tsbuildinfo +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  10. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  11. package/.next/cache/webpack/server-production/0.pack +0 -0
  12. package/.next/cache/webpack/server-production/index.pack +0 -0
  13. package/.next/next-minimal-server.js.nft.json +1 -1
  14. package/.next/next-server.js.nft.json +1 -1
  15. package/.next/prerender-manifest.json +3 -3
  16. package/.next/react-loadable-manifest.json +6 -0
  17. package/.next/required-server-files.js +2 -0
  18. package/.next/required-server-files.json +2 -0
  19. package/.next/server/app/_global-error/page.js +32 -10
  20. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  21. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -3
  22. package/.next/server/app/_global-error.html +1 -1
  23. package/.next/server/app/_global-error.meta +2 -1
  24. package/.next/server/app/_global-error.rsc +8 -9
  25. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -9
  26. package/.next/server/app/_global-error.segments/{__PAGE__.segment.rsc → _global-error/__PAGE__.segment.rsc} +2 -2
  27. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  28. package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -4
  29. package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  30. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  31. package/.next/server/app/_not-found/page.js +2 -13
  32. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  33. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -3
  34. package/.next/server/app/_not-found.html +1 -1
  35. package/.next/server/app/_not-found.rsc +12 -10
  36. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -10
  37. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  38. package/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  39. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  40. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  41. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -2
  42. package/.next/server/app/api/daemon/[...path]/route.js +1 -7
  43. package/.next/server/app/api/daemon/[...path]/route.js.nft.json +1 -1
  44. package/.next/server/app/api/daemon/[...path]/route_client-reference-manifest.js +1 -3
  45. package/.next/server/app/api/run-artifacts/[chatId]/route.js +1 -6
  46. package/.next/server/app/api/run-artifacts/[chatId]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/run-artifacts/[chatId]/route_client-reference-manifest.js +1 -3
  48. package/.next/server/app/connect/page.js +2 -15
  49. package/.next/server/app/connect/page.js.nft.json +1 -1
  50. package/.next/server/app/connect/page_client-reference-manifest.js +1 -3
  51. package/.next/server/app/favicon.ico/route.js +1 -8
  52. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  53. package/.next/server/app/icon.svg/route.js +1 -7
  54. package/.next/server/app/icon.svg/route.js.nft.json +1 -1
  55. package/.next/server/app/new/page.js +2 -14
  56. package/.next/server/app/new/page.js.nft.json +1 -1
  57. package/.next/server/app/new/page_client-reference-manifest.js +1 -3
  58. package/.next/server/app/new.html +1 -1
  59. package/.next/server/app/new.rsc +14 -14
  60. package/.next/server/app/new.segments/_full.segment.rsc +14 -14
  61. package/.next/server/app/new.segments/_head.segment.rsc +4 -4
  62. package/.next/server/app/new.segments/_index.segment.rsc +4 -4
  63. package/.next/server/app/new.segments/_tree.segment.rsc +4 -4
  64. package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +4 -4
  65. package/.next/server/app/new.segments/new.segment.rsc +3 -3
  66. package/.next/server/app/onboarding/page.js +2 -14
  67. package/.next/server/app/onboarding/page.js.nft.json +1 -1
  68. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -3
  69. package/.next/server/app/onboarding.html +1 -1
  70. package/.next/server/app/onboarding.rsc +14 -14
  71. package/.next/server/app/onboarding.segments/_full.segment.rsc +14 -14
  72. package/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
  73. package/.next/server/app/onboarding.segments/_index.segment.rsc +4 -4
  74. package/.next/server/app/onboarding.segments/_tree.segment.rsc +4 -4
  75. package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  76. package/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
  77. package/.next/server/app/page.js +2 -17
  78. package/.next/server/app/page.js.nft.json +1 -1
  79. package/.next/server/app/page_client-reference-manifest.js +1 -3
  80. package/.next/server/app/personas/page.js +2 -14
  81. package/.next/server/app/personas/page.js.nft.json +1 -1
  82. package/.next/server/app/personas/page_client-reference-manifest.js +1 -3
  83. package/.next/server/app/personas.html +1 -1
  84. package/.next/server/app/personas.rsc +14 -14
  85. package/.next/server/app/personas.segments/_full.segment.rsc +14 -14
  86. package/.next/server/app/personas.segments/_head.segment.rsc +4 -4
  87. package/.next/server/app/personas.segments/_index.segment.rsc +4 -4
  88. package/.next/server/app/personas.segments/_tree.segment.rsc +4 -4
  89. package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +4 -4
  90. package/.next/server/app/personas.segments/personas.segment.rsc +3 -3
  91. package/.next/server/app/runs/[runId]/page.js +2 -16
  92. package/.next/server/app/runs/[runId]/page.js.nft.json +1 -1
  93. package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -3
  94. package/.next/server/app/runs/page.js +2 -15
  95. package/.next/server/app/runs/page.js.nft.json +1 -1
  96. package/.next/server/app/runs/page_client-reference-manifest.js +1 -3
  97. package/.next/server/app/settings/page.js +26 -14
  98. package/.next/server/app/settings/page.js.nft.json +1 -1
  99. package/.next/server/app/settings/page_client-reference-manifest.js +1 -3
  100. package/.next/server/app/settings/permissions/page.js +2 -14
  101. package/.next/server/app/settings/permissions/page.js.nft.json +1 -1
  102. package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -3
  103. package/.next/server/app/settings.html +1 -1
  104. package/.next/server/app/settings.rsc +14 -14
  105. package/.next/server/app/settings.segments/_full.segment.rsc +14 -14
  106. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  107. package/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  108. package/.next/server/app/settings.segments/_tree.segment.rsc +4 -4
  109. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  110. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  111. package/.next/server/app/templates/page.js +2 -14
  112. package/.next/server/app/templates/page.js.nft.json +1 -1
  113. package/.next/server/app/templates/page_client-reference-manifest.js +1 -3
  114. package/.next/server/app/templates.html +1 -1
  115. package/.next/server/app/templates.rsc +14 -14
  116. package/.next/server/app/templates.segments/_full.segment.rsc +14 -14
  117. package/.next/server/app/templates.segments/_head.segment.rsc +4 -4
  118. package/.next/server/app/templates.segments/_index.segment.rsc +4 -4
  119. package/.next/server/app/templates.segments/_tree.segment.rsc +4 -4
  120. package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +4 -4
  121. package/.next/server/app/templates.segments/templates.segment.rsc +3 -3
  122. package/.next/server/app-paths-manifest.json +7 -7
  123. package/.next/server/chunks/144.js +25 -0
  124. package/.next/server/chunks/332.js +18 -0
  125. package/.next/server/chunks/418.js +1 -0
  126. package/.next/server/chunks/429.js +1 -0
  127. package/.next/server/chunks/451.js +45 -0
  128. package/.next/server/chunks/498.js +1 -0
  129. package/.next/server/chunks/504.js +1 -0
  130. package/.next/server/chunks/557.js +5 -0
  131. package/.next/server/chunks/668.js +25 -0
  132. package/.next/server/chunks/681.js +1 -0
  133. package/.next/server/chunks/946.js +1 -0
  134. package/.next/server/chunks/95.js +1 -0
  135. package/.next/server/middleware-build-manifest.js +1 -21
  136. package/.next/server/middleware-manifest.json +2 -2
  137. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  138. package/.next/server/next-font-manifest.js +1 -1
  139. package/.next/server/next-font-manifest.json +1 -51
  140. package/.next/server/pages/404.html +1 -1
  141. package/.next/server/pages/500.html +1 -1
  142. package/.next/server/server-reference-manifest.js +1 -1
  143. package/.next/server/server-reference-manifest.json +1 -5
  144. package/.next/server/webpack-runtime.js +1 -0
  145. package/.next/static/chunks/116-0372d11bc2a9ac4d.js +25 -0
  146. package/.next/static/chunks/128-a5d059bf5b2e5090.js +32 -0
  147. package/.next/static/chunks/15-d438a2b057302bed.js +1 -0
  148. package/.next/static/chunks/344-1f06059a92faa936.js +1 -0
  149. package/.next/static/chunks/720-9732eeb760e004e3.js +5 -0
  150. package/.next/static/chunks/744-2b89d96d64610581.js +1 -0
  151. package/.next/static/chunks/app/_global-error/page-c01ad9f9473ce080.js +1 -0
  152. package/.next/static/chunks/app/_not-found/page-715bac6dc7f3427d.js +1 -0
  153. package/.next/static/chunks/app/api/daemon/[...path]/route-c01ad9f9473ce080.js +1 -0
  154. package/.next/static/chunks/app/api/run-artifacts/[chatId]/route-c01ad9f9473ce080.js +1 -0
  155. package/.next/static/chunks/app/connect/page-c09d9fb410c468b7.js +1 -0
  156. package/.next/static/chunks/app/layout-df8acd5bd06cbe45.js +1 -0
  157. package/.next/static/chunks/app/new/page-e4923b87c7a7b6ae.js +1 -0
  158. package/.next/static/chunks/app/onboarding/page-4c87427335371aaa.js +1 -0
  159. package/.next/static/chunks/app/page-3c0d23c063b036eb.js +1 -0
  160. package/.next/static/chunks/app/personas/page-a130cd11d8cbd832.js +1 -0
  161. package/.next/static/chunks/app/runs/[runId]/page-aa118bfeb6508779.js +1 -0
  162. package/.next/static/chunks/app/runs/page-503439d57f433574.js +1 -0
  163. package/.next/static/chunks/app/settings/page-64d7d48d2413a18b.js +25 -0
  164. package/.next/static/chunks/app/settings/permissions/page-18bf0e6d84be8fad.js +1 -0
  165. package/.next/static/chunks/app/templates/page-db5165c6311bf6e1.js +1 -0
  166. package/.next/static/chunks/ed64ccb0-b7d2b5246d18ca7e.js +1 -0
  167. package/.next/static/chunks/framework-dc9b726cfb42e402.js +1 -0
  168. package/.next/static/chunks/main-2088f7ac0f762d6a.js +5 -0
  169. package/.next/static/chunks/main-app-e9f7985e32dc8a63.js +1 -0
  170. package/.next/static/chunks/next/dist/client/components/builtin/app-error-c01ad9f9473ce080.js +1 -0
  171. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-c01ad9f9473ce080.js +1 -0
  172. package/.next/static/chunks/next/dist/client/components/builtin/global-error-538b25894f1d36d8.js +1 -0
  173. package/.next/static/chunks/next/dist/client/components/builtin/not-found-c01ad9f9473ce080.js +1 -0
  174. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c01ad9f9473ce080.js +1 -0
  175. package/.next/static/chunks/webpack-87142ab87b87c8fb.js +1 -0
  176. package/.next/static/css/a552ff3997000a18.css +3 -0
  177. package/.next/static/fRcji-LCH-qqfsUepgR1t/_buildManifest.js +1 -0
  178. package/.next/trace +19 -1
  179. package/.next/trace-build +1 -1
  180. package/.next/types/app/api/daemon/[...path]/route.ts +351 -0
  181. package/.next/types/app/api/run-artifacts/[chatId]/route.ts +351 -0
  182. package/.next/types/app/connect/page.ts +87 -0
  183. package/.next/types/app/layout.ts +87 -0
  184. package/.next/types/app/new/page.ts +87 -0
  185. package/.next/types/app/onboarding/page.ts +87 -0
  186. package/.next/types/app/page.ts +87 -0
  187. package/.next/types/app/personas/page.ts +87 -0
  188. package/.next/types/app/runs/[runId]/page.ts +87 -0
  189. package/.next/types/app/runs/page.ts +87 -0
  190. package/.next/types/app/settings/page.ts +87 -0
  191. package/.next/types/app/settings/permissions/page.ts +87 -0
  192. package/.next/types/app/templates/page.ts +87 -0
  193. package/.next/types/package.json +1 -0
  194. package/dist/daemon/index.js +1 -1
  195. package/dist/mcp/index.js +1 -1
  196. package/package.json +2 -2
  197. package/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js +0 -206
  198. package/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js.map +0 -8
  199. package/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js +0 -500
  200. package/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js.map +0 -11
  201. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_06e.r3r._.js +0 -13
  202. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_06e.r3r._.js.map +0 -5
  203. package/.next/build/chunks/[turbopack]_runtime.js +0 -890
  204. package/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
  205. package/.next/build/chunks/node_modules__pnpm_0e-dfa2._.js +0 -6681
  206. package/.next/build/chunks/node_modules__pnpm_0e-dfa2._.js.map +0 -47
  207. package/.next/build/package.json +0 -1
  208. package/.next/build/postcss.js +0 -6
  209. package/.next/build/postcss.js.map +0 -5
  210. package/.next/diagnostics/route-bundle-stats.json +0 -176
  211. package/.next/fallback-build-manifest.json +0 -13
  212. package/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
  213. package/.next/server/app/_global-error/page/build-manifest.json +0 -17
  214. package/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
  215. package/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
  216. package/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
  217. package/.next/server/app/_global-error/page.js.map +0 -5
  218. package/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
  219. package/.next/server/app/_not-found/page/build-manifest.json +0 -17
  220. package/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
  221. package/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
  222. package/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
  223. package/.next/server/app/_not-found/page.js.map +0 -5
  224. package/.next/server/app/api/daemon/[...path]/route/app-paths-manifest.json +0 -3
  225. package/.next/server/app/api/daemon/[...path]/route/build-manifest.json +0 -9
  226. package/.next/server/app/api/daemon/[...path]/route/server-reference-manifest.json +0 -4
  227. package/.next/server/app/api/daemon/[...path]/route.js.map +0 -5
  228. package/.next/server/app/api/run-artifacts/[chatId]/route/app-paths-manifest.json +0 -3
  229. package/.next/server/app/api/run-artifacts/[chatId]/route/build-manifest.json +0 -9
  230. package/.next/server/app/api/run-artifacts/[chatId]/route/server-reference-manifest.json +0 -4
  231. package/.next/server/app/api/run-artifacts/[chatId]/route.js.map +0 -5
  232. package/.next/server/app/connect/page/app-paths-manifest.json +0 -3
  233. package/.next/server/app/connect/page/build-manifest.json +0 -17
  234. package/.next/server/app/connect/page/next-font-manifest.json +0 -11
  235. package/.next/server/app/connect/page/react-loadable-manifest.json +0 -1
  236. package/.next/server/app/connect/page/server-reference-manifest.json +0 -4
  237. package/.next/server/app/connect/page.js.map +0 -5
  238. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
  239. package/.next/server/app/favicon.ico/route/build-manifest.json +0 -9
  240. package/.next/server/app/favicon.ico/route.js.map +0 -5
  241. package/.next/server/app/icon.svg/route/app-paths-manifest.json +0 -3
  242. package/.next/server/app/icon.svg/route/build-manifest.json +0 -9
  243. package/.next/server/app/icon.svg/route.js.map +0 -5
  244. package/.next/server/app/new/page/app-paths-manifest.json +0 -3
  245. package/.next/server/app/new/page/build-manifest.json +0 -17
  246. package/.next/server/app/new/page/next-font-manifest.json +0 -11
  247. package/.next/server/app/new/page/react-loadable-manifest.json +0 -1
  248. package/.next/server/app/new/page/server-reference-manifest.json +0 -4
  249. package/.next/server/app/new/page.js.map +0 -5
  250. package/.next/server/app/onboarding/page/app-paths-manifest.json +0 -3
  251. package/.next/server/app/onboarding/page/build-manifest.json +0 -17
  252. package/.next/server/app/onboarding/page/next-font-manifest.json +0 -11
  253. package/.next/server/app/onboarding/page/react-loadable-manifest.json +0 -1
  254. package/.next/server/app/onboarding/page/server-reference-manifest.json +0 -4
  255. package/.next/server/app/onboarding/page.js.map +0 -5
  256. package/.next/server/app/page/app-paths-manifest.json +0 -3
  257. package/.next/server/app/page/build-manifest.json +0 -17
  258. package/.next/server/app/page/next-font-manifest.json +0 -11
  259. package/.next/server/app/page/react-loadable-manifest.json +0 -1
  260. package/.next/server/app/page/server-reference-manifest.json +0 -4
  261. package/.next/server/app/page.js.map +0 -5
  262. package/.next/server/app/personas/page/app-paths-manifest.json +0 -3
  263. package/.next/server/app/personas/page/build-manifest.json +0 -17
  264. package/.next/server/app/personas/page/next-font-manifest.json +0 -11
  265. package/.next/server/app/personas/page/react-loadable-manifest.json +0 -1
  266. package/.next/server/app/personas/page/server-reference-manifest.json +0 -4
  267. package/.next/server/app/personas/page.js.map +0 -5
  268. package/.next/server/app/runs/[runId]/page/app-paths-manifest.json +0 -3
  269. package/.next/server/app/runs/[runId]/page/build-manifest.json +0 -17
  270. package/.next/server/app/runs/[runId]/page/next-font-manifest.json +0 -11
  271. package/.next/server/app/runs/[runId]/page/react-loadable-manifest.json +0 -1
  272. package/.next/server/app/runs/[runId]/page/server-reference-manifest.json +0 -4
  273. package/.next/server/app/runs/[runId]/page.js.map +0 -5
  274. package/.next/server/app/runs/page/app-paths-manifest.json +0 -3
  275. package/.next/server/app/runs/page/build-manifest.json +0 -17
  276. package/.next/server/app/runs/page/next-font-manifest.json +0 -11
  277. package/.next/server/app/runs/page/react-loadable-manifest.json +0 -1
  278. package/.next/server/app/runs/page/server-reference-manifest.json +0 -4
  279. package/.next/server/app/runs/page.js.map +0 -5
  280. package/.next/server/app/settings/page/app-paths-manifest.json +0 -3
  281. package/.next/server/app/settings/page/build-manifest.json +0 -17
  282. package/.next/server/app/settings/page/next-font-manifest.json +0 -11
  283. package/.next/server/app/settings/page/react-loadable-manifest.json +0 -1
  284. package/.next/server/app/settings/page/server-reference-manifest.json +0 -4
  285. package/.next/server/app/settings/page.js.map +0 -5
  286. package/.next/server/app/settings/permissions/page/app-paths-manifest.json +0 -3
  287. package/.next/server/app/settings/permissions/page/build-manifest.json +0 -17
  288. package/.next/server/app/settings/permissions/page/next-font-manifest.json +0 -11
  289. package/.next/server/app/settings/permissions/page/react-loadable-manifest.json +0 -1
  290. package/.next/server/app/settings/permissions/page/server-reference-manifest.json +0 -4
  291. package/.next/server/app/settings/permissions/page.js.map +0 -5
  292. package/.next/server/app/templates/page/app-paths-manifest.json +0 -3
  293. package/.next/server/app/templates/page/build-manifest.json +0 -17
  294. package/.next/server/app/templates/page/next-font-manifest.json +0 -11
  295. package/.next/server/app/templates/page/react-loadable-manifest.json +0 -1
  296. package/.next/server/app/templates/page/server-reference-manifest.json +0 -4
  297. package/.next/server/app/templates/page.js.map +0 -5
  298. package/.next/server/chunks/05w9_next_0xdex7s._.js +0 -13
  299. package/.next/server/chunks/05w9_next_0xdex7s._.js.map +0 -1
  300. package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0.73kst.js +0 -3
  301. package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0.73kst.js.map +0 -1
  302. package/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +0 -3
  303. package/.next/server/chunks/[externals]_next_dist_0arv.vj._.js.map +0 -1
  304. package/.next/server/chunks/[root-of-the-server]__02xvj_h._.js +0 -3
  305. package/.next/server/chunks/[root-of-the-server]__02xvj_h._.js.map +0 -1
  306. package/.next/server/chunks/[root-of-the-server]__0i7ddmr._.js +0 -3
  307. package/.next/server/chunks/[root-of-the-server]__0i7ddmr._.js.map +0 -1
  308. package/.next/server/chunks/[root-of-the-server]__0sxhm1i._.js +0 -3
  309. package/.next/server/chunks/[root-of-the-server]__0sxhm1i._.js.map +0 -1
  310. package/.next/server/chunks/[root-of-the-server]__12xxby8._.js +0 -3
  311. package/.next/server/chunks/[root-of-the-server]__12xxby8._.js.map +0 -1
  312. package/.next/server/chunks/[turbopack]_runtime.js +0 -903
  313. package/.next/server/chunks/[turbopack]_runtime.js.map +0 -11
  314. package/.next/server/chunks/_next-internal_server_app_api_daemon_[___path]_route_actions_0a5g-ar.js +0 -3
  315. package/.next/server/chunks/_next-internal_server_app_api_daemon_[___path]_route_actions_0a5g-ar.js.map +0 -1
  316. package/.next/server/chunks/_next-internal_server_app_api_run-artifacts_[chatId]_route_actions_07e2ul1.js +0 -3
  317. package/.next/server/chunks/_next-internal_server_app_api_run-artifacts_[chatId]_route_actions_07e2ul1.js.map +0 -1
  318. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js +0 -3
  319. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js.map +0 -1
  320. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js +0 -3
  321. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js.map +0 -1
  322. package/.next/server/chunks/ssr/05w9_next_dist_0q4woef._.js +0 -3
  323. package/.next/server/chunks/ssr/05w9_next_dist_0q4woef._.js.map +0 -1
  324. package/.next/server/chunks/ssr/05w9_next_dist_0ybpwn1._.js +0 -6
  325. package/.next/server/chunks/ssr/05w9_next_dist_0ybpwn1._.js.map +0 -1
  326. package/.next/server/chunks/ssr/05w9_next_dist_0~859ji._.js +0 -6
  327. package/.next/server/chunks/ssr/05w9_next_dist_0~859ji._.js.map +0 -1
  328. package/.next/server/chunks/ssr/05w9_next_dist_client_components_12u3mib._.js +0 -3
  329. package/.next/server/chunks/ssr/05w9_next_dist_client_components_12u3mib._.js.map +0 -1
  330. package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_forbidden_04fbe_..js +0 -3
  331. package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_forbidden_04fbe_..js.map +0 -1
  332. package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_global-error_0brpl_..js +0 -3
  333. package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_global-error_0brpl_..js.map +0 -1
  334. package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_unauthorized_0~2g66g.js +0 -3
  335. package/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_unauthorized_0~2g66g.js.map +0 -1
  336. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0-f~6r1.js +0 -4
  337. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0-f~6r1.js.map +0 -1
  338. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_00czn99.js +0 -4
  339. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_00czn99.js.map +0 -1
  340. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_01nm1_6.js +0 -4
  341. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_01nm1_6.js.map +0 -1
  342. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0jcydv7.js +0 -4
  343. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0jcydv7.js.map +0 -1
  344. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0km.hvi.js +0 -4
  345. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0km.hvi.js.map +0 -1
  346. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0ln8_qt.js +0 -4
  347. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0ln8_qt.js.map +0 -1
  348. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0n3h-j1.js +0 -4
  349. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0n3h-j1.js.map +0 -1
  350. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0nc~v.o.js +0 -4
  351. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0nc~v.o.js.map +0 -1
  352. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0o6nct3.js +0 -4
  353. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0o6nct3.js.map +0 -1
  354. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0veve6-.js +0 -4
  355. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0veve6-.js.map +0 -1
  356. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0wh5tpo.js +0 -4
  357. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0wh5tpo.js.map +0 -1
  358. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_10~fsfu.js +0 -4
  359. package/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_10~fsfu.js.map +0 -1
  360. package/.next/server/chunks/ssr/[root-of-the-server]__0-7oo8o._.js +0 -3
  361. package/.next/server/chunks/ssr/[root-of-the-server]__0-7oo8o._.js.map +0 -1
  362. package/.next/server/chunks/ssr/[root-of-the-server]__01t9qm2._.js +0 -3
  363. package/.next/server/chunks/ssr/[root-of-the-server]__01t9qm2._.js.map +0 -1
  364. package/.next/server/chunks/ssr/[root-of-the-server]__076~t6~._.js +0 -3
  365. package/.next/server/chunks/ssr/[root-of-the-server]__076~t6~._.js.map +0 -1
  366. package/.next/server/chunks/ssr/[root-of-the-server]__0_tow-j._.js +0 -3
  367. package/.next/server/chunks/ssr/[root-of-the-server]__0_tow-j._.js.map +0 -1
  368. package/.next/server/chunks/ssr/[root-of-the-server]__0bsym8v._.js +0 -3
  369. package/.next/server/chunks/ssr/[root-of-the-server]__0bsym8v._.js.map +0 -1
  370. package/.next/server/chunks/ssr/[root-of-the-server]__0bwjwxi._.js +0 -3
  371. package/.next/server/chunks/ssr/[root-of-the-server]__0bwjwxi._.js.map +0 -1
  372. package/.next/server/chunks/ssr/[root-of-the-server]__0c2e5js._.js +0 -3
  373. package/.next/server/chunks/ssr/[root-of-the-server]__0c2e5js._.js.map +0 -1
  374. package/.next/server/chunks/ssr/[root-of-the-server]__0d_59pi._.js +0 -3
  375. package/.next/server/chunks/ssr/[root-of-the-server]__0d_59pi._.js.map +0 -1
  376. package/.next/server/chunks/ssr/[root-of-the-server]__0dxp2sg._.js +0 -3
  377. package/.next/server/chunks/ssr/[root-of-the-server]__0dxp2sg._.js.map +0 -1
  378. package/.next/server/chunks/ssr/[root-of-the-server]__0e58.k_._.js +0 -3
  379. package/.next/server/chunks/ssr/[root-of-the-server]__0e58.k_._.js.map +0 -1
  380. package/.next/server/chunks/ssr/[root-of-the-server]__0ek20dj._.js +0 -3
  381. package/.next/server/chunks/ssr/[root-of-the-server]__0ek20dj._.js.map +0 -1
  382. package/.next/server/chunks/ssr/[root-of-the-server]__0h2o43u._.js +0 -3
  383. package/.next/server/chunks/ssr/[root-of-the-server]__0h2o43u._.js.map +0 -1
  384. package/.next/server/chunks/ssr/[root-of-the-server]__0hn95cc._.js +0 -33
  385. package/.next/server/chunks/ssr/[root-of-the-server]__0hn95cc._.js.map +0 -1
  386. package/.next/server/chunks/ssr/[root-of-the-server]__0ic.~tw._.js +0 -3
  387. package/.next/server/chunks/ssr/[root-of-the-server]__0ic.~tw._.js.map +0 -1
  388. package/.next/server/chunks/ssr/[root-of-the-server]__0jltd-t._.js +0 -3
  389. package/.next/server/chunks/ssr/[root-of-the-server]__0jltd-t._.js.map +0 -1
  390. package/.next/server/chunks/ssr/[root-of-the-server]__0k_96yx._.js +0 -3
  391. package/.next/server/chunks/ssr/[root-of-the-server]__0k_96yx._.js.map +0 -1
  392. package/.next/server/chunks/ssr/[root-of-the-server]__0l5ko41._.js +0 -19
  393. package/.next/server/chunks/ssr/[root-of-the-server]__0l5ko41._.js.map +0 -1
  394. package/.next/server/chunks/ssr/[root-of-the-server]__0p~21w8._.js +0 -3
  395. package/.next/server/chunks/ssr/[root-of-the-server]__0p~21w8._.js.map +0 -1
  396. package/.next/server/chunks/ssr/[root-of-the-server]__0tc4gl8._.js +0 -3
  397. package/.next/server/chunks/ssr/[root-of-the-server]__0tc4gl8._.js.map +0 -1
  398. package/.next/server/chunks/ssr/[root-of-the-server]__0v73tbn._.js +0 -3
  399. package/.next/server/chunks/ssr/[root-of-the-server]__0v73tbn._.js.map +0 -1
  400. package/.next/server/chunks/ssr/[root-of-the-server]__0we1ana._.js +0 -3
  401. package/.next/server/chunks/ssr/[root-of-the-server]__0we1ana._.js.map +0 -1
  402. package/.next/server/chunks/ssr/[root-of-the-server]__0xlzjhk._.js +0 -3
  403. package/.next/server/chunks/ssr/[root-of-the-server]__0xlzjhk._.js.map +0 -1
  404. package/.next/server/chunks/ssr/[root-of-the-server]__0ygksjc._.js +0 -33
  405. package/.next/server/chunks/ssr/[root-of-the-server]__0ygksjc._.js.map +0 -1
  406. package/.next/server/chunks/ssr/[root-of-the-server]__0yhjl35._.js +0 -3
  407. package/.next/server/chunks/ssr/[root-of-the-server]__0yhjl35._.js.map +0 -1
  408. package/.next/server/chunks/ssr/[root-of-the-server]__0~cqs-9._.js +0 -3
  409. package/.next/server/chunks/ssr/[root-of-the-server]__0~cqs-9._.js.map +0 -1
  410. package/.next/server/chunks/ssr/[root-of-the-server]__109.1j0._.js +0 -3
  411. package/.next/server/chunks/ssr/[root-of-the-server]__109.1j0._.js.map +0 -1
  412. package/.next/server/chunks/ssr/[root-of-the-server]__10gepjv._.js +0 -3
  413. package/.next/server/chunks/ssr/[root-of-the-server]__10gepjv._.js.map +0 -1
  414. package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -903
  415. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -11
  416. package/.next/server/chunks/ssr/_01t~nag._.js +0 -30
  417. package/.next/server/chunks/ssr/_01t~nag._.js.map +0 -1
  418. package/.next/server/chunks/ssr/_097xk3e._.js +0 -3
  419. package/.next/server/chunks/ssr/_097xk3e._.js.map +0 -1
  420. package/.next/server/chunks/ssr/_0bxoss0._.js +0 -30
  421. package/.next/server/chunks/ssr/_0bxoss0._.js.map +0 -1
  422. package/.next/server/chunks/ssr/_0ck1n8_._.js +0 -7
  423. package/.next/server/chunks/ssr/_0ck1n8_._.js.map +0 -1
  424. package/.next/server/chunks/ssr/_0d-304b._.js +0 -30
  425. package/.next/server/chunks/ssr/_0d-304b._.js.map +0 -1
  426. package/.next/server/chunks/ssr/_0p-_ahq._.js +0 -30
  427. package/.next/server/chunks/ssr/_0p-_ahq._.js.map +0 -1
  428. package/.next/server/chunks/ssr/_0qlx_85._.js +0 -7
  429. package/.next/server/chunks/ssr/_0qlx_85._.js.map +0 -1
  430. package/.next/server/chunks/ssr/_0y43gyn._.js +0 -27
  431. package/.next/server/chunks/ssr/_0y43gyn._.js.map +0 -1
  432. package/.next/server/chunks/ssr/_11i54x9._.js +0 -30
  433. package/.next/server/chunks/ssr/_11i54x9._.js.map +0 -1
  434. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +0 -3
  435. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js.map +0 -1
  436. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +0 -3
  437. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js.map +0 -1
  438. package/.next/server/chunks/ssr/_next-internal_server_app_connect_page_actions_0vb8s6u.js +0 -3
  439. package/.next/server/chunks/ssr/_next-internal_server_app_connect_page_actions_0vb8s6u.js.map +0 -1
  440. package/.next/server/chunks/ssr/_next-internal_server_app_new_page_actions_08q6mx5.js +0 -3
  441. package/.next/server/chunks/ssr/_next-internal_server_app_new_page_actions_08q6mx5.js.map +0 -1
  442. package/.next/server/chunks/ssr/_next-internal_server_app_onboarding_page_actions_0qdby58.js +0 -3
  443. package/.next/server/chunks/ssr/_next-internal_server_app_onboarding_page_actions_0qdby58.js.map +0 -1
  444. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +0 -3
  445. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js.map +0 -1
  446. package/.next/server/chunks/ssr/_next-internal_server_app_personas_page_actions_08fq21v.js +0 -3
  447. package/.next/server/chunks/ssr/_next-internal_server_app_personas_page_actions_08fq21v.js.map +0 -1
  448. package/.next/server/chunks/ssr/_next-internal_server_app_runs_[runId]_page_actions_0z6r2tz.js +0 -3
  449. package/.next/server/chunks/ssr/_next-internal_server_app_runs_[runId]_page_actions_0z6r2tz.js.map +0 -1
  450. package/.next/server/chunks/ssr/_next-internal_server_app_runs_page_actions_04_e1xr.js +0 -3
  451. package/.next/server/chunks/ssr/_next-internal_server_app_runs_page_actions_04_e1xr.js.map +0 -1
  452. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js +0 -3
  453. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_0mr68ai.js.map +0 -1
  454. package/.next/server/chunks/ssr/_next-internal_server_app_settings_permissions_page_actions_0cr.qtc.js +0 -3
  455. package/.next/server/chunks/ssr/_next-internal_server_app_settings_permissions_page_actions_0cr.qtc.js.map +0 -1
  456. package/.next/server/chunks/ssr/_next-internal_server_app_templates_page_actions_0n8gow3.js +0 -3
  457. package/.next/server/chunks/ssr/_next-internal_server_app_templates_page_actions_0n8gow3.js.map +0 -1
  458. package/.next/server/chunks/ssr/node_modules__pnpm_0~j0k.e._.js +0 -33
  459. package/.next/server/chunks/ssr/node_modules__pnpm_0~j0k.e._.js.map +0 -1
  460. package/.next/server/chunks/ssr/src_app_new_page_tsx_0av4n2k._.js +0 -3
  461. package/.next/server/chunks/ssr/src_app_new_page_tsx_0av4n2k._.js.map +0 -1
  462. package/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +0 -3
  463. package/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js.map +0 -1
  464. package/.next/server/chunks/ssr/src_app_personas_page_tsx_0jx9vyh._.js +0 -3
  465. package/.next/server/chunks/ssr/src_app_personas_page_tsx_0jx9vyh._.js.map +0 -1
  466. package/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +0 -27
  467. package/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js.map +0 -1
  468. package/.next/server/chunks/ssr/src_app_templates_page_tsx_0tml2wg._.js +0 -3
  469. package/.next/server/chunks/ssr/src_app_templates_page_tsx_0tml2wg._.js.map +0 -1
  470. package/.next/server/chunks/ssr/src_components_0j77o23._.js +0 -3
  471. package/.next/server/chunks/ssr/src_components_0j77o23._.js.map +0 -1
  472. package/.next/server/chunks/ssr/src_components_0lc2g58._.js +0 -3
  473. package/.next/server/chunks/ssr/src_components_0lc2g58._.js.map +0 -1
  474. package/.next/server/chunks/ssr/src_components_live-run-real_index_tsx_0zzsdt9._.js +0 -3
  475. package/.next/server/chunks/ssr/src_components_live-run-real_index_tsx_0zzsdt9._.js.map +0 -1
  476. package/.next/static/UrNBcWJ5KltIL6ABEsC-R/_buildManifest.js +0 -11
  477. package/.next/static/UrNBcWJ5KltIL6ABEsC-R/_clientMiddlewareManifest.js +0 -1
  478. package/.next/static/chunks/0.dctgbd3j_xg.js +0 -2
  479. package/.next/static/chunks/0.~gqf.-9g-fh.js +0 -1
  480. package/.next/static/chunks/01as9r5n5k.xo.js +0 -1
  481. package/.next/static/chunks/034b~pjm7y20e.js +0 -1
  482. package/.next/static/chunks/05o4oa_9xfaun.js +0 -1
  483. package/.next/static/chunks/08dnw-0gzytmy.js +0 -5
  484. package/.next/static/chunks/08f2b7tuf53ep.js +0 -1
  485. package/.next/static/chunks/0a_u3vdu6tc~f.js +0 -1
  486. package/.next/static/chunks/0am72irwq2bx0.js +0 -5
  487. package/.next/static/chunks/0c-d1bhb8byrx.js +0 -1
  488. package/.next/static/chunks/0s4~w2~is76y1.js +0 -1
  489. package/.next/static/chunks/0ue4qcctkv016.js +0 -4
  490. package/.next/static/chunks/0uok5~eqi6zku.js +0 -1
  491. package/.next/static/chunks/0u~3g88j1g2xp.css +0 -3
  492. package/.next/static/chunks/0v3lyuj75aq50.js +0 -1
  493. package/.next/static/chunks/0whnu9t5k-ij7.js +0 -1
  494. package/.next/static/chunks/0x00t3du13-u4.js +0 -25
  495. package/.next/static/chunks/0xs3ktzdh4rw4.js +0 -1
  496. package/.next/static/chunks/0~8r6nhrrl~f9.js +0 -1
  497. package/.next/static/chunks/10jdu00ksgu69.js +0 -1
  498. package/.next/static/chunks/10ld26~0f71ye.js +0 -25
  499. package/.next/static/chunks/11k2wbc04r__f.js +0 -25
  500. package/.next/static/chunks/13-.xgv2t5u6m.js +0 -31
  501. package/.next/static/chunks/152ec.u3_e~ya.js +0 -25
  502. package/.next/static/chunks/172tpttbumwi1.js +0 -25
  503. package/.next/static/chunks/turbopack-0-al833jv3to~.js +0 -1
  504. package/.next/static/media/favicon.0i~66t__91s97.ico +0 -0
  505. package/.next/static/media/icon.15.86wme~cdlv.svg +0 -6
  506. package/.next/turbopack +0 -0
  507. /package/.next/static/chunks/{03~yq9q893hmn.js → polyfills-42372ed130431b0a.js} +0 -0
  508. /package/.next/static/{UrNBcWJ5KltIL6ABEsC-R → fRcji-LCH-qqfsUepgR1t}/_ssgManifest.js +0 -0
  509. /package/.next/static/media/{caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 → 4cf2300e9c8272f7-s.p.woff2} +0 -0
  510. /package/.next/static/media/{bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 → 747892c23ea88013-s.woff2} +0 -0
  511. /package/.next/static/media/{8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 → 8d697b304b401681-s.woff2} +0 -0
  512. /package/.next/static/media/{797e433ab948586e-s.p.0.q-h669a_dqa.woff2 → 93f479601ee12b01-s.p.woff2} +0 -0
  513. /package/.next/static/media/{4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 → 9610d9e46709d722-s.woff2} +0 -0
  514. /package/.next/static/media/{7178b3e590c64307-s.11.cyxs5p-0z~.woff2 → ba015fad6dcf6784-s.woff2} +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[51033,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app__global-error_page_actions_0k77kol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[57665,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app__not-found_page_actions_0eq97pa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[2654,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_connect_page_actions_0vb8s6u.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[34681,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_new_page_actions_08q6mx5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[76924,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_onboarding_page_actions_0qdby58.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[49901,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_page_actions_09-gtaw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[52503,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_personas_page_actions_08fq21v.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[50399,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_runs_%5BrunId%5D_page_actions_0z6r2tz.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[55500,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_runs_page_actions_04_e1xr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[76120,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_settings_page_actions_0mr68ai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[91360,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_settings_permissions_page_actions_0cr.qtc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- module.exports=[3029,(a,b,c)=>{}];
2
-
3
- //# sourceMappingURL=_next-internal_server_app_templates_page_actions_0n8gow3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- module.exports=[63652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},25980,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"handleISRError",{enumerable:!0,get:function(){return e}});let d=a.r(56704).workAsyncStorage;function e({error:a}){if(d){let b=d.getStore();if(b?.isStaticGeneration)throw a&&console.error(a),a}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},42402,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(63652);let f=a.r(81673);a.r(76015);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
2
- :root {
3
- --next-error-bg: #fff;
4
- --next-error-text: #171717;
5
- --next-error-title: #171717;
6
- --next-error-message: #171717;
7
- --next-error-digest: #666666;
8
- --next-error-btn-text: #fff;
9
- --next-error-btn-bg: #171717;
10
- --next-error-btn-border: none;
11
- --next-error-btn-secondary-text: #171717;
12
- --next-error-btn-secondary-bg: transparent;
13
- --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);
14
- }
15
- @media (prefers-color-scheme: dark) {
16
- :root {
17
- --next-error-bg: #0a0a0a;
18
- --next-error-text: #ededed;
19
- --next-error-title: #ededed;
20
- --next-error-message: #ededed;
21
- --next-error-digest: #a0a0a0;
22
- --next-error-btn-text: #0a0a0a;
23
- --next-error-btn-bg: #ededed;
24
- --next-error-btn-border: none;
25
- --next-error-btn-secondary-text: #ededed;
26
- --next-error-btn-secondary-bg: transparent;
27
- --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);
28
- }
29
- }
30
- body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
- `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1264,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}}),a.r(63652);let d=a.r(81673);a.r(76015);let e=a.r(25980),f=a.r(42402),g=function({error:a}){let b=a?.digest,c=!!b;return(0,e.handleISRError)({error:a}),(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{children:(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:f.errorThemeCss}})}),(0,d.jsxs)("body",{children:[(0,d.jsx)("div",{style:f.errorStyles.container,children:(0,d.jsxs)("div",{style:f.errorStyles.card,children:[(0,d.jsx)(f.WarningIcon,{}),(0,d.jsx)("h1",{style:f.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:f.errorStyles.message,children:c?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,d.jsxs)("div",{style:f.errorStyles.buttonGroup,children:[(0,d.jsx)("form",{style:f.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:f.errorStyles.button,children:"Reload"})}),!c&&(0,d.jsx)("button",{type:"button",style:f.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),b&&(0,d.jsxs)("p",{style:f.errorStyles.digestFooter,children:["ERROR ",b]})]})]})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
32
-
33
- //# sourceMappingURL=node_modules__pnpm_0~j0k.e._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.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/handle-isr-error.tsx","../../../../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/error-styles.tsx","../../../../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":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","const workAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n ).workAsyncStorage\n : undefined\n\n// if we are revalidating we want to re-throw the error so the\n// function crashes so we can maintain our previous cache\n// instead of caching the error page\nexport function handleISRError({ error }: { error: any }) {\n if (workAsyncStorage) {\n const store = workAsyncStorage.getStore()\n if (store?.isStaticGeneration) {\n if (error) {\n console.error(error)\n }\n throw error\n }\n }\n}\n","import React from 'react'\n\nexport const errorStyles = {\n container: {\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n card: {\n marginTop: '-32px',\n maxWidth: '325px',\n padding: '32px 28px',\n textAlign: 'left' as const,\n },\n icon: {\n marginBottom: '24px',\n },\n title: {\n fontSize: '24px',\n fontWeight: 500,\n letterSpacing: '-0.02em',\n lineHeight: '32px',\n margin: '0 0 12px 0',\n color: 'var(--next-error-title)',\n },\n message: {\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '21px',\n margin: '0 0 20px 0',\n color: 'var(--next-error-message)',\n },\n form: {\n margin: 0,\n },\n buttonGroup: {\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n },\n button: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '32px',\n padding: '0 12px',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n borderRadius: '6px',\n cursor: 'pointer',\n color: 'var(--next-error-btn-text)',\n background: 'var(--next-error-btn-bg)',\n border: 'var(--next-error-btn-border)',\n },\n buttonSecondary: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '32px',\n padding: '0 12px',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n borderRadius: '6px',\n cursor: 'pointer',\n color: 'var(--next-error-btn-secondary-text)',\n background: 'var(--next-error-btn-secondary-bg)',\n border: 'var(--next-error-btn-secondary-border)',\n },\n digestFooter: {\n position: 'fixed' as const,\n bottom: '32px',\n left: '0',\n right: '0',\n textAlign: 'center' as const,\n fontFamily:\n 'ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace',\n fontSize: '12px',\n lineHeight: '18px',\n fontWeight: 400,\n margin: '0',\n color: 'var(--next-error-digest)',\n },\n} as const\n\nexport const errorThemeCss = `\n:root {\n --next-error-bg: #fff;\n --next-error-text: #171717;\n --next-error-title: #171717;\n --next-error-message: #171717;\n --next-error-digest: #666666;\n --next-error-btn-text: #fff;\n --next-error-btn-bg: #171717;\n --next-error-btn-border: none;\n --next-error-btn-secondary-text: #171717;\n --next-error-btn-secondary-bg: transparent;\n --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);\n}\n@media (prefers-color-scheme: dark) {\n :root {\n --next-error-bg: #0a0a0a;\n --next-error-text: #ededed;\n --next-error-title: #ededed;\n --next-error-message: #ededed;\n --next-error-digest: #a0a0a0;\n --next-error-btn-text: #0a0a0a;\n --next-error-btn-bg: #ededed;\n --next-error-btn-border: none;\n --next-error-btn-secondary-text: #ededed;\n --next-error-btn-secondary-bg: transparent;\n --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);\n }\n}\nbody { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\n`.replace(/\\n\\s*/g, '')\n\nexport function WarningIcon() {\n return (\n <svg\n width=\"32\"\n height=\"32\"\n viewBox=\"-0.2 -1.5 32 32\"\n fill=\"none\"\n style={errorStyles.icon}\n >\n <path\n d=\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\"\n fill=\"var(--next-error-title)\"\n />\n </svg>\n )\n}\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&#x2019;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":["_interop_require_default","obj","__esModule","default","exports","_","handleISRError","workAsyncStorage","window","require","undefined","error","store","getStore","isStaticGeneration","console","WarningIcon","errorStyles","errorThemeCss","container","fontFamily","height","display","alignItems","justifyContent","card","marginTop","maxWidth","padding","textAlign","icon","marginBottom","title","fontSize","fontWeight","letterSpacing","lineHeight","margin","color","message","form","buttonGroup","gap","button","borderRadius","cursor","background","border","buttonSecondary","digestFooter","position","bottom","left","right","replace","svg","width","viewBox","fill","style","path","d","DefaultGlobalError","digest","isServerError","html","id","head","dangerouslySetInnerHTML","__html","body","div","h1","p","type","onClick","history","length","back","location","href"],"mappings":"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","ignoreList":[0,1,2,3]}
@@ -1,3 +0,0 @@
1
- module.exports=[82791,a=>{"use strict";var b=a.i(81673),c=a.i(34823),d=a.i(62786),e=a.i(8251),f=a.i(76015),g=a.i(83862),h=a.i(34829),i=a.i(86304);a.i(30005);var j=a.i(13213),k=a.i(92415),l=a.i(44413),m=a.i(26442),n=a.i(39726);function o({icon:a,label:c,value:d,wide:e,children:g}){let[h,i]=(0,f.useState)(!1);return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>i(a=>!a),className:"flex items-center gap-2 rounded-md border border-border bg-card px-3 py-1.5 text-sm transition hover:border-muted-foreground/40",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:c}),(0,b.jsx)("span",{className:"font-medium",children:d})]}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-10",onClick:()=>i(!1)}),(0,b.jsx)("div",{className:`absolute left-0 top-full z-20 mt-1 rounded-md border border-border bg-popover p-1.5 shadow-xl ${e?"w-80":"w-56"}`,onClick:()=>i(!1),children:g})]})]})}var p=a.i(7090);let q=(0,a.i(91870).default)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);var r=a.i(91119),s=a.i(88923);function t({template:a,prompt:c,setPrompt:d,reviewOnly:e,artifactSpec:f,billingMode:g,costEstimate:h,overCap:i,isPending:j,onStart:k}){return(0,b.jsxs)(b.Fragment,{children:[e&&f&&(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:f.label}),(0,b.jsx)("span",{className:"text-muted-foreground/60",children:"·"}),(0,b.jsxs)("span",{children:["cap ",(f.maxBytes/1024).toLocaleString()," KB"]})]}),(0,b.jsxs)(r.Card,{className:"overflow-hidden p-0 mb-4",children:[(0,b.jsx)("textarea",{value:c,onChange:a=>d(a.target.value),placeholder:e&&f?f.hint:"Describe what you want chorus to weigh in on. Paste code, errors, design docs — anything the reviewers should see.",className:`block w-full resize-none border-0 bg-transparent px-5 py-4 text-sm text-foreground placeholder:text-muted-foreground/70 focus:outline-none ${e?"font-mono text-[12px] leading-relaxed":""}`,rows:e?16:10,spellCheck:!e}),(0,b.jsxs)("div",{className:"flex flex-col gap-3 border-t border-border bg-card/40 px-5 py-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsx)(u,{template:a,reviewOnly:e}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 sm:justify-end",children:[(0,b.jsx)(w,{billingMode:g,costEstimate:h,overCap:i,template:a}),(0,b.jsxs)("button",{type:"button",onClick:k,disabled:!c||i||j,className:`inline-flex shrink-0 items-center gap-2 whitespace-nowrap rounded-md px-4 py-2 text-sm font-medium transition ${!c||i||j?"cursor-not-allowed bg-muted text-muted-foreground":"bg-primary text-primary-foreground hover:bg-primary/90"}`,children:[j?"Starting...":e?"Send for review":"Start the run",(0,b.jsx)(p.ArrowRight,{className:"h-4 w-4"})]})]})]})]})]})}function u({template:a,reviewOnly:c}){return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[!c&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${(0,s.uiLineageDot)(a.phases[0]?.doer.lineage)}`}),"Doer: ",a.phases[0]?.doer.lineage]}),(0,b.jsx)("span",{className:"text-muted-foreground/50",children:"·"})]}),(0,b.jsx)(v,{template:a}),a.phases.length>1&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50",children:"·"}),(0,b.jsxs)("span",{className:"font-mono text-[10px]",children:[a.phases.length," phases"]})]})]})}function v({template:a}){let c=a.phases[0]?.reviewer.candidatesWithModels??[],d=new Map;for(let a of c)d.set(a.lineage,(d.get(a.lineage)??0)+1);return(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground/80",children:"Reviewers:"}),c.map((a,c)=>{let e=(d.get(a.lineage)??0)>1,f=a.models?.[0]?.split("/").pop()??a.models?.[0],g=e&&f?`${a.lineage} \xb7 ${f}`:a.lineage;return(0,b.jsxs)("span",{className:"flex items-center gap-1",title:a.models?.[0]?`${a.lineage} \xb7 ${a.models[0]}`:a.lineage,children:[(0,b.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${(0,s.uiLineageDot)(a.lineage)}`}),g]},`${a.lineage}-${a.models?.[0]??"default"}-${c}`)}),a.phases[0]?.reviewer.crossLineage&&(0,b.jsx)(i.Badge,{variant:"outline",className:"ml-1 border-border font-mono text-[9px] uppercase",title:"Reviewer must be a different lineage than the doer",children:"cross-lineage"})]})}function w({billingMode:a,costEstimate:c,overCap:d,template:e}){return"subscription"===a?(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground",title:`~${c.inputTokens.toLocaleString()} input tokens \xd7 ${c.reviewerCount} reviewers — counts against your CLI subscription quota, not billed per call`,children:["Subscription quota · ~",c.inputTokens.toLocaleString()," tok"]}):(0,b.jsxs)("div",{className:`flex items-center gap-1.5 font-mono text-[10px] ${d?"text-rose-300":"text-muted-foreground"}`,title:`~${c.inputTokens.toLocaleString()} input tokens \xd7 ${c.reviewerCount} reviewers; up to ${c.maxRounds} round${c.maxRounds>1?"s":""} on disagreement`,children:[(0,b.jsx)(q,{className:"h-3 w-3"}),c.maxRounds>1?`~$${c.usd.toFixed(3)} – $${c.usdRangeMax.toFixed(3)} est`:`~$${c.usd.toFixed(3)} est`,e.costCapUsd>0&&(0,b.jsxs)("span",{className:"text-muted-foreground/60",children:["/ cap $",e.costCapUsd.toFixed(2)]})]})}function x(){let a=(0,e.useSearchParams)(),p=(0,e.useRouter)(),[q,r]=(0,f.useTransition)(),[s,u]=(0,f.useState)([]),[v,w]=(0,f.useState)(null),[x,y]=(0,f.useState)(null);(0,f.useEffect)(()=>{(0,l.listTemplates)().then(u).catch(a=>w(a instanceof k.DaemonError?a.message:"Failed to load templates"))},[]);let[z,A]=(0,f.useState)("api");(0,f.useEffect)(()=>{(0,m.getBillingMode)().then(a=>A(a.mode)).catch(()=>{})},[]);let B=a.get("template")??s[0]?.id??"",[C,D]=(0,f.useState)(""),E=[],F=s.find(a=>a.id===B)??s[0],G=(0,f.useMemo)(()=>(function(a){let{template:b,prompt:c,attachments:d}=a,e=b?.phases?.[0]?.reviewer?.candidates?.length??3,f=Math.max(1,b?.maxRounds??1),g=Math.ceil(c.length/4)+1500*d.length+(b?.estimatedBaselineTokens??800),h=(3e-6*g+.018000000000000002)*e;return{usd:h,usdRangeMax:h*f,inputTokens:g,reviewerCount:e,maxRounds:f}})({template:F,prompt:C,attachments:E}),[C,E,F]),H=!!("subscription"!==z&&F?.costCapUsd&&F.costCapUsd>0&&G.usdRangeMax>F.costCapUsd),[I,J]=(0,f.useState)(!1),[K,L]=(0,f.useState)(""),M=(0,n.isReviewOnlyTemplate)(F),N=M?F?.phases?.[0]?.artifact:void 0;async function O(){if(F&&C){if(M&&N){let a=new TextEncoder().encode(C).length;if(a>N.maxBytes)return void y(`Artifact is ${a.toLocaleString()} bytes; this template caps at ${N.maxBytes.toLocaleString()}. Trim it down.`)}y(null),r(async()=>{try{let a=K.trim(),b=await (0,j.createChat)({work:M?function(a){let b="Review the supplied artifact independently.";if(!a)return b;for(let b of a.split("\n")){let a=b.trim();if(0===a.length||a.startsWith("```")||a.startsWith("~~~"))continue;if(a.length<=80)return a;let c=a.slice(0,80),d=c.lastIndexOf(" ");return(d>40?c.slice(0,d):c)+"…"}return b}(C):C,templateId:F.id,files:E.length>0?E.map(a=>a.name):void 0,...M?{artifact:C}:{},...!M&&a.length>0?{repoPath:a}:{},yolo:I});p.push(`/runs/${b.slug||b.id}`)}catch(a){y(a instanceof k.DaemonError?a.message:"Failed to create chat")}})}}return v?(0,b.jsx)(g.AppShell,{children:(0,b.jsx)("div",{className:"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10",children:(0,b.jsxs)("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-4",children:[(0,b.jsx)("p",{className:"text-sm text-destructive",children:"Error loading templates"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:v})]})})}):F?(0,b.jsx)(g.AppShell,{children:(0,b.jsxs)("div",{className:"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10",children:[(0,b.jsx)(h.PageHeader,{eyebrow:"New chat",title:M?"Paste an artifact. Get reviews.":"Paste a task. Pick a template.",subtitle:M?"Chorus skips the doer and runs your text past three reviewers. Single pass — revise yourself and resubmit for another round.":"Chorus runs it past your reviewers and reports consensus."}),x&&(0,b.jsx)("div",{className:"mb-4 rounded-lg border border-destructive/50 bg-destructive/10 p-4",children:(0,b.jsx)("p",{className:"text-sm text-destructive",children:x})}),(0,b.jsx)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:(0,b.jsx)(o,{icon:(0,b.jsx)(d.Layers,{className:"h-3.5 w-3.5"}),label:"Template",value:F?.name||"Select a template",wide:!0,children:(0,b.jsx)("ul",{className:"space-y-1",children:s.map(c=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>{let b=new URLSearchParams(a);b.set("template",c.id),p.push(`/new?${b.toString()}`)},className:`block w-full rounded-md p-2 text-left transition ${c.id===B?"bg-accent":"hover:bg-accent/50"}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:c.name}),(0,n.isReviewOnlyTemplate)(c)&&(0,b.jsx)(i.Badge,{variant:"outline",className:"border-blue-500/30 bg-blue-500/10 font-mono text-[9px] uppercase text-blue-300",children:"review only"})]}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground line-clamp-1",children:c.description})]})},c.id))})})}),(0,b.jsx)(t,{template:F,prompt:C,setPrompt:D,reviewOnly:M,artifactSpec:N,billingMode:z,costEstimate:G,overCap:H,isPending:q,onStart:O}),H&&(0,b.jsxs)("div",{className:"mb-4 flex items-start gap-2 rounded-md border border-rose-500/30 bg-rose-500/5 px-3 py-2 text-[11px] text-rose-200",children:[(0,b.jsx)(c.Info,{className:"mt-0.5 h-3 w-3 shrink-0 text-rose-400"}),(0,b.jsxs)("span",{children:["Estimated cost"," ",(0,b.jsxs)("span",{className:"font-mono",children:["$",G.usd.toFixed(3)]})," ","exceeds template cap"," ",(0,b.jsxs)("span",{className:"font-mono",children:["$",F.costCapUsd.toFixed(2)]}),". Trim attachments, shorten the prompt, or raise the cap in template settings."]})]}),(0,b.jsxs)("div",{className:`mb-4 rounded-lg border border-dashed border-border bg-card/30 p-4 ${M?"opacity-50":""}`,children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-sm font-medium text-foreground",children:["Target repo"," ",(0,b.jsx)("span",{className:"text-muted-foreground",children:"(optional)"})]}),(0,b.jsx)(i.Badge,{variant:"outline",className:"border-emerald-500/30 bg-emerald-500/10 font-mono text-[10px] uppercase text-emerald-300",children:"opens PR"})]}),(0,b.jsx)("input",{type:"text",value:M?"":K,onChange:a=>L(a.target.value),disabled:M,placeholder:"/absolute/path/to/repo",className:"w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-1 focus:ring-primary disabled:cursor-not-allowed disabled:opacity-60",spellCheck:!1}),(0,b.jsx)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:M?"Review-only templates have no doer and no Ship phase, so there's nothing to commit. Pick a template with a doer (e.g. Tri-Review) to open a PR.":(0,b.jsxs)(b.Fragment,{children:["When set: doer makes real edits in this repo. After reviewers agree, chorus opens a PR via"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"gh pr create"})," (no auto-merge — you review + click Merge in GitHub). Leave blank to skip the Ship phase."]})})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>J(a=>!a),className:`mb-4 flex w-full items-start justify-between gap-3 rounded-lg border px-4 py-3 text-left transition ${I?"border-rose-500/40 bg-rose-500/5":"border-dashed border-border bg-card/30 hover:border-foreground/30"}`,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("span",{className:`mt-0.5 grid h-7 w-7 place-items-center rounded-md text-sm ${I?"bg-rose-500/20 text-rose-300":"bg-card text-muted-foreground"}`,children:"🚀"}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Yolo mode"}),(0,b.jsx)(i.Badge,{variant:"outline",className:"border-rose-500/30 bg-rose-500/10 font-mono text-[10px] uppercase text-rose-300",children:"unsafe"})]}),(0,b.jsx)("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:I?"Reviewer gates auto-approve. Permission prompts auto-allow. The driver merges without asking. Cost cap still enforced.":"Skip every ask-user gate for this single run. Useful for trusted templates or trivial fixes."})]})]}),(0,b.jsx)("span",{className:`flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition ${I?"border-rose-500/40 bg-rose-500/20":"border-border bg-card"}`,children:(0,b.jsx)("span",{className:`h-3.5 w-3.5 rounded-full transition-transform ${I?"translate-x-4 bg-rose-400":"bg-muted-foreground/50"}`})})]})]})}):(0,b.jsx)(g.AppShell,{children:(0,b.jsx)("div",{className:"mx-auto w-full max-w-6xl px-4 py-12 text-sm text-muted-foreground sm:px-6 md:px-8",children:"Loading templates…"})})}a.s(["default",0,function(){return(0,b.jsx)(f.Suspense,{fallback:(0,b.jsx)(g.AppShell,{children:(0,b.jsx)("div",{className:"p-8 text-sm text-muted-foreground",children:"Loading…"})}),children:(0,b.jsx)(x,{})})}],82791)}];
2
-
3
- //# sourceMappingURL=src_app_new_page_tsx_0av4n2k._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/app/new/picker.tsx","../../../../src/app/new/prompt-card.tsx","../../../../src/app/new/page.tsx","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/dollar-sign.ts","../../../../src/app/new/helpers.ts"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\n\ninterface PickerProps {\n icon: React.ReactNode;\n label: string;\n value: string;\n wide?: boolean;\n children: React.ReactNode;\n}\n\nexport function Picker({ icon, label, value, wide, children }: PickerProps) {\n const [open, setOpen] = useState(false);\n return (\n <div className=\"relative\">\n <button\n type=\"button\"\n onClick={() => setOpen((v) => !v)}\n className=\"flex items-center gap-2 rounded-md border border-border bg-card px-3 py-1.5 text-sm transition hover:border-muted-foreground/40\"\n >\n <span className=\"text-muted-foreground\">{icon}</span>\n <span className=\"text-[10px] uppercase tracking-wider text-muted-foreground\">\n {label}\n </span>\n <span className=\"font-medium\">{value}</span>\n </button>\n {open && (\n <>\n <div\n className=\"fixed inset-0 z-10\"\n onClick={() => setOpen(false)}\n />\n <div\n className={`absolute left-0 top-full z-20 mt-1 rounded-md border border-border bg-popover p-1.5 shadow-xl ${wide ? \"w-80\" : \"w-56\"}`}\n onClick={() => setOpen(false)}\n >\n {children}\n </div>\n </>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { ArrowRight, DollarSign } from \"lucide-react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Card } from \"@/components/ui/card\";\nimport type { BillingMode } from \"@/lib/api/settings\";\nimport { uiLineageDot } from \"@/lib/lineage-maps\";\nimport type { Template } from \"@/lib/types\";\nimport type { CostEstimate } from \"./helpers\";\n\ninterface PromptCardProps {\n template: Template;\n prompt: string;\n setPrompt: (v: string) => void;\n reviewOnly: boolean;\n artifactSpec: { label: string; hint: string; maxBytes: number } | undefined;\n billingMode: BillingMode;\n costEstimate: CostEstimate;\n overCap: boolean;\n isPending: boolean;\n onStart: () => void;\n}\n\nexport function PromptCard({\n template,\n prompt,\n setPrompt,\n reviewOnly,\n artifactSpec,\n billingMode,\n costEstimate,\n overCap,\n isPending,\n onStart,\n}: PromptCardProps) {\n return (\n <>\n {reviewOnly && artifactSpec && (\n <div className=\"mb-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground\">\n <span className=\"font-medium text-foreground\">{artifactSpec.label}</span>\n <span className=\"text-muted-foreground/60\">·</span>\n <span>cap {(artifactSpec.maxBytes / 1024).toLocaleString()} KB</span>\n </div>\n )}\n <Card className=\"overflow-hidden p-0 mb-4\">\n <textarea\n value={prompt}\n onChange={(e) => setPrompt(e.target.value)}\n placeholder={\n reviewOnly && artifactSpec\n ? artifactSpec.hint\n : \"Describe what you want chorus to weigh in on. Paste code, errors, design docs — anything the reviewers should see.\"\n }\n className={`block w-full resize-none border-0 bg-transparent px-5 py-4 text-sm text-foreground placeholder:text-muted-foreground/70 focus:outline-none ${\n reviewOnly ? \"font-mono text-[12px] leading-relaxed\" : \"\"\n }`}\n rows={reviewOnly ? 16 : 10}\n spellCheck={!reviewOnly}\n />\n\n <div className=\"flex flex-col gap-3 border-t border-border bg-card/40 px-5 py-3 sm:flex-row sm:items-center sm:justify-between\">\n <RoleSummary template={template} reviewOnly={reviewOnly} />\n <div className=\"flex items-center justify-between gap-3 sm:justify-end\">\n <CostPreview\n billingMode={billingMode}\n costEstimate={costEstimate}\n overCap={overCap}\n template={template}\n />\n <button\n type=\"button\"\n onClick={onStart}\n disabled={!prompt || overCap || isPending}\n className={`inline-flex shrink-0 items-center gap-2 whitespace-nowrap rounded-md px-4 py-2 text-sm font-medium transition ${\n !prompt || overCap || isPending\n ? \"cursor-not-allowed bg-muted text-muted-foreground\"\n : \"bg-primary text-primary-foreground hover:bg-primary/90\"\n }`}\n >\n {isPending ? \"Starting...\" : reviewOnly ? \"Send for review\" : \"Start the run\"}\n <ArrowRight className=\"h-4 w-4\" />\n </button>\n </div>\n </div>\n </Card>\n </>\n );\n}\n\nfunction RoleSummary({\n template,\n reviewOnly,\n}: {\n template: Template;\n reviewOnly: boolean;\n}) {\n return (\n <div className=\"flex flex-wrap items-center gap-3 text-xs text-muted-foreground\">\n {/* No doer card for review-only — there's no spawned doer; the\n artifact IS the input. The reviewers row carries all the\n information the user needs about who'll critique it. */}\n {!reviewOnly && (\n <>\n <span className=\"flex items-center gap-1.5\">\n <span\n className={`h-1.5 w-1.5 rounded-full ${uiLineageDot(template.phases[0]?.doer.lineage)}`}\n />\n Doer: {template.phases[0]?.doer.lineage}\n </span>\n <span className=\"text-muted-foreground/50\">·</span>\n </>\n )}\n <ReviewerChips template={template} />\n {template.phases.length > 1 && (\n <>\n <span className=\"text-muted-foreground/50\">·</span>\n <span className=\"font-mono text-[10px]\">\n {template.phases.length} phases\n </span>\n </>\n )}\n </div>\n );\n}\n\nfunction ReviewerChips({ template }: { template: Template }) {\n // Two reviewer rows on the same lineage are indistinguishable at\n // \"codex · gemini · opencode · opencode\" — caught in the 2026-05-03\n // UX walk. When ≥2 candidates share a lineage, append the model so\n // the user can tell e.g. opencode-go/kimi from opencode-go/deepseek\n // before submitting.\n const slots = template.phases[0]?.reviewer.candidatesWithModels ?? [];\n const lineageCounts = new Map<string, number>();\n for (const slot of slots) {\n lineageCounts.set(slot.lineage, (lineageCounts.get(slot.lineage) ?? 0) + 1);\n }\n return (\n <span className=\"flex items-center gap-1.5\">\n <span className=\"text-muted-foreground/80\">Reviewers:</span>\n {slots.map((slot, i) => {\n const dup = (lineageCounts.get(slot.lineage) ?? 0) > 1;\n const modelLabel = slot.models?.[0]?.split(\"/\").pop() ?? slot.models?.[0];\n const label = dup && modelLabel ? `${slot.lineage} · ${modelLabel}` : slot.lineage;\n return (\n <span\n key={`${slot.lineage}-${slot.models?.[0] ?? \"default\"}-${i}`}\n className=\"flex items-center gap-1\"\n title={slot.models?.[0] ? `${slot.lineage} · ${slot.models[0]}` : slot.lineage}\n >\n <span\n className={`h-1.5 w-1.5 rounded-full ${uiLineageDot(slot.lineage)}`}\n />\n {label}\n </span>\n );\n })}\n {template.phases[0]?.reviewer.crossLineage && (\n <Badge\n variant=\"outline\"\n className=\"ml-1 border-border font-mono text-[9px] uppercase\"\n title=\"Reviewer must be a different lineage than the doer\"\n >\n cross-lineage\n </Badge>\n )}\n </span>\n );\n}\n\nfunction CostPreview({\n billingMode,\n costEstimate,\n overCap,\n template,\n}: {\n billingMode: BillingMode;\n costEstimate: CostEstimate;\n overCap: boolean;\n template: Template;\n}) {\n // Subscription users see \"Subscription quota\" with token count; API\n // users see a low–high range that reflects the maxRounds retry\n // multiplier.\n if (billingMode === \"subscription\") {\n return (\n <div\n className=\"flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground\"\n title={`~${costEstimate.inputTokens.toLocaleString()} input tokens × ${costEstimate.reviewerCount} reviewers — counts against your CLI subscription quota, not billed per call`}\n >\n Subscription quota · ~{costEstimate.inputTokens.toLocaleString()} tok\n </div>\n );\n }\n return (\n <div\n className={`flex items-center gap-1.5 font-mono text-[10px] ${\n overCap ? \"text-rose-300\" : \"text-muted-foreground\"\n }`}\n title={`~${costEstimate.inputTokens.toLocaleString()} input tokens × ${costEstimate.reviewerCount} reviewers; up to ${costEstimate.maxRounds} round${costEstimate.maxRounds > 1 ? \"s\" : \"\"} on disagreement`}\n >\n <DollarSign className=\"h-3 w-3\" />\n {costEstimate.maxRounds > 1\n ? `~$${costEstimate.usd.toFixed(3)} – $${costEstimate.usdRangeMax.toFixed(3)} est`\n : `~$${costEstimate.usd.toFixed(3)} est`}\n {template.costCapUsd > 0 && (\n <span className=\"text-muted-foreground/60\">\n / cap ${template.costCapUsd.toFixed(2)}\n </span>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { Info, Layers } from \"lucide-react\";\nimport { useRouter, useSearchParams } from \"next/navigation\";\nimport { Suspense, useEffect, useMemo, useState, useTransition } from \"react\";\nimport { AppShell } from \"@/components/app-shell\";\nimport { PageHeader } from \"@/components/page-header\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { createChat, DaemonError, listTemplates } from \"@/lib/api\";\nimport { getBillingMode, type BillingMode } from \"@/lib/api/settings\";\nimport { isReviewOnlyTemplate, type Template } from \"@/lib/types\";\nimport {\n deriveReviewOnlyTitle,\n estimateCost,\n type Attachment,\n} from \"./helpers\";\nimport { Picker } from \"./picker\";\nimport { PromptCard } from \"./prompt-card\";\n\nexport default function NewChatPage() {\n return (\n <Suspense\n fallback={\n <AppShell>\n <div className=\"p-8 text-sm text-muted-foreground\">Loading…</div>\n </AppShell>\n }\n >\n <NewChatPageInner />\n </Suspense>\n );\n}\n\nfunction NewChatPageInner() {\n const params = useSearchParams();\n const router = useRouter();\n const [isPending, startTransition] = useTransition();\n\n const [templates, setTemplates] = useState<Template[]>([]);\n const [loadError, setLoadError] = useState<string | null>(null);\n const [createError, setCreateError] = useState<string | null>(null);\n\n useEffect(() => {\n listTemplates()\n .then(setTemplates)\n .catch((err) =>\n setLoadError(\n err instanceof DaemonError ? err.message : \"Failed to load templates\",\n ),\n );\n }, []);\n\n // Defaults to 'api' until the daemon answers, so users on subscriptions\n // see the conservative dollar estimate briefly on first paint, then\n // the truthful \"subscription quota\" badge once the request resolves.\n const [billingMode, setBillingMode] = useState<BillingMode>(\"api\");\n useEffect(() => {\n getBillingMode()\n .then((b) => setBillingMode(b.mode))\n .catch(() => {\n /* leave default 'api' */\n });\n }, []);\n\n const templateId = params.get(\"template\") ?? templates[0]?.id ?? \"\";\n const [prompt, setPrompt] = useState(\"\");\n // Attachments are deferred to v0.8. Empty array kept so cost-estimate\n // math doesn't have to branch and the daemon-call shape stays the same.\n const attachments: Attachment[] = [];\n\n const template = templates.find((t) => t.id === templateId) ?? templates[0];\n\n const costEstimate = useMemo(\n () => estimateCost({ template, prompt, attachments }),\n \n [prompt, attachments, template],\n );\n\n // Cost-cap gate uses the worst-case (with retries) projection so a chat\n // doesn't sneak under the cap on the headline number then exceed it on\n // the first round of disagreement. Skipped entirely in subscription\n // mode where the user isn't paying per call.\n const overCap = Boolean(\n billingMode !== \"subscription\" &&\n template?.costCapUsd &&\n template.costCapUsd > 0 &&\n costEstimate.usdRangeMax > template.costCapUsd,\n );\n\n const [yoloMode, setYoloMode] = useState(false);\n const [repoPath, setRepoPath] = useState(\"\");\n\n const reviewOnly = isReviewOnlyTemplate(template);\n const artifactSpec = reviewOnly ? template?.phases?.[0]?.artifact : undefined;\n\n async function handleStartRun() {\n if (!template || !prompt) return;\n\n // Pre-flight artifact size check so users hit a clear error before\n // the network round-trip. The daemon enforces this too — this is\n // just a nicer error path. Falls back to the schema default (1 MiB)\n // when the template doesn't declare its own cap.\n if (reviewOnly && artifactSpec) {\n const byteLen = new TextEncoder().encode(prompt).length;\n if (byteLen > artifactSpec.maxBytes) {\n setCreateError(\n `Artifact is ${byteLen.toLocaleString()} bytes; this template caps at ${artifactSpec.maxBytes.toLocaleString()}. Trim it down.`,\n );\n return;\n }\n }\n\n setCreateError(null);\n startTransition(async () => {\n try {\n const trimmedRepo = repoPath.trim();\n const chat = await createChat({\n // For review-only templates, `prompt` IS the artifact. work is\n // a static framing brief — reviewers see it but it doesn't\n // drive their critique. We derive a recognisable title from\n // the first non-empty, non-fenced line of the artifact so the\n // sidebar and run header reflect what the user actually\n // pasted, not the template's framing prompt.\n work: reviewOnly ? deriveReviewOnlyTitle(prompt) : prompt,\n templateId: template.id,\n files:\n attachments.length > 0 ? attachments.map((a) => a.name) : undefined,\n ...(reviewOnly ? { artifact: prompt } : {}),\n // Ship phase is meaningless for review-only — runner enforces\n // this too, but skip wiring repoPath so the cockpit doesn't\n // pretend it'll open a PR.\n ...(!reviewOnly && trimmedRepo.length > 0\n ? { repoPath: trimmedRepo }\n : {}),\n // Yolo only matters for chats with a ship phase; the daemon\n // ignores it on review-only runs. Sending unconditionally\n // keeps the call signature simple.\n yolo: yoloMode,\n });\n router.push(`/runs/${chat.slug || chat.id}`);\n } catch (err) {\n setCreateError(\n err instanceof DaemonError ? err.message : \"Failed to create chat\",\n );\n }\n });\n }\n\n if (loadError) {\n return (\n <AppShell>\n <div className=\"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10\">\n <div className=\"rounded-lg border border-destructive/50 bg-destructive/10 p-4\">\n <p className=\"text-sm text-destructive\">Error loading templates</p>\n <p className=\"mt-1 text-xs text-muted-foreground\">{loadError}</p>\n </div>\n </div>\n </AppShell>\n );\n }\n\n if (!template) {\n return (\n <AppShell>\n <div className=\"mx-auto w-full max-w-6xl px-4 py-12 text-sm text-muted-foreground sm:px-6 md:px-8\">\n Loading templates…\n </div>\n </AppShell>\n );\n }\n\n return (\n <AppShell>\n <div className=\"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10\">\n <PageHeader\n eyebrow=\"New chat\"\n title={\n reviewOnly\n ? \"Paste an artifact. Get reviews.\"\n : \"Paste a task. Pick a template.\"\n }\n subtitle={\n reviewOnly\n ? \"Chorus skips the doer and runs your text past three reviewers. Single pass — revise yourself and resubmit for another round.\"\n : \"Chorus runs it past your reviewers and reports consensus.\"\n }\n />\n\n {createError && (\n <div className=\"mb-4 rounded-lg border border-destructive/50 bg-destructive/10 p-4\">\n <p className=\"text-sm text-destructive\">{createError}</p>\n </div>\n )}\n\n <div className=\"mb-4 flex flex-wrap items-center gap-2\">\n <Picker\n icon={<Layers className=\"h-3.5 w-3.5\" />}\n label=\"Template\"\n value={template?.name || \"Select a template\"}\n wide\n >\n <ul className=\"space-y-1\">\n {templates.map((t) => (\n <li key={t.id}>\n <button\n type=\"button\"\n onClick={() => {\n const newParams = new URLSearchParams(params);\n newParams.set(\"template\", t.id);\n router.push(`/new?${newParams.toString()}`);\n }}\n className={`block w-full rounded-md p-2 text-left transition ${\n t.id === templateId ? \"bg-accent\" : \"hover:bg-accent/50\"\n }`}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">{t.name}</span>\n {isReviewOnlyTemplate(t) && (\n <Badge\n variant=\"outline\"\n className=\"border-blue-500/30 bg-blue-500/10 font-mono text-[9px] uppercase text-blue-300\"\n >\n review only\n </Badge>\n )}\n </div>\n <div className=\"text-xs text-muted-foreground line-clamp-1\">\n {t.description}\n </div>\n </button>\n </li>\n ))}\n </ul>\n </Picker>\n </div>\n\n <PromptCard\n template={template}\n prompt={prompt}\n setPrompt={setPrompt}\n reviewOnly={reviewOnly}\n artifactSpec={artifactSpec}\n billingMode={billingMode}\n costEstimate={costEstimate}\n overCap={overCap}\n isPending={isPending}\n onStart={handleStartRun}\n />\n\n {overCap && (\n <div className=\"mb-4 flex items-start gap-2 rounded-md border border-rose-500/30 bg-rose-500/5 px-3 py-2 text-[11px] text-rose-200\">\n <Info className=\"mt-0.5 h-3 w-3 shrink-0 text-rose-400\" />\n <span>\n Estimated cost{\" \"}\n <span className=\"font-mono\">${costEstimate.usd.toFixed(3)}</span>{\" \"}\n exceeds template cap{\" \"}\n <span className=\"font-mono\">\n ${template.costCapUsd.toFixed(2)}\n </span>\n . Trim attachments, shorten the prompt, or raise the cap in\n template settings.\n </span>\n </div>\n )}\n\n {/* Always render so the row's vertical position is stable across\n templates. Disabled on review-only since there's no doer to make\n edits and no Ship phase to open a PR — but keeping it visible\n tells the user what they'd unlock by switching templates. */}\n <div\n className={`mb-4 rounded-lg border border-dashed border-border bg-card/30 p-4 ${reviewOnly ? \"opacity-50\" : \"\"}`}\n >\n <div className=\"mb-2 flex items-center gap-2\">\n <span className=\"text-sm font-medium text-foreground\">\n Target repo{\" \"}\n <span className=\"text-muted-foreground\">(optional)</span>\n </span>\n <Badge\n variant=\"outline\"\n className=\"border-emerald-500/30 bg-emerald-500/10 font-mono text-[10px] uppercase text-emerald-300\"\n >\n opens PR\n </Badge>\n </div>\n <input\n type=\"text\"\n value={reviewOnly ? \"\" : repoPath}\n onChange={(e) => setRepoPath(e.target.value)}\n disabled={reviewOnly}\n placeholder=\"/absolute/path/to/repo\"\n className=\"w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-1 focus:ring-primary disabled:cursor-not-allowed disabled:opacity-60\"\n spellCheck={false}\n />\n <p className=\"mt-2 text-[11px] text-muted-foreground\">\n {reviewOnly\n ? \"Review-only templates have no doer and no Ship phase, so there's nothing to commit. Pick a template with a doer (e.g. Tri-Review) to open a PR.\"\n : (\n <>\n When set: doer makes real edits in this repo. After reviewers\n agree, chorus opens a PR via{\" \"}\n <code className=\"rounded bg-muted px-1\">gh pr create</code> (no\n auto-merge — you review + click Merge in GitHub). Leave blank\n to skip the Ship phase.\n </>\n )}\n </p>\n </div>\n\n <button\n type=\"button\"\n onClick={() => setYoloMode((v) => !v)}\n className={`mb-4 flex w-full items-start justify-between gap-3 rounded-lg border px-4 py-3 text-left transition ${\n yoloMode\n ? \"border-rose-500/40 bg-rose-500/5\"\n : \"border-dashed border-border bg-card/30 hover:border-foreground/30\"\n }`}\n >\n <div className=\"flex items-start gap-3\">\n <span\n className={`mt-0.5 grid h-7 w-7 place-items-center rounded-md text-sm ${\n yoloMode\n ? \"bg-rose-500/20 text-rose-300\"\n : \"bg-card text-muted-foreground\"\n }`}\n >\n 🚀\n </span>\n <div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium text-foreground\">\n Yolo mode\n </span>\n <Badge\n variant=\"outline\"\n className=\"border-rose-500/30 bg-rose-500/10 font-mono text-[10px] uppercase text-rose-300\"\n >\n unsafe\n </Badge>\n </div>\n <p className=\"mt-0.5 text-[11px] text-muted-foreground\">\n {yoloMode\n ? \"Reviewer gates auto-approve. Permission prompts auto-allow. The driver merges without asking. Cost cap still enforced.\"\n : \"Skip every ask-user gate for this single run. Useful for trusted templates or trivial fixes.\"}\n </p>\n </div>\n </div>\n <span\n className={`flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition ${\n yoloMode\n ? \"border-rose-500/40 bg-rose-500/20\"\n : \"border-border bg-card\"\n }`}\n >\n <span\n className={`h-3.5 w-3.5 rounded-full transition-transform ${\n yoloMode ? \"translate-x-4 bg-rose-400\" : \"bg-muted-foreground/50\"\n }`}\n />\n </span>\n </button>\n </div>\n </AppShell>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22', key: '7eqyqh' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6', key: '1b0p4s' }],\n];\n\n/**\n * @component @name DollarSign\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMiIgLz4KICA8cGF0aCBkPSJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dollar-sign\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 DollarSign = createLucideIcon('dollar-sign', __iconNode);\n\nexport default DollarSign;\n","import type { Template } from \"@/lib/types\";\n\nexport interface Attachment {\n id: string;\n name: string;\n kind: \"file\" | \"diff\" | \"url\";\n size?: string;\n}\n\n/**\n * Pick the first meaningful line from a review-only artifact so the chat\n * title reflects what the user pasted instead of a static framing prompt.\n * Skips fence markers (``` / ~~~) and pure-whitespace lines, then truncates\n * to ~80 chars on a word boundary so it slugs cleanly. Falls back to the\n * static brief when nothing usable is found.\n */\nexport function deriveReviewOnlyTitle(artifact: string): string {\n const fallback = \"Review the supplied artifact independently.\";\n if (!artifact) return fallback;\n const lines = artifact.split(\"\\n\");\n for (const raw of lines) {\n const line = raw.trim();\n if (line.length === 0) continue;\n if (line.startsWith(\"```\") || line.startsWith(\"~~~\")) continue;\n const max = 80;\n if (line.length <= max) return line;\n const cut = line.slice(0, max);\n const lastSpace = cut.lastIndexOf(\" \");\n return (lastSpace > 40 ? cut.slice(0, lastSpace) : cut) + \"…\";\n }\n return fallback;\n}\n\nexport interface CostEstimate {\n usd: number;\n usdRangeMax: number;\n inputTokens: number;\n reviewerCount: number;\n maxRounds: number;\n}\n\n/**\n * Fallback baseline when a template doesn't declare its own\n * `estimatedBaselineTokens`. Approximates the prompt scaffolding\n * (system prompt + persona block + ask framing) the daemon prepends\n * before the user's artifact/work — a per-template constant that lives\n * on the template now; this is the floor when it's missing.\n */\nexport const DEFAULT_BASELINE_TOKENS = 800;\n\n/**\n * Rough cost heuristic. Two refinements over the v0.6 version:\n * 1. Multiplies by template.maxRounds so users see the worst-case\n * cost when reviewers disagree and trigger retries.\n * 2. Returns `usdRangeMax` for the upper bound so the UI can render a\n * range like \"$0.30 – $0.90 (with retries)\" instead of a single\n * misleading number.\n *\n * Subscription mode is applied at render time, not here — keep the\n * dollar math pure so it stays correct for users on API mode.\n */\nexport function estimateCost(args: {\n template: Template | undefined;\n prompt: string;\n attachments: Attachment[];\n}): CostEstimate {\n const { template, prompt, attachments } = args;\n const reviewerCount =\n template?.phases?.[0]?.reviewer?.candidates?.length ?? 3;\n const maxRounds = Math.max(1, template?.maxRounds ?? 1);\n const promptTokens = Math.ceil(prompt.length / 4);\n const attachTokens = attachments.length * 1500;\n const baseTokens =\n template?.estimatedBaselineTokens ?? DEFAULT_BASELINE_TOKENS;\n const inputTokens = promptTokens + attachTokens + baseTokens;\n const outputTokens = 1200; // estimate per reviewer\n const perReviewerUsd = inputTokens * 0.000003 + outputTokens * 0.000015;\n const single = perReviewerUsd * reviewerCount;\n return {\n usd: single,\n usdRangeMax: single * maxRounds,\n inputTokens,\n reviewerCount,\n maxRounds,\n };\n}\n"],"names":["deriveReviewOnlyTitle","artifact","fallback","lines","split","raw","line","trim","length","startsWith","max","cut","slice","lastSpace","lastIndexOf","DEFAULT_BASELINE_TOKENS","estimateCost","args","template","prompt","attachments","reviewerCount","phases","reviewer","candidates","maxRounds","Math","promptTokens","ceil","attachTokens","baseTokens","estimatedBaselineTokens","inputTokens","outputTokens","perReviewerUsd","single","usd","usdRangeMax"],"mappings":"wDEEA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OFEO,SAAS,EAAO,MAAE,CAAI,OAAE,CAAK,OAAE,CAAK,MAAE,CAAI,UAAE,CAAQ,CAAe,EACxE,GAAM,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IACjC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,qBACb,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,EAAQ,AAAC,GAAM,CAAC,GAC/B,UAAU,4IAEV,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,iCAAyB,IACzC,CAAA,EAAA,EAAA,GAAA,EAACC,OAAAA,CAAK,UAAU,sEACb,IAEH,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,uBAAe,OAEhC,GACC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAU,qBACV,QAAS,IAAM,GAAQ,KAEzB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAW,CAAC,8FAA8F,EAAE,EAAO,OAAS,OAAA,CAAQ,CACpI,QAAS,IAAM,GAAQ,YAEtB,SAMb,CCzCA,IAAA,EAAA,EAAA,CAAA,CAAA,MEiBA,CAAA,GAAM,EAAa,CAAA,CAAA,CAAA,WAAA,OAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBA,CAClC,AAeiD,CAAA,AAfhD,CAegD,AAfhD,CAegD,AAfhD,CAegD,AAfhD,CAAA,AAegD,CAfhD,AAegD,CAAA,AAfhD,CAAA,AAAQ,AAewC,CAfxC,AAAE,AAesC,CAftC,AAegD,CAAA,AAfhD,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,EAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACjE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAqD,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACpF,EFFA,IAAA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OAiBO,SAAS,EAAW,CACzB,UAAQI,QACR,CAAM,WACN,CAAS,CACT,YAAUE,cACV,CAAYD,aACZ,CAAW,cACX,CAAY,SACZ,CAAOG,WACP,CAAS,CACT,SAAO,CACS,EAChB,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACG,GAAc,GACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,iFACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,uCAA+B,EAAa,KAAK,GACjE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,oCAA2B,MAC3C,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,WAAK,OAAK,CAAC,EAAa,QAAQ,CAAG,IAAA,CAAI,CAAE,cAAc,GAAG,YAG/D,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,CAAC,UAAU,qCACd,CAAA,EAAA,EAAA,GAAA,EAAC,WAAA,CACC,MAAO,EACP,SAAW,AAAD,GAAO,EAAU,EAAE,MAAM,CAAC,KAAK,EACzC,YACE,GAAc,EACV,EAAa,IAAI,CACjB,qHAEN,UAAW,CAAC,2IAA2I,EACrJ,EAAa,wCAA0C,GAAA,CACvD,CACF,KAAM,EAAa,GAAK,GACxB,WAAY,CAAC,IAGf,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,2HACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAY,SAAU,EAAU,WAAY,IAC7C,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,mEACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,YAAa,EACb,aAAc,EACd,QAAS,EACT,SAAU,IAEZ,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,EACT,SAAU,CAAC,GAAU,GAAW,EAChC,UAAW,CAAC,8GAA8G,EACxH,CAAC,GAAU,GAAW,EAClB,oDACA,yDAAA,CACJgB,WAED,EAAY,cAAgB,EAAa,kBAAoB,gBAC9D,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,UAAU,0BAOpC,CAEA,SAAS,EAAY,UACnB,CAAQ,YACR,CAAU,CAIX,EACC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,4EAIZ,CAAC,GACA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,sCACd,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAC,yBAAyB,EAAE,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,EAAS,MAAM,CAAC,EAAE,EAAE,KAAK,SAAA,CAAU,GACvF,SACK,EAAS,MAAM,CAAC,EAAE,EAAE,KAAK,WAElC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,oCAA2B,SAG/C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAc,SAAU,IACxB,EAAS,MAAM,CAAC,MAAM,CAAG,GACxB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,oCAA2B,MAC3C,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,kCACb,EAAS,MAAM,CAAC,MAAM,CAAC,kBAMpC,CAEA,SAAS,EAAc,UAAE,CAAQ,CAA0B,EAMzD,IAAM,EAAQ,EAAS,MAAM,CAAC,EAAE,EAAE,SAAS,sBAAwB,EAAE,CAC/D,EAAgB,IAAI,IAC1B,IAAK,IAAM,KAAQ,EACjB,EAAc,EADU,CACP,CAAC,EAAK,OAAO,CAAE,CAAC,EAAc,GAAG,CAAC,EAAK,OAAO,IAAK,CAAC,CAAI,GAE3E,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,sCACd,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,oCAA2B,eAC1C,EAAM,GAAG,CAAC,CAAC,EAAM,KAChB,IAAM,EAAM,CAAC,EAAc,GAAG,CAAC,EAAK,OAAO,IAAK,CAAC,CAAI,EAC/C,EAAa,EAAK,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAS,EAAK,MAAM,EAAE,CAAC,EAAE,CACnE,EAAQ,GAAO,EAAa,CAAA,EAAG,EAAK,OAAO,CAAC,MAAG,EAAE,EAAA,CAAY,CAAG,EAAK,OAAO,CAClF,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAEC,UAAU,0BACV,MAAO,EAAK,MAAM,EAAE,CAAC,EAAE,CAAG,CAAA,EAAG,EAAK,OAAO,CAAC,MAAG,EAAE,EAAK,MAAM,CAAC,EAAE,CAAA,CAAE,CAAG,EAAK,OAAO,WAE9E,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAC,yBAAyB,EAAE,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,EAAK,OAAO,EAAA,CAAG,GAEpE,IAPI,CAAA,EAAG,EAAK,OAAO,CAAC,CAAC,EAAE,EAAK,MAAM,EAAE,CAAC,EAAE,EAAI,UAAU,CAAC,EAAE,EAAA,CAAG,CAUlE,GACC,EAAS,MAAM,CAAC,EAAE,EAAE,SAAS,cAC5B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,QAAQ,UACR,UAAU,oDACV,MAAM,8DACP,oBAMT,CAEA,SAAS,EAAY,aACnB,CAAW,cACX,CAAY,SACZ,CAAO,UACP,CAAQ,CAMT,QAIC,AAAoB,gBAAgB,CAAhC,EAEA,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACC,UAAU,wEACV,MAAO,CAAC,CAAC,EAAE,EAAa,WAAW,CAAC,cAAc,GAAG,mBAAgB,EAAE,EAAa,aAAa,CAAC,4EAA4E,CAAC,WAChL,yBACwB,EAAa,WAAW,CAAC,cAAc,GAAG,UAKrE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACC,UAAW,CAAC,gDAAgD,EAC1D,EAAU,gBAAkB,wBAAA,CAC5B,CACF,MAAO,CAAC,CAAC,EAAE,EAAa,WAAW,CAAC,cAAc,GAAG,mBAAgB,EAAE,EAAa,aAAa,CAAC,kBAAkB,EAAE,EAAa,SAAS,CAAC,MAAM,EAAE,EAAa,SAAS,CAAG,EAAI,IAAM,GAAG,gBAAgB,CAAC,WAE5M,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAW,UAAU,YACrB,EAAa,SAAS,CAAG,EACtB,CAAC,EAAE,EAAE,EAAa,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAa,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAChF,CAAC,EAAE,EAAE,EAAa,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CACzC,EAAS,UAAU,CAAG,GACrB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,qCAA2B,UACjC,EAAS,UAAU,CAAC,OAAO,CAAC,QAK9C,CClLA,SAAS,IACP,IAAM,EAAS,CAAA,EAAA,EAAA,eAAA,AAAe,IACxB,EAASd,CAAAA,EAAAA,EAAAA,SAAAA,AAAS,IAClB,CAAC,EAAW,EAAgB,CAAG,CAAA,EAAA,EAAA,aAAA,AAAa,IAE5C,CAAC,EAAW,EAAa,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAa,EAAE,EACnD,CAAC,EAAW,EAAa,CAAG,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAwB,MACpD,CAAC,EAAa,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAgB,MAE9D,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,CAAA,EAAA,EAAA,aAAa,AAAb,IACG,IAAI,CAAC,GACL,KAAK,CAAC,AAAC,GACN,EACE,aAAe,EAAA,WAAW,CAAG,EAAI,OAAO,CAAG,4BAGnD,EAAG,EAAE,EAKL,GAAM,CAAC,EAAa,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAc,OAC5D,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,CAAA,EAAA,EAAA,cAAA,AAAc,IACX,IAAI,CAAC,AAAC,GAAM,EAAe,EAAE,IAAI,GACjC,KAAK,CAAC,KAEP,EACJ,EAAG,EAAE,EAEL,IAAM,EAAa,EAAO,GAAG,CAAC,aAAe,CAAS,CAAC,EAAE,EAAE,IAAM,GAC3D,CAAC,EAAQ,EAAU,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IAG/B,EAA4B,EAAE,CAE9B,EAAW,EAAU,IAAI,CAAC,AAAC,GAAM,EAAEO,EAAE,GAAK,IAAe,CAAS,CAAC,EAAE,CAErEV,EAAe,CAAA,EAAA,EAAA,OAAA,AAAO,EAC1B,IAAM,CEZH,SAASQ,AAAaC,CAI5B,EACC,GAAM,UAAEC,CAAQ,QAAEC,CAAM,aAAEC,CAAW,CAAE,CAAGH,EACpCI,EACJH,GAAUI,QAAQ,CAAC,EAAE,EAAEC,UAAUC,YAAYhB,QAAU,EACnDiB,EAAYC,KAAKhB,GAAG,CAAC,EAAGQ,GAAUO,WAAa,GAK/CO,EAJeN,AAIDC,KAJMC,IAAI,CAACT,EAAOX,GAIHqB,GAJS,CAAG,GACL,KAArBT,EAAYZ,CAGiBsB,KAHX,EAErCZ,GAAUa,yBAzByB,EAyBEhB,CAAAA,EAIjCoB,EAASD,CADsB,KAAdF,EAAyBC,eAAe,IAAA,EAC/BZ,EAChC,MAAO,CACLe,IAAKD,EACLE,YAAaF,EAASV,EACtBO,4BACAX,YACAI,CACF,CACF,GFZuB,CAAE,kBAAU,cAAQ,CAAY,GAEnD,CAAC,EAAQ,EAAa,EAAS,EAO3B,GAAU,EACE,iBAAhB,GACE,GAAU,YACV,EAAS,UAAU,CAAG,GACtB,EAAa,WAAWA,CAAG,EAAS,UAAA,AAAU,EAG5C,CAAC,EAAU,EAAY,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GACnC,CAAC,EAAU,EAAY,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IAEnC,EAAa,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,GAClC,EAAe,EAAa,GAAU,QAAQ,CAAC,EAAE,EAAE,SAAW,OAEpE,eAAe,IACb,GAAI,AAAC,GAAa,GAMlB,GAAI,EANsB,CAAT,AAMC,EAAc,CAC9B,IAAM,EAAU,IAAI,cAAc,MAAM,CAAC,GAAQ,MAAM,CACvD,GAAI,EAAU,EAAa,QAAQ,CAAE,YACnC,EACE,CAAC,YAAY,EAAE,EAAQ,cAAc,GAAG,8BAA8B,EAAE,EAAa,QAAQ,CAAC,cAAc,GAAG,eAAe,CAAC,CAIrI,CAEA,EAAe,MACf,EAAgB,UACd,GAAI,CACF,IAAM,EAAc,EAAS,IAAI,GAC3B,EAAO,MAAM,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,CAO5B,KAAM,EE3GT,AF2GsB,SE3GbzB,AAAsBC,CAAgB,EACpD,IAAMC,EAAW,8CACjB,GAAI,CAACD,EAAU,OAAOC,EAEtB,IAAK,IAAMG,KADGJ,EACIE,AADKC,KAAK,CAAC,MACJ,CACvB,IAAME,EAAOD,EAAIE,IAAI,GACrB,GAAoB,IAAhBD,EAAKE,MAAM,EACXF,EAAKG,UAAU,CAAC,QAAUH,EAAKG,UAAU,CAAC,OADvB,CAC+B,QAEtD,GAAIH,EAAKE,MAAM,IAAIE,CAAK,OAAOJ,EAC/B,IAAMK,EAAML,EAAKM,KAAK,CAAC,EAFX,CAEcF,GACpBG,EAAYF,EAAIG,WAAW,CAAC,KAClC,MAAO,CAACD,EAAY,GAAKF,EAAIC,KAAK,CAAC,EAAGC,GAAaF,CAAAA,CAAG,CAAI,GAC5D,CACA,OAAOT,CACT,EF4FmD,GAAU,EACnD,WAAY,EAAS,EAAE,CACvB,MACE,EAAY,MAAM,CAAG,EAAI,EAAY,GAAG,CAAC,AAAC,GAAM,EAAE,IAAI,OAAI,EAC5D,GAAI,EAAa,CAAE,SAAU,CAAO,EAAI,CAAC,CAAC,CAI1C,GAAI,CAAC,GAAc,EAAY,MAAM,CAAG,EACpC,CAAE,SAAU,CAAY,EACxB,CAAC,CAAC,CAIN,KAAM,CACR,GACA,EAAO,IAAI,CAAC,CAAC,MAAM,EAAE,EAAK,IAAI,EAAI,EAAK,EAAE,CAAA,CAAE,CAC7C,CAAE,MAAO,EAAK,CACZ,EACE,aAAe,EAAA,WAAW,CAAG,EAAI,OAAO,CAAG,wBAE/C,CACF,GACF,QAEA,AAAI,EAEA,CAAA,EAAA,EAAA,GAAA,CAFW,CAEV,EAAA,QAAQ,CAAA,UACP,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,+EACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,0EACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,oCAA2B,4BACxC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,8CAAsC,WAOxD,EAWH,CAAA,EAAA,EAAA,GAXa,AAWb,EAAC,EAAA,QAAQ,CAAA,UACP,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gFACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CACT,QAAQ,WACR,MACE,EACI,kCACA,iCAEN,SACE,EACI,+HACA,8DAIP,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,8EACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,oCAA4B,MAI7C,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,kDACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,KAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,UAAU,gBACxB,MAAM,WACN,MAAO,GAAU,MAAQ,oBACzB,IAAI,CAAA,CAAA,WAEJ,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,qBACX,EAAU,GAAG,CAAC,AAAC,GACd,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,UACC,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,KACP,IAAM,EAAY,IAAI,gBAAgB,GACtC,EAAU,GAAG,CAAC,WAAY,EAAE,EAAE,EAC9B,EAAO,IAAI,CAAC,CAAC,KAAK,EAAE,EAAU,QAAQ,GAAA,CAAI,CAC5C,EACA,UAAW,CAAC,iDAAiD,EAC3D,EAAE,EAAE,GAAK,EAAa,YAAc,qBAAA,CACpC,WAEF,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,+BAAuB,EAAE,IAAI,GAC5C,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,IACpB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,QAAQ,UACR,UAAU,0FACX,mBAKL,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,sDACZ,EAAE,WAAW,OAxBX,EAAE,EAAE,SAiCrB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,SAAU,EACV,OAAQ,EACR,UAAW,EACX,WAAY,EACZ,aAAc,EACd,YAAa,EACb,aAAc,EACd,QAAS,EACT,UAAW,EACX,QAAS,IAGV,GACC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,+HACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,IAAI,CAAA,CAAC,UAAU,0CAChB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,WAAK,iBACW,IACf,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,sBAAY,IAAE,EAAa,GAAG,CAAC,OAAO,CAAC,MAAW,IAAI,uBACjD,IACrB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,sBAAY,IACxB,EAAS,UAAU,CAAC,OAAO,CAAC,MACzB,uFAWb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACC,UAAW,CAAC,kEAAkE,EAAE,EAAa,aAAe,GAAA,CAAI,WAEhH,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,yCACb,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,gDAAsC,cACxC,IACZ,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,iCAAwB,kBAE1C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,QAAQ,UACR,UAAU,oGACX,gBAIH,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,KAAK,OACL,MAAO,EAAa,GAAK,EACzB,SAAU,AAAC,GAAM,EAAY,EAAE,MAAM,CAAC,KAAK,EAC3C,SAAU,EACV,YAAY,yBACZ,UAAU,2OACV,YAAY,IAEd,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,kDACV,EACG,kJAEA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WAAE,6FAE6B,IAC7B,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,iCAAwB,iBAAmB,qGAQrE,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,EAAY,AAAC,GAAM,CAAC,GACnC,UAAW,CAAC,oGAAoG,EAC9G,EACI,mCACA,oEAAA,CACJ,WAEF,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,mCACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAC,0DAA0D,EACpE,EACI,+BACA,gCAAA,CACJ,UACH,OAGD,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,WACC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,+CAAsC,cAGtD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,QAAQ,UACR,UAAU,2FACX,cAIH,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,oDACV,EACG,yHACA,uGAIV,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAC,wEAAwE,EAClF,EACI,oCACA,wBAAA,CACJ,UAEF,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAC,8CAA8C,EACxD,EAAW,4BAA8B,yBAAA,CACzC,aAjMV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,UACP,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,6FAAoF,wBAuM3G,kBAxVe,SAAS,EACtB,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CACP,SACE,CAAA,EAAA,EAAA,GAAA,EAACI,EAAAA,QAAQ,CAAA,UACP,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,6CAAoC,wBAIvD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,IAGP","ignoreList":[3]}
@@ -1,3 +0,0 @@
1
- module.exports=[63778,a=>{"use strict";var b=a.i(81673),c=a.i(7090),d=a.i(3438),e=a.i(8251),f=a.i(76015),g=a.i(35310),h=a.i(99570),i=a.i(26442),j=a.i(57966),k=a.i(24897),l=a.i(91119),m=a.i(68114);function n({className:a,type:c,...d}){return(0,b.jsx)("input",{type:c,"data-slot":"input",className:(0,m.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",a),...d})}var o=a.i(64837),p=a.i(84623),q=a.i(39908),r=a.i(16215);let s=["anthropic/claude-sonnet-4.5","openai/gpt-5","google/gemini-2.5-pro","deepseek/deepseek-chat-v3.1","moonshotai/kimi-k2"];function t({apiKeys:a,updateApiKey:c}){let e=a.openrouter??"",[g,h]=(0,f.useState)({kind:"idle"}),[i,j]=(0,f.useState)(null),[k,u]=(0,f.useState)(new Set(s)),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)(null);async function z(){if(0!==e.trim().length&&"saving"!==g.kind){h({kind:"saving"});try{let a=await (0,r.saveOpenRouterKey)(e.trim());if(!a.valid)return void h({kind:"invalid",message:a.error??"OpenRouter rejected this key."});await A()}catch(a){h({kind:"invalid",message:a instanceof Error?a.message:String(a)})}}}async function A(){h({kind:"loading_catalog"});try{let{models:a}=await (0,r.listOpenRouterModels)();a.sort((a,b)=>a.id.localeCompare(b.id)),j(a),h({kind:"valid",modelCount:a.length})}catch(a){h({kind:"catalog_failed",message:a instanceof Error?a.message:String(a)})}}async function B(){if(0!==k.size&&!v){w(!0),y(null);try{let a=await (0,r.addOpenRouterVoices)(Array.from(k)),b=a.added.length,c=a.skipped.length;y(`Added ${b} voice${1===b?"":"s"}`+(c>0?` \xb7 skipped ${c} (unknown id)`:""))}catch(a){y(`Couldn't add voices: ${a instanceof Error?a.message:String(a)}`)}finally{w(!1)}}}return(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsxs)("h2",{className:"mb-3 flex flex-wrap items-baseline gap-x-2 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,b.jsx)("span",{children:"API access"}),(0,b.jsx)("span",{className:"font-normal normal-case text-muted-foreground/70",children:"optional — gives you any model on OpenRouter as a chorus voice"})]}),(0,b.jsxs)(l.Card,{className:"space-y-3 bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("label",{htmlFor:"apikey-openrouter",className:"text-sm font-medium",children:"OpenRouter API key"}),(0,b.jsxs)("a",{href:"https://openrouter.ai/keys",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground",children:["Get a key ",(0,b.jsx)(q.ExternalLink,{className:"h-2.5 w-2.5"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n,{id:"apikey-openrouter",type:"password",autoComplete:"off",spellCheck:!1,placeholder:"sk-or-v1-…",value:e,onChange:a=>{c("openrouter",a.target.value),"idle"!==g.kind&&h({kind:"idle"}),j(null)},className:"flex-1 font-mono text-xs",disabled:"saving"===g.kind||"loading_catalog"===g.kind}),(0,b.jsxs)("button",{type:"button",onClick:z,disabled:0===e.trim().length||"saving"===g.kind||"loading_catalog"===g.kind||"valid"===g.kind,className:(0,m.cn)("inline-flex h-9 items-center gap-1.5 rounded-md border px-3 text-[11px] font-medium transition disabled:cursor-not-allowed disabled:opacity-50","valid"===g.kind?"border-emerald-500/40 bg-emerald-500/10 text-emerald-300":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/20"),children:[("saving"===g.kind||"loading_catalog"===g.kind)&&(0,b.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}),"valid"===g.kind&&(0,b.jsx)(p.Check,{className:"h-3 w-3"}),"saving"===g.kind?"Validating…":"loading_catalog"===g.kind?"Loading models…":"valid"===g.kind?"Validated":"Validate & save"]})]}),"invalid"===g.kind&&(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-xs text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"h-3 w-3"}),g.message]}),"catalog_failed"===g.kind&&(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-md border border-amber-500/40 bg-amber-500/5 px-3 py-2",children:[(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-xs text-amber-100",children:[(0,b.jsx)(o.AlertTriangle,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsxs)("span",{children:["Key saved, but couldn't load the model catalog:"," ",g.message]})]}),(0,b.jsx)("button",{type:"button",onClick:A,className:"shrink-0 rounded-md border border-amber-500/40 bg-amber-500/10 px-2.5 py-1 text-[11px] font-medium text-amber-100 hover:bg-amber-500/20",children:"Reload models"})]}),"valid"===g.kind&&i&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-emerald-500/20 bg-emerald-500/5 p-3",children:[(0,b.jsxs)("p",{className:"text-[11px] text-emerald-300",children:["✓ Key valid · ",g.modelCount," models available. Pick a starter set now or browse the full catalog on the Connect page later."]}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-1 sm:grid-cols-2",children:s.filter(a=>i.some(b=>b.id===a)).map(a=>{let c=k.has(a),d=i.find(b=>b.id===a);return(0,b.jsxs)("label",{className:(0,m.cn)("flex cursor-pointer items-center gap-2 rounded border px-2 py-1.5 text-[11px] transition",c?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,b.jsx)("input",{type:"checkbox",checked:c,onChange:b=>{u(c=>{let d=new Set(c);return b.target.checked?d.add(a):d.delete(a),d})},className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate font-mono",children:d?.id??a})]},a)})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:B,disabled:0===k.size||v,className:"inline-flex h-7 items-center gap-1.5 rounded-md border border-primary/40 bg-primary/10 px-2.5 text-[11px] font-medium text-primary transition hover:bg-primary/20 disabled:cursor-not-allowed disabled:opacity-50",children:[v?(0,b.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}):null,"Add ",k.size>0?k.size:""," voice",1===k.size?"":"s"]}),x&&(0,b.jsx)("p",{className:"text-[11px] text-emerald-300",children:x})]})]}),(0,b.jsxs)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/80",children:["Stored locally in ",(0,b.jsx)("code",{children:"~/.chorus/chorus.db"}),". Used only to call OpenRouter on your behalf. Direct API support for other providers (Anthropic, OpenAI, Google, xAI) is on the roadmap — today, route those models via OpenRouter."]})]})]})}var u=a.i(88923);let v=[{id:"claude-code",provider:"anthropic",label:"Claude Code",hint:"Anthropic — uses your existing Claude login"},{id:"codex-cli",provider:"openai",label:"Codex CLI",hint:"OpenAI — ChatGPT Plus/Pro subscription"},{id:"gemini-cli",provider:"google",label:"Gemini CLI",hint:"Google — uses your gcloud auth"},{id:"opencode-cli",provider:"opencode",label:"OpenCode",hint:"OpenCode Go — routes Kimi, DeepSeek, Grok"},{id:"kimi-cli",provider:"moonshot",label:"Kimi CLI",hint:"MoonshotAI — kimi-k2 plan"},{id:"cursor",provider:"cursor",label:"Cursor",hint:"Cursor IDE — invoke chorus from inside it"},{id:"windsurf",provider:"windsurf",label:"Windsurf",hint:"Windsurf IDE — invoke chorus from inside it"}],w={"claude-code":"claude","codex-cli":"codex","gemini-cli":"gemini","opencode-cli":"opencode","kimi-cli":"kimi"},x={"claude-code":"claude-code","codex-cli":"codex-cli","gemini-cli":"gemini-cli","opencode-cli":"opencode-cli","kimi-cli":"kimi-cli"},y={dot:"bg-muted-foreground/40",gradient:"bg-gradient-to-br from-muted/30 via-card to-card"},z=v.filter(a=>"cursor"!==a.id&&"windsurf"!==a.id);function A(a){return(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsx)("h2",{className:"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"CLI subscriptions"}),(0,b.jsx)("div",{className:"grid grid-cols-1 items-start gap-2 lg:grid-cols-2",children:z.map(c=>{let e=a.selectedClis.has(c.id),f=a.detection[c.id],g=f?.found===!0,h=a.detecting&&!f,i=!g&&!h&&a.manualOpen.has(c.id),j=a.manualBusy.has(c.id),k=g?u.UI_LINEAGE_BRAND[w[c.id]]??y:y;return(0,b.jsxs)("div",{className:(0,m.cn)("flex h-72 flex-col rounded-lg border transition",g?"border-border":"border-border/60 opacity-70",k.gradient),children:[(0,b.jsxs)("button",{type:"button",onClick:()=>g&&a.toggleCli(c.id),disabled:!g,className:(0,m.cn)("flex shrink-0 items-center gap-3 px-4 py-3 text-left transition",g?"hover:bg-card/30":"cursor-not-allowed"),children:[(0,b.jsx)("div",{className:(0,m.cn)("grid h-5 w-5 shrink-0 place-items-center rounded border transition",!g&&"opacity-50",e?"border-primary bg-primary text-primary-foreground":"border-border"),children:e&&(0,b.jsx)(p.Check,{className:"h-3 w-3"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,b.jsx)("span",{className:(0,m.cn)("h-2 w-2 shrink-0 rounded-full",k.dot)}),(0,b.jsx)("h3",{className:"whitespace-nowrap text-sm font-semibold",children:c.label}),g?(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 uppercase tracking-wider text-emerald-300",children:[(0,b.jsx)(p.Check,{className:"h-3 w-3"})," Installed"]}):h?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-border bg-card px-2 py-0.5 text-[10px] font-medium text-muted-foreground",children:[(0,b.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"})," Searching…"]}):(0,b.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-card px-2 py-0.5 text-[10px] font-medium text-muted-foreground",children:"Not found"})]})]}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-2 overflow-y-auto border-t border-border bg-card/30 p-4",children:[(0,b.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:g&&f.path?(0,b.jsx)("code",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono",children:f.path}):h?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[(0,b.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}),"Probing PATH and known install dirs…"]}):c.hint}),!g&&!h&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>a.toggleManual(c.id),className:"text-[11px] text-muted-foreground transition hover:text-foreground",children:i?"Cancel":"Don't see it? Set path manually →"}),i&&(0,b.jsx)(D,{cliId:c.id,value:a.manualPath[c.id]??"",onChange:b=>a.setManualPath(a=>({...a,[c.id]:b})),error:a.manualError[c.id],busy:j,onSubmit:()=>a.submitManualPath(c.id)})]}),g&&"opencode-cli"===c.id&&e&&(0,b.jsx)(C,{loading:a.opencodeModelsLoading,error:a.opencodeModelsError,models:a.opencodeModels,selected:a.selectedOpencodeModels,onToggle:a.toggleOpencodeModel}),g&&"opencode-cli"!==c.id&&e&&(0,b.jsx)(B,{cliId:c.id,voices:a.cliVoices,savingVoiceIds:a.savingVoiceIds,saveError:a.voiceSaveError,onToggle:a.toggleVoice})]})]},c.id)})}),(0,b.jsx)("p",{className:"mt-3 text-[11px] text-muted-foreground",children:"Cursor and Windsurf are IDEs that invoke chorus, not voices — wire them up on the Connect page after onboarding."})]})}function B({cliId:a,voices:c,savingVoiceIds:d,saveError:e,onToggle:f}){let g=x[a],h=c.filter(a=>a.provider===g).slice().sort((a,b)=>a.id===g?-1:b.id===g?1:a.model_id.localeCompare(b.model_id));if(0===h.length)return(0,b.jsx)("p",{className:"text-[11px] italic text-muted-foreground/70",children:"Models will populate after the daemon finishes seeding (refresh in a few seconds)."});let i=h.filter(a=>a.enabled).length;return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Models"}),(0,b.jsxs)("p",{className:"text-[11px] text-muted-foreground/70",children:[i,"/",h.length," enabled"]})]}),e&&(0,b.jsx)("p",{className:"text-[11px] text-destructive",children:e}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-1",children:h.map(a=>{let c=a.enabled,e=a.id===g;return(0,b.jsxs)("button",{type:"button",disabled:d.has(a.id),onClick:()=>f(a),title:a.model_id,className:(0,m.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition disabled:opacity-60",c?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,b.jsx)("div",{className:(0,m.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",c?"border-primary bg-primary text-primary-foreground":"border-border"),children:c&&(0,b.jsx)(p.Check,{className:"h-2 w-2"})}),(0,b.jsx)("span",{className:"truncate font-mono",children:a.model_id}),e&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-emerald-500/10 px-1.5 py-0.5 text-[9px] font-medium uppercase tracking-wider text-emerald-300",children:"current"})]},a.id)})})]})}function C({loading:a,error:c,models:e,selected:f,onToggle:g}){return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Pick models to enable"}),(0,b.jsxs)("p",{className:"text-[11px] text-muted-foreground/70",children:[f.size," selected"]})]}),a&&(0,b.jsxs)("p",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:[(0,b.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}),"Listing models from"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"opencode models"}),"…"]}),c&&(0,b.jsx)("p",{className:"text-[11px] text-destructive",children:c}),e&&(0,b.jsxs)("div",{className:"space-y-2",children:[Object.entries(e.gateways).filter(([a])=>a.startsWith("opencode")).sort(([a],[b])=>a.localeCompare(b)).map(([a,c])=>(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("p",{className:"text-[10px] font-mono text-muted-foreground/80",children:[a,"/"]}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-1",children:c.map(c=>{let d=f.has(c);return(0,b.jsxs)("button",{type:"button",onClick:()=>g(c),title:c,className:(0,m.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition",d?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,b.jsx)("div",{className:(0,m.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",d?"border-primary bg-primary text-primary-foreground":"border-border"),children:d&&(0,b.jsx)(p.Check,{className:"h-2 w-2"})}),(0,b.jsx)("span",{className:"truncate font-mono",children:c.slice(a.length+1)})]},c)})})]},a)),(0,b.jsxs)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:["Pre-selected: ",e.defaultPicks.join(", ")||"none",". Change anytime in ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"Settings"}),"."]})]})]})}function D({cliId:a,value:c,onChange:e,error:f,busy:g,onSubmit:i}){let j=function(a){switch(a){case"claude-code":return"claude";case"codex-cli":return"codex";case"gemini-cli":return"gemini";case"opencode-cli":return"opencode";default:return"kimi"}}(a);return(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border bg-card/50 p-3",children:[(0,b.jsxs)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:["Paste the full path to the"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:j})," binary. Run"," ",(0,b.jsxs)("code",{className:"rounded bg-muted px-1",children:["which ",j]})," (macOS / Linux) or ",(0,b.jsxs)("code",{className:"rounded bg-muted px-1",children:["where ",j]})," ","(Windows) to find it. The daemon will run"," ",(0,b.jsxs)("code",{className:"rounded bg-muted px-1",children:[j," --version"]})," with a 2s timeout to confirm the binary works and identifies as the"," ",j," CLI."]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(n,{value:c,onChange:a=>e(a.target.value),placeholder:`/full/path/to/${j}`,className:"flex-1 font-mono text-xs",spellCheck:!1,autoComplete:"off"}),(0,b.jsx)(h.Button,{type:"button",variant:"secondary",disabled:g,onClick:i,children:g?(0,b.jsx)(d.Loader2,{className:"h-4 w-4 animate-spin"}):"Verify"})]}),f&&(0,b.jsx)("p",{className:"text-[11px] text-destructive",children:f})]})}let E=[{id:"strict",label:"Strict",hint:"Read-only. Reviewers can inspect code but can't write files, exec shell, or hit the network."},{id:"workspace",label:"Workspace (recommended)",hint:"Read+write inside the chat dir, scoped shell, no network. Default for most teams."},{id:"full",label:"Full access",hint:"No sandbox at all. Only on a personal machine you fully trust."}];function F({sandboxProfile:a,setSandboxProfile:c,autoApprovePrompts:d,setAutoApprovePrompts:e,networkAccess:f,setNetworkAccess:g}){return(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsx)("h2",{className:"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Permissions & sandbox"}),(0,b.jsx)("p",{className:"mb-4 text-xs leading-relaxed text-muted-foreground",children:"Controls what reviewers can do on your machine. You can change this anytime in Settings → Permissions."}),(0,b.jsx)("div",{className:"space-y-2",children:E.map(d=>{let e=a===d.id;return(0,b.jsxs)("button",{type:"button",onClick:()=>c(d.id),className:(0,m.cn)("flex w-full items-start gap-3 rounded-lg border p-4 text-left transition",e?"border-primary/50 bg-primary/10":"border-border bg-card hover:border-muted-foreground/30"),children:[(0,b.jsx)("div",{className:(0,m.cn)("mt-0.5 grid h-5 w-5 shrink-0 place-items-center rounded-full border transition",e?"border-primary bg-primary text-primary-foreground":"border-border"),children:e&&(0,b.jsx)(p.Check,{className:"h-3 w-3"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:d.label}),(0,b.jsx)("div",{className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:d.hint})]})]},d.id)})}),(0,b.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)("input",{type:"checkbox",checked:d,onChange:a=>e(a.target.checked),className:"mt-1 h-4 w-4 cursor-pointer accent-primary"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-xs leading-relaxed",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Skip in-CLI permission prompts"}),(0,b.jsxs)("div",{className:"mt-0.5 text-muted-foreground",children:["Passes ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"--afk"})," /"," ",(0,b.jsx)("code",{className:"rounded bg-muted px-1",children:"auto_edit"}),"to spawned reviewers so they don't hang on per-tool prompts. Off = every action requires explicit consent in the CLI's TUI."]})]})]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)("input",{type:"checkbox",checked:f,onChange:a=>g(a.target.checked),className:"mt-1 h-4 w-4 cursor-pointer accent-primary"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-xs leading-relaxed",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Allow outbound network from reviewers"}),(0,b.jsx)("div",{className:"mt-0.5 text-muted-foreground",children:"Off by default. Templates that explicitly need network override per phase."})]})]})]})]})}a.i(30005);var G=a.i(92415);async function H(a){for(let b of a.selectedClis){let a=v.find(a=>a.id===b);a&&await (0,i.upsertSecret)(a.provider,{kind:"cli_subscription",value:a.id,updatedAt:Date.now()})}for(let[b,c]of Object.entries(a.apiKeys)){let a=c.trim();a&&await (0,i.upsertSecret)(b,{kind:"api_key",value:a,updatedAt:Date.now()})}await (0,i.updatePermissions)({sandboxProfile:a.sandboxProfile,autoApprovePrompts:a.autoApprovePrompts,networkAccess:a.networkAccess}),a.selectedClis.has("opencode-cli")&&a.opencodeModels&&await I(a),await (0,i.updateSettings)({onboarded:!0})}async function I(b){let{listVoices:c,updateVoice:d,createVoice:e}=await a.A(46476),f=new Map((await c({provider:"opencode-cli"}).catch(()=>[])).map(a=>[a.id,a])),g=b.opencodeModels;g&&await Promise.all(g.flat.map(async a=>{let c=`opencode-cli:${a}`,g=b.selectedOpencodeModels.has(a),h=f.get(c);try{if(h)h.enabled!==g&&await d(c,{enabled:g});else{let b,c,{lineage:d,vendor_family:f}=(c=((b=a.indexOf("/"))>=0?a.slice(b+1):a).toLowerCase()).includes("kimi")?{lineage:"moonshot",vendor_family:null}:c.includes("claude")?{lineage:"anthropic",vendor_family:null}:c.includes("gpt")||/(?:^|[^a-z])o[1-9](?:$|[^a-z0-9])/.test(c)?{lineage:"openai",vendor_family:null}:c.includes("gemini")?{lineage:"google",vendor_family:null}:c.includes("deepseek")?{lineage:"opencode",vendor_family:"deepseek"}:c.includes("llama")||c.includes("meta")?{lineage:"opencode",vendor_family:"meta"}:c.includes("mistral")||c.includes("mixtral")?{lineage:"opencode",vendor_family:"mistral"}:c.includes("grok")||c.includes("xai")?{lineage:"opencode",vendor_family:"xai"}:{lineage:"opencode",vendor_family:null};await e({provider:"opencode-cli",model_id:a,label:a,source:"cli",lineage:d,vendor_family:f,enabled:g})}}catch{}}))}a.s(["default",0,function(){let a=(0,e.useRouter)(),[l,m]=(0,f.useTransition)(),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(new Set),[r,s]=(0,f.useState)([]),[u,v]=(0,f.useState)(new Set),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)({}),[B,C]=(0,f.useState)("workspace"),[D,E]=(0,f.useState)(!0),[I,J]=(0,f.useState)(!1),[K,L]=(0,f.useState)({}),[M,N]=(0,f.useState)(!0),[O,P]=(0,f.useState)(new Set),[Q,R]=(0,f.useState)({}),[S,T]=(0,f.useState)({}),[U,V]=(0,f.useState)(new Set),[W,X]=(0,f.useState)(null),[Y,Z]=(0,f.useState)(null),[$,_]=(0,f.useState)(!1),[aa,ab]=(0,f.useState)(new Set);(0,f.useEffect)(()=>{let a=!1;return(0,i.detectInstalledClis)().then(b=>{if(a)return;let c={},d=new Set;for(let a of b)c[a.id]=a,a.found&&d.add(a.id);L(c),d.size>0&&q(d)}).catch(()=>{}).finally(()=>{a||N(!1)}),(0,k.listVoices)({source:"cli"}).then(b=>{a||s(b)}).catch(()=>{}),()=>{a=!0}},[]);let ac=async a=>{v(b=>new Set(b).add(a.id)),x(null);try{let b=await (0,k.updateVoice)(a.id,{enabled:!a.enabled});s(a=>a.map(a=>a.id===b.id?b:a))}catch(a){x(a instanceof Error?a.message:"Couldn't save voice toggle.")}finally{v(b=>{let c=new Set(b);return c.delete(a.id),c})}};(0,f.useEffect)(()=>{!p.has("opencode-cli")||!K["opencode-cli"]?.found||W||$||Y||(_(!0),Z(null),(0,j.listOpencodeModels)().then(a=>{X(a),ab(b=>b.size>0?b:new Set(a.defaultPicks))}).catch(a=>{Z(a instanceof Error?a.message:"Couldn't list OpenCode models. Is the CLI authed (run `opencode auth login`)?")}).finally(()=>_(!1)))},[p,K,W,$,Y]);let ad=async a=>{let b=(Q[a]||"").trim();if(!b)return void T(b=>({...b,[a]:"Enter the full path to the CLI program (e.g. /usr/local/bin/claude)."}));V(b=>new Set(b).add(a)),T(b=>({...b,[a]:""}));try{let c=await (0,i.validateCliPath)(a,b);if(c.found){try{await (0,i.saveCliPath)(a,c.path??b)}catch(b){T(c=>({...c,[a]:`Validation passed but save failed: ${b instanceof Error?b.message:"unknown error"}. Try again, or paste the path again.`}));return}L(b=>({...b,[a]:c})),q(b=>new Set(b).add(a)),(0,k.listVoices)({source:"cli"}).then(s).catch(()=>{}),P(b=>{let c=new Set(b);return c.delete(a),c})}else{let b=c.reason??"couldn't run that path";T(c=>({...c,[a]:`Validation failed: ${b}.`}))}}catch{T(b=>({...b,[a]:"Validation failed. Is the daemon running?"}))}finally{V(b=>{let c=new Set(b);return c.delete(a),c})}},ae=p.size+Object.values(y).filter(a=>a.trim().length>0).length;return(0,b.jsx)("main",{className:"min-h-screen bg-background text-foreground",children:(0,b.jsxs)("div",{className:"mx-auto w-full max-w-5xl px-4 py-10 sm:px-6 sm:py-14",children:[(0,b.jsxs)("div",{className:"mb-8 flex items-center gap-3",children:[(0,b.jsx)("div",{className:"grid h-10 w-10 place-items-center rounded-md bg-primary/15 text-primary",children:(0,b.jsx)(g.TriadLogo,{className:"h-6 w-6"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Welcome to Chorus"}),(0,b.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"Connect at least one model to begin"})]})]}),(0,b.jsx)("p",{className:"mb-8 text-sm leading-relaxed text-muted-foreground",children:"Chorus runs your prompt past 2–4 LLMs of different lineages and synthesises consensus. Pick the CLI subscriptions you already have, or paste API keys. You can change these later in Settings."}),(0,b.jsx)(A,{selectedClis:p,toggleCli:a=>{q(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},detection:K,detecting:M,cliVoices:r,savingVoiceIds:u,voiceSaveError:w,toggleVoice:ac,manualOpen:O,toggleManual:a=>{P(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),T(b=>({...b,[a]:""}))},manualPath:Q,setManualPath:R,manualError:S,manualBusy:U,submitManualPath:ad,opencodeModels:W,opencodeModelsError:Y,opencodeModelsLoading:$,selectedOpencodeModels:aa,toggleOpencodeModel:a=>{ab(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}}),(0,b.jsx)(t,{apiKeys:y,updateApiKey:(a,b)=>{z(c=>({...c,[a]:b}))}}),(0,b.jsx)(F,{sandboxProfile:B,setSandboxProfile:C,autoApprovePrompts:D,setAutoApprovePrompts:E,networkAccess:I,setNetworkAccess:J}),n&&(0,b.jsx)("div",{className:"mb-6 rounded-md border border-destructive/50 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:n}),(0,b.jsxs)("div",{className:"flex flex-col-reverse gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:0===ae?"Pick at least one to continue.":`${ae} ${1===ae?"credential":"credentials"} ready to save.`}),(0,b.jsx)(h.Button,{onClick:()=>{(o(null),0===ae)?o("Pick at least one CLI or paste at least one API key to continue."):m(async()=>{try{await H({selectedClis:p,apiKeys:y,sandboxProfile:B,autoApprovePrompts:D,networkAccess:I,opencodeModels:W,selectedOpencodeModels:aa}),a.push("/"),a.refresh()}catch(a){o(a instanceof G.DaemonError?a.message:"Could not save. Is the Chorus daemon running?")}})},disabled:l||0===ae,className:"w-full sm:w-auto",children:l?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Loader2,{className:"mr-1 h-4 w-4 animate-spin"}),"Saving…"]}):(0,b.jsxs)(b.Fragment,{children:["Get started",(0,b.jsx)(c.ArrowRight,{className:"ml-1 h-4 w-4"})]})})]})]})})}],63778)}];
2
-
3
- //# sourceMappingURL=src_app_onboarding_page_tsx_0xf7hpz._.js.map