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=[11782,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(80070);a.n(d("[project]/node_modules/.pnpm/next@16.2.4_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},3580,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(80070);a.n(d("[project]/node_modules/.pnpm/next@16.2.4_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/app-dir/link.js"))},87878,a=>{"use strict";a.i(11782);var b=a.i(3580);a.n(b)},95759,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(54508),g=a.r(4613),h=f._(a.r(87878));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...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)},117,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.12.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.12.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation>","default")},64303,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.12.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.12.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.mjs","default")},24378,a=>{"use strict";a.i(117);var b=a.i(64303);a.n(b)},30018,a=>{"use strict";a.s(["OpencodeFleetCard",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call OpencodeFleetCard() from the server but OpencodeFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/opencode-fleet-card.tsx <module evaluation>","OpencodeFleetCard")},73832,a=>{"use strict";a.s(["OpencodeFleetCard",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call OpencodeFleetCard() from the server but OpencodeFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/opencode-fleet-card.tsx","OpencodeFleetCard")},19957,a=>{"use strict";a.i(30018);var b=a.i(73832);a.n(b)},87628,a=>{"use strict";a.s(["LineageFleetCard",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call LineageFleetCard() from the server but LineageFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/lineage-fleet-card.tsx <module evaluation>","LineageFleetCard")},7378,a=>{"use strict";a.s(["LineageFleetCard",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call LineageFleetCard() from the server but LineageFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/lineage-fleet-card.tsx","LineageFleetCard")},48084,a=>{"use strict";a.i(87628);var b=a.i(7378);a.n(b)},19828,a=>{"use strict";a.s(["OpenRouterFleetCard",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call OpenRouterFleetCard() from the server but OpenRouterFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/openrouter-fleet-card.tsx <module evaluation>","OpenRouterFleetCard")},51512,a=>{"use strict";a.s(["OpenRouterFleetCard",()=>b]);let b=(0,a.i(80070).registerClientReference)(function(){throw Error("Attempted to call OpenRouterFleetCard() from the server but OpenRouterFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/openrouter-fleet-card.tsx","OpenRouterFleetCard")},12199,a=>{"use strict";a.i(19828);var b=a.i(51512);a.n(b)},60168,a=>{"use strict";var b=a.i(4613),c=a.i(95759);a.i(12214);var d=a.i(87255),e=a.i(50770);let f=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var g=a.i(24378);let h=(a,b)=>{let c=(0,e.forwardRef)(({className:c,...d},h)=>(0,e.createElement)(g.default,{ref:h,iconNode:b,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${f(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...d}));return c.displayName=f(a),c},i=h("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),j=h("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]),k=h("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var l=a.i(10401);let m=h("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),n=h("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),o=h("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]),p=h("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),q=h("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]]);var r=a.i(66392);let s={anthropic:"bg-violet-400",openai:"bg-orange-400",google:"bg-blue-400",opencode:"bg-emerald-400",moonshot:"bg-pink-400"};var t=a.i(19957),u=a.i(48084),v=a.i(12199);let w={claude:"anthropic",codex:"openai",gemini:"google",opencode:"opencode",kimi:"moonshot"},x={claude:"claude-code",codex:"codex-cli",gemini:"gemini-cli",kimi:"kimi-cli",opencode:"opencode-cli"};async function y(){let a=[],d=[],e=[],f=[];try{a=(await (0,r.fetchFromDaemon)("/orchestrators")).items}catch{return null}try{d=(await (0,r.fetchFromDaemon)("/cli/health")).items}catch{d=[]}try{e=(await (0,r.fetchFromDaemon)("/voices?source=cli")).items}catch{}try{f=(await (0,r.fetchFromDaemon)("/voices?source=api&provider=openrouter")).items}catch{}function g(a){return e.filter(b=>b.provider===a)}let h={};for(let a of d)h[a.lineage]=a;let i=a.filter(a=>a.connected);return 0===i.length&&0===f.length?null:(0,b.jsxs)("section",{className:"mt-10",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-baseline justify-between",children:[(0,b.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Reviewer fleet"}),(0,b.jsxs)(c.default,{href:"/connect",className:"inline-flex items-center gap-1 text-xs text-muted-foreground transition hover:text-foreground",children:[(0,b.jsx)(q,{className:"h-3 w-3"}),"Manage connections →"]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 items-start gap-2 sm:grid-cols-2 lg:grid-cols-3",children:[i.map(a=>{let c=w[a.name]??a.name,d=h[c]??{lineage:c,status:"unknown",updatedAt:0},e=x[a.name];if("opencode"===a.name)return(0,b.jsx)(t.OpencodeFleetCard,{health:{status:d.status,message:d.message},voices:g("opencode-cli")},a.name);if(e){let f=g(e);if(f.length>0)return(0,b.jsx)(u.LineageFleetCard,{lineage:c,label:a.label,voices:f,health:{status:d.status,message:d.message}},a.name)}return(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${!c?"bg-muted":s[c]??"bg-muted"}`}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a.label}),(0,b.jsx)("div",{className:"mt-0.5",children:function(a){switch(a.status){case"quota_exhausted":return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] font-medium text-amber-300",children:[(0,b.jsx)(o,{className:"h-3 w-3"}),"Quota exhausted",a.resetAt&&(0,b.jsx)("span",{className:"ml-1 text-amber-200/70",children:function(a){if(!a)return null;let b=a-Date.now();if(b<=0)return"now";let c=Math.round(b/6e4);if(c<60)return`in ${c}m`;let d=Math.round(c/60);if(d<24)return`in ${d}h`;let e=Math.round(d/24);return`in ${e}d`}(a.resetAt)})]});case"auth_invalid":return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive",children:[(0,b.jsx)(n,{className:"h-3 w-3"}),"Auth broken"]});case"rate_limited":return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] font-medium text-amber-300",children:[(0,b.jsx)(o,{className:"h-3 w-3"}),"Rate-limited"]});case"healthy":return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300",children:[(0,b.jsx)(m,{className:"h-3 w-3"}),"Healthy"]});default:return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground",children:[(0,b.jsx)(p,{className:"h-3 w-3"}),"Untested"]})}}(d)}),d.message&&"healthy"!==d.status&&"unknown"!==d.status&&(0,b.jsx)("div",{className:"mt-1 truncate text-[10px] text-muted-foreground",children:d.message})]})]},a.name)}),f.length>0&&(0,b.jsx)(v.OpenRouterFleetCard,{voices:f,health:h.openrouter?{status:h.openrouter.status,message:h.openrouter.message}:void 0})]})]})}let z=h("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),A=h("coins",[["path",{d:"M13.744 17.736a6 6 0 1 1-7.48-7.48",key:"bq4yh3"}],["path",{d:"M15 6h1v4",key:"11y1tn"}],["path",{d:"m6.134 14.768.866-.5 2 3.464",key:"17snzx"}],["circle",{cx:"16",cy:"8",r:"6",key:"14bfc9"}]]),B=h("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);function C({stats:a}){var c;let d=Math.round(100*a.approvalRate);return(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 lg:grid-cols-3",children:[(0,b.jsx)(D,{icon:(0,b.jsx)(z,{className:"h-3.5 w-3.5"}),label:"Runs",value:a.runsToday.toString(),sub:`${a.totalRuns} total \xb7 ${a.runsWeek} this week`}),(0,b.jsx)(D,{icon:(0,b.jsx)(m,{className:"h-3.5 w-3.5"}),label:"Approval rate",value:`${d}%`,sub:function(a){let b=[];for(let c of["approved","merged","blocked","failed","no_review","cancelled","drafting","reviewing"]){let d=a[c];d&&b.push(`${d} ${c}`)}return 0===b.length?"no runs yet":b.join(" · ")}(a.byStatus)}),(0,b.jsx)(D,{icon:(0,b.jsx)(A,{className:"h-3.5 w-3.5"}),label:"Spend today",value:E(a.costTodayUsd),sub:`${E(a.totalCostUsd)} all-time \xb7 ${(c=a.totalTokensIn+a.totalTokensOut)<1e3?`${c}`:c<1e6?`${(c/1e3).toFixed(1)}k`:`${(c/1e6).toFixed(1)}M`} tok`}),(0,b.jsx)(D,{icon:(0,b.jsx)(o,{className:"h-3.5 w-3.5"}),label:"Avg duration",value:function(a){if(0===a)return"—";if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=b/60;return c<60?`${c.toFixed(1)}m`:`${(c/60).toFixed(1)}h`}(a.avgDurationMs),sub:"across finished runs"}),(0,b.jsx)(D,{icon:(0,b.jsx)(B,{className:"h-3.5 w-3.5"}),label:"Reviewer fleet",value:`${a.enabledVoices}`,sub:`across ${a.activeLineages} lineage${1===a.activeLineages?"":"s"}`}),(0,b.jsx)(D,{icon:(0,b.jsx)(j,{className:"h-3.5 w-3.5"}),label:"Top template",value:a.topTemplate?.id??"—",sub:a.topTemplate?`${a.topTemplate.runs} run${1===a.topTemplate.runs?"":"s"}`:"no runs yet",mono:!0})]})}function D({icon:a,label:c,value:d,sub:e,mono:f}){return(0,b.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:[a,c]}),(0,b.jsx)("div",{className:f?"mt-2 truncate font-mono text-base font-semibold":"mt-2 truncate text-2xl font-semibold tabular-nums",title:d,children:d}),(0,b.jsx)("div",{className:"mt-1 text-[11px] text-muted-foreground",children:e})]})}function E(a){return 0===a?"$0":a<.01?"<$0.01":a<1?`$${a.toFixed(3)}`:`$${a.toFixed(2)}`}var F=a.i(44665);a.i(54440);var G=a.i(81952),H=a.i(95283);async function I(){return(0,r.fetchFromDaemon)("/stats")}async function J(){try{let[a,b,c,d]=await Promise.all([I().catch(()=>null),(0,G.listTemplates)(),(0,H.listSecrets)(),(0,H.getSettings)().catch(()=>null)]);return{stats:a,templates:b,secrets:c,settings:d,error:null}}catch(a){return{stats:null,templates:[],secrets:[],settings:null,error:a instanceof r.DaemonError?a.message:"Failed to reach the Chorus daemon."}}}async function K(){let{stats:a,templates:e,secrets:f,settings:g,error:h}=await J(),i=!!g?.onboarded||f.length>0;h||i||(0,d.redirect)("/onboarding");let k=(a?.totalRuns??0)>0;return(0,b.jsx)(l.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:[h&&(0,b.jsxs)("div",{className:"mb-8 rounded-lg border border-destructive/50 bg-destructive/10 p-4",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:"Daemon unreachable"}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[h," Start it with ",(0,b.jsx)("code",{children:"chorus start"}),"."]})]}),k&&a?(0,b.jsx)(M,{stats:a}):(0,b.jsx)(L,{}),(0,b.jsx)(y,{}),e.length>0&&(0,b.jsxs)("section",{className:"mt-12",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-baseline justify-between",children:[(0,b.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Start from a template"}),(0,b.jsx)(c.default,{href:"/templates",className:"text-xs text-muted-foreground transition hover:text-foreground",children:"Browse all →"})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:e.slice(0,6).map(a=>(0,b.jsxs)(c.default,{href:`/new?template=${a.id}`,className:"group rounded-lg border border-border bg-card p-4 transition hover:border-muted-foreground/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j,{className:"h-3.5 w-3.5 text-primary"}),(0,b.jsx)("span",{className:"text-sm font-medium",children:a.name})]}),(0,b.jsx)("p",{className:"mt-1 line-clamp-2 text-xs leading-relaxed text-muted-foreground",children:a.description})]},a.id))})]})]})})}function L(){return(0,b.jsxs)("section",{className:"rounded-xl border border-border bg-gradient-to-br from-primary/10 via-card to-card p-6 sm:p-10",children:[(0,b.jsx)("div",{className:"grid h-12 w-12 place-items-center rounded-lg bg-primary/15 text-primary",children:(0,b.jsx)(k,{className:"h-6 w-6"})}),(0,b.jsx)("h1",{className:"mt-5 text-2xl font-semibold tracking-tight",children:"Many voices, one chorus."}),(0,b.jsx)("p",{className:"mt-2 max-w-2xl text-sm leading-relaxed text-muted-foreground",children:"Paste a task, pick a template, and watch 2–4 LLMs of different lineages peer-review the work before you ship."}),(0,b.jsxs)("div",{className:"mt-6 flex flex-col gap-2 sm:flex-row",children:[(0,b.jsxs)(c.default,{href:"/new",className:"inline-flex h-10 items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition hover:bg-primary/90",children:[(0,b.jsx)(i,{className:"h-4 w-4"}),"Start your first run"]}),(0,b.jsx)(c.default,{href:"/templates",className:"inline-flex h-10 items-center justify-center gap-2 rounded-md border border-border bg-card px-4 text-sm font-medium transition hover:border-muted-foreground/30",children:"Browse templates"})]})]})}function M({stats:a}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(F.PageHeader,{eyebrow:"Home",title:"Overview",action:(0,b.jsxs)(c.default,{href:"/new",className:"inline-flex h-10 items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition hover:bg-primary/90",children:[(0,b.jsx)(i,{className:"h-4 w-4"}),"New chat"]})}),(0,b.jsx)("section",{children:(0,b.jsx)(C,{stats:a})})]})}a.s(["default",0,K,"dynamic",0,"force-dynamic"],60168)},28004,a=>{a.n(a.i(60168))}];
2
-
3
- //# sourceMappingURL=_097xk3e._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/client/app-dir/link.js/__nextjs-internal-proxy.cjs","../../../../node_modules/.pnpm/next%4016.2.4_%40babel%2Bcore%407.29.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/app-dir/link.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/app-dir/link.react-server.tsx","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/dist/esm/Icon.mjs/__nextjs-internal-proxy.mjs","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/Icon.ts","../../../../src/components/opencode-fleet-card.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/lineage-fleet-card.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/openrouter-fleet-card.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/page.tsx","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/shared/src/utils/toCamelCase.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/shared/src/utils/toKebabCase.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/shared/src/utils/mergeClasses.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/layers.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/shared/src/utils/toPascalCase.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/sparkles.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/users.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-check.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/clock.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-question-mark.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/plug.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/activity.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/icons/coins.ts","../../../../node_modules/.pnpm/lucide-react%401.12.0_react%4019.2.4/node_modules/lucide-react/src/createLucideIcon.ts","../../../../src/components/cli-status-panel.tsx","../../../../src/lib/lineage-maps.ts","../../../../src/components/home-stats-cards.tsx","../../../../src/lib/api/stats.ts"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/.pnpm/next@16.2.4_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/app-dir/link.js\"));\n","'use client'\n\nimport React, { createContext, useContext, useOptimistic, useRef } from 'react'\nimport type { UrlObject } from 'url'\nimport { formatUrl } from '../../shared/lib/router/utils/format-url'\nimport { AppRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { useMergedRef } from '../use-merged-ref'\nimport { isAbsoluteUrl } from '../../shared/lib/utils'\nimport { addBasePath } from '../add-base-path'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport { ScrollBehavior } from '../components/router-reducer/router-reducer-types'\nimport type { PENDING_LINK_STATUS } from '../components/links'\nimport {\n IDLE_LINK_STATUS,\n mountLinkInstance,\n onNavigationIntent,\n unmountLinkForCurrentNavigation,\n unmountPrefetchableInstance,\n type LinkInstance,\n} from '../components/links'\nimport { isLocalURL } from '../../shared/lib/router/utils/is-local-url'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n} from '../components/segment-cache/types'\nimport { errorOnce } from '../../shared/lib/utils/error-once'\n\ntype Url = string | UrlObject\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T]\ntype OptionalKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? K : never\n}[keyof T]\n\ntype OnNavigateEventHandler = (event: { preventDefault: () => void }) => void\n\ntype InternalLinkProps = {\n /**\n * **Required**. The path or URL to navigate to. It can also be an object (similar to `URL`).\n *\n * @example\n * ```tsx\n * // Navigate to /dashboard:\n * <Link href=\"/dashboard\">Dashboard</Link>\n *\n * // Navigate to /about?name=test:\n * <Link href={{ pathname: '/about', query: { name: 'test' } }}>\n * About\n * </Link>\n * ```\n *\n * @remarks\n * - For external URLs, use a fully qualified URL such as `https://...`.\n * - In the App Router, dynamic routes must not include bracketed segments in `href`.\n */\n href: Url\n\n /**\n * @deprecated v10.0.0: `href` props pointing to a dynamic route are\n * automatically resolved and no longer require the `as` prop.\n */\n as?: Url\n\n /**\n * Replace the current `history` state instead of adding a new URL into the stack.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/about\" replace>\n * About (replaces the history state)\n * </Link>\n * ```\n */\n replace?: boolean\n\n /**\n * Whether to override the default scroll behavior. If `true`, Next.js attempts to maintain\n * the scroll position if the newly navigated page is still visible. If not, it scrolls to the top.\n *\n * If `false`, Next.js will not modify the scroll behavior at all.\n *\n * @defaultValue `true`\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" scroll={false}>\n * No auto scroll\n * </Link>\n * ```\n */\n scroll?: boolean\n\n /**\n * Update the path of the current page without rerunning data fetching methods\n * like `getStaticProps`, `getServerSideProps`, or `getInitialProps`.\n *\n * @remarks\n * `shallow` only applies to the Pages Router. For the App Router, see the\n * [following documentation](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#using-the-native-history-api).\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/blog\" shallow>\n * Shallow navigation\n * </Link>\n * ```\n */\n shallow?: boolean\n\n /**\n * Forces `Link` to pass its `href` to the child component. Useful if the child is a custom\n * component that wraps an `<a>` tag, or if you're using certain styling libraries.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" passHref legacyBehavior>\n * <MyStyledAnchor>Dashboard</MyStyledAnchor>\n * </Link>\n * ```\n */\n passHref?: boolean\n\n /**\n * Prefetch the page in the background.\n * Any `<Link />` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`.\n *\n * @remarks\n * Prefetching is only enabled in production.\n *\n * - In the **App Router**:\n * - `\"auto\"`, `null`, `undefined` (default): Prefetch behavior depends on static vs dynamic routes:\n * - Static routes: fully prefetched\n * - Dynamic routes: partial prefetch to the nearest segment with a `loading.js`\n * - `true`: Always prefetch the full route and data.\n * - `false`: Disable prefetching on both viewport and hover.\n * - In the **Pages Router**:\n * - `true` (default): Prefetches the route and data in the background on viewport or hover.\n * - `false`: Prefetch only on hover, not on viewport.\n *\n * @defaultValue `true` (Pages Router) or `null` (App Router)\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" prefetch={false}>\n * Dashboard\n * </Link>\n * ```\n */\n prefetch?: boolean | 'auto' | null\n\n /**\n * (unstable) Switch to a full prefetch on hover. Effectively the same as\n * updating the prefetch prop to `true` in a mouse event.\n */\n unstable_dynamicOnHover?: boolean\n\n /**\n * The active locale is automatically prepended in the Pages Router. `locale` allows for providing\n * a different locale, or can be set to `false` to opt out of automatic locale behavior.\n *\n * @remarks\n * Note: locale only applies in the Pages Router and is ignored in the App Router.\n *\n * @example\n * ```tsx\n * // Use the 'fr' locale:\n * <Link href=\"/about\" locale=\"fr\">\n * About (French)\n * </Link>\n *\n * // Disable locale prefix:\n * <Link href=\"/about\" locale={false}>\n * About (no locale prefix)\n * </Link>\n * ```\n */\n locale?: string | false\n\n /**\n * Enable legacy link behavior.\n *\n * @deprecated This will be removed in a future version\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n\n /**\n * Optional event handler for when the mouse pointer is moved onto the `<Link>`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is touched.\n */\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is clicked.\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is navigated.\n */\n onNavigate?: OnNavigateEventHandler\n\n /**\n * Transition types to apply when navigating. These types are passed to\n * [`React.addTransitionType`](https://react.dev/reference/react/addTransitionType)\n * inside the navigation transition, enabling\n * [`<ViewTransition>`](https://react.dev/reference/react/ViewTransition) components\n * to apply different animations based on the type of navigation.\n *\n * @example\n * ```tsx\n * <Link href=\"/about\" transitionTypes={['slide-in']}>About</Link>\n * ```\n */\n transitionTypes?: string[]\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when type generation runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps<RouteInferType = any> = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys<LinkProps>\ntype LinkPropsOptional = OptionalKeys<Omit<InternalLinkProps, 'locale'>>\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n href: string,\n linkInstanceRef: React.RefObject<LinkInstance | null>,\n replace?: boolean,\n scroll?: boolean,\n onNavigate?: OnNavigateEventHandler,\n transitionTypes?: string[]\n): void {\n if (typeof window !== 'undefined') {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n if (\n (isAnchorNodeName && isModifiedEvent(e)) ||\n e.currentTarget.hasAttribute('download')\n ) {\n // ignore click for browser’s default behavior\n return\n }\n\n if (!isLocalURL(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault()\n location.replace(href)\n }\n\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n if (onNavigate) {\n let isDefaultPrevented = false\n\n onNavigate({\n preventDefault: () => {\n isDefaultPrevented = true\n },\n })\n\n if (isDefaultPrevented) {\n return\n }\n }\n\n const { dispatchNavigateAction } =\n require('../components/app-router-instance') as typeof import('../components/app-router-instance')\n\n React.startTransition(() => {\n dispatchNavigateAction(\n href,\n replace ? 'replace' : 'push',\n scroll === false ? ScrollBehavior.NoScroll : ScrollBehavior.Default,\n linkInstanceRef.current,\n transitionTypes\n )\n })\n }\n}\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `<a>` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */\nexport default function LinkComponent(\n props: LinkProps & {\n children: React.ReactNode\n ref: React.Ref<HTMLAnchorElement>\n }\n) {\n const [linkStatus, setOptimisticLinkStatus] = useOptimistic(IDLE_LINK_STATUS)\n\n let children: React.ReactNode\n\n const linkInstanceRef = useRef<LinkInstance | null>(null)\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n onNavigate,\n transitionTypes,\n ref: forwardedRef,\n unstable_dynamicOnHover,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = <a>{children}</a>\n }\n\n const router = React.useContext(AppRouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n\n const fetchStrategy =\n prefetchProp !== false\n ? getFetchStrategyFromPrefetchProp(prefetchProp)\n : // TODO: it makes no sense to assign a fetchStrategy when prefetching is disabled.\n FetchStrategy.PPR\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record<LinkPropsRequired, true> = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record<LinkPropsOptional, true> = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true,\n transitionTypes: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart' ||\n key === 'onNavigate'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'legacyBehavior' ||\n key === 'unstable_dynamicOnHover'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else if (key === 'prefetch') {\n if (\n props[key] != null &&\n valType !== 'boolean' &&\n props[key] !== 'auto'\n ) {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType,\n })\n }\n } else if (key === 'transitionTypes') {\n if (props[key] != null && !Array.isArray(props[key])) {\n throw createPropError({\n key,\n expected: '`string[]`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n }\n\n const resolvedHref = asProp || hrefProp\n const formattedHref = formatStringOrUrl(resolvedHref)\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.locale) {\n warnOnce(\n 'The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization'\n )\n }\n if (!asProp) {\n let href: string | undefined\n if (typeof resolvedHref === 'string') {\n href = resolvedHref\n } else if (\n typeof resolvedHref === 'object' &&\n typeof resolvedHref.pathname === 'string'\n ) {\n href = resolvedHref.pathname\n }\n\n if (href) {\n const hasDynamicSegment = href\n .split('/')\n .some((segment) => segment.startsWith('[') && segment.endsWith(']'))\n\n if (hasDynamicSegment) {\n throw new Error(\n `Dynamic href \\`${href}\\` found in <Link> while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`\n )\n }\n }\n }\n }\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if ((children as any)?.$$typeof === Symbol.for('react.lazy')) {\n throw new Error(\n `\\`<Link legacyBehavior>\\` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to <Link> with \\`href\\` of \\`${formattedHref}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to <Link> with \\`href\\` of \\`${formattedHref}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to <Link> with \\`href\\` of \\`${formattedHref}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to <Link> with \\`href\\` of \\`${formattedHref}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted <Link> instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = React.useCallback(\n (element: HTMLAnchorElement | SVGAElement) => {\n if (router !== null) {\n linkInstanceRef.current = mountLinkInstance(\n element,\n formattedHref,\n router,\n fetchStrategy,\n prefetchEnabled,\n setOptimisticLinkStatus\n )\n }\n\n return () => {\n if (linkInstanceRef.current) {\n unmountLinkForCurrentNavigation(linkInstanceRef.current)\n linkInstanceRef.current = null\n }\n unmountPrefetchableInstance(element)\n }\n },\n [\n prefetchEnabled,\n formattedHref,\n router,\n fetchStrategy,\n setOptimisticLinkStatus,\n ]\n )\n\n const mergedRef = useMergedRef(observeLinkVisibilityOnMount, childRef)\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n onMouseEnter: React.MouseEventHandler<HTMLAnchorElement>\n onClick: React.MouseEventHandler<HTMLAnchorElement>\n href?: string\n ref?: any\n } = {\n ref: mergedRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n linkClicked(\n e,\n formattedHref,\n linkInstanceRef,\n replace,\n scroll,\n onNavigate,\n transitionTypes\n )\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled || process.env.NODE_ENV === 'development') {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled) {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n }\n\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if (isAbsoluteUrl(formattedHref)) {\n childProps.href = formattedHref\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n childProps.href = addBasePath(formattedHref)\n }\n\n let link: React.ReactNode\n\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n errorOnce(\n '`legacyBehavior` is deprecated and will be removed in a future ' +\n 'release. A codemod is available to upgrade your components:\\n\\n' +\n 'npx @next/codemod@latest new-link .\\n\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'\n )\n }\n link = React.cloneElement(child, childProps)\n } else {\n link = (\n <a {...restProps} {...childProps}>\n {children}\n </a>\n )\n }\n\n return (\n <LinkStatusContext.Provider value={linkStatus}>\n {link}\n </LinkStatusContext.Provider>\n )\n}\n\nconst LinkStatusContext = createContext<\n typeof PENDING_LINK_STATUS | typeof IDLE_LINK_STATUS\n>(IDLE_LINK_STATUS)\n\nexport const useLinkStatus = () => {\n return useContext(LinkStatusContext)\n}\n\nfunction getFetchStrategyFromPrefetchProp(\n prefetchProp: Exclude<LinkProps['prefetch'], undefined | false>\n): PrefetchTaskFetchStrategy {\n if (process.env.__NEXT_CACHE_COMPONENTS) {\n if (prefetchProp === true) {\n return FetchStrategy.Full\n }\n\n // `null` or `\"auto\"`: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport.\n // This will also include invalid prop values that don't match the types specified here.\n // (although those should've been filtered out by prop validation in dev)\n prefetchProp satisfies null | 'auto'\n return FetchStrategy.PPR\n } else {\n return prefetchProp === null || prefetchProp === 'auto'\n ? // We default to PPR, and we'll discover whether or not the route supports it with the initial prefetch.\n FetchStrategy.PPR\n : // In the old implementation without runtime prefetches, `prefetch={true}` forces all dynamic data to be prefetched.\n // To preserve backwards-compatibility, anything other than `false`, `null`, or `\"auto\"` results in a full prefetch.\n // (although invalid values should've been filtered out by prop validation in dev)\n FetchStrategy.Full\n }\n}\n","import type { ComponentProps } from 'react'\nimport ClientLinkComponent, { type LinkProps, useLinkStatus } from './link'\n\nexport default function LinkComponent(\n props: ComponentProps<typeof ClientLinkComponent>\n) {\n const isLegacyBehavior = props.legacyBehavior\n const childIsHostComponent =\n typeof props.children === 'string' ||\n typeof props.children === 'number' ||\n typeof (props.children as any)?.type === 'string'\n const childIsClientComponent =\n (props.children as any)?.type?.$$typeof ===\n Symbol.for('react.client.reference')\n\n if (isLegacyBehavior && !childIsHostComponent && !childIsClientComponent) {\n if ((props.children as any)?.type?.$$typeof === Symbol.for('react.lazy')) {\n console.error(\n `Using a Lazy Component as a direct child of \\`<Link legacyBehavior>\\` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n } else {\n console.error(\n `Using a Server Component as a direct child of \\`<Link legacyBehavior>\\` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n }\n }\n\n return <ClientLinkComponent {...props} />\n}\n\nexport { type LinkProps, useLinkStatus }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.12.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/node_modules/.pnpm/lucide-react@1.12.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.mjs\",\n \"default\",\n);\n","'use client';\n\nimport { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\nimport { useLucideContext } from './context';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n { color, size, strokeWidth, absoluteStrokeWidth, className = '', children, iconNode, ...rest },\n ref,\n ) => {\n const {\n size: contextSize = 24,\n strokeWidth: contextStrokeWidth = 2,\n absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,\n color: contextColor = 'currentColor',\n className: contextClass = '',\n } = useLucideContext() ?? {};\n\n const calculatedStrokeWidth =\n absoluteStrokeWidth ?? contextAbsoluteStrokeWidth\n ? (Number(strokeWidth ?? contextStrokeWidth) * 24) / Number(size ?? contextSize)\n : strokeWidth ?? contextStrokeWidth;\n\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size ?? contextSize ?? defaultAttributes.width,\n height: size ?? contextSize ?? defaultAttributes.height,\n stroke: color ?? contextColor,\n strokeWidth: calculatedStrokeWidth,\n className: mergeClasses('lucide', contextClass, className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const OpencodeFleetCard = registerClientReference(\n function() { throw new Error(\"Attempted to call OpencodeFleetCard() from the server but OpencodeFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/opencode-fleet-card.tsx\",\n \"OpencodeFleetCard\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const LineageFleetCard = registerClientReference(\n function() { throw new Error(\"Attempted to call LineageFleetCard() from the server but LineageFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/lineage-fleet-card.tsx\",\n \"LineageFleetCard\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const OpenRouterFleetCard = registerClientReference(\n function() { throw new Error(\"Attempted to call OpenRouterFleetCard() from the server but OpenRouterFleetCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/openrouter-fleet-card.tsx\",\n \"OpenRouterFleetCard\",\n);\n","import Link from \"next/link\";\nimport { redirect } from \"next/navigation\";\nimport { Plus, Sparkles, Users } from \"lucide-react\";\nimport { AppShell } from \"@/components/app-shell\";\nimport { CliStatusPanel } from \"@/components/cli-status-panel\";\nimport { HomeStatsCards } from \"@/components/home-stats-cards\";\nimport { PageHeader } from \"@/components/page-header\";\n\nexport const dynamic = \"force-dynamic\";\n\nimport {\n listTemplates,\n listSecrets,\n getSettings,\n getStats,\n DaemonError,\n} from \"@/lib/api\";\nimport type { StatsSummary } from \"@/lib/api/stats\";\nimport type { Template, Secret, Settings as SettingsType } from \"@/lib/types\";\n\ninterface HomeData {\n stats: StatsSummary | null;\n templates: Template[];\n secrets: Secret[];\n settings: SettingsType | null;\n error: string | null;\n}\n\nasync function getHomePageData(): Promise<HomeData> {\n try {\n const [stats, templates, secrets, settings] = await Promise.all([\n getStats().catch(() => null),\n listTemplates(),\n listSecrets(),\n getSettings().catch(() => null),\n ]);\n return { stats, templates, secrets, settings, error: null };\n } catch (err) {\n const error =\n err instanceof DaemonError\n ? err.message\n : \"Failed to reach the Chorus daemon.\";\n return { stats: null, templates: [], secrets: [], settings: null, error };\n }\n}\n\nexport default async function HomePage() {\n const { stats, templates, secrets, settings, error } = await getHomePageData();\n\n // First-run gate: redirect to /onboarding if user has no credentials\n // and hasn't explicitly marked the wizard as completed.\n const onboarded =\n Boolean(settings?.onboarded) || secrets.length > 0;\n if (!error && !onboarded) {\n redirect(\"/onboarding\");\n }\n\n const hasRuns = (stats?.totalRuns ?? 0) > 0;\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 {error && (\n <div className=\"mb-8 rounded-lg border border-destructive/50 bg-destructive/10 p-4\">\n <p className=\"text-sm font-medium text-destructive\">\n Daemon unreachable\n </p>\n <p className=\"mt-1 text-xs text-muted-foreground\">\n {error} Start it with <code>chorus start</code>.\n </p>\n </div>\n )}\n\n {!hasRuns || !stats ? <EmptyHero /> : <ActiveHome stats={stats} />}\n\n <CliStatusPanel />\n\n {templates.length > 0 && (\n <section className=\"mt-12\">\n <div className=\"mb-3 flex items-baseline justify-between\">\n <h2 className=\"text-xs font-semibold uppercase tracking-wider text-muted-foreground\">\n Start from a template\n </h2>\n <Link\n href=\"/templates\"\n className=\"text-xs text-muted-foreground transition hover:text-foreground\"\n >\n Browse all →\n </Link>\n </div>\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3\">\n {templates.slice(0, 6).map((t) => (\n <Link\n key={t.id}\n href={`/new?template=${t.id}`}\n className=\"group rounded-lg border border-border bg-card p-4 transition hover:border-muted-foreground/30\"\n >\n <div className=\"flex items-center gap-2\">\n <Sparkles className=\"h-3.5 w-3.5 text-primary\" />\n <span className=\"text-sm font-medium\">{t.name}</span>\n </div>\n <p className=\"mt-1 line-clamp-2 text-xs leading-relaxed text-muted-foreground\">\n {t.description}\n </p>\n </Link>\n ))}\n </div>\n </section>\n )}\n </div>\n </AppShell>\n );\n}\n\nfunction EmptyHero() {\n return (\n <section className=\"rounded-xl border border-border bg-gradient-to-br from-primary/10 via-card to-card p-6 sm:p-10\">\n <div className=\"grid h-12 w-12 place-items-center rounded-lg bg-primary/15 text-primary\">\n <Users className=\"h-6 w-6\" />\n </div>\n <h1 className=\"mt-5 text-2xl font-semibold tracking-tight\">\n Many voices, one chorus.\n </h1>\n <p className=\"mt-2 max-w-2xl text-sm leading-relaxed text-muted-foreground\">\n Paste a task, pick a template, and watch 2–4 LLMs of different lineages\n peer-review the work before you ship.\n </p>\n <div className=\"mt-6 flex flex-col gap-2 sm:flex-row\">\n <Link\n href=\"/new\"\n className=\"inline-flex h-10 items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition hover:bg-primary/90\"\n >\n <Plus className=\"h-4 w-4\" />\n Start your first run\n </Link>\n <Link\n href=\"/templates\"\n className=\"inline-flex h-10 items-center justify-center gap-2 rounded-md border border-border bg-card px-4 text-sm font-medium transition hover:border-muted-foreground/30\"\n >\n Browse templates\n </Link>\n </div>\n </section>\n );\n}\n\ninterface ActiveHomeProps {\n stats: StatsSummary;\n}\n\nfunction ActiveHome({ stats }: ActiveHomeProps) {\n return (\n <>\n <PageHeader\n eyebrow=\"Home\"\n title=\"Overview\"\n action={\n <Link\n href=\"/new\"\n className=\"inline-flex h-10 items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition hover:bg-primary/90\"\n >\n <Plus className=\"h-4 w-4\" />\n New chat\n </Link>\n }\n />\n\n <section>\n <HomeStatsCards stats={stats} />\n </section>\n </>\n );\n}\n\n","/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n","/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n","/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z',\n key: 'zw3jo',\n },\n ],\n [\n 'path',\n {\n d: 'M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12',\n key: '1wduqc',\n },\n ],\n [\n 'path',\n {\n d: 'M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17',\n key: 'kqbvx6',\n },\n ],\n];\n\n/**\n * @component @name Layers\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oiIC8+CiAgPHBhdGggZD0iTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiIgLz4KICA8cGF0aCBkPSJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layers\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 Layers = createLucideIcon('layers', __iconNode);\n\nexport default Layers;\n","import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\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 Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n];\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgogIDxwYXRoIGQ9Ik0yMCAydjQiIC8+CiAgPHBhdGggZD0iTTIyIDRoLTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkles\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 Sparkles = createLucideIcon('sparkles', __iconNode);\n\nexport default Sparkles;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['path', { d: 'M16 3.128a4 4 0 0 1 0 7.744', key: '16gr8j' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87', key: 'kshegd' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n];\n\n/**\n * @component @name Users\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQiIC8+CiAgPHBhdGggZD0iTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODciIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/users\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 Users = createLucideIcon('users', __iconNode);\n\nexport default Users;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n];\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleCheck = createLucideIcon('circle-check', __iconNode);\n\nexport default CircleCheck;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n];\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('triangle-alert', __iconNode);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\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 Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n];\n\n/**\n * @component @name CircleQuestionMark\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-question-mark\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 CircleQuestionMark = createLucideIcon('circle-question-mark', __iconNode);\n\nexport default CircleQuestionMark;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 22v-5', key: '1ega77' }],\n ['path', { d: 'M15 8V2', key: '18g5xt' }],\n [\n 'path',\n { d: 'M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z', key: '1xoxul' },\n ],\n ['path', { d: 'M9 8V2', key: '14iosj' }],\n];\n\n/**\n * @component @name Plug\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE1IDhWMiIgLz4KICA8cGF0aCBkPSJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoiIC8+CiAgPHBhdGggZD0iTTkgOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/plug\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plug = createLucideIcon('plug', __iconNode);\n\nexport default Plug;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2',\n key: '169zse',\n },\n ],\n];\n\n/**\n * @component @name Activity\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/activity\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 Activity = createLucideIcon('activity', __iconNode);\n\nexport default Activity;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M13.744 17.736a6 6 0 1 1-7.48-7.48', key: 'bq4yh3' }],\n ['path', { d: 'M15 6h1v4', key: '11y1tn' }],\n ['path', { d: 'm6.134 14.768.866-.5 2 3.464', key: '17snzx' }],\n ['circle', { cx: '16', cy: '8', r: '6', key: '14bfc9' }],\n];\n\n/**\n * @component @name Coins\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNzQ0IDE3LjczNmE2IDYgMCAxIDEtNy40OC03LjQ4IiAvPgogIDxwYXRoIGQ9Ik0xNSA2aDF2NCIgLz4KICA8cGF0aCBkPSJtNi4xMzQgMTQuNzY4Ljg2Ni0uNSAyIDMuNDY0IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iOCIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/coins\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 Coins = createLucideIcon('coins', __iconNode);\n\nexport default Coins;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","/**\n * Compact \"fleet status\" panel for the home page.\n *\n * Shows each connected CLI plus its current health (recorded by the runner\n * when error-detector fires). Tells the user at a glance:\n * - which CLIs are wired up\n * - which ones are quota-exhausted (and when they reset)\n * - which ones are auth-broken\n *\n * Server component. Fetches both /orchestrators (connection state) and\n * /cli/health (recent failure state) and merges them.\n */\n\nimport {\n CheckCircle2,\n AlertTriangle,\n Clock,\n CircleHelp,\n Plug,\n} from \"lucide-react\";\nimport { fetchFromDaemon } from \"@/lib/api/client\";\nimport type { ListEnvelope } from \"@/lib/types\";\nimport { lineageDot } from \"@/lib/lineage-maps\";\nimport type { Voice } from \"@/lib/api/voices\";\nimport Link from \"next/link\";\nimport { OpencodeFleetCard } from \"./opencode-fleet-card\";\nimport { LineageFleetCard } from \"./lineage-fleet-card\";\nimport { OpenRouterFleetCard } from \"./openrouter-fleet-card\";\n\ninterface OrchestratorStatus {\n name: string;\n label: string;\n connected: boolean;\n supported: boolean;\n}\n\ninterface CliHealth {\n lineage: string;\n status: \"healthy\" | \"quota_exhausted\" | \"auth_invalid\" | \"rate_limited\" | \"unknown\";\n message?: string;\n resetAt?: number;\n updatedAt: number;\n}\n\n// Map orchestrator name → underlying lineage tag for health lookup.\nconst ORCHESTRATOR_TO_LINEAGE: Record<string, string> = {\n claude: \"anthropic\",\n codex: \"openai\",\n gemini: \"google\",\n opencode: \"opencode\",\n kimi: \"moonshot\",\n};\n\n// Map orchestrator name → voices.provider value for the fleet-card lookup.\n// Single-model CLIs use immutable IDs equal to their provider (e.g.\n// 'claude-code'). The fleet card filters voices by provider to render its\n// per-model toggle list.\nconst ORCHESTRATOR_TO_PROVIDER: Record<string, string> = {\n claude: \"claude-code\",\n codex: \"codex-cli\",\n gemini: \"gemini-cli\",\n kimi: \"kimi-cli\",\n opencode: \"opencode-cli\",\n};\n\nfunction formatResetIn(resetAt?: number): string | null {\n if (!resetAt) return null;\n const ms = resetAt - Date.now();\n if (ms <= 0) return \"now\";\n const mins = Math.round(ms / 60000);\n if (mins < 60) return `in ${mins}m`;\n const hours = Math.round(mins / 60);\n if (hours < 24) return `in ${hours}h`;\n const days = Math.round(hours / 24);\n return `in ${days}d`;\n}\n\nfunction statusBadge(health: CliHealth): React.ReactNode {\n switch (health.status) {\n case \"quota_exhausted\":\n return (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] font-medium text-amber-300\">\n <Clock className=\"h-3 w-3\" />\n Quota exhausted\n {health.resetAt && (\n <span className=\"ml-1 text-amber-200/70\">\n {formatResetIn(health.resetAt)}\n </span>\n )}\n </span>\n );\n case \"auth_invalid\":\n return (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive\">\n <AlertTriangle className=\"h-3 w-3\" />\n Auth broken\n </span>\n );\n case \"rate_limited\":\n return (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] font-medium text-amber-300\">\n <Clock className=\"h-3 w-3\" />\n Rate-limited\n </span>\n );\n case \"healthy\":\n return (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300\">\n <CheckCircle2 className=\"h-3 w-3\" />\n Healthy\n </span>\n );\n case \"unknown\":\n default:\n return (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground\">\n <CircleHelp className=\"h-3 w-3\" />\n Untested\n </span>\n );\n }\n}\n\nexport async function CliStatusPanel() {\n let orchestrators: OrchestratorStatus[] = [];\n let healths: CliHealth[] = [];\n let allVoices: Voice[] = [];\n let openrouterVoices: Voice[] = [];\n try {\n const env = await fetchFromDaemon<ListEnvelope<OrchestratorStatus>>(\n \"/orchestrators\",\n );\n orchestrators = env.items;\n } catch {\n return null;\n }\n try {\n const env = await fetchFromDaemon<ListEnvelope<CliHealth>>(\"/cli/health\");\n healths = env.items;\n } catch {\n healths = [];\n }\n try {\n // Default GET /voices returns ALL rows (enabled + disabled) — fleet\n // cards need both so users can re-enable from the toggle UI.\n const env = await fetchFromDaemon<ListEnvelope<Voice>>(\"/voices?source=cli\");\n allVoices = env.items;\n } catch {\n /* voices load is best-effort */\n }\n try {\n const env = await fetchFromDaemon<ListEnvelope<Voice>>(\n \"/voices?source=api&provider=openrouter\",\n );\n openrouterVoices = env.items;\n } catch {\n /* best-effort */\n }\n\n function voicesForProvider(provider: string): Voice[] {\n return allVoices.filter((v) => v.provider === provider);\n }\n\n const healthByLineage: Record<string, CliHealth> = {};\n for (const h of healths) healthByLineage[h.lineage] = h;\n\n const connectedOrchestrators = orchestrators.filter((o) => o.connected);\n\n // Render the panel if there's any reviewer-eligible voice source —\n // a connected CLI orchestrator OR at least one OpenRouter voice.\n if (connectedOrchestrators.length === 0 && openrouterVoices.length === 0)\n return null;\n\n return (\n <section className=\"mt-10\">\n <div className=\"mb-3 flex items-baseline justify-between\">\n <h2 className=\"text-xs font-semibold uppercase tracking-wider text-muted-foreground\">\n Reviewer fleet\n </h2>\n <Link\n href=\"/connect\"\n className=\"inline-flex items-center gap-1 text-xs text-muted-foreground transition hover:text-foreground\"\n >\n <Plug className=\"h-3 w-3\" />\n Manage connections →\n </Link>\n </div>\n <div className=\"grid grid-cols-1 items-start gap-2 sm:grid-cols-2 lg:grid-cols-3\">\n {connectedOrchestrators.map((o) => {\n const lineage = ORCHESTRATOR_TO_LINEAGE[o.name] ?? o.name;\n const health = healthByLineage[lineage] ?? {\n lineage,\n status: \"unknown\" as const,\n updatedAt: 0,\n };\n // OpenCode is special — gateway-grouped and discovered via\n // `opencode models`. Other CLIs use the generic flat-list card\n // backed by UI_LINEAGE_AVAILABLE_MODELS. Cursor/Windsurf and\n // anything without a curated list fall through to the static\n // info card.\n const provider = ORCHESTRATOR_TO_PROVIDER[o.name];\n if (o.name === \"opencode\") {\n return (\n <OpencodeFleetCard\n key={o.name}\n health={{ status: health.status, message: health.message }}\n voices={voicesForProvider(\"opencode-cli\")}\n />\n );\n }\n if (provider) {\n const providerVoices = voicesForProvider(provider);\n if (providerVoices.length > 0) {\n return (\n <LineageFleetCard\n key={o.name}\n lineage={lineage}\n label={o.label}\n voices={providerVoices}\n health={{ status: health.status, message: health.message }}\n />\n );\n }\n }\n return (\n <div\n key={o.name}\n className=\"flex items-center gap-3 rounded-lg border border-border bg-card p-3\"\n >\n <span\n className={`h-2 w-2 shrink-0 rounded-full ${lineageDot(lineage)}`}\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-sm font-medium\">{o.label}</div>\n <div className=\"mt-0.5\">{statusBadge(health)}</div>\n {health.message && health.status !== \"healthy\" && health.status !== \"unknown\" && (\n <div className=\"mt-1 truncate text-[10px] text-muted-foreground\">\n {health.message}\n </div>\n )}\n </div>\n </div>\n );\n })}\n {openrouterVoices.length > 0 && (\n <OpenRouterFleetCard\n voices={openrouterVoices}\n health={\n healthByLineage[\"openrouter\"]\n ? {\n status: healthByLineage[\"openrouter\"].status,\n message: healthByLineage[\"openrouter\"].message,\n }\n : undefined\n }\n />\n )}\n </div>\n </section>\n );\n}\n","/**\n * Single source of truth for lineage display labels and colour swatches.\n *\n * Two parallel maps because the data flows from two directions:\n * - Templates use the daemon-side YAML schema lineage names (\"anthropic\",\n * \"openai\", \"google\", \"opencode\", \"moonshot\"). UI helpers translate\n * these to the cockpit-side ReviewerLineage names (\"claude\", \"codex\",\n * \"gemini\", \"opencode\", \"kimi\") via UI_LINEAGE_MAP / mapLineage.\n * - Personas use the daemon-side names directly via recommended_lineage.\n *\n * Keep both maps keyed by the daemon-side names; let callers translate\n * inputs once at the boundary and look up via the canonical key.\n */\n\nexport type DaemonLineage =\n | \"anthropic\"\n | \"openai\"\n | \"google\"\n | \"opencode\"\n | \"moonshot\";\n\nexport const LINEAGE_LABEL: Record<DaemonLineage, string> = {\n anthropic: \"Claude\",\n openai: \"Codex\",\n google: \"Gemini\",\n opencode: \"OpenCode\",\n moonshot: \"Kimi\",\n};\n\n/** Tailwind background colour class for the small lineage dot indicator. */\nconst LINEAGE_DOT: Record<DaemonLineage, string> = {\n anthropic: \"bg-violet-400\",\n openai: \"bg-orange-400\",\n google: \"bg-blue-400\",\n opencode: \"bg-emerald-400\",\n moonshot: \"bg-pink-400\",\n};\n\n/** Returns the human label for a lineage, falling back to the raw key. */\nexport function lineageLabel(lineage: string | undefined): string {\n if (!lineage) return \"\";\n return LINEAGE_LABEL[lineage as DaemonLineage] ?? lineage;\n}\n\n/** Returns the dot colour class, falling back to a neutral muted dot. */\nexport function lineageDot(lineage: string | undefined): string {\n if (!lineage) return \"bg-muted\";\n return LINEAGE_DOT[lineage as DaemonLineage] ?? \"bg-muted\";\n}\n\n/**\n * UI-side lineage names — used by cockpit components that operate on the\n * `ReviewerLineage` enum (claude/codex/gemini/opencode/kimi). Kept in sync\n * with the daemon-side maps above; the cockpit calls these directly without\n * a translation step.\n */\nexport type UILineage =\n | \"claude\"\n | \"codex\"\n | \"gemini\"\n | \"opencode\"\n | \"kimi\"\n | \"openrouter\";\n\nexport const UI_LINEAGE_LABEL: Record<UILineage, string> = {\n claude: \"Claude\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n opencode: \"OpenCode\",\n kimi: \"Kimi\",\n // Meta-lineage for HTTP-dispatched voices. The real underlying lineage\n // (anthropic/openai/google/etc.) is preserved on the voices table for\n // diversity scoring; this label is what the cockpit cards show because\n // the runner creates `reviewer-openrouter-N` dirs regardless of the\n // underlying model.\n openrouter: \"OpenRouter\",\n};\n\nconst UI_LINEAGE_DOT: Record<UILineage, string> = {\n claude: \"bg-violet-400\",\n codex: \"bg-orange-400\",\n gemini: \"bg-blue-400\",\n opencode: \"bg-emerald-400\",\n kimi: \"bg-pink-400\",\n // Cyan picked over amber — amber reads as \"warning/in-progress\" in UI\n // convention, which clashed with lineage-as-brand semantics. Cyan is\n // brand-distinct without state ambiguity.\n openrouter: \"bg-cyan-400\",\n};\n\nexport function uiLineageLabel(lineage: string | undefined): string {\n if (!lineage) return \"\";\n return UI_LINEAGE_LABEL[lineage as UILineage] ?? lineage;\n}\n\nexport function uiLineageDot(lineage: string | undefined): string {\n if (!lineage) return \"bg-muted\";\n return UI_LINEAGE_DOT[lineage as UILineage] ?? \"bg-muted\";\n}\n\n/**\n * Default model per UI lineage when a template's `models: []` is empty.\n * Mirrors the per-lineage defaults used by phase-editor and new-template-dialog;\n * lifted here so the run page can show the actual model on cards even when\n * the YAML omits it.\n */\nexport const UI_LINEAGE_DEFAULT_MODEL: Record<UILineage, string> = {\n claude: \"claude-opus-4-7\",\n codex: \"gpt-5.5\",\n gemini: \"gemini-3.1-pro-preview\",\n opencode: \"kimi-k2.6\",\n kimi: \"kimi-k2.6\",\n // No sensible default for openrouter — user explicitly selects a model.\n // Empty string lets `models?.[0] ?? defaultModel` resolve to \"\" which\n // the run page treats as \"no model\" (skips the · model · separator).\n openrouter: \"\",\n};\n\n/**\n * Curated model lists per CLI. Used as a fallback when the CLI doesn't\n * expose a live model-listing command (claude / gemini / kimi today). For\n * codex we run `codex debug models` at seed time and prefer the live\n * catalog; the list below is the safety net if that probe fails.\n *\n * Cross-checked against `opencode models` (which aggregates upstream\n * provider names) and `codex debug models` so entries here are real\n * model ids the corresponding CLI accepts. Don't list speculative names —\n * a wrong entry here is what makes the home page look unprofessional.\n *\n * Order = recommended first; the first entry is the canonical default\n * and matches UI_LINEAGE_DEFAULT_MODEL.\n *\n * OpenCode is omitted because it's always discovered live via\n * `opencode models` (gateway-aware). Cursor/Windsurf are IDE\n * orchestrators with no model selection of their own.\n */\nexport const UI_LINEAGE_AVAILABLE_MODELS: Partial<Record<UILineage, string[]>> = {\n claude: [\n \"claude-opus-4-7\",\n \"claude-sonnet-4-6\",\n \"claude-sonnet-4-5\",\n \"claude-haiku-4-5\",\n \"claude-opus-4-5\",\n ],\n codex: [\n \"gpt-5.5\",\n \"gpt-5.4\",\n \"gpt-5.4-mini\",\n \"gpt-5.3-codex\",\n \"gpt-5.2\",\n ],\n // Gemini list verified 2026-05-04 by `gemini -p \"ok\" --model <X>`.\n // gemini-3-flash returned ModelNotFoundError; only the names below\n // are accepted by the current Gemini CLI version.\n gemini: [\n \"gemini-3.1-pro-preview\",\n \"gemini-2.5-pro\",\n \"gemini-2.5-flash\",\n ],\n // Kimi list cross-checked against the official kimi-cli docs +\n // source (2026-05-04):\n // - CHANGELOG.md: kimi-k2.6, kimi-k2-thinking\n // - klips/klip-6: kimi-k2-thinking-turbo (recommended turbo flagship)\n // - sdks/kimi-sdk/README.md, klips/klip-7: kimi-k2-turbo-preview\n // - Welcome screen dropped hardcoded kimi-k2.5, but it still works\n // Not end-to-end probed because the dedicated kimi CLI needs a\n // separate Moonshot account login; cross-referenced from official docs\n // is the next-best signal.\n // Index 0 must match UI_LINEAGE_DEFAULT_MODEL.kimi to keep the seed's\n // immutable provider row pointed at the same default. kimi-k2.6 has\n // been the chorus default since v0.7; not auto-rotating to the\n // turbo-thinking variant here so existing installs don't silently\n // change behavior. Users can still toggle the turbo entries on.\n kimi: [\n \"kimi-k2.6\",\n \"kimi-k2-thinking-turbo\",\n \"kimi-k2-turbo-preview\",\n \"kimi-k2-thinking\",\n \"kimi-k2.5\",\n ],\n};\n\nexport function uiLineageDefaultModel(lineage: string | undefined): string | undefined {\n if (!lineage) return undefined;\n return UI_LINEAGE_DEFAULT_MODEL[lineage as UILineage];\n}\n\n/**\n * Per-CLI brand identity. ONE place to adjust colors so the violet=Claude,\n * blue=Gemini, etc. mapping never drifts across the run page, template\n * editor, sidebar, and connect surfaces. Add new CLIs here, not in callers.\n */\nexport interface LineageBrand {\n /** 400-shade for solid dots/swatches. */\n dot: string;\n /** 500-shade for ring/border accents. */\n ring: string;\n /** Subtle vertical gradient applied to participant cards. */\n gradient: string;\n}\n\nexport const UI_LINEAGE_BRAND: Record<UILineage, LineageBrand> = {\n claude: {\n dot: \"bg-violet-400\",\n ring: \"ring-violet-400/40\",\n gradient: \"bg-gradient-to-b from-violet-500/15 to-card\",\n },\n codex: {\n dot: \"bg-orange-400\",\n ring: \"ring-orange-400/40\",\n gradient: \"bg-gradient-to-b from-orange-500/15 to-card\",\n },\n gemini: {\n dot: \"bg-blue-400\",\n ring: \"ring-blue-400/40\",\n gradient: \"bg-gradient-to-b from-blue-500/15 to-card\",\n },\n opencode: {\n dot: \"bg-emerald-400\",\n ring: \"ring-emerald-400/40\",\n gradient: \"bg-gradient-to-b from-emerald-500/15 to-card\",\n },\n kimi: {\n dot: \"bg-pink-400\",\n ring: \"ring-pink-400/40\",\n gradient: \"bg-gradient-to-b from-pink-500/15 to-card\",\n },\n openrouter: {\n dot: \"bg-cyan-400\",\n ring: \"ring-cyan-400/40\",\n gradient: \"bg-gradient-to-b from-cyan-500/15 to-card\",\n },\n};\n\n","/**\n * Six stats cards for the home page. Server component — fetches /stats\n * directly from the daemon. Replaces the \"Recent runs\" list when there's\n * any chat data to show; falls back to nothing rendered when totalRuns=0\n * so the EmptyHero takes over.\n */\n\nimport {\n Activity,\n CheckCircle2,\n Clock,\n Coins,\n Layers,\n Sparkles,\n} from \"lucide-react\";\nimport type { StatsSummary } from \"@/lib/api/stats\";\n\ninterface Props {\n stats: StatsSummary;\n}\n\nexport function HomeStatsCards({ stats }: Props) {\n const approvalPct = Math.round(stats.approvalRate * 100);\n\n return (\n <div className=\"grid grid-cols-2 gap-3 lg:grid-cols-3\">\n <StatCard\n icon={<Activity className=\"h-3.5 w-3.5\" />}\n label=\"Runs\"\n value={stats.runsToday.toString()}\n sub={`${stats.totalRuns} total · ${stats.runsWeek} this week`}\n />\n <StatCard\n icon={<CheckCircle2 className=\"h-3.5 w-3.5\" />}\n label=\"Approval rate\"\n value={`${approvalPct}%`}\n sub={statusBreakdown(stats.byStatus)}\n />\n <StatCard\n icon={<Coins className=\"h-3.5 w-3.5\" />}\n label=\"Spend today\"\n value={formatUsd(stats.costTodayUsd)}\n sub={`${formatUsd(stats.totalCostUsd)} all-time · ${formatTokens(stats.totalTokensIn + stats.totalTokensOut)} tok`}\n />\n <StatCard\n icon={<Clock className=\"h-3.5 w-3.5\" />}\n label=\"Avg duration\"\n value={formatDuration(stats.avgDurationMs)}\n sub=\"across finished runs\"\n />\n <StatCard\n icon={<Layers className=\"h-3.5 w-3.5\" />}\n label=\"Reviewer fleet\"\n value={`${stats.enabledVoices}`}\n sub={`across ${stats.activeLineages} lineage${stats.activeLineages === 1 ? \"\" : \"s\"}`}\n />\n <StatCard\n icon={<Sparkles className=\"h-3.5 w-3.5\" />}\n label=\"Top template\"\n value={stats.topTemplate?.id ?? \"—\"}\n sub={\n stats.topTemplate\n ? `${stats.topTemplate.runs} run${stats.topTemplate.runs === 1 ? \"\" : \"s\"}`\n : \"no runs yet\"\n }\n mono\n />\n </div>\n );\n}\n\ninterface StatCardProps {\n icon: React.ReactNode;\n label: string;\n value: string;\n sub: string;\n mono?: boolean;\n}\n\nfunction StatCard({ icon, label, value, sub, mono }: StatCardProps) {\n return (\n <div className=\"rounded-lg border border-border bg-card p-4\">\n <div className=\"flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground\">\n {icon}\n {label}\n </div>\n <div\n className={\n mono\n ? \"mt-2 truncate font-mono text-base font-semibold\"\n : \"mt-2 truncate text-2xl font-semibold tabular-nums\"\n }\n title={value}\n >\n {value}\n </div>\n <div className=\"mt-1 text-[11px] text-muted-foreground\">{sub}</div>\n </div>\n );\n}\n\nfunction statusBreakdown(byStatus: Record<string, number>): string {\n const order: ReadonlyArray<keyof typeof byStatus> = [\n \"approved\",\n \"merged\",\n \"blocked\",\n \"failed\",\n \"no_review\",\n \"cancelled\",\n \"drafting\",\n \"reviewing\",\n ];\n const parts: string[] = [];\n for (const k of order) {\n const n = byStatus[k];\n if (n) parts.push(`${n} ${k}`);\n }\n return parts.length === 0 ? \"no runs yet\" : parts.join(\" · \");\n}\n\nfunction formatUsd(amount: number): string {\n if (amount === 0) return \"$0\";\n // Sub-cent spend rounds to \"$0.00\" or \"$0.0000\" — both look like\n // \"we spent literally nothing\". \"<$0.01\" reads as \"real but tiny\",\n // matching the run-page card convention.\n if (amount < 0.01) return \"<$0.01\";\n if (amount < 1) return `$${amount.toFixed(3)}`;\n return `$${amount.toFixed(2)}`;\n}\n\nfunction formatTokens(n: number): string {\n if (n < 1000) return `${n}`;\n if (n < 1_000_000) return `${(n / 1000).toFixed(1)}k`;\n return `${(n / 1_000_000).toFixed(1)}M`;\n}\n\nfunction formatDuration(ms: number): string {\n if (ms === 0) return \"—\";\n if (ms < 1000) return `${ms}ms`;\n const sec = ms / 1000;\n if (sec < 60) return `${sec.toFixed(1)}s`;\n const min = sec / 60;\n if (min < 60) return `${min.toFixed(1)}m`;\n return `${(min / 60).toFixed(1)}h`;\n}\n","// Stats client — talks to /stats on the daemon. Aggregates everything\n// the home page needs in one round-trip. See routes/stats.ts for shape.\n\nimport { fetchFromDaemon } from \"./client\";\n\nexport interface StatsSummary {\n totalRuns: number;\n runsToday: number;\n runsWeek: number;\n byStatus: Record<string, number>;\n approvalRate: number;\n avgDurationMs: number;\n topTemplate: { id: string; runs: number } | null;\n totalCostUsd: number;\n costTodayUsd: number;\n totalTokensIn: number;\n totalTokensOut: number;\n enabledVoices: number;\n activeLineages: number;\n}\n\nexport async function getStats(): Promise<StatsSummary> {\n return fetchFromDaemon<StatsSummary>(\"/stats\");\n}\n"],"names":["createClientModuleProxy","__turbopack_context__","n","LinkComponent","useLinkStatus","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","linkClicked","e","href","linkInstanceRef","replace","scroll","onNavigate","transitionTypes","window","nodeName","isAnchorNodeName","toUpperCase","hasAttribute","isLocalURL","preventDefault","location","isDefaultPrevented","dispatchNavigateAction","require","React","startTransition","ScrollBehavior","NoScroll","Default","current","formatStringOrUrl","urlObjOrString","formatUrl","props","linkStatus","setOptimisticLinkStatus","useOptimistic","IDLE_LINK_STATUS","children","useRef","hrefProp","as","asProp","childrenProp","prefetch","prefetchProp","passHref","shallow","onClick","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","legacyBehavior","ref","forwardedRef","unstable_dynamicOnHover","restProps","a","router","useContext","AppRouterContext","prefetchEnabled","fetchStrategy","getFetchStrategyFromPrefetchProp","FetchStrategy","PPR","process","env","NODE_ENV","createPropError","args","Error","key","expected","actual","requiredPropsGuard","requiredProps","Object","keys","forEach","_","optionalPropsGuard","optionalProps","valType","Array","isArray","resolvedHref","formattedHref","locale","warnOnce","pathname","hasDynamicSegment","split","some","segment","startsWith","endsWith","child","$$typeof","Symbol","for","console","warn","Children","only","err","type","childRef","observeLinkVisibilityOnMount","useCallback","element","mountLinkInstance","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","mergedRef","useMergedRef","childProps","defaultPrevented","upgradeToDynamicPrefetch","onNavigationIntent","__NEXT_LINK_NO_TOUCH_START","undefined","isAbsoluteUrl","addBasePath","link","errorOnce","cloneElement","LinkStatusContext","Provider","value","createContext","__NEXT_CACHE_COMPONENTS","Full","isLegacyBehavior","childIsHostComponent","childIsClientComponent","error","ClientLinkComponent","OpencodeFleetCard","LineageFleetCard","OpenRouterFleetCard"],"mappings":"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","ignoreList":[0,2,3,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]}