aigetwey 1.4.2 → 1.4.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 (1829) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +8 -1
  3. package/dashboard/.next/standalone/.next/BUILD_ID +1 -0
  4. package/dashboard/.next/standalone/.next/build-manifest.json +22 -0
  5. package/dashboard/.next/standalone/.next/required-server-files.json +338 -0
  6. package/dashboard/.next/standalone/.next/server/app/(console)/combos/page_client-reference-manifest.js +3 -0
  7. package/dashboard/.next/standalone/.next/server/app/(console)/config/page_client-reference-manifest.js +3 -0
  8. package/dashboard/.next/standalone/.next/server/app/(console)/console/page_client-reference-manifest.js +3 -0
  9. package/dashboard/.next/standalone/.next/server/app/(console)/endpoint/page_client-reference-manifest.js +3 -0
  10. package/dashboard/.next/standalone/.next/server/app/(console)/keys/page_client-reference-manifest.js +3 -0
  11. package/dashboard/.next/standalone/.next/server/app/(console)/page_client-reference-manifest.js +3 -0
  12. package/dashboard/.next/standalone/.next/server/app/(console)/providers/[id]/page_client-reference-manifest.js +3 -0
  13. package/dashboard/.next/standalone/.next/server/app/(console)/providers/page_client-reference-manifest.js +3 -0
  14. package/dashboard/.next/standalone/.next/server/app/(console)/quota/page_client-reference-manifest.js +3 -0
  15. package/dashboard/.next/standalone/.next/server/app/(console)/tools/[id]/page_client-reference-manifest.js +3 -0
  16. package/dashboard/.next/standalone/.next/server/app/(console)/tools/page_client-reference-manifest.js +3 -0
  17. package/dashboard/.next/standalone/.next/server/app/(console)/usage/page_client-reference-manifest.js +3 -0
  18. package/dashboard/.next/standalone/.next/server/app/_global-error.html +1 -0
  19. package/dashboard/.next/standalone/.next/server/app/_global-error.rsc +14 -0
  20. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  21. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  22. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  23. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  24. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  25. package/dashboard/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  26. package/dashboard/.next/standalone/.next/server/app/_not-found.html +1 -0
  27. package/dashboard/.next/standalone/.next/server/app/_not-found.rsc +20 -0
  28. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +20 -0
  29. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  30. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +9 -0
  31. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  32. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  33. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
  34. package/dashboard/.next/standalone/.next/server/app/combos.html +1 -0
  35. package/dashboard/.next/standalone/.next/server/app/combos.rsc +25 -0
  36. package/dashboard/.next/standalone/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos/__PAGE__.segment.rsc +6 -0
  37. package/dashboard/.next/standalone/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos.segment.rsc +5 -0
  38. package/dashboard/.next/standalone/.next/server/app/combos.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  39. package/dashboard/.next/standalone/.next/server/app/combos.segments/_full.segment.rsc +25 -0
  40. package/dashboard/.next/standalone/.next/server/app/combos.segments/_head.segment.rsc +6 -0
  41. package/dashboard/.next/standalone/.next/server/app/combos.segments/_index.segment.rsc +9 -0
  42. package/dashboard/.next/standalone/.next/server/app/combos.segments/_tree.segment.rsc +5 -0
  43. package/dashboard/.next/standalone/.next/server/app/config.html +1 -0
  44. package/dashboard/.next/standalone/.next/server/app/config.rsc +25 -0
  45. package/dashboard/.next/standalone/.next/server/app/config.segments/!KGNvbnNvbGUp/config/__PAGE__.segment.rsc +6 -0
  46. package/dashboard/.next/standalone/.next/server/app/config.segments/!KGNvbnNvbGUp/config.segment.rsc +5 -0
  47. package/dashboard/.next/standalone/.next/server/app/config.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  48. package/dashboard/.next/standalone/.next/server/app/config.segments/_full.segment.rsc +25 -0
  49. package/dashboard/.next/standalone/.next/server/app/config.segments/_head.segment.rsc +6 -0
  50. package/dashboard/.next/standalone/.next/server/app/config.segments/_index.segment.rsc +9 -0
  51. package/dashboard/.next/standalone/.next/server/app/config.segments/_tree.segment.rsc +5 -0
  52. package/dashboard/.next/standalone/.next/server/app/console.html +1 -0
  53. package/dashboard/.next/standalone/.next/server/app/console.rsc +28 -0
  54. package/dashboard/.next/standalone/.next/server/app/console.segments/!KGNvbnNvbGUp/console/__PAGE__.segment.rsc +9 -0
  55. package/dashboard/.next/standalone/.next/server/app/console.segments/!KGNvbnNvbGUp/console.segment.rsc +5 -0
  56. package/dashboard/.next/standalone/.next/server/app/console.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  57. package/dashboard/.next/standalone/.next/server/app/console.segments/_full.segment.rsc +28 -0
  58. package/dashboard/.next/standalone/.next/server/app/console.segments/_head.segment.rsc +6 -0
  59. package/dashboard/.next/standalone/.next/server/app/console.segments/_index.segment.rsc +9 -0
  60. package/dashboard/.next/standalone/.next/server/app/console.segments/_tree.segment.rsc +5 -0
  61. package/dashboard/.next/standalone/.next/server/app/endpoint.html +1 -0
  62. package/dashboard/.next/standalone/.next/server/app/endpoint.rsc +25 -0
  63. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint/__PAGE__.segment.rsc +6 -0
  64. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint.segment.rsc +5 -0
  65. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  66. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_full.segment.rsc +25 -0
  67. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_head.segment.rsc +6 -0
  68. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_index.segment.rsc +9 -0
  69. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_tree.segment.rsc +5 -0
  70. package/dashboard/.next/standalone/.next/server/app/index.html +1 -0
  71. package/dashboard/.next/standalone/.next/server/app/index.rsc +23 -0
  72. package/dashboard/.next/standalone/.next/server/app/index.segments/!KGNvbnNvbGUp/__PAGE__.segment.rsc +6 -0
  73. package/dashboard/.next/standalone/.next/server/app/index.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  74. package/dashboard/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +23 -0
  75. package/dashboard/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +6 -0
  76. package/dashboard/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +9 -0
  77. package/dashboard/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +5 -0
  78. package/dashboard/.next/standalone/.next/server/app/keys.html +1 -0
  79. package/dashboard/.next/standalone/.next/server/app/keys.rsc +25 -0
  80. package/dashboard/.next/standalone/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys/__PAGE__.segment.rsc +6 -0
  81. package/dashboard/.next/standalone/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys.segment.rsc +5 -0
  82. package/dashboard/.next/standalone/.next/server/app/keys.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  83. package/dashboard/.next/standalone/.next/server/app/keys.segments/_full.segment.rsc +25 -0
  84. package/dashboard/.next/standalone/.next/server/app/keys.segments/_head.segment.rsc +6 -0
  85. package/dashboard/.next/standalone/.next/server/app/keys.segments/_index.segment.rsc +9 -0
  86. package/dashboard/.next/standalone/.next/server/app/keys.segments/_tree.segment.rsc +5 -0
  87. package/dashboard/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +3 -0
  88. package/dashboard/.next/standalone/.next/server/app/login.html +1 -0
  89. package/dashboard/.next/standalone/.next/server/app/login.rsc +26 -0
  90. package/dashboard/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +26 -0
  91. package/dashboard/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +6 -0
  92. package/dashboard/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +9 -0
  93. package/dashboard/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +5 -0
  94. package/dashboard/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +9 -0
  95. package/dashboard/.next/standalone/.next/server/app/login.segments/login.segment.rsc +5 -0
  96. package/dashboard/.next/standalone/.next/server/app/providers.html +1 -0
  97. package/dashboard/.next/standalone/.next/server/app/providers.rsc +25 -0
  98. package/dashboard/.next/standalone/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers/__PAGE__.segment.rsc +6 -0
  99. package/dashboard/.next/standalone/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers.segment.rsc +5 -0
  100. package/dashboard/.next/standalone/.next/server/app/providers.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  101. package/dashboard/.next/standalone/.next/server/app/providers.segments/_full.segment.rsc +25 -0
  102. package/dashboard/.next/standalone/.next/server/app/providers.segments/_head.segment.rsc +6 -0
  103. package/dashboard/.next/standalone/.next/server/app/providers.segments/_index.segment.rsc +9 -0
  104. package/dashboard/.next/standalone/.next/server/app/providers.segments/_tree.segment.rsc +5 -0
  105. package/dashboard/.next/standalone/.next/server/app/quota.html +1 -0
  106. package/dashboard/.next/standalone/.next/server/app/quota.rsc +25 -0
  107. package/dashboard/.next/standalone/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota/__PAGE__.segment.rsc +6 -0
  108. package/dashboard/.next/standalone/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota.segment.rsc +5 -0
  109. package/dashboard/.next/standalone/.next/server/app/quota.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  110. package/dashboard/.next/standalone/.next/server/app/quota.segments/_full.segment.rsc +25 -0
  111. package/dashboard/.next/standalone/.next/server/app/quota.segments/_head.segment.rsc +6 -0
  112. package/dashboard/.next/standalone/.next/server/app/quota.segments/_index.segment.rsc +9 -0
  113. package/dashboard/.next/standalone/.next/server/app/quota.segments/_tree.segment.rsc +5 -0
  114. package/dashboard/.next/standalone/.next/server/app/tools.html +1 -0
  115. package/dashboard/.next/standalone/.next/server/app/tools.rsc +25 -0
  116. package/dashboard/.next/standalone/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools/__PAGE__.segment.rsc +6 -0
  117. package/dashboard/.next/standalone/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools.segment.rsc +5 -0
  118. package/dashboard/.next/standalone/.next/server/app/tools.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
  119. package/dashboard/.next/standalone/.next/server/app/tools.segments/_full.segment.rsc +25 -0
  120. package/dashboard/.next/standalone/.next/server/app/tools.segments/_head.segment.rsc +6 -0
  121. package/dashboard/.next/standalone/.next/server/app/tools.segments/_index.segment.rsc +9 -0
  122. package/dashboard/.next/standalone/.next/server/app/tools.segments/_tree.segment.rsc +5 -0
  123. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__0-6ukjk._.js +3 -0
  124. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__07euc03._.js +3 -0
  125. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__082azhr._.js +3 -0
  126. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__0das32e._.js +3 -0
  127. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__0pp7rn-._.js +3 -0
  128. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__0uqpr_c._.js +3 -0
  129. package/dashboard/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zf4yft._.js +27 -0
  130. package/dashboard/.next/standalone/.next/server/chunks/ssr/_0p90gyy._.js +3 -0
  131. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_10h9ide._.js +3 -0
  132. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_ProviderDetail_tsx_06sxu0r._.js +3 -0
  133. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js +3 -0
  134. package/dashboard/.next/standalone/.next/server/middleware-build-manifest.js +22 -0
  135. package/dashboard/.next/standalone/.next/server/pages/404.html +1 -0
  136. package/dashboard/.next/standalone/.next/server/pages/500.html +1 -0
  137. package/dashboard/.next/standalone/package.json +32 -0
  138. package/dashboard/.next/standalone/server.js +38 -0
  139. package/dashboard/.next/standalone/vendor/@img/colour/color.cjs +1596 -0
  140. package/dashboard/.next/standalone/vendor/@img/colour/index.cjs +1 -0
  141. package/dashboard/.next/standalone/vendor/@img/colour/package.json +58 -0
  142. package/dashboard/.next/standalone/vendor/@img/sharp-libvips-linux-x64/README.md +46 -0
  143. package/dashboard/.next/standalone/vendor/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  144. package/dashboard/.next/standalone/vendor/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
  145. package/dashboard/.next/standalone/vendor/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  146. package/dashboard/.next/standalone/vendor/@img/sharp-libvips-linux-x64/package.json +42 -0
  147. package/dashboard/.next/standalone/vendor/@img/sharp-libvips-linux-x64/versions.json +30 -0
  148. package/dashboard/.next/standalone/vendor/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  149. package/dashboard/.next/standalone/vendor/@img/sharp-linux-x64/package.json +46 -0
  150. package/dashboard/.next/standalone/vendor/@next/env/dist/index.js +1 -0
  151. package/dashboard/.next/standalone/vendor/@next/env/package.json +36 -0
  152. package/dashboard/.next/standalone/vendor/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  153. package/dashboard/.next/standalone/vendor/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  154. package/dashboard/.next/standalone/vendor/@swc/helpers/package.json +471 -0
  155. package/dashboard/.next/standalone/vendor/client-only/package.json +19 -0
  156. package/dashboard/.next/standalone/vendor/detect-libc/lib/detect-libc.js +313 -0
  157. package/dashboard/.next/standalone/vendor/detect-libc/lib/elf.js +39 -0
  158. package/dashboard/.next/standalone/vendor/detect-libc/lib/filesystem.js +51 -0
  159. package/dashboard/.next/standalone/vendor/detect-libc/lib/process.js +24 -0
  160. package/dashboard/.next/standalone/vendor/detect-libc/package.json +44 -0
  161. package/dashboard/.next/standalone/vendor/next/dist/build/adapter/setup-node-env.external.js +15 -0
  162. package/dashboard/.next/standalone/vendor/next/dist/build/define-env.js +255 -0
  163. package/dashboard/.next/standalone/vendor/next/dist/build/duration-to-string.js +99 -0
  164. package/dashboard/.next/standalone/vendor/next/dist/build/get-supported-browsers.js +38 -0
  165. package/dashboard/.next/standalone/vendor/next/dist/build/next-config-ts/require-hook.js +85 -0
  166. package/dashboard/.next/standalone/vendor/next/dist/build/next-config-ts/transpile-config.js +251 -0
  167. package/dashboard/.next/standalone/vendor/next/dist/build/output/format.js +84 -0
  168. package/dashboard/.next/standalone/vendor/next/dist/build/output/log.js +135 -0
  169. package/dashboard/.next/standalone/vendor/next/dist/build/segment-config/app/app-segment-config.js +162 -0
  170. package/dashboard/.next/standalone/vendor/next/dist/build/segment-config/app/app-segments.js +137 -0
  171. package/dashboard/.next/standalone/vendor/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
  172. package/dashboard/.next/standalone/vendor/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
  173. package/dashboard/.next/standalone/vendor/next/dist/build/static-paths/app.js +736 -0
  174. package/dashboard/.next/standalone/vendor/next/dist/build/static-paths/pages.js +169 -0
  175. package/dashboard/.next/standalone/vendor/next/dist/build/static-paths/utils.js +119 -0
  176. package/dashboard/.next/standalone/vendor/next/dist/build/swc/helpers.js +15 -0
  177. package/dashboard/.next/standalone/vendor/next/dist/build/swc/index.js +1348 -0
  178. package/dashboard/.next/standalone/vendor/next/dist/build/swc/install-bindings.js +30 -0
  179. package/dashboard/.next/standalone/vendor/next/dist/build/swc/jest-transformer.js +76 -0
  180. package/dashboard/.next/standalone/vendor/next/dist/build/swc/loaderWorkerPool.js +40 -0
  181. package/dashboard/.next/standalone/vendor/next/dist/build/swc/options.js +403 -0
  182. package/dashboard/.next/standalone/vendor/next/dist/build/swc/types.js +6 -0
  183. package/dashboard/.next/standalone/vendor/next/dist/build/utils.js +1216 -0
  184. package/dashboard/.next/standalone/vendor/next/dist/cli/next-test.js +170 -0
  185. package/dashboard/.next/standalone/vendor/next/dist/client/add-base-path.js +24 -0
  186. package/dashboard/.next/standalone/vendor/next/dist/client/app-call-server.js +34 -0
  187. package/dashboard/.next/standalone/vendor/next/dist/client/app-find-source-map-url.js +39 -0
  188. package/dashboard/.next/standalone/vendor/next/dist/client/assign-location.js +29 -0
  189. package/dashboard/.next/standalone/vendor/next/dist/client/components/app-router-announcer.js +78 -0
  190. package/dashboard/.next/standalone/vendor/next/dist/client/components/app-router-headers.js +138 -0
  191. package/dashboard/.next/standalone/vendor/next/dist/client/components/app-router-instance.js +397 -0
  192. package/dashboard/.next/standalone/vendor/next/dist/client/components/app-router-utils.js +62 -0
  193. package/dashboard/.next/standalone/vendor/next/dist/client/components/app-router.js +514 -0
  194. package/dashboard/.next/standalone/vendor/next/dist/client/components/builtin/default.js +35 -0
  195. package/dashboard/.next/standalone/vendor/next/dist/client/components/builtin/error-styles.js +165 -0
  196. package/dashboard/.next/standalone/vendor/next/dist/client/components/builtin/global-error.js +100 -0
  197. package/dashboard/.next/standalone/vendor/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
  198. package/dashboard/.next/standalone/vendor/next/dist/client/components/error-boundary.js +144 -0
  199. package/dashboard/.next/standalone/vendor/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
  200. package/dashboard/.next/standalone/vendor/next/dist/client/components/errors/root-error-boundary.js +41 -0
  201. package/dashboard/.next/standalone/vendor/next/dist/client/components/forbidden.js +48 -0
  202. package/dashboard/.next/standalone/vendor/next/dist/client/components/handle-isr-error.js +30 -0
  203. package/dashboard/.next/standalone/vendor/next/dist/client/components/hooks-server-context.js +42 -0
  204. package/dashboard/.next/standalone/vendor/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
  205. package/dashboard/.next/standalone/vendor/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
  206. package/dashboard/.next/standalone/vendor/next/dist/client/components/is-next-router-error.js +23 -0
  207. package/dashboard/.next/standalone/vendor/next/dist/client/components/links.js +299 -0
  208. package/dashboard/.next/standalone/vendor/next/dist/client/components/match-segments.js +32 -0
  209. package/dashboard/.next/standalone/vendor/next/dist/client/components/nav-failure-handler.js +61 -0
  210. package/dashboard/.next/standalone/vendor/next/dist/client/components/navigation-devtools.js +126 -0
  211. package/dashboard/.next/standalone/vendor/next/dist/client/components/navigation-untracked.js +67 -0
  212. package/dashboard/.next/standalone/vendor/next/dist/client/components/navigation.js +225 -0
  213. package/dashboard/.next/standalone/vendor/next/dist/client/components/navigation.react-server.js +75 -0
  214. package/dashboard/.next/standalone/vendor/next/dist/client/components/not-found.js +42 -0
  215. package/dashboard/.next/standalone/vendor/next/dist/client/components/readonly-url-search-params.js +41 -0
  216. package/dashboard/.next/standalone/vendor/next/dist/client/components/redirect-boundary.js +107 -0
  217. package/dashboard/.next/standalone/vendor/next/dist/client/components/redirect-error.js +43 -0
  218. package/dashboard/.next/standalone/vendor/next/dist/client/components/redirect-status-code.js +24 -0
  219. package/dashboard/.next/standalone/vendor/next/dist/client/components/redirect.js +91 -0
  220. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/compute-changed-path.js +201 -0
  221. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
  222. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/create-initial-router-state.js +153 -0
  223. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
  224. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/fetch-server-response.js +457 -0
  225. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +59 -0
  226. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/ppr-navigations.js +1341 -0
  227. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
  228. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
  229. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
  230. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +23 -0
  231. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
  232. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +83 -0
  233. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/restore-reducer.js +62 -0
  234. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +320 -0
  235. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +58 -0
  236. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
  237. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/router-reducer.js +66 -0
  238. package/dashboard/.next/standalone/vendor/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +66 -0
  239. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/bfcache.js +128 -0
  240. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/cache-key.js +28 -0
  241. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/cache-map.js +305 -0
  242. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/cache.js +1933 -0
  243. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/lru.js +152 -0
  244. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
  245. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/navigation.js +597 -0
  246. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
  247. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/prefetch.js +31 -0
  248. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/scheduler.js +1249 -0
  249. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/types.js +69 -0
  250. package/dashboard/.next/standalone/vendor/next/dist/client/components/segment-cache/vary-path.js +278 -0
  251. package/dashboard/.next/standalone/vendor/next/dist/client/components/static-generation-bailout.js +42 -0
  252. package/dashboard/.next/standalone/vendor/next/dist/client/components/unauthorized.js +49 -0
  253. package/dashboard/.next/standalone/vendor/next/dist/client/components/unrecognized-action-error.js +39 -0
  254. package/dashboard/.next/standalone/vendor/next/dist/client/components/unresolved-thenable.js +23 -0
  255. package/dashboard/.next/standalone/vendor/next/dist/client/components/unstable-rethrow.browser.js +28 -0
  256. package/dashboard/.next/standalone/vendor/next/dist/client/components/unstable-rethrow.js +25 -0
  257. package/dashboard/.next/standalone/vendor/next/dist/client/components/unstable-rethrow.server.js +32 -0
  258. package/dashboard/.next/standalone/vendor/next/dist/client/components/use-action-queue.js +148 -0
  259. package/dashboard/.next/standalone/vendor/next/dist/client/dev/debug-channel.js +172 -0
  260. package/dashboard/.next/standalone/vendor/next/dist/client/flight-data-helpers.js +232 -0
  261. package/dashboard/.next/standalone/vendor/next/dist/client/has-base-path.js +23 -0
  262. package/dashboard/.next/standalone/vendor/next/dist/client/lib/console.js +177 -0
  263. package/dashboard/.next/standalone/vendor/next/dist/client/lib/javascript-url.js +32 -0
  264. package/dashboard/.next/standalone/vendor/next/dist/client/navigation-build-id.js +53 -0
  265. package/dashboard/.next/standalone/vendor/next/dist/client/normalize-trailing-slash.js +36 -0
  266. package/dashboard/.next/standalone/vendor/next/dist/client/remove-base-path.js +32 -0
  267. package/dashboard/.next/standalone/vendor/next/dist/client/route-params.js +247 -0
  268. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
  269. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
  270. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
  271. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
  272. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
  273. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
  274. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
  275. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
  276. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
  277. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
  278. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
  279. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
  280. package/dashboard/.next/standalone/vendor/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
  281. package/dashboard/.next/standalone/vendor/next/dist/compiled/@hapi/accept/index.js +1 -0
  282. package/dashboard/.next/standalone/vendor/next/dist/compiled/@hapi/accept/package.json +1 -0
  283. package/dashboard/.next/standalone/vendor/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
  284. package/dashboard/.next/standalone/vendor/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
  285. package/dashboard/.next/standalone/vendor/next/dist/compiled/@napi-rs/triples/index.js +1 -0
  286. package/dashboard/.next/standalone/vendor/next/dist/compiled/@napi-rs/triples/package.json +1 -0
  287. package/dashboard/.next/standalone/vendor/next/dist/compiled/@opentelemetry/api/index.js +1 -0
  288. package/dashboard/.next/standalone/vendor/next/dist/compiled/@opentelemetry/api/package.json +1 -0
  289. package/dashboard/.next/standalone/vendor/next/dist/compiled/async-retry/index.js +1 -0
  290. package/dashboard/.next/standalone/vendor/next/dist/compiled/async-retry/package.json +1 -0
  291. package/dashboard/.next/standalone/vendor/next/dist/compiled/async-sema/index.js +1 -0
  292. package/dashboard/.next/standalone/vendor/next/dist/compiled/async-sema/package.json +1 -0
  293. package/dashboard/.next/standalone/vendor/next/dist/compiled/busboy/index.js +1 -0
  294. package/dashboard/.next/standalone/vendor/next/dist/compiled/busboy/package.json +1 -0
  295. package/dashboard/.next/standalone/vendor/next/dist/compiled/bytes/index.js +8 -0
  296. package/dashboard/.next/standalone/vendor/next/dist/compiled/bytes/package.json +1 -0
  297. package/dashboard/.next/standalone/vendor/next/dist/compiled/ci-info/index.js +1 -0
  298. package/dashboard/.next/standalone/vendor/next/dist/compiled/ci-info/package.json +1 -0
  299. package/dashboard/.next/standalone/vendor/next/dist/compiled/commander/index.js +1 -0
  300. package/dashboard/.next/standalone/vendor/next/dist/compiled/commander/package.json +1 -0
  301. package/dashboard/.next/standalone/vendor/next/dist/compiled/comment-json/index.js +7 -0
  302. package/dashboard/.next/standalone/vendor/next/dist/compiled/comment-json/package.json +1 -0
  303. package/dashboard/.next/standalone/vendor/next/dist/compiled/compression/index.js +58 -0
  304. package/dashboard/.next/standalone/vendor/next/dist/compiled/compression/package.json +1 -0
  305. package/dashboard/.next/standalone/vendor/next/dist/compiled/conf/index.js +15 -0
  306. package/dashboard/.next/standalone/vendor/next/dist/compiled/conf/package.json +1 -0
  307. package/dashboard/.next/standalone/vendor/next/dist/compiled/content-disposition/index.js +6 -0
  308. package/dashboard/.next/standalone/vendor/next/dist/compiled/content-disposition/package.json +1 -0
  309. package/dashboard/.next/standalone/vendor/next/dist/compiled/cookie/index.js +7 -0
  310. package/dashboard/.next/standalone/vendor/next/dist/compiled/cookie/package.json +1 -0
  311. package/dashboard/.next/standalone/vendor/next/dist/compiled/cross-spawn/index.js +1 -0
  312. package/dashboard/.next/standalone/vendor/next/dist/compiled/cross-spawn/package.json +1 -0
  313. package/dashboard/.next/standalone/vendor/next/dist/compiled/debug/index.js +1 -0
  314. package/dashboard/.next/standalone/vendor/next/dist/compiled/debug/package.json +1 -0
  315. package/dashboard/.next/standalone/vendor/next/dist/compiled/edge-runtime/index.js +1 -0
  316. package/dashboard/.next/standalone/vendor/next/dist/compiled/edge-runtime/package.json +1 -0
  317. package/dashboard/.next/standalone/vendor/next/dist/compiled/find-up/index.js +1 -0
  318. package/dashboard/.next/standalone/vendor/next/dist/compiled/find-up/package.json +1 -0
  319. package/dashboard/.next/standalone/vendor/next/dist/compiled/fresh/index.js +8 -0
  320. package/dashboard/.next/standalone/vendor/next/dist/compiled/fresh/package.json +1 -0
  321. package/dashboard/.next/standalone/vendor/next/dist/compiled/http-proxy/index.js +34 -0
  322. package/dashboard/.next/standalone/vendor/next/dist/compiled/http-proxy/package.json +1 -0
  323. package/dashboard/.next/standalone/vendor/next/dist/compiled/image-detector/detector.js +1 -0
  324. package/dashboard/.next/standalone/vendor/next/dist/compiled/image-size/index.js +1 -0
  325. package/dashboard/.next/standalone/vendor/next/dist/compiled/image-size/package.json +1 -0
  326. package/dashboard/.next/standalone/vendor/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
  327. package/dashboard/.next/standalone/vendor/next/dist/compiled/ipaddr.js/package.json +1 -0
  328. package/dashboard/.next/standalone/vendor/next/dist/compiled/is-animated/index.js +1 -0
  329. package/dashboard/.next/standalone/vendor/next/dist/compiled/is-animated/package.json +1 -0
  330. package/dashboard/.next/standalone/vendor/next/dist/compiled/is-docker/index.js +1 -0
  331. package/dashboard/.next/standalone/vendor/next/dist/compiled/is-docker/package.json +1 -0
  332. package/dashboard/.next/standalone/vendor/next/dist/compiled/is-wsl/index.js +1 -0
  333. package/dashboard/.next/standalone/vendor/next/dist/compiled/is-wsl/package.json +1 -0
  334. package/dashboard/.next/standalone/vendor/next/dist/compiled/jsonwebtoken/index.js +11 -0
  335. package/dashboard/.next/standalone/vendor/next/dist/compiled/jsonwebtoken/package.json +1 -0
  336. package/dashboard/.next/standalone/vendor/next/dist/compiled/nanoid/index.cjs +1 -0
  337. package/dashboard/.next/standalone/vendor/next/dist/compiled/nanoid/package.json +1 -0
  338. package/dashboard/.next/standalone/vendor/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +54 -0
  339. package/dashboard/.next/standalone/vendor/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +54 -0
  340. package/dashboard/.next/standalone/vendor/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
  341. package/dashboard/.next/standalone/vendor/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
  342. package/dashboard/.next/standalone/vendor/next/dist/compiled/p-limit/index.js +1 -0
  343. package/dashboard/.next/standalone/vendor/next/dist/compiled/p-limit/package.json +1 -0
  344. package/dashboard/.next/standalone/vendor/next/dist/compiled/p-queue/index.js +1 -0
  345. package/dashboard/.next/standalone/vendor/next/dist/compiled/p-queue/package.json +1 -0
  346. package/dashboard/.next/standalone/vendor/next/dist/compiled/path-browserify/index.js +1 -0
  347. package/dashboard/.next/standalone/vendor/next/dist/compiled/path-browserify/package.json +1 -0
  348. package/dashboard/.next/standalone/vendor/next/dist/compiled/path-to-regexp/index.js +1 -0
  349. package/dashboard/.next/standalone/vendor/next/dist/compiled/path-to-regexp/package.json +1 -0
  350. package/dashboard/.next/standalone/vendor/next/dist/compiled/picomatch/index.js +1 -0
  351. package/dashboard/.next/standalone/vendor/next/dist/compiled/picomatch/package.json +1 -0
  352. package/dashboard/.next/standalone/vendor/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
  353. package/dashboard/.next/standalone/vendor/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
  354. package/dashboard/.next/standalone/vendor/next/dist/compiled/react-is/index.js +7 -0
  355. package/dashboard/.next/standalone/vendor/next/dist/compiled/react-is/package.json +26 -0
  356. package/dashboard/.next/standalone/vendor/next/dist/compiled/regenerator-runtime/package.json +19 -0
  357. package/dashboard/.next/standalone/vendor/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
  358. package/dashboard/.next/standalone/vendor/next/dist/compiled/semver/index.js +1 -0
  359. package/dashboard/.next/standalone/vendor/next/dist/compiled/semver/package.json +1 -0
  360. package/dashboard/.next/standalone/vendor/next/dist/compiled/send/index.js +70 -0
  361. package/dashboard/.next/standalone/vendor/next/dist/compiled/send/package.json +1 -0
  362. package/dashboard/.next/standalone/vendor/next/dist/compiled/source-map/package.json +1 -0
  363. package/dashboard/.next/standalone/vendor/next/dist/compiled/source-map/source-map.js +1 -0
  364. package/dashboard/.next/standalone/vendor/next/dist/compiled/stacktrace-parser/package.json +1 -0
  365. package/dashboard/.next/standalone/vendor/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
  366. package/dashboard/.next/standalone/vendor/next/dist/compiled/string-hash/index.js +1 -0
  367. package/dashboard/.next/standalone/vendor/next/dist/compiled/string-hash/package.json +1 -0
  368. package/dashboard/.next/standalone/vendor/next/dist/compiled/strip-ansi/index.js +1 -0
  369. package/dashboard/.next/standalone/vendor/next/dist/compiled/strip-ansi/package.json +1 -0
  370. package/dashboard/.next/standalone/vendor/next/dist/compiled/superstruct/index.cjs +1 -0
  371. package/dashboard/.next/standalone/vendor/next/dist/compiled/superstruct/package.json +1 -0
  372. package/dashboard/.next/standalone/vendor/next/dist/compiled/tar/index.min.js +1 -0
  373. package/dashboard/.next/standalone/vendor/next/dist/compiled/tar/package.json +1 -0
  374. package/dashboard/.next/standalone/vendor/next/dist/compiled/text-table/index.js +1 -0
  375. package/dashboard/.next/standalone/vendor/next/dist/compiled/text-table/package.json +1 -0
  376. package/dashboard/.next/standalone/vendor/next/dist/compiled/watchpack/package.json +1 -0
  377. package/dashboard/.next/standalone/vendor/next/dist/compiled/watchpack/watchpack.js +1 -0
  378. package/dashboard/.next/standalone/vendor/next/dist/compiled/ws/index.js +1 -0
  379. package/dashboard/.next/standalone/vendor/next/dist/compiled/ws/package.json +1 -0
  380. package/dashboard/.next/standalone/vendor/next/dist/compiled/zod/index.cjs +1 -0
  381. package/dashboard/.next/standalone/vendor/next/dist/compiled/zod/package.json +1 -0
  382. package/dashboard/.next/standalone/vendor/next/dist/compiled/zod-validation-error/index.js +1 -0
  383. package/dashboard/.next/standalone/vendor/next/dist/compiled/zod-validation-error/package.json +1 -0
  384. package/dashboard/.next/standalone/vendor/next/dist/experimental/testmode/context.js +57 -0
  385. package/dashboard/.next/standalone/vendor/next/dist/experimental/testmode/fetch.js +142 -0
  386. package/dashboard/.next/standalone/vendor/next/dist/experimental/testmode/httpget.js +26 -0
  387. package/dashboard/.next/standalone/vendor/next/dist/experimental/testmode/server-edge.js +32 -0
  388. package/dashboard/.next/standalone/vendor/next/dist/experimental/testmode/server.js +62 -0
  389. package/dashboard/.next/standalone/vendor/next/dist/export/helpers/create-incremental-cache.js +61 -0
  390. package/dashboard/.next/standalone/vendor/next/dist/lib/batcher.js +65 -0
  391. package/dashboard/.next/standalone/vendor/next/dist/lib/build-custom-route.js +46 -0
  392. package/dashboard/.next/standalone/vendor/next/dist/lib/bundler.js +97 -0
  393. package/dashboard/.next/standalone/vendor/next/dist/lib/client-and-server-references.js +54 -0
  394. package/dashboard/.next/standalone/vendor/next/dist/lib/coalesced-function.js +39 -0
  395. package/dashboard/.next/standalone/vendor/next/dist/lib/compile-error.js +14 -0
  396. package/dashboard/.next/standalone/vendor/next/dist/lib/constants.js +420 -0
  397. package/dashboard/.next/standalone/vendor/next/dist/lib/create-client-router-filter.js +67 -0
  398. package/dashboard/.next/standalone/vendor/next/dist/lib/default-transpiled-packages.json +1 -0
  399. package/dashboard/.next/standalone/vendor/next/dist/lib/detached-promise.js +32 -0
  400. package/dashboard/.next/standalone/vendor/next/dist/lib/detect-typo.js +51 -0
  401. package/dashboard/.next/standalone/vendor/next/dist/lib/download-swc.js +183 -0
  402. package/dashboard/.next/standalone/vendor/next/dist/lib/error-telemetry-utils.js +42 -0
  403. package/dashboard/.next/standalone/vendor/next/dist/lib/fallback.js +100 -0
  404. package/dashboard/.next/standalone/vendor/next/dist/lib/fatal-error.js +14 -0
  405. package/dashboard/.next/standalone/vendor/next/dist/lib/file-exists.js +53 -0
  406. package/dashboard/.next/standalone/vendor/next/dist/lib/find-config.js +102 -0
  407. package/dashboard/.next/standalone/vendor/next/dist/lib/find-pages-dir.js +65 -0
  408. package/dashboard/.next/standalone/vendor/next/dist/lib/find-root.js +126 -0
  409. package/dashboard/.next/standalone/vendor/next/dist/lib/format-cli-help-output.js +84 -0
  410. package/dashboard/.next/standalone/vendor/next/dist/lib/format-dynamic-import-path.js +24 -0
  411. package/dashboard/.next/standalone/vendor/next/dist/lib/format-server-error.js +75 -0
  412. package/dashboard/.next/standalone/vendor/next/dist/lib/framework/boundary-components.js +62 -0
  413. package/dashboard/.next/standalone/vendor/next/dist/lib/framework/boundary-constants.js +36 -0
  414. package/dashboard/.next/standalone/vendor/next/dist/lib/fs/rename.js +87 -0
  415. package/dashboard/.next/standalone/vendor/next/dist/lib/fs/write-atomic.js +28 -0
  416. package/dashboard/.next/standalone/vendor/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
  417. package/dashboard/.next/standalone/vendor/next/dist/lib/get-files-in-dir.js +33 -0
  418. package/dashboard/.next/standalone/vendor/next/dist/lib/get-network-host.js +44 -0
  419. package/dashboard/.next/standalone/vendor/next/dist/lib/get-package-version.js +118 -0
  420. package/dashboard/.next/standalone/vendor/next/dist/lib/get-project-dir.js +51 -0
  421. package/dashboard/.next/standalone/vendor/next/dist/lib/has-necessary-dependencies.js +49 -0
  422. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/get-cache-directory.js +66 -0
  423. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/get-npx-command.js +29 -0
  424. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/get-online.js +50 -0
  425. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/get-pkg-manager.js +63 -0
  426. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/get-registry.js +45 -0
  427. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/get-reserved-port.js +116 -0
  428. package/dashboard/.next/standalone/vendor/next/dist/lib/helpers/install.js +83 -0
  429. package/dashboard/.next/standalone/vendor/next/dist/lib/import-next-warning.js +50 -0
  430. package/dashboard/.next/standalone/vendor/next/dist/lib/inline-static-env.js +112 -0
  431. package/dashboard/.next/standalone/vendor/next/dist/lib/install-dependencies.js +40 -0
  432. package/dashboard/.next/standalone/vendor/next/dist/lib/interop-default.js +16 -0
  433. package/dashboard/.next/standalone/vendor/next/dist/lib/is-api-route.js +15 -0
  434. package/dashboard/.next/standalone/vendor/next/dist/lib/is-app-page-route.js +15 -0
  435. package/dashboard/.next/standalone/vendor/next/dist/lib/is-app-route-route.js +15 -0
  436. package/dashboard/.next/standalone/vendor/next/dist/lib/is-edge-runtime.js +16 -0
  437. package/dashboard/.next/standalone/vendor/next/dist/lib/is-error.js +78 -0
  438. package/dashboard/.next/standalone/vendor/next/dist/lib/is-interception-route-rewrite.js +18 -0
  439. package/dashboard/.next/standalone/vendor/next/dist/lib/is-internal-component.js +36 -0
  440. package/dashboard/.next/standalone/vendor/next/dist/lib/is-serializable-props.js +106 -0
  441. package/dashboard/.next/standalone/vendor/next/dist/lib/known-edge-safe-packages.json +1 -0
  442. package/dashboard/.next/standalone/vendor/next/dist/lib/load-custom-routes.js +594 -0
  443. package/dashboard/.next/standalone/vendor/next/dist/lib/memory/gc-observer.js +53 -0
  444. package/dashboard/.next/standalone/vendor/next/dist/lib/memory/shutdown.js +29 -0
  445. package/dashboard/.next/standalone/vendor/next/dist/lib/memory/startup.js +47 -0
  446. package/dashboard/.next/standalone/vendor/next/dist/lib/memory/trace.js +109 -0
  447. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/constants.js +40 -0
  448. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/default-metadata.js +82 -0
  449. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/generate/icon-mark.js +22 -0
  450. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/generate/utils.js +52 -0
  451. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/get-metadata-route.js +123 -0
  452. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/is-metadata-route.js +221 -0
  453. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/metadata-context.js +18 -0
  454. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/metadata.js +1686 -0
  455. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/resolve-metadata.js +884 -0
  456. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
  457. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
  458. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
  459. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
  460. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
  461. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
  462. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/extra-types.js +9 -0
  463. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/icons.js +6 -0
  464. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/manifest-types.js +6 -0
  465. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/metadata-interface.js +18 -0
  466. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/metadata-types.js +10 -0
  467. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/opengraph-types.js +6 -0
  468. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/resolvers.js +6 -0
  469. package/dashboard/.next/standalone/vendor/next/dist/lib/metadata/types/twitter-types.js +7 -0
  470. package/dashboard/.next/standalone/vendor/next/dist/lib/mime-type.js +20 -0
  471. package/dashboard/.next/standalone/vendor/next/dist/lib/mkcert.js +204 -0
  472. package/dashboard/.next/standalone/vendor/next/dist/lib/multi-file-writer.js +75 -0
  473. package/dashboard/.next/standalone/vendor/next/dist/lib/needs-experimental-react.js +16 -0
  474. package/dashboard/.next/standalone/vendor/next/dist/lib/non-nullable.js +15 -0
  475. package/dashboard/.next/standalone/vendor/next/dist/lib/normalize-path.js +21 -0
  476. package/dashboard/.next/standalone/vendor/next/dist/lib/oxford-comma-list.js +15 -0
  477. package/dashboard/.next/standalone/vendor/next/dist/lib/page-types.js +18 -0
  478. package/dashboard/.next/standalone/vendor/next/dist/lib/patch-incorrect-lockfile.js +185 -0
  479. package/dashboard/.next/standalone/vendor/next/dist/lib/pick.js +19 -0
  480. package/dashboard/.next/standalone/vendor/next/dist/lib/picocolors.js +177 -0
  481. package/dashboard/.next/standalone/vendor/next/dist/lib/pretty-bytes.js +74 -0
  482. package/dashboard/.next/standalone/vendor/next/dist/lib/realpath.js +20 -0
  483. package/dashboard/.next/standalone/vendor/next/dist/lib/recursive-copy.js +76 -0
  484. package/dashboard/.next/standalone/vendor/next/dist/lib/recursive-delete.js +137 -0
  485. package/dashboard/.next/standalone/vendor/next/dist/lib/recursive-readdir.js +124 -0
  486. package/dashboard/.next/standalone/vendor/next/dist/lib/redirect-status.js +46 -0
  487. package/dashboard/.next/standalone/vendor/next/dist/lib/require-instrumentation-client.js +26 -0
  488. package/dashboard/.next/standalone/vendor/next/dist/lib/resolve-build-paths.js +154 -0
  489. package/dashboard/.next/standalone/vendor/next/dist/lib/resolve-from.js +65 -0
  490. package/dashboard/.next/standalone/vendor/next/dist/lib/route-pattern-normalizer.js +107 -0
  491. package/dashboard/.next/standalone/vendor/next/dist/lib/scheduler.js +64 -0
  492. package/dashboard/.next/standalone/vendor/next/dist/lib/semver-noop.js +18 -0
  493. package/dashboard/.next/standalone/vendor/next/dist/lib/server-external-packages.jsonc +103 -0
  494. package/dashboard/.next/standalone/vendor/next/dist/lib/setup-exception-listeners.js +11 -0
  495. package/dashboard/.next/standalone/vendor/next/dist/lib/static-env.js +92 -0
  496. package/dashboard/.next/standalone/vendor/next/dist/lib/try-to-parse-path.js +67 -0
  497. package/dashboard/.next/standalone/vendor/next/dist/lib/turbopack-warning.js +185 -0
  498. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
  499. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/getTypeScriptConfiguration.js +153 -0
  500. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
  501. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/missingDependencyError.js +27 -0
  502. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/runTypeCheck.js +149 -0
  503. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/type-paths.js +51 -0
  504. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/writeAppTypeDeclarations.js +75 -0
  505. package/dashboard/.next/standalone/vendor/next/dist/lib/typescript/writeConfigurationDefaults.js +395 -0
  506. package/dashboard/.next/standalone/vendor/next/dist/lib/url.js +75 -0
  507. package/dashboard/.next/standalone/vendor/next/dist/lib/verify-partytown-setup.js +115 -0
  508. package/dashboard/.next/standalone/vendor/next/dist/lib/verify-root-layout.js +165 -0
  509. package/dashboard/.next/standalone/vendor/next/dist/lib/verify-typescript-setup.js +228 -0
  510. package/dashboard/.next/standalone/vendor/next/dist/lib/wait.js +19 -0
  511. package/dashboard/.next/standalone/vendor/next/dist/lib/with-promise-cache.js +24 -0
  512. package/dashboard/.next/standalone/vendor/next/dist/lib/worker.js +234 -0
  513. package/dashboard/.next/standalone/vendor/next/dist/server/ReactDOMServerPages.js +16 -0
  514. package/dashboard/.next/standalone/vendor/next/dist/server/accept-header.js +132 -0
  515. package/dashboard/.next/standalone/vendor/next/dist/server/after/after-context.js +140 -0
  516. package/dashboard/.next/standalone/vendor/next/dist/server/after/after.js +26 -0
  517. package/dashboard/.next/standalone/vendor/next/dist/server/after/awaiter.js +74 -0
  518. package/dashboard/.next/standalone/vendor/next/dist/server/after/builtin-request-context.js +38 -0
  519. package/dashboard/.next/standalone/vendor/next/dist/server/after/index.js +21 -0
  520. package/dashboard/.next/standalone/vendor/next/dist/server/after/run-with-after.js +35 -0
  521. package/dashboard/.next/standalone/vendor/next/dist/server/api-utils/get-cookie-parser.js +22 -0
  522. package/dashboard/.next/standalone/vendor/next/dist/server/api-utils/index.js +201 -0
  523. package/dashboard/.next/standalone/vendor/next/dist/server/api-utils/node/api-resolver.js +395 -0
  524. package/dashboard/.next/standalone/vendor/next/dist/server/api-utils/node/parse-body.js +79 -0
  525. package/dashboard/.next/standalone/vendor/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
  526. package/dashboard/.next/standalone/vendor/next/dist/server/api-utils/web.js +17 -0
  527. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/action-async-storage-instance.js +14 -0
  528. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/action-async-storage.external.js +13 -0
  529. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/action-handler.js +1027 -0
  530. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
  531. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
  532. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/app-render-prerender-utils.js +167 -0
  533. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/app-render-render-utils.js +76 -0
  534. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/app-render-scheduling.js +188 -0
  535. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/app-render.js +4522 -0
  536. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/async-local-storage.js +76 -0
  537. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/cache-signal.js +181 -0
  538. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/collect-segment-data.js +616 -0
  539. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/console-async-storage-instance.js +14 -0
  540. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/console-async-storage.external.js +13 -0
  541. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
  542. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/create-component-tree.js +870 -0
  543. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/create-error-handler.js +189 -0
  544. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +102 -0
  545. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/csrf-protection.js +86 -0
  546. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/debug-channel-server.js +30 -0
  547. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/debug-channel-server.web.js +71 -0
  548. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
  549. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
  550. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/dynamic-rendering.js +1144 -0
  551. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/encryption-utils-server.js +114 -0
  552. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/encryption-utils.js +93 -0
  553. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/encryption.js +259 -0
  554. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/entry-base.js +256 -0
  555. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/flight-render-result.js +28 -0
  556. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/get-asset-query-string.js +29 -0
  557. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/get-css-inlined-link-tags.js +49 -0
  558. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/get-layer-assets.js +65 -0
  559. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
  560. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/get-script-nonce-from-header.js +32 -0
  561. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
  562. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
  563. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
  564. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/boundary-impl.js +103 -0
  565. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
  566. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
  567. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
  568. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
  569. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
  570. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/instant-validation.js +713 -0
  571. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
  572. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/interop-default.js +17 -0
  573. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
  574. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/manifests-singleton.js +264 -0
  575. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +29 -0
  576. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
  577. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
  578. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
  579. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
  580. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/postponed-state.js +157 -0
  581. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/prospective-render-utils.js +74 -0
  582. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/react-large-shell-error.js +17 -0
  583. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/react-server.node.js +39 -0
  584. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/render-css-resource.js +52 -0
  585. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/required-scripts.js +76 -0
  586. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/rsc/postpone.js +18 -0
  587. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/rsc/preloads.js +74 -0
  588. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/rsc/taint.js +79 -0
  589. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/segment-explorer-path.js +128 -0
  590. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/server-inserted-html.js +77 -0
  591. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/staged-rendering.js +343 -0
  592. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/stale-time.js +111 -0
  593. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/stream-ops.js +106 -0
  594. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/stream-ops.web.js +163 -0
  595. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/strip-flight-headers.js +18 -0
  596. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/types.js +65 -0
  597. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/use-flight-response.js +214 -0
  598. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/vary-params.js +336 -0
  599. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/walk-tree-with-flight-router-state.js +232 -0
  600. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/work-async-storage-instance.js +14 -0
  601. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/work-async-storage.external.js +13 -0
  602. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
  603. package/dashboard/.next/standalone/vendor/next/dist/server/app-render/work-unit-async-storage.external.js +280 -0
  604. package/dashboard/.next/standalone/vendor/next/dist/server/async-storage/draft-mode-provider.js +62 -0
  605. package/dashboard/.next/standalone/vendor/next/dist/server/async-storage/request-store.js +144 -0
  606. package/dashboard/.next/standalone/vendor/next/dist/server/async-storage/with-store.js +6 -0
  607. package/dashboard/.next/standalone/vendor/next/dist/server/async-storage/work-store.js +92 -0
  608. package/dashboard/.next/standalone/vendor/next/dist/server/base-http/helpers.js +36 -0
  609. package/dashboard/.next/standalone/vendor/next/dist/server/base-http/index.js +54 -0
  610. package/dashboard/.next/standalone/vendor/next/dist/server/base-http/node.js +147 -0
  611. package/dashboard/.next/standalone/vendor/next/dist/server/base-http/web.js +124 -0
  612. package/dashboard/.next/standalone/vendor/next/dist/server/base-server.js +1882 -0
  613. package/dashboard/.next/standalone/vendor/next/dist/server/body-streams.js +114 -0
  614. package/dashboard/.next/standalone/vendor/next/dist/server/cache-dir.js +26 -0
  615. package/dashboard/.next/standalone/vendor/next/dist/server/capsize-font-metrics.json +181516 -0
  616. package/dashboard/.next/standalone/vendor/next/dist/server/ci-info.js +41 -0
  617. package/dashboard/.next/standalone/vendor/next/dist/server/client-component-renderer-logger.js +70 -0
  618. package/dashboard/.next/standalone/vendor/next/dist/server/config-schema.js +727 -0
  619. package/dashboard/.next/standalone/vendor/next/dist/server/config-shared.js +369 -0
  620. package/dashboard/.next/standalone/vendor/next/dist/server/config-utils.js +185 -0
  621. package/dashboard/.next/standalone/vendor/next/dist/server/config.js +1545 -0
  622. package/dashboard/.next/standalone/vendor/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
  623. package/dashboard/.next/standalone/vendor/next/dist/server/crypto-utils.js +70 -0
  624. package/dashboard/.next/standalone/vendor/next/dist/server/dev/browser-logs/file-logger.js +186 -0
  625. package/dashboard/.next/standalone/vendor/next/dist/server/dev/browser-logs/receive-logs.js +558 -0
  626. package/dashboard/.next/standalone/vendor/next/dist/server/dev/browser-logs/source-map.js +222 -0
  627. package/dashboard/.next/standalone/vendor/next/dist/server/dev/debug-channel.js +87 -0
  628. package/dashboard/.next/standalone/vendor/next/dist/server/dev/dev-indicator-server-state.js +15 -0
  629. package/dashboard/.next/standalone/vendor/next/dist/server/dev/get-source-map-from-file.js +100 -0
  630. package/dashboard/.next/standalone/vendor/next/dist/server/dev/hot-middleware.js +274 -0
  631. package/dashboard/.next/standalone/vendor/next/dist/server/dev/hot-reloader-rspack.js +171 -0
  632. package/dashboard/.next/standalone/vendor/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
  633. package/dashboard/.next/standalone/vendor/next/dist/server/dev/hot-reloader-turbopack.js +1480 -0
  634. package/dashboard/.next/standalone/vendor/next/dist/server/dev/hot-reloader-types.js +58 -0
  635. package/dashboard/.next/standalone/vendor/next/dist/server/dev/hot-reloader-webpack.js +1386 -0
  636. package/dashboard/.next/standalone/vendor/next/dist/server/dev/log-requests.js +149 -0
  637. package/dashboard/.next/standalone/vendor/next/dist/server/dev/messages.js +74 -0
  638. package/dashboard/.next/standalone/vendor/next/dist/server/dev/middleware-turbopack.js +403 -0
  639. package/dashboard/.next/standalone/vendor/next/dist/server/dev/middleware-webpack.js +483 -0
  640. package/dashboard/.next/standalone/vendor/next/dist/server/dev/node-stack-frames.js +72 -0
  641. package/dashboard/.next/standalone/vendor/next/dist/server/dev/on-demand-entry-handler.js +773 -0
  642. package/dashboard/.next/standalone/vendor/next/dist/server/dev/parse-version-info.js +108 -0
  643. package/dashboard/.next/standalone/vendor/next/dist/server/dev/require-cache.js +79 -0
  644. package/dashboard/.next/standalone/vendor/next/dist/server/dev/serialized-errors.js +67 -0
  645. package/dashboard/.next/standalone/vendor/next/dist/server/dev/server-action-logger.js +37 -0
  646. package/dashboard/.next/standalone/vendor/next/dist/server/dev/static-paths-worker.js +105 -0
  647. package/dashboard/.next/standalone/vendor/next/dist/server/dev/turbopack-utils.js +687 -0
  648. package/dashboard/.next/standalone/vendor/next/dist/server/dynamic-rendering-utils.js +108 -0
  649. package/dashboard/.next/standalone/vendor/next/dist/server/font-utils.js +43 -0
  650. package/dashboard/.next/standalone/vendor/next/dist/server/get-app-route-from-entrypoint.js +30 -0
  651. package/dashboard/.next/standalone/vendor/next/dist/server/get-page-files.js +23 -0
  652. package/dashboard/.next/standalone/vendor/next/dist/server/get-route-from-entrypoint.js +35 -0
  653. package/dashboard/.next/standalone/vendor/next/dist/server/image-optimizer.js +1240 -0
  654. package/dashboard/.next/standalone/vendor/next/dist/server/instrumentation/types.js +6 -0
  655. package/dashboard/.next/standalone/vendor/next/dist/server/instrumentation/utils.js +21 -0
  656. package/dashboard/.next/standalone/vendor/next/dist/server/internal-utils.js +39 -0
  657. package/dashboard/.next/standalone/vendor/next/dist/server/is-private-ip.js +36 -0
  658. package/dashboard/.next/standalone/vendor/next/dist/server/lib/app-dir-module.js +59 -0
  659. package/dashboard/.next/standalone/vendor/next/dist/server/lib/app-info-log.js +132 -0
  660. package/dashboard/.next/standalone/vendor/next/dist/server/lib/async-callback-set.js +29 -0
  661. package/dashboard/.next/standalone/vendor/next/dist/server/lib/cache-control.js +22 -0
  662. package/dashboard/.next/standalone/vendor/next/dist/server/lib/cache-handlers/default.external.js +18 -0
  663. package/dashboard/.next/standalone/vendor/next/dist/server/lib/cache-handlers/default.js +160 -0
  664. package/dashboard/.next/standalone/vendor/next/dist/server/lib/cache-handlers/types.js +8 -0
  665. package/dashboard/.next/standalone/vendor/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
  666. package/dashboard/.next/standalone/vendor/next/dist/server/lib/clone-response.js +77 -0
  667. package/dashboard/.next/standalone/vendor/next/dist/server/lib/cpu-profile.js +59 -0
  668. package/dashboard/.next/standalone/vendor/next/dist/server/lib/decode-query-path-parameter.js +26 -0
  669. package/dashboard/.next/standalone/vendor/next/dist/server/lib/dedupe-fetch.js +163 -0
  670. package/dashboard/.next/standalone/vendor/next/dist/server/lib/dev-bundler-service.js +95 -0
  671. package/dashboard/.next/standalone/vendor/next/dist/server/lib/disk-lru-cache.external.js +57 -0
  672. package/dashboard/.next/standalone/vendor/next/dist/server/lib/encode-cache-tag.js +45 -0
  673. package/dashboard/.next/standalone/vendor/next/dist/server/lib/etag.js +56 -0
  674. package/dashboard/.next/standalone/vendor/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
  675. package/dashboard/.next/standalone/vendor/next/dist/server/lib/experimental/ppr.js +47 -0
  676. package/dashboard/.next/standalone/vendor/next/dist/server/lib/find-page-file.js +147 -0
  677. package/dashboard/.next/standalone/vendor/next/dist/server/lib/fix-mojibake.js +25 -0
  678. package/dashboard/.next/standalone/vendor/next/dist/server/lib/format-hostname.js +16 -0
  679. package/dashboard/.next/standalone/vendor/next/dist/server/lib/i18n-provider.js +129 -0
  680. package/dashboard/.next/standalone/vendor/next/dist/server/lib/implicit-tags.js +80 -0
  681. package/dashboard/.next/standalone/vendor/next/dist/server/lib/incremental-cache/file-system-cache.js +335 -0
  682. package/dashboard/.next/standalone/vendor/next/dist/server/lib/incremental-cache/index.js +501 -0
  683. package/dashboard/.next/standalone/vendor/next/dist/server/lib/incremental-cache/memory-cache.external.js +57 -0
  684. package/dashboard/.next/standalone/vendor/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
  685. package/dashboard/.next/standalone/vendor/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
  686. package/dashboard/.next/standalone/vendor/next/dist/server/lib/install-code-frame.js +22 -0
  687. package/dashboard/.next/standalone/vendor/next/dist/server/lib/is-ipv6.js +41 -0
  688. package/dashboard/.next/standalone/vendor/next/dist/server/lib/is-rsc-request.js +18 -0
  689. package/dashboard/.next/standalone/vendor/next/dist/server/lib/lazy-result.js +46 -0
  690. package/dashboard/.next/standalone/vendor/next/dist/server/lib/lru-cache.js +191 -0
  691. package/dashboard/.next/standalone/vendor/next/dist/server/lib/match-next-data-pathname.js +18 -0
  692. package/dashboard/.next/standalone/vendor/next/dist/server/lib/mock-request.js +441 -0
  693. package/dashboard/.next/standalone/vendor/next/dist/server/lib/module-loader/module-loader.js +8 -0
  694. package/dashboard/.next/standalone/vendor/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
  695. package/dashboard/.next/standalone/vendor/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
  696. package/dashboard/.next/standalone/vendor/next/dist/server/lib/node-fs-methods.js +28 -0
  697. package/dashboard/.next/standalone/vendor/next/dist/server/lib/parse-stack.js +46 -0
  698. package/dashboard/.next/standalone/vendor/next/dist/server/lib/patch-fetch.js +982 -0
  699. package/dashboard/.next/standalone/vendor/next/dist/server/lib/patch-set-header.js +45 -0
  700. package/dashboard/.next/standalone/vendor/next/dist/server/lib/postponed-request-body.js +64 -0
  701. package/dashboard/.next/standalone/vendor/next/dist/server/lib/render-server.js +155 -0
  702. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-server.js +699 -0
  703. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
  704. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/build-data-route.js +48 -0
  705. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
  706. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
  707. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
  708. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/filesystem.js +591 -0
  709. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
  710. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
  711. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/is-postpone.js +16 -0
  712. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/proxy-request.js +118 -0
  713. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/resolve-routes.js +643 -0
  714. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
  715. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/router-server-context.js +26 -0
  716. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/typegen.js +858 -0
  717. package/dashboard/.next/standalone/vendor/next/dist/server/lib/router-utils/types.js +6 -0
  718. package/dashboard/.next/standalone/vendor/next/dist/server/lib/server-action-request-meta.js +53 -0
  719. package/dashboard/.next/standalone/vendor/next/dist/server/lib/server-ipc/utils.js +83 -0
  720. package/dashboard/.next/standalone/vendor/next/dist/server/lib/source-maps.js +196 -0
  721. package/dashboard/.next/standalone/vendor/next/dist/server/lib/start-server.js +494 -0
  722. package/dashboard/.next/standalone/vendor/next/dist/server/lib/streaming-metadata.js +38 -0
  723. package/dashboard/.next/standalone/vendor/next/dist/server/lib/to-route.js +37 -0
  724. package/dashboard/.next/standalone/vendor/next/dist/server/lib/trace/constants.js +203 -0
  725. package/dashboard/.next/standalone/vendor/next/dist/server/lib/trace/tracer.js +280 -0
  726. package/dashboard/.next/standalone/vendor/next/dist/server/lib/trace/utils.js +16 -0
  727. package/dashboard/.next/standalone/vendor/next/dist/server/lib/types.js +6 -0
  728. package/dashboard/.next/standalone/vendor/next/dist/server/lib/utils.js +278 -0
  729. package/dashboard/.next/standalone/vendor/next/dist/server/lib/worker-utils.js +36 -0
  730. package/dashboard/.next/standalone/vendor/next/dist/server/load-components.js +179 -0
  731. package/dashboard/.next/standalone/vendor/next/dist/server/load-default-error-components.js +41 -0
  732. package/dashboard/.next/standalone/vendor/next/dist/server/load-manifest.external.js +117 -0
  733. package/dashboard/.next/standalone/vendor/next/dist/server/match-bundle.js +25 -0
  734. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/get-mcp-middleware.js +49 -0
  735. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
  736. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
  737. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/get-errors.js +114 -0
  738. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/get-logs.js +67 -0
  739. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
  740. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
  741. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/get-routes.js +136 -0
  742. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
  743. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
  744. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
  745. package/dashboard/.next/standalone/vendor/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
  746. package/dashboard/.next/standalone/vendor/next/dist/server/next-server.js +1429 -0
  747. package/dashboard/.next/standalone/vendor/next/dist/server/next-typescript.js +13 -0
  748. package/dashboard/.next/standalone/vendor/next/dist/server/next.js +455 -0
  749. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-baseline.js +25 -0
  750. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
  751. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/console-exit.js +49 -0
  752. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/console-file.js +56 -0
  753. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/date.js +52 -0
  754. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
  755. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
  756. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  757. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/io-utils.js +195 -0
  758. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
  759. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
  760. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/random.js +28 -0
  761. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +508 -0
  762. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
  763. package/dashboard/.next/standalone/vendor/next/dist/server/node-environment.js +19 -0
  764. package/dashboard/.next/standalone/vendor/next/dist/server/node-polyfill-crypto.js +21 -0
  765. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
  766. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
  767. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
  768. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
  769. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
  770. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/app/index.js +42 -0
  771. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/pages/index.js +44 -0
  772. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
  773. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
  774. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
  775. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
  776. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
  777. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/normalizer.js +6 -0
  778. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/normalizers.js +23 -0
  779. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
  780. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/base-path.js +25 -0
  781. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/next-data.js +38 -0
  782. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
  783. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/prefix.js +39 -0
  784. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/rsc.js +19 -0
  785. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
  786. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/request/suffix.js +27 -0
  787. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/underscore-normalizer.js +17 -0
  788. package/dashboard/.next/standalone/vendor/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
  789. package/dashboard/.next/standalone/vendor/next/dist/server/og/image-response.js +53 -0
  790. package/dashboard/.next/standalone/vendor/next/dist/server/patch-error-inspect.js +453 -0
  791. package/dashboard/.next/standalone/vendor/next/dist/server/pipe-readable.js +140 -0
  792. package/dashboard/.next/standalone/vendor/next/dist/server/post-process.js +39 -0
  793. package/dashboard/.next/standalone/vendor/next/dist/server/render-result.js +204 -0
  794. package/dashboard/.next/standalone/vendor/next/dist/server/render.js +1148 -0
  795. package/dashboard/.next/standalone/vendor/next/dist/server/request/connection.js +133 -0
  796. package/dashboard/.next/standalone/vendor/next/dist/server/request/cookies.js +235 -0
  797. package/dashboard/.next/standalone/vendor/next/dist/server/request/draft-mode.js +230 -0
  798. package/dashboard/.next/standalone/vendor/next/dist/server/request/fallback-params.js +95 -0
  799. package/dashboard/.next/standalone/vendor/next/dist/server/request/headers.js +229 -0
  800. package/dashboard/.next/standalone/vendor/next/dist/server/request/params.js +527 -0
  801. package/dashboard/.next/standalone/vendor/next/dist/server/request/pathname.js +119 -0
  802. package/dashboard/.next/standalone/vendor/next/dist/server/request/root-params.js +194 -0
  803. package/dashboard/.next/standalone/vendor/next/dist/server/request/search-params.js +526 -0
  804. package/dashboard/.next/standalone/vendor/next/dist/server/request/utils.js +51 -0
  805. package/dashboard/.next/standalone/vendor/next/dist/server/request-meta.js +55 -0
  806. package/dashboard/.next/standalone/vendor/next/dist/server/require-hook.js +82 -0
  807. package/dashboard/.next/standalone/vendor/next/dist/server/require.js +109 -0
  808. package/dashboard/.next/standalone/vendor/next/dist/server/response-cache/index.js +311 -0
  809. package/dashboard/.next/standalone/vendor/next/dist/server/response-cache/types.js +41 -0
  810. package/dashboard/.next/standalone/vendor/next/dist/server/response-cache/utils.js +104 -0
  811. package/dashboard/.next/standalone/vendor/next/dist/server/response-cache/web.js +101 -0
  812. package/dashboard/.next/standalone/vendor/next/dist/server/resume-data-cache/cache-store.js +96 -0
  813. package/dashboard/.next/standalone/vendor/next/dist/server/resume-data-cache/resume-data-cache.js +124 -0
  814. package/dashboard/.next/standalone/vendor/next/dist/server/revalidation-utils.js +157 -0
  815. package/dashboard/.next/standalone/vendor/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
  816. package/dashboard/.next/standalone/vendor/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
  817. package/dashboard/.next/standalone/vendor/next/dist/server/route-definitions/locale-route-definition.js +6 -0
  818. package/dashboard/.next/standalone/vendor/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
  819. package/dashboard/.next/standalone/vendor/next/dist/server/route-definitions/pages-route-definition.js +6 -0
  820. package/dashboard/.next/standalone/vendor/next/dist/server/route-definitions/route-definition.js +6 -0
  821. package/dashboard/.next/standalone/vendor/next/dist/server/route-kind.js +32 -0
  822. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
  823. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
  824. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
  825. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
  826. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
  827. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
  828. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
  829. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
  830. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
  831. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
  832. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
  833. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
  834. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
  835. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
  836. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
  837. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
  838. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
  839. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
  840. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
  841. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
  842. package/dashboard/.next/standalone/vendor/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
  843. package/dashboard/.next/standalone/vendor/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
  844. package/dashboard/.next/standalone/vendor/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
  845. package/dashboard/.next/standalone/vendor/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
  846. package/dashboard/.next/standalone/vendor/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
  847. package/dashboard/.next/standalone/vendor/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
  848. package/dashboard/.next/standalone/vendor/next/dist/server/route-matchers/route-matcher.js +54 -0
  849. package/dashboard/.next/standalone/vendor/next/dist/server/route-matches/app-page-route-match.js +6 -0
  850. package/dashboard/.next/standalone/vendor/next/dist/server/route-matches/app-route-route-match.js +6 -0
  851. package/dashboard/.next/standalone/vendor/next/dist/server/route-matches/locale-route-match.js +6 -0
  852. package/dashboard/.next/standalone/vendor/next/dist/server/route-matches/pages-api-route-match.js +16 -0
  853. package/dashboard/.next/standalone/vendor/next/dist/server/route-matches/pages-route-match.js +6 -0
  854. package/dashboard/.next/standalone/vendor/next/dist/server/route-matches/route-match.js +6 -0
  855. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
  856. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
  857. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/module.js +162 -0
  858. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/module.render.js +24 -0
  859. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
  860. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
  861. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
  862. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
  863. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
  864. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
  865. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
  866. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
  867. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
  868. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
  869. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
  870. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
  871. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
  872. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
  873. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
  874. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
  875. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
  876. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
  877. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
  878. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
  879. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
  880. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
  881. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
  882. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
  883. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
  884. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
  885. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
  886. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
  887. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
  888. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
  889. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
  890. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  891. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
  892. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/module.js +915 -0
  893. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
  894. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/checks.js +45 -0
  895. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
  896. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/module.compiled.js +20 -0
  897. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/module.js +92 -0
  898. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/module.render.js +24 -0
  899. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/pages-handler.js +545 -0
  900. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
  901. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
  902. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
  903. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
  904. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
  905. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
  906. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
  907. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
  908. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
  909. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
  910. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
  911. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/pages-api/module.js +58 -0
  912. package/dashboard/.next/standalone/vendor/next/dist/server/route-modules/route-module.js +660 -0
  913. package/dashboard/.next/standalone/vendor/next/dist/server/runtime-reacts.external.js +46 -0
  914. package/dashboard/.next/standalone/vendor/next/dist/server/send-payload.js +88 -0
  915. package/dashboard/.next/standalone/vendor/next/dist/server/send-response.js +70 -0
  916. package/dashboard/.next/standalone/vendor/next/dist/server/serve-static.js +66 -0
  917. package/dashboard/.next/standalone/vendor/next/dist/server/server-route-utils.js +30 -0
  918. package/dashboard/.next/standalone/vendor/next/dist/server/server-utils.js +340 -0
  919. package/dashboard/.next/standalone/vendor/next/dist/server/setup-http-agent-env.js +31 -0
  920. package/dashboard/.next/standalone/vendor/next/dist/server/stream-utils/encoded-tags.js +122 -0
  921. package/dashboard/.next/standalone/vendor/next/dist/server/stream-utils/node-web-streams-helper.js +918 -0
  922. package/dashboard/.next/standalone/vendor/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
  923. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/constant.js +98 -0
  924. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/index.js +199 -0
  925. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/client-boundary.js +97 -0
  926. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/config.js +512 -0
  927. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/entry.js +149 -0
  928. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/error.js +38 -0
  929. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/metadata.js +234 -0
  930. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/server-boundary.js +115 -0
  931. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/rules/server.js +79 -0
  932. package/dashboard/.next/standalone/vendor/next/dist/server/typescript/utils.js +212 -0
  933. package/dashboard/.next/standalone/vendor/next/dist/server/use-cache/cache-life.js +163 -0
  934. package/dashboard/.next/standalone/vendor/next/dist/server/use-cache/cache-tag.js +52 -0
  935. package/dashboard/.next/standalone/vendor/next/dist/server/use-cache/constants.js +28 -0
  936. package/dashboard/.next/standalone/vendor/next/dist/server/use-cache/handlers.js +121 -0
  937. package/dashboard/.next/standalone/vendor/next/dist/server/use-cache/use-cache-errors.js +36 -0
  938. package/dashboard/.next/standalone/vendor/next/dist/server/use-cache/use-cache-wrapper.js +1588 -0
  939. package/dashboard/.next/standalone/vendor/next/dist/server/utils.js +73 -0
  940. package/dashboard/.next/standalone/vendor/next/dist/server/web/adapter.js +395 -0
  941. package/dashboard/.next/standalone/vendor/next/dist/server/web/edge-route-module-wrapper.js +124 -0
  942. package/dashboard/.next/standalone/vendor/next/dist/server/web/error.js +54 -0
  943. package/dashboard/.next/standalone/vendor/next/dist/server/web/exports/index.js +56 -0
  944. package/dashboard/.next/standalone/vendor/next/dist/server/web/get-edge-preview-props.js +23 -0
  945. package/dashboard/.next/standalone/vendor/next/dist/server/web/globals.js +128 -0
  946. package/dashboard/.next/standalone/vendor/next/dist/server/web/http.js +39 -0
  947. package/dashboard/.next/standalone/vendor/next/dist/server/web/internal-edge-wait-until.js +64 -0
  948. package/dashboard/.next/standalone/vendor/next/dist/server/web/next-url.js +199 -0
  949. package/dashboard/.next/standalone/vendor/next/dist/server/web/sandbox/context.js +462 -0
  950. package/dashboard/.next/standalone/vendor/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
  951. package/dashboard/.next/standalone/vendor/next/dist/server/web/sandbox/index.js +28 -0
  952. package/dashboard/.next/standalone/vendor/next/dist/server/web/sandbox/resource-managers.js +88 -0
  953. package/dashboard/.next/standalone/vendor/next/dist/server/web/sandbox/sandbox.js +137 -0
  954. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
  955. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
  956. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
  957. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/adapters/request-cookies.js +211 -0
  958. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/cookies.js +29 -0
  959. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/fetch-event.js +98 -0
  960. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/image-response.js +22 -0
  961. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/request.js +99 -0
  962. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/response.js +136 -0
  963. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/revalidate.js +215 -0
  964. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/unstable-cache.js +293 -0
  965. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
  966. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/url-pattern.js +14 -0
  967. package/dashboard/.next/standalone/vendor/next/dist/server/web/spec-extension/user-agent.js +46 -0
  968. package/dashboard/.next/standalone/vendor/next/dist/server/web/types.js +6 -0
  969. package/dashboard/.next/standalone/vendor/next/dist/server/web/utils.js +151 -0
  970. package/dashboard/.next/standalone/vendor/next/dist/server/web/web-on-close.js +87 -0
  971. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/action-revalidation-kind.js +31 -0
  972. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
  973. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/app-router-types.js +46 -0
  974. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/constants.js +448 -0
  975. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/deep-freeze.js +30 -0
  976. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/deployment-id.js +63 -0
  977. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/dset.js +34 -0
  978. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/encode-uri-path.js +15 -0
  979. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/entry-constants.js +36 -0
  980. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/error-source.js +36 -0
  981. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
  982. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/errors/code-frame.js +20 -0
  983. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/errors/constants.js +19 -0
  984. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
  985. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
  986. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/escape-regexp.js +22 -0
  987. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/get-hostname.js +23 -0
  988. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/hash.js +42 -0
  989. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
  990. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/head.js +163 -0
  991. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
  992. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
  993. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/htmlescape.js +52 -0
  994. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
  995. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
  996. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
  997. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/image-blur-svg.js +22 -0
  998. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
  999. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/image-config.js +77 -0
  1000. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/invariant-error.js +18 -0
  1001. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/is-plain-object.js +42 -0
  1002. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/is-thenable.js +20 -0
  1003. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/isomorphic/path.js +14 -0
  1004. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
  1005. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
  1006. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
  1007. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/match-local-pattern.js +46 -0
  1008. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/match-remote-pattern.js +63 -0
  1009. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/modern-browserslist-target.js +15 -0
  1010. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/no-fallback-error.external.js +18 -0
  1011. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
  1012. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
  1013. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
  1014. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
  1015. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
  1016. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
  1017. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
  1018. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
  1019. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
  1020. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/promise-with-resolvers.js +26 -0
  1021. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/adapters.js +136 -0
  1022. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/routes/app.js +134 -0
  1023. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/add-locale.js +28 -0
  1024. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
  1025. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
  1026. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/app-paths.js +62 -0
  1027. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
  1028. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/cache-busting-search-param.js +70 -0
  1029. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
  1030. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
  1031. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/format-url.js +111 -0
  1032. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
  1033. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
  1034. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
  1035. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
  1036. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/html-bots.js +17 -0
  1037. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/index.js +30 -0
  1038. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
  1039. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
  1040. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/is-bot.js +57 -0
  1041. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
  1042. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
  1043. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
  1044. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/parse-path.js +33 -0
  1045. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
  1046. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/parse-url.js +38 -0
  1047. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
  1048. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/path-match.js +49 -0
  1049. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
  1050. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/querystring.js +79 -0
  1051. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
  1052. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
  1053. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
  1054. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
  1055. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
  1056. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
  1057. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/route-regex.js +256 -0
  1058. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
  1059. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
  1060. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
  1061. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
  1062. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/segment.js +102 -0
  1063. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
  1064. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/server-reference-info.js +56 -0
  1065. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/side-effect.js +63 -0
  1066. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/size-limit.js +40 -0
  1067. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/turbopack/internal-error.js +53 -0
  1068. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/utils/reflect-utils.js +69 -0
  1069. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/utils/warn-once.js +22 -0
  1070. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/utils.js +207 -0
  1071. package/dashboard/.next/standalone/vendor/next/dist/shared/lib/zod.js +101 -0
  1072. package/dashboard/.next/standalone/vendor/next/dist/telemetry/anonymous-meta.js +89 -0
  1073. package/dashboard/.next/standalone/vendor/next/dist/telemetry/detached-flush.js +56 -0
  1074. package/dashboard/.next/standalone/vendor/next/dist/telemetry/events/build.js +174 -0
  1075. package/dashboard/.next/standalone/vendor/next/dist/telemetry/events/index.js +41 -0
  1076. package/dashboard/.next/standalone/vendor/next/dist/telemetry/events/plugins.js +51 -0
  1077. package/dashboard/.next/standalone/vendor/next/dist/telemetry/events/swc-load-failure.js +55 -0
  1078. package/dashboard/.next/standalone/vendor/next/dist/telemetry/events/version.js +66 -0
  1079. package/dashboard/.next/standalone/vendor/next/dist/telemetry/flush-telemetry.js +19 -0
  1080. package/dashboard/.next/standalone/vendor/next/dist/telemetry/post-telemetry-payload.js +48 -0
  1081. package/dashboard/.next/standalone/vendor/next/dist/telemetry/project-id.js +48 -0
  1082. package/dashboard/.next/standalone/vendor/next/dist/telemetry/storage.js +301 -0
  1083. package/dashboard/.next/standalone/vendor/next/dist/trace/index.js +58 -0
  1084. package/dashboard/.next/standalone/vendor/next/dist/trace/report/index.js +37 -0
  1085. package/dashboard/.next/standalone/vendor/next/dist/trace/report/to-json-build.js +40 -0
  1086. package/dashboard/.next/standalone/vendor/next/dist/trace/report/to-json.js +165 -0
  1087. package/dashboard/.next/standalone/vendor/next/dist/trace/report/to-telemetry.js +36 -0
  1088. package/dashboard/.next/standalone/vendor/next/dist/trace/shared.js +39 -0
  1089. package/dashboard/.next/standalone/vendor/next/dist/trace/trace.js +211 -0
  1090. package/dashboard/.next/standalone/vendor/next/package.json +378 -0
  1091. package/dashboard/.next/standalone/vendor/react/cjs/react-compiler-runtime.production.js +16 -0
  1092. package/dashboard/.next/standalone/vendor/react/cjs/react-jsx-dev-runtime.production.js +14 -0
  1093. package/dashboard/.next/standalone/vendor/react/cjs/react-jsx-runtime.production.js +34 -0
  1094. package/dashboard/.next/standalone/vendor/react/cjs/react.development.js +1284 -0
  1095. package/dashboard/.next/standalone/vendor/react/cjs/react.production.js +542 -0
  1096. package/dashboard/.next/standalone/vendor/react/compiler-runtime.js +14 -0
  1097. package/dashboard/.next/standalone/vendor/react/index.js +7 -0
  1098. package/dashboard/.next/standalone/vendor/react/jsx-dev-runtime.js +7 -0
  1099. package/dashboard/.next/standalone/vendor/react/jsx-runtime.js +7 -0
  1100. package/dashboard/.next/standalone/vendor/react/package.json +51 -0
  1101. package/dashboard/.next/standalone/vendor/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
  1102. package/dashboard/.next/standalone/vendor/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
  1103. package/dashboard/.next/standalone/vendor/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
  1104. package/dashboard/.next/standalone/vendor/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
  1105. package/dashboard/.next/standalone/vendor/react-dom/cjs/react-dom-server.node.production.js +7707 -0
  1106. package/dashboard/.next/standalone/vendor/react-dom/cjs/react-dom.production.js +210 -0
  1107. package/dashboard/.next/standalone/vendor/react-dom/index.js +38 -0
  1108. package/dashboard/.next/standalone/vendor/react-dom/package.json +117 -0
  1109. package/dashboard/.next/standalone/vendor/react-dom/server.browser.js +16 -0
  1110. package/dashboard/.next/standalone/vendor/react-dom/server.edge.js +17 -0
  1111. package/dashboard/.next/standalone/vendor/react-dom/server.node.js +18 -0
  1112. package/dashboard/.next/standalone/vendor/react-dom/static.node.js +14 -0
  1113. package/dashboard/.next/standalone/vendor/semver/classes/comparator.js +143 -0
  1114. package/dashboard/.next/standalone/vendor/semver/classes/range.js +577 -0
  1115. package/dashboard/.next/standalone/vendor/semver/classes/semver.js +350 -0
  1116. package/dashboard/.next/standalone/vendor/semver/functions/cmp.js +54 -0
  1117. package/dashboard/.next/standalone/vendor/semver/functions/coerce.js +62 -0
  1118. package/dashboard/.next/standalone/vendor/semver/functions/compare.js +7 -0
  1119. package/dashboard/.next/standalone/vendor/semver/functions/eq.js +5 -0
  1120. package/dashboard/.next/standalone/vendor/semver/functions/gt.js +5 -0
  1121. package/dashboard/.next/standalone/vendor/semver/functions/gte.js +5 -0
  1122. package/dashboard/.next/standalone/vendor/semver/functions/lt.js +5 -0
  1123. package/dashboard/.next/standalone/vendor/semver/functions/lte.js +5 -0
  1124. package/dashboard/.next/standalone/vendor/semver/functions/neq.js +5 -0
  1125. package/dashboard/.next/standalone/vendor/semver/functions/parse.js +18 -0
  1126. package/dashboard/.next/standalone/vendor/semver/functions/satisfies.js +12 -0
  1127. package/dashboard/.next/standalone/vendor/semver/internal/constants.js +37 -0
  1128. package/dashboard/.next/standalone/vendor/semver/internal/debug.js +11 -0
  1129. package/dashboard/.next/standalone/vendor/semver/internal/identifiers.js +29 -0
  1130. package/dashboard/.next/standalone/vendor/semver/internal/lrucache.js +42 -0
  1131. package/dashboard/.next/standalone/vendor/semver/internal/parse-options.js +17 -0
  1132. package/dashboard/.next/standalone/vendor/semver/internal/re.js +223 -0
  1133. package/dashboard/.next/standalone/vendor/semver/package.json +78 -0
  1134. package/dashboard/.next/standalone/vendor/sharp/lib/channel.js +177 -0
  1135. package/dashboard/.next/standalone/vendor/sharp/lib/colour.js +195 -0
  1136. package/dashboard/.next/standalone/vendor/sharp/lib/composite.js +212 -0
  1137. package/dashboard/.next/standalone/vendor/sharp/lib/constructor.js +499 -0
  1138. package/dashboard/.next/standalone/vendor/sharp/lib/index.js +16 -0
  1139. package/dashboard/.next/standalone/vendor/sharp/lib/input.js +809 -0
  1140. package/dashboard/.next/standalone/vendor/sharp/lib/is.js +143 -0
  1141. package/dashboard/.next/standalone/vendor/sharp/lib/libvips.js +207 -0
  1142. package/dashboard/.next/standalone/vendor/sharp/lib/operation.js +1016 -0
  1143. package/dashboard/.next/standalone/vendor/sharp/lib/output.js +1666 -0
  1144. package/dashboard/.next/standalone/vendor/sharp/lib/resize.js +595 -0
  1145. package/dashboard/.next/standalone/vendor/sharp/lib/sharp.js +121 -0
  1146. package/dashboard/.next/standalone/vendor/sharp/lib/utility.js +291 -0
  1147. package/dashboard/.next/standalone/vendor/sharp/package.json +202 -0
  1148. package/dashboard/.next/standalone/vendor/styled-jsx/dist/index/index.js +499 -0
  1149. package/dashboard/.next/standalone/vendor/styled-jsx/index.js +1 -0
  1150. package/dashboard/.next/standalone/vendor/styled-jsx/package.json +132 -0
  1151. package/dashboard/.next/standalone/vendor/styled-jsx/style.js +1 -0
  1152. package/dist/cli/tray/autostart.js +3 -3
  1153. package/dist/cli/tray/autostart.js.map +1 -1
  1154. package/dist/cli.js +30 -7
  1155. package/dist/cli.js.map +1 -1
  1156. package/dist/core/handler.js +23 -3
  1157. package/dist/core/handler.js.map +1 -1
  1158. package/dist/routes/admin.js +28 -0
  1159. package/dist/routes/admin.js.map +1 -1
  1160. package/dist/routes/v1.js +4 -2
  1161. package/dist/routes/v1.js.map +1 -1
  1162. package/dist/server.js +32 -5
  1163. package/dist/server.js.map +1 -1
  1164. package/package.json +5 -3
  1165. package/src/cli/tray/autostart.ts +3 -3
  1166. package/src/cli.ts +32 -7
  1167. package/src/core/handler.ts +22 -3
  1168. package/src/routes/admin.ts +27 -0
  1169. package/src/routes/v1.ts +4 -2
  1170. package/src/server.ts +33 -5
  1171. package/dashboard/.next/BUILD_ID +0 -1
  1172. package/dashboard/.next/build/56416d4ae4ce586f.js +0 -6
  1173. package/dashboard/.next/build/56416d4ae4ce586f.js.map +0 -5
  1174. package/dashboard/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +0 -206
  1175. package/dashboard/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +0 -8
  1176. package/dashboard/.next/build/chunks/[root-of-the-server]__1f933tp._.js +0 -500
  1177. package/dashboard/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +0 -11
  1178. package/dashboard/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +0 -13
  1179. package/dashboard/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +0 -5
  1180. package/dashboard/.next/build/chunks/[turbopack]_runtime.js +0 -890
  1181. package/dashboard/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
  1182. package/dashboard/.next/build/chunks/node_modules_20v-8wl._.js +0 -6824
  1183. package/dashboard/.next/build/chunks/node_modules_20v-8wl._.js.map +0 -47
  1184. package/dashboard/.next/build-manifest.json +0 -22
  1185. package/dashboard/.next/cache/.previewinfo +0 -1
  1186. package/dashboard/.next/cache/.rscinfo +0 -1
  1187. package/dashboard/.next/diagnostics/build-diagnostics.json +0 -6
  1188. package/dashboard/.next/diagnostics/framework.json +0 -1
  1189. package/dashboard/.next/diagnostics/route-bundle-stats.json +0 -225
  1190. package/dashboard/.next/export-marker.json +0 -6
  1191. package/dashboard/.next/fallback-build-manifest.json +0 -13
  1192. package/dashboard/.next/images-manifest.json +0 -68
  1193. package/dashboard/.next/next-minimal-server.js.nft.json +0 -1
  1194. package/dashboard/.next/next-server.js.nft.json +0 -1
  1195. package/dashboard/.next/package.json +0 -1
  1196. package/dashboard/.next/required-server-files.js +0 -337
  1197. package/dashboard/.next/required-server-files.json +0 -337
  1198. package/dashboard/.next/server/app/(console)/combos/page_client-reference-manifest.js +0 -3
  1199. package/dashboard/.next/server/app/(console)/config/page_client-reference-manifest.js +0 -3
  1200. package/dashboard/.next/server/app/(console)/console/page_client-reference-manifest.js +0 -3
  1201. package/dashboard/.next/server/app/(console)/endpoint/page_client-reference-manifest.js +0 -3
  1202. package/dashboard/.next/server/app/(console)/keys/page_client-reference-manifest.js +0 -3
  1203. package/dashboard/.next/server/app/(console)/page_client-reference-manifest.js +0 -3
  1204. package/dashboard/.next/server/app/(console)/providers/[id]/page_client-reference-manifest.js +0 -3
  1205. package/dashboard/.next/server/app/(console)/providers/page_client-reference-manifest.js +0 -3
  1206. package/dashboard/.next/server/app/(console)/quota/page_client-reference-manifest.js +0 -3
  1207. package/dashboard/.next/server/app/(console)/tools/[id]/page_client-reference-manifest.js +0 -3
  1208. package/dashboard/.next/server/app/(console)/tools/page_client-reference-manifest.js +0 -3
  1209. package/dashboard/.next/server/app/(console)/usage/page_client-reference-manifest.js +0 -3
  1210. package/dashboard/.next/server/app/_global-error.html +0 -1
  1211. package/dashboard/.next/server/app/_global-error.rsc +0 -14
  1212. package/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
  1213. package/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +0 -14
  1214. package/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +0 -5
  1215. package/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +0 -5
  1216. package/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
  1217. package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +0 -3
  1218. package/dashboard/.next/server/app/_not-found.html +0 -1
  1219. package/dashboard/.next/server/app/_not-found.rsc +0 -20
  1220. package/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +0 -20
  1221. package/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
  1222. package/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +0 -9
  1223. package/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
  1224. package/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -5
  1225. package/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -3
  1226. package/dashboard/.next/server/app/combos.html +0 -1
  1227. package/dashboard/.next/server/app/combos.rsc +0 -25
  1228. package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos/__PAGE__.segment.rsc +0 -6
  1229. package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos.segment.rsc +0 -5
  1230. package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1231. package/dashboard/.next/server/app/combos.segments/_full.segment.rsc +0 -25
  1232. package/dashboard/.next/server/app/combos.segments/_head.segment.rsc +0 -6
  1233. package/dashboard/.next/server/app/combos.segments/_index.segment.rsc +0 -9
  1234. package/dashboard/.next/server/app/combos.segments/_tree.segment.rsc +0 -5
  1235. package/dashboard/.next/server/app/config.html +0 -1
  1236. package/dashboard/.next/server/app/config.rsc +0 -25
  1237. package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp/config/__PAGE__.segment.rsc +0 -6
  1238. package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp/config.segment.rsc +0 -5
  1239. package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1240. package/dashboard/.next/server/app/config.segments/_full.segment.rsc +0 -25
  1241. package/dashboard/.next/server/app/config.segments/_head.segment.rsc +0 -6
  1242. package/dashboard/.next/server/app/config.segments/_index.segment.rsc +0 -9
  1243. package/dashboard/.next/server/app/config.segments/_tree.segment.rsc +0 -5
  1244. package/dashboard/.next/server/app/console.html +0 -1
  1245. package/dashboard/.next/server/app/console.rsc +0 -28
  1246. package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp/console/__PAGE__.segment.rsc +0 -9
  1247. package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp/console.segment.rsc +0 -5
  1248. package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1249. package/dashboard/.next/server/app/console.segments/_full.segment.rsc +0 -28
  1250. package/dashboard/.next/server/app/console.segments/_head.segment.rsc +0 -6
  1251. package/dashboard/.next/server/app/console.segments/_index.segment.rsc +0 -9
  1252. package/dashboard/.next/server/app/console.segments/_tree.segment.rsc +0 -5
  1253. package/dashboard/.next/server/app/endpoint.html +0 -1
  1254. package/dashboard/.next/server/app/endpoint.rsc +0 -25
  1255. package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint/__PAGE__.segment.rsc +0 -6
  1256. package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint.segment.rsc +0 -5
  1257. package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1258. package/dashboard/.next/server/app/endpoint.segments/_full.segment.rsc +0 -25
  1259. package/dashboard/.next/server/app/endpoint.segments/_head.segment.rsc +0 -6
  1260. package/dashboard/.next/server/app/endpoint.segments/_index.segment.rsc +0 -9
  1261. package/dashboard/.next/server/app/endpoint.segments/_tree.segment.rsc +0 -5
  1262. package/dashboard/.next/server/app/index.html +0 -1
  1263. package/dashboard/.next/server/app/index.rsc +0 -23
  1264. package/dashboard/.next/server/app/index.segments/!KGNvbnNvbGUp/__PAGE__.segment.rsc +0 -6
  1265. package/dashboard/.next/server/app/index.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1266. package/dashboard/.next/server/app/index.segments/_full.segment.rsc +0 -23
  1267. package/dashboard/.next/server/app/index.segments/_head.segment.rsc +0 -6
  1268. package/dashboard/.next/server/app/index.segments/_index.segment.rsc +0 -9
  1269. package/dashboard/.next/server/app/index.segments/_tree.segment.rsc +0 -5
  1270. package/dashboard/.next/server/app/keys.html +0 -1
  1271. package/dashboard/.next/server/app/keys.rsc +0 -25
  1272. package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys/__PAGE__.segment.rsc +0 -6
  1273. package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys.segment.rsc +0 -5
  1274. package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1275. package/dashboard/.next/server/app/keys.segments/_full.segment.rsc +0 -25
  1276. package/dashboard/.next/server/app/keys.segments/_head.segment.rsc +0 -6
  1277. package/dashboard/.next/server/app/keys.segments/_index.segment.rsc +0 -9
  1278. package/dashboard/.next/server/app/keys.segments/_tree.segment.rsc +0 -5
  1279. package/dashboard/.next/server/app/login/page_client-reference-manifest.js +0 -3
  1280. package/dashboard/.next/server/app/login.html +0 -1
  1281. package/dashboard/.next/server/app/login.rsc +0 -26
  1282. package/dashboard/.next/server/app/login.segments/_full.segment.rsc +0 -26
  1283. package/dashboard/.next/server/app/login.segments/_head.segment.rsc +0 -6
  1284. package/dashboard/.next/server/app/login.segments/_index.segment.rsc +0 -9
  1285. package/dashboard/.next/server/app/login.segments/_tree.segment.rsc +0 -5
  1286. package/dashboard/.next/server/app/login.segments/login/__PAGE__.segment.rsc +0 -9
  1287. package/dashboard/.next/server/app/login.segments/login.segment.rsc +0 -5
  1288. package/dashboard/.next/server/app/providers.html +0 -1
  1289. package/dashboard/.next/server/app/providers.rsc +0 -25
  1290. package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers/__PAGE__.segment.rsc +0 -6
  1291. package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers.segment.rsc +0 -5
  1292. package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1293. package/dashboard/.next/server/app/providers.segments/_full.segment.rsc +0 -25
  1294. package/dashboard/.next/server/app/providers.segments/_head.segment.rsc +0 -6
  1295. package/dashboard/.next/server/app/providers.segments/_index.segment.rsc +0 -9
  1296. package/dashboard/.next/server/app/providers.segments/_tree.segment.rsc +0 -5
  1297. package/dashboard/.next/server/app/quota.html +0 -1
  1298. package/dashboard/.next/server/app/quota.rsc +0 -25
  1299. package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota/__PAGE__.segment.rsc +0 -6
  1300. package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota.segment.rsc +0 -5
  1301. package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1302. package/dashboard/.next/server/app/quota.segments/_full.segment.rsc +0 -25
  1303. package/dashboard/.next/server/app/quota.segments/_head.segment.rsc +0 -6
  1304. package/dashboard/.next/server/app/quota.segments/_index.segment.rsc +0 -9
  1305. package/dashboard/.next/server/app/quota.segments/_tree.segment.rsc +0 -5
  1306. package/dashboard/.next/server/app/tools.html +0 -1
  1307. package/dashboard/.next/server/app/tools.rsc +0 -25
  1308. package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools/__PAGE__.segment.rsc +0 -6
  1309. package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools.segment.rsc +0 -5
  1310. package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp.segment.rsc +0 -6
  1311. package/dashboard/.next/server/app/tools.segments/_full.segment.rsc +0 -25
  1312. package/dashboard/.next/server/app/tools.segments/_head.segment.rsc +0 -6
  1313. package/dashboard/.next/server/app/tools.segments/_index.segment.rsc +0 -9
  1314. package/dashboard/.next/server/app/tools.segments/_tree.segment.rsc +0 -5
  1315. package/dashboard/.next/server/chunks/[externals]__1j91pjf._.js.map +0 -1
  1316. package/dashboard/.next/server/chunks/[externals]__1v5t_x8._.js.map +0 -1
  1317. package/dashboard/.next/server/chunks/[root-of-the-server]__0-6ukjk._.js +0 -3
  1318. package/dashboard/.next/server/chunks/[root-of-the-server]__0-6ukjk._.js.map +0 -1
  1319. package/dashboard/.next/server/chunks/[root-of-the-server]__043un18._.js.map +0 -1
  1320. package/dashboard/.next/server/chunks/[root-of-the-server]__07euc03._.js +0 -3
  1321. package/dashboard/.next/server/chunks/[root-of-the-server]__07euc03._.js.map +0 -1
  1322. package/dashboard/.next/server/chunks/[root-of-the-server]__082azhr._.js +0 -3
  1323. package/dashboard/.next/server/chunks/[root-of-the-server]__082azhr._.js.map +0 -1
  1324. package/dashboard/.next/server/chunks/[root-of-the-server]__0das32e._.js +0 -3
  1325. package/dashboard/.next/server/chunks/[root-of-the-server]__0das32e._.js.map +0 -1
  1326. package/dashboard/.next/server/chunks/[root-of-the-server]__0pp7rn-._.js +0 -3
  1327. package/dashboard/.next/server/chunks/[root-of-the-server]__0pp7rn-._.js.map +0 -1
  1328. package/dashboard/.next/server/chunks/[root-of-the-server]__0uqpr_c._.js +0 -3
  1329. package/dashboard/.next/server/chunks/[root-of-the-server]__0uqpr_c._.js.map +0 -1
  1330. package/dashboard/.next/server/chunks/[root-of-the-server]__0xuaoik._.js.map +0 -1
  1331. package/dashboard/.next/server/chunks/[turbopack]_runtime.js.map +0 -11
  1332. package/dashboard/.next/server/chunks/_0digmky._.js.map +0 -1
  1333. package/dashboard/.next/server/chunks/_next-internal_server_app_api_cli-detect_[tool]_route_actions_0ffw-gg.js.map +0 -1
  1334. package/dashboard/.next/server/chunks/_next-internal_server_app_api_gw_[___path]_route_actions_0ytl4km.js.map +0 -1
  1335. package/dashboard/.next/server/chunks/_next-internal_server_app_api_login_route_actions_1apjjct.js.map +0 -1
  1336. package/dashboard/.next/server/chunks/_next-internal_server_app_api_logout_route_actions_0gzx3on.js.map +0 -1
  1337. package/dashboard/.next/server/chunks/_next-internal_server_app_api_password_route_actions_0xecc0j.js.map +0 -1
  1338. package/dashboard/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js.map +0 -1
  1339. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__006jvp_._.js.map +0 -1
  1340. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0559wxx._.js.map +0 -1
  1341. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0_fihdn._.js.map +0 -1
  1342. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0cx5pj3._.js.map +0 -1
  1343. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0d-itp1._.js.map +0 -1
  1344. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0dk7lif._.js.map +0 -1
  1345. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0qvkt1y._.js.map +0 -1
  1346. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0unr06k._.js.map +0 -1
  1347. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0zf4yft._.js +0 -27
  1348. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0zf4yft._.js.map +0 -1
  1349. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__11t16qi._.js.map +0 -1
  1350. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__12q01a8._.js.map +0 -1
  1351. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__179ut8i._.js.map +0 -1
  1352. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js.map +0 -1
  1353. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1eeunp8._.js.map +0 -1
  1354. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1inj1w-._.js.map +0 -1
  1355. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1jidl81._.js.map +0 -1
  1356. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1mg2t8f._.js.map +0 -1
  1357. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1t7z0yw._.js.map +0 -1
  1358. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1w2pq2s._.js.map +0 -1
  1359. package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1w31jjb._.js.map +0 -1
  1360. package/dashboard/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -11
  1361. package/dashboard/.next/server/chunks/ssr/_0g1n0z2._.js.map +0 -1
  1362. package/dashboard/.next/server/chunks/ssr/_0p90gyy._.js +0 -3
  1363. package/dashboard/.next/server/chunks/ssr/_0p90gyy._.js.map +0 -1
  1364. package/dashboard/.next/server/chunks/ssr/_1mumvwn._.js.map +0 -1
  1365. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_combos_page_actions_07o3lus.js.map +0 -1
  1366. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_config_page_actions_1d2383s.js.map +0 -1
  1367. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_console_page_actions_0w-3r_g.js.map +0 -1
  1368. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_endpoint_page_actions_00tzpzh.js.map +0 -1
  1369. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_keys_page_actions_1--ho2b.js.map +0 -1
  1370. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_page_actions_0u8zxvt.js.map +0 -1
  1371. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_providers_[id]_page_actions_20yozi-.js.map +0 -1
  1372. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_providers_page_actions_1bdc8gv.js.map +0 -1
  1373. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_quota_page_actions_02l-zu_.js.map +0 -1
  1374. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_tools_[id]_page_actions_01qi9of.js.map +0 -1
  1375. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_tools_page_actions_18gis7c.js.map +0 -1
  1376. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_usage_page_actions_1twl-ym.js.map +0 -1
  1377. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +0 -1
  1378. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +0 -1
  1379. package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js.map +0 -1
  1380. package/dashboard/.next/server/chunks/ssr/node_modules_1ivn_d-._.js.map +0 -1
  1381. package/dashboard/.next/server/chunks/ssr/node_modules_next_1iemwhs._.js.map +0 -1
  1382. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js.map +0 -1
  1383. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_1enzot_._.js.map +0 -1
  1384. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_1map00z._.js.map +0 -1
  1385. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js.map +0 -1
  1386. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +0 -1
  1387. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +0 -1
  1388. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js.map +0 -1
  1389. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +0 -1
  1390. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-auga4.js.map +0 -1
  1391. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00x0c-2.js.map +0 -1
  1392. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01n345n.js.map +0 -1
  1393. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02jwx28.js.map +0 -1
  1394. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08g_4le.js.map +0 -1
  1395. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js.map +0 -1
  1396. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tx5zxe.js.map +0 -1
  1397. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15dprgl.js.map +0 -1
  1398. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18twt8j.js.map +0 -1
  1399. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js.map +0 -1
  1400. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bycsv3.js.map +0 -1
  1401. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1i1atml.js.map +0 -1
  1402. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n7v8np.js.map +0 -1
  1403. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1q72yyr.js.map +0 -1
  1404. package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20gk3id.js.map +0 -1
  1405. package/dashboard/.next/server/chunks/ssr/src_0wrskl4._.js.map +0 -1
  1406. package/dashboard/.next/server/chunks/ssr/src_13mfqac._.js.map +0 -1
  1407. package/dashboard/.next/server/chunks/ssr/src_16zsfd3._.js.map +0 -1
  1408. package/dashboard/.next/server/chunks/ssr/src_app_(console)_console_page_tsx_1g8gnmy._.js.map +0 -1
  1409. package/dashboard/.next/server/chunks/ssr/src_components_0-kkrr9._.js.map +0 -1
  1410. package/dashboard/.next/server/chunks/ssr/src_components_0dgasfb._.js.map +0 -1
  1411. package/dashboard/.next/server/chunks/ssr/src_components_0kr-r_t._.js.map +0 -1
  1412. package/dashboard/.next/server/chunks/ssr/src_components_0q5pldo._.js.map +0 -1
  1413. package/dashboard/.next/server/chunks/ssr/src_components_10h9ide._.js +0 -3
  1414. package/dashboard/.next/server/chunks/ssr/src_components_10h9ide._.js.map +0 -1
  1415. package/dashboard/.next/server/chunks/ssr/src_components_11ckzq_._.js.map +0 -1
  1416. package/dashboard/.next/server/chunks/ssr/src_components_11dtfns._.js.map +0 -1
  1417. package/dashboard/.next/server/chunks/ssr/src_components_1e6kjgr._.js.map +0 -1
  1418. package/dashboard/.next/server/chunks/ssr/src_components_1eg_jit._.js.map +0 -1
  1419. package/dashboard/.next/server/chunks/ssr/src_components_1pu8z89._.js.map +0 -1
  1420. package/dashboard/.next/server/chunks/ssr/src_components_1z4akp5._.js.map +0 -1
  1421. package/dashboard/.next/server/chunks/ssr/src_components_BudgetTracker_tsx_1-xevea._.js.map +0 -1
  1422. package/dashboard/.next/server/chunks/ssr/src_components_KeyManager_tsx_0r7iyz8._.js.map +0 -1
  1423. package/dashboard/.next/server/chunks/ssr/src_components_ProviderDetail_tsx_06sxu0r._.js +0 -3
  1424. package/dashboard/.next/server/chunks/ssr/src_components_ProviderDetail_tsx_06sxu0r._.js.map +0 -1
  1425. package/dashboard/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js +0 -3
  1426. package/dashboard/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js.map +0 -1
  1427. package/dashboard/.next/server/chunks/ssr/src_components_ToolDetail_tsx_0qperd-._.js.map +0 -1
  1428. package/dashboard/.next/server/interception-route-rewrite-manifest.js +0 -1
  1429. package/dashboard/.next/server/middleware/middleware-manifest.json +0 -6
  1430. package/dashboard/.next/server/middleware-build-manifest.js +0 -22
  1431. package/dashboard/.next/server/middleware.js.map +0 -5
  1432. package/dashboard/.next/server/middleware.js.nft.json +0 -1
  1433. package/dashboard/.next/server/pages/404.html +0 -1
  1434. package/dashboard/.next/server/pages/500.html +0 -1
  1435. package/dashboard/.next/static/chunks/0-qqj0_fg6ef0.js +0 -1
  1436. package/dashboard/.next/static/chunks/0347y27liw05t.js +0 -1
  1437. package/dashboard/.next/static/chunks/03xhjt1ta90pp.js +0 -1
  1438. package/dashboard/.next/static/chunks/05-c3ty_6dwfk.js +0 -1
  1439. package/dashboard/.next/static/chunks/0cz1d0mv5g_q7.js +0 -1
  1440. package/dashboard/.next/static/chunks/0iv69e64f1ywa.css +0 -3
  1441. package/dashboard/.next/static/chunks/0mk1g55o6kl1e.js +0 -2
  1442. package/dashboard/.next/static/chunks/0mou1p6uwiu19.js +0 -1
  1443. package/dashboard/.next/static/chunks/0mr7sg_sr6f99.js +0 -1
  1444. package/dashboard/.next/static/chunks/0zdns9uijk264.js +0 -1
  1445. package/dashboard/.next/static/chunks/13ge_ybuj8rl3.js +0 -1
  1446. package/dashboard/.next/static/chunks/14mrh2-p_w84d.js +0 -1
  1447. package/dashboard/.next/static/chunks/15d148buj9byd.js +0 -1
  1448. package/dashboard/.next/static/chunks/19nfww990cvv7.js +0 -1
  1449. package/dashboard/.next/static/chunks/1t87-rpltg53e.js +0 -1
  1450. package/dashboard/.next/static/chunks/1wn1c2w4ibyg_.js +0 -1
  1451. package/dashboard/.next/static/chunks/27jktro2p5rq9.js +0 -4
  1452. package/dashboard/.next/static/chunks/29bgf5j_v6h2z.js +0 -1
  1453. package/dashboard/.next/static/chunks/2t3rqr0rkspb7.js +0 -1
  1454. package/dashboard/.next/static/chunks/2uvgdots59tjl.js +0 -1
  1455. package/dashboard/.next/static/chunks/36ssnkm0cjgq6.js +0 -31
  1456. package/dashboard/.next/static/chunks/3chs_cdkdx2h9.js +0 -1
  1457. package/dashboard/.next/static/chunks/3j9pm5otqxm82.js +0 -1
  1458. package/dashboard/.next/static/chunks/3jat3x6f_2a6o.js +0 -1
  1459. package/dashboard/.next/static/chunks/40pm83c1_d0jz.js +0 -25
  1460. package/dashboard/.next/static/chunks/turbopack-28-wpvvyttgwq.js +0 -1
  1461. package/dashboard/.next/static/jKcczqYA93-Kuqa9A9H9h/_buildManifest.js +0 -11
  1462. package/dashboard/.next/static/jKcczqYA93-Kuqa9A9H9h/_clientMiddlewareManifest.js +0 -6
  1463. package/dashboard/.next/static/jKcczqYA93-Kuqa9A9H9h/_ssgManifest.js +0 -1
  1464. package/dashboard/.next/static/media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2 +0 -0
  1465. package/dashboard/.next/static/media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2 +0 -0
  1466. package/dashboard/.next/static/media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2 +0 -0
  1467. package/dashboard/.next/static/media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2 +0 -0
  1468. package/dashboard/.next/static/media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2 +0 -0
  1469. package/dashboard/.next/static/media/5476f68d60460930-s.2uwcyprjm3xu3.woff2 +0 -0
  1470. package/dashboard/.next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2 +0 -0
  1471. package/dashboard/.next/static/media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2 +0 -0
  1472. package/dashboard/.next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2 +0 -0
  1473. package/dashboard/.next/static/media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2 +0 -0
  1474. package/dashboard/.next/static/media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2 +0 -0
  1475. package/dashboard/.next/static/media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2 +0 -0
  1476. package/dashboard/.next/static/media/cc545e633e20c56d-s.176arc174-8zp.woff2 +0 -0
  1477. package/dashboard/.next/static/media/icon.43yv9zw_mes0x.svg +0 -8
  1478. package/dashboard/.next/trace +0 -1
  1479. package/dashboard/.next/trace-build +0 -1
  1480. package/dashboard/.next/types/cache-life.d.ts +0 -145
  1481. package/dashboard/.next/types/routes.d.ts +0 -89
  1482. package/dashboard/.next/types/validator.ts +0 -232
  1483. package/dashboard/next-env.d.ts +0 -6
  1484. package/dashboard/next.config.ts +0 -18
  1485. package/dashboard/package-lock.json +0 -1827
  1486. package/dashboard/postcss.config.mjs +0 -5
  1487. package/dashboard/src/app/(console)/combos/page.tsx +0 -10
  1488. package/dashboard/src/app/(console)/config/page.tsx +0 -5
  1489. package/dashboard/src/app/(console)/console/page.tsx +0 -92
  1490. package/dashboard/src/app/(console)/endpoint/page.tsx +0 -5
  1491. package/dashboard/src/app/(console)/keys/page.tsx +0 -5
  1492. package/dashboard/src/app/(console)/layout.tsx +0 -17
  1493. package/dashboard/src/app/(console)/page.tsx +0 -8
  1494. package/dashboard/src/app/(console)/providers/[id]/page.tsx +0 -6
  1495. package/dashboard/src/app/(console)/providers/page.tsx +0 -5
  1496. package/dashboard/src/app/(console)/quota/page.tsx +0 -5
  1497. package/dashboard/src/app/(console)/tools/[id]/page.tsx +0 -6
  1498. package/dashboard/src/app/(console)/tools/page.tsx +0 -5
  1499. package/dashboard/src/app/(console)/usage/page.tsx +0 -24
  1500. package/dashboard/src/app/api/cli-detect/[tool]/route.ts +0 -252
  1501. package/dashboard/src/app/api/gw/[...path]/route.ts +0 -89
  1502. package/dashboard/src/app/api/login/route.ts +0 -30
  1503. package/dashboard/src/app/api/logout/route.ts +0 -9
  1504. package/dashboard/src/app/api/password/route.ts +0 -34
  1505. package/dashboard/src/app/globals.css +0 -388
  1506. package/dashboard/src/app/icon.svg +0 -8
  1507. package/dashboard/src/app/layout.tsx +0 -29
  1508. package/dashboard/src/app/login/page.tsx +0 -60
  1509. package/dashboard/src/components/AreaChart.tsx +0 -115
  1510. package/dashboard/src/components/Badge.tsx +0 -33
  1511. package/dashboard/src/components/BudgetForm.tsx +0 -256
  1512. package/dashboard/src/components/BudgetTracker.tsx +0 -181
  1513. package/dashboard/src/components/Button.tsx +0 -60
  1514. package/dashboard/src/components/CapacityBadges.tsx +0 -40
  1515. package/dashboard/src/components/Checkbox.tsx +0 -40
  1516. package/dashboard/src/components/CliToolConfig.tsx +0 -63
  1517. package/dashboard/src/components/ConfigEditor.tsx +0 -199
  1518. package/dashboard/src/components/ConfirmModal.tsx +0 -36
  1519. package/dashboard/src/components/CooldownTimer.tsx +0 -42
  1520. package/dashboard/src/components/EndpointView.tsx +0 -359
  1521. package/dashboard/src/components/Icon.tsx +0 -25
  1522. package/dashboard/src/components/KeyManager.tsx +0 -252
  1523. package/dashboard/src/components/KeyReveal.tsx +0 -78
  1524. package/dashboard/src/components/KeyScopeModal.tsx +0 -184
  1525. package/dashboard/src/components/Lamp.tsx +0 -8
  1526. package/dashboard/src/components/LogTable.tsx +0 -298
  1527. package/dashboard/src/components/LogoutButton.tsx +0 -20
  1528. package/dashboard/src/components/ModelPicker.tsx +0 -129
  1529. package/dashboard/src/components/ModelSelectModal.tsx +0 -126
  1530. package/dashboard/src/components/PasswordEditor.tsx +0 -86
  1531. package/dashboard/src/components/PricingEditor.tsx +0 -171
  1532. package/dashboard/src/components/ProviderDetail.tsx +0 -569
  1533. package/dashboard/src/components/ProviderManager.tsx +0 -415
  1534. package/dashboard/src/components/Rail.tsx +0 -83
  1535. package/dashboard/src/components/RichCard.tsx +0 -46
  1536. package/dashboard/src/components/RoutingView.tsx +0 -333
  1537. package/dashboard/src/components/ThemeProvider.tsx +0 -36
  1538. package/dashboard/src/components/ToastProvider.tsx +0 -58
  1539. package/dashboard/src/components/ToolDetail.tsx +0 -616
  1540. package/dashboard/src/components/TopBar.tsx +0 -220
  1541. package/dashboard/src/components/UsageView.tsx +0 -170
  1542. package/dashboard/src/components/ui.tsx +0 -59
  1543. package/dashboard/src/lib/capabilities.ts +0 -318
  1544. package/dashboard/src/lib/cliTools.ts +0 -77
  1545. package/dashboard/src/lib/client.ts +0 -210
  1546. package/dashboard/src/lib/gateway.ts +0 -302
  1547. package/dashboard/src/lib/session.ts +0 -76
  1548. package/dashboard/src/proxy.ts +0 -39
  1549. /package/dashboard/.next/{app-path-routes-manifest.json → standalone/.next/app-path-routes-manifest.json} +0 -0
  1550. /package/dashboard/.next/{build → standalone/.next}/package.json +0 -0
  1551. /package/dashboard/.next/{prerender-manifest.json → standalone/.next/prerender-manifest.json} +0 -0
  1552. /package/dashboard/.next/{routes-manifest.json → standalone/.next/routes-manifest.json} +0 -0
  1553. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page/app-paths-manifest.json +0 -0
  1554. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page/build-manifest.json +0 -0
  1555. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page/next-font-manifest.json +0 -0
  1556. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page/react-loadable-manifest.json +0 -0
  1557. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page/server-reference-manifest.json +0 -0
  1558. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page.js +0 -0
  1559. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page.js.map +0 -0
  1560. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/combos/page.js.nft.json +0 -0
  1561. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page/app-paths-manifest.json +0 -0
  1562. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page/build-manifest.json +0 -0
  1563. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page/next-font-manifest.json +0 -0
  1564. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page/react-loadable-manifest.json +0 -0
  1565. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page/server-reference-manifest.json +0 -0
  1566. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page.js +0 -0
  1567. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page.js.map +0 -0
  1568. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/config/page.js.nft.json +0 -0
  1569. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page/app-paths-manifest.json +0 -0
  1570. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page/build-manifest.json +0 -0
  1571. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page/next-font-manifest.json +0 -0
  1572. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page/react-loadable-manifest.json +0 -0
  1573. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page/server-reference-manifest.json +0 -0
  1574. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page.js +0 -0
  1575. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page.js.map +0 -0
  1576. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/console/page.js.nft.json +0 -0
  1577. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page/app-paths-manifest.json +0 -0
  1578. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page/build-manifest.json +0 -0
  1579. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page/next-font-manifest.json +0 -0
  1580. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page/react-loadable-manifest.json +0 -0
  1581. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page/server-reference-manifest.json +0 -0
  1582. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page.js +0 -0
  1583. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page.js.map +0 -0
  1584. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/endpoint/page.js.nft.json +0 -0
  1585. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page/app-paths-manifest.json +0 -0
  1586. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page/build-manifest.json +0 -0
  1587. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page/next-font-manifest.json +0 -0
  1588. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page/react-loadable-manifest.json +0 -0
  1589. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page/server-reference-manifest.json +0 -0
  1590. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page.js +0 -0
  1591. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page.js.map +0 -0
  1592. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/keys/page.js.nft.json +0 -0
  1593. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page/app-paths-manifest.json +0 -0
  1594. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page/build-manifest.json +0 -0
  1595. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page/next-font-manifest.json +0 -0
  1596. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page/react-loadable-manifest.json +0 -0
  1597. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page/server-reference-manifest.json +0 -0
  1598. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page.js +0 -0
  1599. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page.js.map +0 -0
  1600. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/page.js.nft.json +0 -0
  1601. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page/app-paths-manifest.json +0 -0
  1602. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page/build-manifest.json +0 -0
  1603. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page/next-font-manifest.json +0 -0
  1604. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page/react-loadable-manifest.json +0 -0
  1605. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page/server-reference-manifest.json +0 -0
  1606. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page.js +0 -0
  1607. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page.js.map +0 -0
  1608. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/[id]/page.js.nft.json +0 -0
  1609. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page/app-paths-manifest.json +0 -0
  1610. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page/build-manifest.json +0 -0
  1611. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page/next-font-manifest.json +0 -0
  1612. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page/react-loadable-manifest.json +0 -0
  1613. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page/server-reference-manifest.json +0 -0
  1614. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page.js +0 -0
  1615. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page.js.map +0 -0
  1616. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/providers/page.js.nft.json +0 -0
  1617. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page/app-paths-manifest.json +0 -0
  1618. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page/build-manifest.json +0 -0
  1619. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page/next-font-manifest.json +0 -0
  1620. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page/react-loadable-manifest.json +0 -0
  1621. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page/server-reference-manifest.json +0 -0
  1622. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page.js +0 -0
  1623. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page.js.map +0 -0
  1624. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/quota/page.js.nft.json +0 -0
  1625. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page/app-paths-manifest.json +0 -0
  1626. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page/build-manifest.json +0 -0
  1627. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page/next-font-manifest.json +0 -0
  1628. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page/react-loadable-manifest.json +0 -0
  1629. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page/server-reference-manifest.json +0 -0
  1630. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page.js +0 -0
  1631. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page.js.map +0 -0
  1632. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/[id]/page.js.nft.json +0 -0
  1633. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page/app-paths-manifest.json +0 -0
  1634. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page/build-manifest.json +0 -0
  1635. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page/next-font-manifest.json +0 -0
  1636. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page/react-loadable-manifest.json +0 -0
  1637. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page/server-reference-manifest.json +0 -0
  1638. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page.js +0 -0
  1639. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page.js.map +0 -0
  1640. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/tools/page.js.nft.json +0 -0
  1641. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page/app-paths-manifest.json +0 -0
  1642. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page/build-manifest.json +0 -0
  1643. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page/next-font-manifest.json +0 -0
  1644. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page/react-loadable-manifest.json +0 -0
  1645. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page/server-reference-manifest.json +0 -0
  1646. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page.js +0 -0
  1647. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page.js.map +0 -0
  1648. /package/dashboard/.next/{server → standalone/.next/server}/app/(console)/usage/page.js.nft.json +0 -0
  1649. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page/app-paths-manifest.json +0 -0
  1650. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page/build-manifest.json +0 -0
  1651. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page/next-font-manifest.json +0 -0
  1652. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page/react-loadable-manifest.json +0 -0
  1653. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page/server-reference-manifest.json +0 -0
  1654. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page.js +0 -0
  1655. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page.js.map +0 -0
  1656. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page.js.nft.json +0 -0
  1657. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error/page_client-reference-manifest.js +0 -0
  1658. /package/dashboard/.next/{server → standalone/.next/server}/app/_global-error.meta +0 -0
  1659. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page/app-paths-manifest.json +0 -0
  1660. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page/build-manifest.json +0 -0
  1661. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page/next-font-manifest.json +0 -0
  1662. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page/react-loadable-manifest.json +0 -0
  1663. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page/server-reference-manifest.json +0 -0
  1664. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page.js +0 -0
  1665. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page.js.map +0 -0
  1666. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found/page.js.nft.json +0 -0
  1667. /package/dashboard/.next/{server → standalone/.next/server}/app/_not-found.meta +0 -0
  1668. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route/app-paths-manifest.json +0 -0
  1669. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route/build-manifest.json +0 -0
  1670. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route/server-reference-manifest.json +0 -0
  1671. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route.js +0 -0
  1672. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route.js.map +0 -0
  1673. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route.js.nft.json +0 -0
  1674. /package/dashboard/.next/{server → standalone/.next/server}/app/api/cli-detect/[tool]/route_client-reference-manifest.js +0 -0
  1675. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route/app-paths-manifest.json +0 -0
  1676. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route/build-manifest.json +0 -0
  1677. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route/server-reference-manifest.json +0 -0
  1678. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route.js +0 -0
  1679. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route.js.map +0 -0
  1680. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route.js.nft.json +0 -0
  1681. /package/dashboard/.next/{server → standalone/.next/server}/app/api/gw/[...path]/route_client-reference-manifest.js +0 -0
  1682. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route/app-paths-manifest.json +0 -0
  1683. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route/build-manifest.json +0 -0
  1684. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route/server-reference-manifest.json +0 -0
  1685. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route.js +0 -0
  1686. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route.js.map +0 -0
  1687. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route.js.nft.json +0 -0
  1688. /package/dashboard/.next/{server → standalone/.next/server}/app/api/login/route_client-reference-manifest.js +0 -0
  1689. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route/app-paths-manifest.json +0 -0
  1690. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route/build-manifest.json +0 -0
  1691. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route/server-reference-manifest.json +0 -0
  1692. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route.js +0 -0
  1693. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route.js.map +0 -0
  1694. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route.js.nft.json +0 -0
  1695. /package/dashboard/.next/{server → standalone/.next/server}/app/api/logout/route_client-reference-manifest.js +0 -0
  1696. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route/app-paths-manifest.json +0 -0
  1697. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route/build-manifest.json +0 -0
  1698. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route/server-reference-manifest.json +0 -0
  1699. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route.js +0 -0
  1700. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route.js.map +0 -0
  1701. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route.js.nft.json +0 -0
  1702. /package/dashboard/.next/{server → standalone/.next/server}/app/api/password/route_client-reference-manifest.js +0 -0
  1703. /package/dashboard/.next/{server → standalone/.next/server}/app/combos.meta +0 -0
  1704. /package/dashboard/.next/{server → standalone/.next/server}/app/config.meta +0 -0
  1705. /package/dashboard/.next/{server → standalone/.next/server}/app/console.meta +0 -0
  1706. /package/dashboard/.next/{server → standalone/.next/server}/app/endpoint.meta +0 -0
  1707. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg/route/app-paths-manifest.json +0 -0
  1708. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg/route/build-manifest.json +0 -0
  1709. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg/route.js +0 -0
  1710. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg/route.js.map +0 -0
  1711. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg/route.js.nft.json +0 -0
  1712. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg.body +0 -0
  1713. /package/dashboard/.next/{server → standalone/.next/server}/app/icon.svg.meta +0 -0
  1714. /package/dashboard/.next/{server → standalone/.next/server}/app/index.meta +0 -0
  1715. /package/dashboard/.next/{server → standalone/.next/server}/app/keys.meta +0 -0
  1716. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page/app-paths-manifest.json +0 -0
  1717. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page/build-manifest.json +0 -0
  1718. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page/next-font-manifest.json +0 -0
  1719. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page/react-loadable-manifest.json +0 -0
  1720. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page/server-reference-manifest.json +0 -0
  1721. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page.js +0 -0
  1722. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page.js.map +0 -0
  1723. /package/dashboard/.next/{server → standalone/.next/server}/app/login/page.js.nft.json +0 -0
  1724. /package/dashboard/.next/{server → standalone/.next/server}/app/login.meta +0 -0
  1725. /package/dashboard/.next/{server → standalone/.next/server}/app/providers.meta +0 -0
  1726. /package/dashboard/.next/{server → standalone/.next/server}/app/quota.meta +0 -0
  1727. /package/dashboard/.next/{server → standalone/.next/server}/app/tools.meta +0 -0
  1728. /package/dashboard/.next/{server → standalone/.next/server}/app-paths-manifest.json +0 -0
  1729. /package/dashboard/.next/{server → standalone/.next/server}/chunks/[externals]__1j91pjf._.js +0 -0
  1730. /package/dashboard/.next/{server → standalone/.next/server}/chunks/[externals]__1v5t_x8._.js +0 -0
  1731. /package/dashboard/.next/{server → standalone/.next/server}/chunks/[root-of-the-server]__043un18._.js +0 -0
  1732. /package/dashboard/.next/{server → standalone/.next/server}/chunks/[root-of-the-server]__0xuaoik._.js +0 -0
  1733. /package/dashboard/.next/{server → standalone/.next/server}/chunks/[turbopack]_runtime.js +0 -0
  1734. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_0digmky._.js +0 -0
  1735. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_next-internal_server_app_api_cli-detect_[tool]_route_actions_0ffw-gg.js +0 -0
  1736. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_next-internal_server_app_api_gw_[___path]_route_actions_0ytl4km.js +0 -0
  1737. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_next-internal_server_app_api_login_route_actions_1apjjct.js +0 -0
  1738. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_next-internal_server_app_api_logout_route_actions_0gzx3on.js +0 -0
  1739. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_next-internal_server_app_api_password_route_actions_0xecc0j.js +0 -0
  1740. /package/dashboard/.next/{server → standalone/.next/server}/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +0 -0
  1741. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__006jvp_._.js +0 -0
  1742. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0559wxx._.js +0 -0
  1743. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0_fihdn._.js +0 -0
  1744. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0cx5pj3._.js +0 -0
  1745. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0d-itp1._.js +0 -0
  1746. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0dk7lif._.js +0 -0
  1747. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0qvkt1y._.js +0 -0
  1748. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__0unr06k._.js +0 -0
  1749. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__11t16qi._.js +0 -0
  1750. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__12q01a8._.js +0 -0
  1751. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__179ut8i._.js +0 -0
  1752. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1dky4g0._.js +0 -0
  1753. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1eeunp8._.js +0 -0
  1754. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1inj1w-._.js +0 -0
  1755. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1jidl81._.js +0 -0
  1756. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1mg2t8f._.js +0 -0
  1757. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1t7z0yw._.js +0 -0
  1758. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1w2pq2s._.js +0 -0
  1759. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[root-of-the-server]__1w31jjb._.js +0 -0
  1760. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/[turbopack]_runtime.js +0 -0
  1761. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_0g1n0z2._.js +0 -0
  1762. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_1mumvwn._.js +0 -0
  1763. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_combos_page_actions_07o3lus.js +0 -0
  1764. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_config_page_actions_1d2383s.js +0 -0
  1765. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_console_page_actions_0w-3r_g.js +0 -0
  1766. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_endpoint_page_actions_00tzpzh.js +0 -0
  1767. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_keys_page_actions_1--ho2b.js +0 -0
  1768. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_page_actions_0u8zxvt.js +0 -0
  1769. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_providers_[id]_page_actions_20yozi-.js +0 -0
  1770. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_providers_page_actions_1bdc8gv.js +0 -0
  1771. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_quota_page_actions_02l-zu_.js +0 -0
  1772. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_tools_[id]_page_actions_01qi9of.js +0 -0
  1773. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_tools_page_actions_18gis7c.js +0 -0
  1774. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_(console)_usage_page_actions_1twl-ym.js +0 -0
  1775. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +0 -0
  1776. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +0 -0
  1777. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +0 -0
  1778. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_1ivn_d-._.js +0 -0
  1779. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_1iemwhs._.js +0 -0
  1780. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_0uboya6._.js +0 -0
  1781. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_1enzot_._.js +0 -0
  1782. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_1map00z._.js +0 -0
  1783. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +0 -0
  1784. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +0 -0
  1785. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +0 -0
  1786. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js +0 -0
  1787. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +0 -0
  1788. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-auga4.js +0 -0
  1789. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00x0c-2.js +0 -0
  1790. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01n345n.js +0 -0
  1791. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02jwx28.js +0 -0
  1792. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08g_4le.js +0 -0
  1793. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js +0 -0
  1794. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tx5zxe.js +0 -0
  1795. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15dprgl.js +0 -0
  1796. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18twt8j.js +0 -0
  1797. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js +0 -0
  1798. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bycsv3.js +0 -0
  1799. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1i1atml.js +0 -0
  1800. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n7v8np.js +0 -0
  1801. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1q72yyr.js +0 -0
  1802. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20gk3id.js +0 -0
  1803. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_0wrskl4._.js +0 -0
  1804. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_13mfqac._.js +0 -0
  1805. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_16zsfd3._.js +0 -0
  1806. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_app_(console)_console_page_tsx_1g8gnmy._.js +0 -0
  1807. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_0-kkrr9._.js +0 -0
  1808. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_0dgasfb._.js +0 -0
  1809. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_0kr-r_t._.js +0 -0
  1810. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_0q5pldo._.js +0 -0
  1811. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_11ckzq_._.js +0 -0
  1812. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_11dtfns._.js +0 -0
  1813. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_1e6kjgr._.js +0 -0
  1814. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_1eg_jit._.js +0 -0
  1815. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_1pu8z89._.js +0 -0
  1816. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_1z4akp5._.js +0 -0
  1817. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_BudgetTracker_tsx_1-xevea._.js +0 -0
  1818. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_KeyManager_tsx_0r7iyz8._.js +0 -0
  1819. /package/dashboard/.next/{server → standalone/.next/server}/chunks/ssr/src_components_ToolDetail_tsx_0qperd-._.js +0 -0
  1820. /package/dashboard/.next/{server → standalone/.next/server}/functions-config-manifest.json +0 -0
  1821. /package/dashboard/.next/{server → standalone/.next/server}/middleware-manifest.json +0 -0
  1822. /package/dashboard/.next/{server → standalone/.next/server}/middleware.js +0 -0
  1823. /package/dashboard/.next/{server → standalone/.next/server}/next-font-manifest.js +0 -0
  1824. /package/dashboard/.next/{server → standalone/.next/server}/next-font-manifest.json +0 -0
  1825. /package/dashboard/.next/{server → standalone/.next/server}/pages-manifest.json +0 -0
  1826. /package/dashboard/.next/{server → standalone/.next/server}/prefetch-hints.json +0 -0
  1827. /package/dashboard/.next/{server → standalone/.next/server}/server-reference-manifest.js +0 -0
  1828. /package/dashboard/.next/{server → standalone/.next/server}/server-reference-manifest.json +0 -0
  1829. /package/dashboard/.next/{turbopack → standalone/vendor/client-only/index.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ui.tsx","../../../../src/components/Badge.tsx","../../../../src/lib/capabilities.ts","../../../../src/components/CapacityBadges.tsx","../../../../src/components/ModelPicker.tsx"],"sourcesContent":["/** Small formatting helpers shared across the console. */\nexport const fmt = {\n int(n: number): string {\n return n.toLocaleString(\"en-US\");\n },\n /** compact number: 1.2K, 3.4M */\n compact(n: number): string {\n if (Math.abs(n) >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n if (Math.abs(n) >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n return String(Math.round(n));\n },\n cost(n: number): string {\n if (n === 0) return \"$0\";\n return n < 0.01 ? `$${n.toFixed(4)}` : `$${n.toFixed(2)}`;\n },\n time(ts: number): string {\n return new Date(ts).toLocaleString(\"en-US\", { hour12: false });\n },\n /** DD/MM/YYYY (local) */\n date(ts: number): string {\n const d = new Date(ts);\n return `${String(d.getDate()).padStart(2, \"0\")}/${String(d.getMonth() + 1).padStart(2, \"0\")}/${d.getFullYear()}`;\n },\n /** \"3m\", \"2h\", \"5d\" — coarse relative age */\n ago(ts: number): string {\n const s = Math.max(0, Math.round((Date.now() - ts) / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m`;\n if (s < 86400) return `${Math.floor(s / 3600)}h`;\n return `${Math.floor(s / 86400)}d`;\n },\n /** ms duration -> \"Xs\", \"Xm Ys\", \"Xh Ym\" for budget/cooldown countdowns */\n duration(ms: number): string {\n const s = Math.max(0, Math.round(ms / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m ${s % 60}s`;\n const h = Math.floor(s / 3600);\n const m = Math.floor((s % 3600) / 60);\n if (h < 24) return `${h}h ${m}m`;\n const d = Math.floor(h / 24);\n return `${d}d ${h % 24}h`;\n },\n};\n\n/** A labelled stat block — number over a caption. */\nexport function Stat({ label, value, sub }: { label: string; value: React.ReactNode; sub?: string }) {\n return (\n <div className=\"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft\">\n <div className=\"text-[11px] font-medium uppercase tracking-wider text-text-subtle\">{label}</div>\n <div className=\"mt-1 tnum text-[22px] font-semibold tracking-tight text-text\">{value}</div>\n {sub && <div className=\"mt-0.5 text-[12px] text-text-muted\">{sub}</div>}\n </div>\n );\n}\n\n/** Empty-state hint inside a card body. */\nexport function Empty({ children }: { children: React.ReactNode }) {\n return <div className=\"px-1 py-8 text-center text-[13px] text-text-muted\">{children}</div>;\n}\n","type Tone = \"live\" | \"down\" | \"warn\" | \"info\" | \"neutral\" | \"danger\";\n\nconst TONES: Record<Tone, string> = {\n live: \"bg-success/12 text-success\",\n down: \"bg-danger/12 text-danger\",\n danger: \"bg-danger/12 text-danger\",\n warn: \"bg-warning/12 text-warning\",\n info: \"bg-info/12 text-info\",\n neutral: \"bg-surface-2 text-text-muted\",\n};\n\nexport function Badge({\n tone = \"neutral\",\n children,\n className,\n}: {\n tone?: Tone;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${TONES[tone]}${className ? ` ${className}` : \"\"}`}\n >\n {children}\n </span>\n );\n}\n\n/** Format badge for a provider's wire format. */\nexport function FormatBadge({ format }: { format: \"openai\" | \"anthropic\" | \"gemini\" }) {\n return <Badge tone=\"info\">{format}</Badge>;\n}\n","// Model capabilities — what each model can read/do beyond plain text.\n//\n// Fallback order (first match wins), result merged over DEFAULT_CAPABILITIES:\n// 1. PROVIDER_CAPABILITIES[provider][model] — provider-specific override\n// 2. MODEL_CAPABILITIES[model] — canonical exact id (handles exceptions)\n// 3. PATTERN_CAPABILITIES — glob match, ordered specific -> generic\n// 4. DEFAULT_CAPABILITIES — safe floor (always returned)\n//\n// ── HOW TO ADD / UPDATE A MODEL ──────────────────────────────────────\n// Authoritative data source: https://models.dev/api.json (145 providers, 4000+\n// models, MIT). Each model exposes the exact fields we map below:\n// modalities.input [\"text\",\"image\",\"pdf\",\"audio\",\"video\"] -> vision / pdf / audioInput / videoInput\n// modalities.output [\"text\",\"image\",\"audio\"] -> imageOutput / audioOutput\n// reasoning -> reasoning tool_call -> tools\n// limit.context -> contextWindow limit.output -> maxOutput\n// Look up the model id, then:\n// • If a PATTERN below already covers it correctly -> nothing to do.\n// • If it is an exception (pattern would mis-match) -> add an exact entry to\n// MODEL_CAPABILITIES (only the fields that differ from DEFAULT).\n// • If a whole new family -> add an ordered PATTERN (specific before generic).\n// NOTE: models.dev has NO \"search\" flag (web search is a runtime tool, not a\n// model spec); set `search` from vendor docs (Claude 4.x+, GPT-5.x/4o, Gemini\n// 2.0+, Grok, Perplexity). Verify with: curl -s https://models.dev/api.json\n\n\n/**\n * Safe floor — every resolved result is merged over this so consumers\n * never need null-checks. Most modern LLMs meet these limits.\n */\nexport interface Caps {\n vision: boolean;\n pdf: boolean;\n audioInput: boolean;\n videoInput: boolean;\n imageOutput: boolean;\n audioOutput: boolean;\n search: boolean;\n tools: boolean;\n reasoning: boolean;\n thinkingFormat: string | null;\n thinkingCanDisable: boolean;\n thinkingRange: { min: number; max: number } | null;\n contextWindow: number;\n maxOutput: number;\n}\n\n/**\n * Glob (* = wildcard) match, anchored + case-insensitive. aigetwey's\n * pricing.matchPattern so capabilities resolve identically.\n */\nexport function matchPattern(pattern: string, model: string): boolean {\n const regex = new RegExp(\n \"^\" + pattern.split(\"*\").map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\".*\") + \"$\",\n \"i\",\n );\n return regex.test(model);\n}\n\nexport const DEFAULT_CAPABILITIES: Caps = {\n // input modalities\n vision: false, // read images\n pdf: false, // read PDF / documents\n audioInput: false, // read audio\n videoInput: false, // read video\n // output modalities\n imageOutput: false, // generate images\n audioOutput: false, // generate audio\n // features\n search: false, // built-in web search tool / grounding\n tools: true, // function / tool calling\n reasoning: false, // thinking / reasoning\n // thinking wire format (only meaningful when reasoning:true). null → derive from transport.format.\n // enum: openai|claude-adaptive|claude-budget|gemini-level|gemini-budget|zai|qwen|deepseek|kimi|minimax|hunyuan|step\n thinkingFormat: null,\n thinkingCanDisable: true, // false → model cannot turn thinking off (clamp to min instead of disable)\n thinkingRange: null, // { min, max } for budget formats; null = no clamp\n // limits (tokens)\n contextWindow: 200000,\n maxOutput: 64000,\n};\n\n// User-added model metadata can carry dashboard service kinds instead of the\n// runtime capability names used here. Map those typed model kinds into input /\n// output capabilities so custom vision models are not treated as text-only.\nconst SERVICE_KIND_CAPABILITIES: Record<string, Partial<Caps>> = {\n imageToText: { vision: true },\n image: { imageOutput: true },\n stt: { audioInput: true },\n tts: { audioOutput: true },\n embedding: { tools: false },\n};\n\nexport function capabilitiesFromServiceKind(kind: string): Partial<Caps> | null {\n return SERVICE_KIND_CAPABILITIES[kind] || null;\n}\n\n/**\n * Canonical exact-id overrides — used for exceptions that patterns would\n * otherwise mis-match. Only declare deltas vs DEFAULT.\n */\nexport const MODEL_CAPABILITIES: Record<string, Partial<Caps>> = {\n // Claude 4.6/4.7 have 1M context + adaptive thinking (override generic claude pattern)\n \"claude-opus-4.6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-opus-4.7\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-opus-4-6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-sonnet-4.6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 64000 },\n \"claude-sonnet-4-6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 64000 },\n\n // Gemini image-gen / OpenAI image / xai image variants\n \"gpt-image-1\": { imageOutput: true, tools: false },\n\n // GLM vision variant (text GLM has no vision)\n \"glm-4.6v\": { vision: true, reasoning: true, thinkingFormat: \"zai\", contextWindow: 128000 },\n\n // Qwen plain coder/text (no vision) — registry \"vision-model\" / \"coder-model\" aliases\n \"vision-model\": { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 },\n \"coder-model\": { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 },\n};\n\n/**\n * Provider-specific capability overrides. Keyed by provider alias/id.\n */\nexport const PROVIDER_CAPABILITIES: Record<string, Record<string, Partial<Caps>>> = {\n // CodeBuddy.cn — authoritative per-model metadata from the gateway's model\n // config (contextWindow=maxInputTokens, maxOutput=maxOutputTokens, vision=\n // supportsImages). Every model reasons via OpenAI-style reasoning_effort\n // (see registry thinkingFormat). `onlyReasoning` models can't turn thinking\n // off → thinkingCanDisable:false (clamped to minimal instead of disabled).\n \"codebuddy-cn\": {\n \"glm-5.2\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 48000 },\n \"glm-5.1\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"glm-5.0\": { reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 48000 },\n \"glm-5.0-turbo\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"glm-5v-turbo\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 38000 },\n \"glm-4.7\": { reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 48000 },\n \"minimax-m3\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 512000, maxOutput: 48000 },\n \"minimax-m2.7\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"kimi-k2.7\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 256000, maxOutput: 32000 },\n \"kimi-k2.6\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 256000, maxOutput: 32000 },\n \"kimi-k2.5\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 164000, maxOutput: 32000 },\n \"hy3-preview\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 192000, maxOutput: 64000 },\n \"deepseek-v4-pro\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 50000 },\n \"deepseek-v4-flash\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 50000 },\n \"deepseek-v3-2-volc\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 96000, maxOutput: 32000 },\n },\n};\n\n/**\n * Pattern fallback — glob (* = wildcard), matched case-insensitively and\n * anchored (^...$) so a pattern must match the full model id. ORDER MATTERS:\n * vision/specific variants first, text-only/generic families last, to avoid\n * a broad family pattern swallowing an exception (e.g. glm-4.6v vs glm-5).\n */\nexport const PATTERN_CAPABILITIES: Array<{ pattern: string; caps: Partial<Caps> }> = [\n // ── Claude (4.6+ = adaptive thinking; older/haiku = budget) ──────\n { pattern: \"*claude*opus-4.6*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*opus-4.7*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*opus-4.8*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*sonnet-4.6*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*sonnet-4.7*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*haiku*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*opus*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*sonnet*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*fable*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\", contextWindow: 1000000, maxOutput: 128000 } },\n { pattern: \"*claude*mythos*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\", contextWindow: 1000000, maxOutput: 128000 } },\n { pattern: \"*claude-3*\", caps: { vision: true } },\n { pattern: \"*claude*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n\n // ── Gemini (all 2.0+ multimodal + google_search grounding, 1M ctx) ─\n { pattern: \"*gemini*image*\", caps: { vision: true, imageOutput: true, contextWindow: 1048576 } },\n { pattern: \"*gemini-3*pro*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-level\", thinkingCanDisable: false, contextWindow: 1048576, maxOutput: 65535 } },\n { pattern: \"*gemini-3*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-level\", thinkingCanDisable: false, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini-2.5*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-budget\", thinkingRange: { min: 0, max: 24576 }, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini-2*\", caps: { vision: true, audioInput: true, videoInput: true, search: true, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini*\", caps: { vision: true, search: true, contextWindow: 1048576 } },\n { pattern: \"*gemma*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*nanobanana*\", caps: { vision: true, imageOutput: true } },\n\n // ── OpenAI GPT-5.x (vision + thinking + web search) ──────────────\n { pattern: \"*gpt-5*image*\", caps: { imageOutput: true } },\n { pattern: \"*gpt-5*codex*\", caps: { reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 400000, maxOutput: 128000 } },\n { pattern: \"*gpt-5*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 400000, maxOutput: 128000 } },\n { pattern: \"*gpt-4o*\", caps: { vision: true, search: true, contextWindow: 128000, maxOutput: 16384 } },\n { pattern: \"*gpt-4.1*\", caps: { vision: true, contextWindow: 1000000, maxOutput: 32768 } },\n { pattern: \"*gpt-4-turbo*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*gpt-4*\", caps: { contextWindow: 128000 } },\n { pattern: \"*gpt-3.5*\", caps: { contextWindow: 16385, maxOutput: 4096 } },\n { pattern: \"*gpt-oss*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 128000 } },\n\n // ── OpenAI o-series (reasoning, vision) ──────────────────────────\n { pattern: \"*o1-mini*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 128000 } },\n { pattern: \"*o1*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n { pattern: \"*o3*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n { pattern: \"*o4*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n\n // ── Grok (vision + Live Search) ──────────────────────────────────\n { pattern: \"*grok*image*\", caps: { imageOutput: true } },\n { pattern: \"*grok-code*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n { pattern: \"*grok-4*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n { pattern: \"*grok-3*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 131072 } },\n { pattern: \"*grok*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n\n // ── Qwen (enable_thinking + thinking_budget; QwQ = thinking-only) ─\n { pattern: \"*qwen*vl*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n { pattern: \"*qwen*max*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000, maxOutput: 65536 } },\n { pattern: \"*qwen*plus*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000, maxOutput: 65536 } },\n { pattern: \"*qwen*235b*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n { pattern: \"*qwen*coder*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 } },\n { pattern: \"*qwq*\", caps: { reasoning: true, thinkingFormat: \"qwen\", thinkingCanDisable: false, contextWindow: 131072 } },\n { pattern: \"*qwen*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n\n // ── Kimi (enabled→reasoning_effort; K2.7-code cannot disable) ─────\n { pattern: \"*kimi*k2.7*code*\", caps: { vision: true, reasoning: true, thinkingFormat: \"kimi\", thinkingCanDisable: false, contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*kimi*k2*\", caps: { vision: true, reasoning: true, thinkingFormat: \"kimi\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*kimi*\", caps: { reasoning: true, thinkingFormat: \"kimi\", contextWindow: 262144 } },\n\n // ── GLM / Z.ai (thinking.enabled; disable via enable_thinking:false) ─\n { pattern: \"*glm-5*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000, maxOutput: 128000 } },\n { pattern: \"*glm-4.7*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000, maxOutput: 128000 } },\n { pattern: \"*glm-4*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000 } },\n { pattern: \"*glm*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000 } },\n\n // ── DeepSeek (thinking.enabled + reasoning_effort; r1 = thinking-only) ─\n { pattern: \"*deepseek-v4*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", contextWindow: 1000000, maxOutput: 384000 } },\n { pattern: \"*reasoner*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", thinkingCanDisable: false, contextWindow: 128000 } },\n { pattern: \"*deepseek-r*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", thinkingCanDisable: false, contextWindow: 128000 } },\n { pattern: \"*deepseek-chat*\", caps: { contextWindow: 128000 } },\n { pattern: \"*deepseek*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", contextWindow: 128000 } },\n\n // ── MiniMax (M3 = adaptive; M2.x cannot disable) ─────────────────\n { pattern: \"*minimax*image*\", caps: { imageOutput: true } },\n { pattern: \"*minimax-m3*\", caps: { vision: true, reasoning: true, thinkingFormat: \"minimax\", contextWindow: 1048576, maxOutput: 512000 } },\n { pattern: \"*minimax-m2.7*\", caps: { reasoning: true, thinkingFormat: \"minimax\", thinkingCanDisable: false, contextWindow: 204800, maxOutput: 131072 } },\n { pattern: \"*minimax*\", caps: { reasoning: true, thinkingFormat: \"minimax\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 131072 } },\n\n // ── Xiaomi MiMo (vision, 1M / 262K ctx) ──────────────────────────\n { pattern: \"*mimo*v2.5*\", caps: { vision: true, contextWindow: 1048576, maxOutput: 131072 } },\n { pattern: \"*mimo*omni*\", caps: { vision: true, audioInput: true, contextWindow: 262144, maxOutput: 131072 } },\n { pattern: \"*mimo*\", caps: { vision: true, contextWindow: 262144, maxOutput: 131072 } },\n\n // ── Llama (4 = vision/1M; 3.x = text-only/128K) ──────────────────\n { pattern: \"*llama-4*\", caps: { vision: true, contextWindow: 1000000 } },\n { pattern: \"*llama*\", caps: { contextWindow: 128000 } },\n\n // ── Mistral (Large 3 = vision/256K; codestral text) ──────────────\n { pattern: \"*codestral*\", caps: { contextWindow: 256000 } },\n { pattern: \"*mistral-large*\", caps: { vision: true, contextWindow: 256000 } },\n { pattern: \"*mistral*\", caps: { contextWindow: 128000 } },\n\n // ── Cohere (Command A Vision = vision; others text) ──────────────\n { pattern: \"*command-a-vision*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*command*\", caps: { contextWindow: 128000 } },\n\n // ── Perplexity (web search native) ───────────────────────────────\n { pattern: \"*sonar*\", caps: { search: true, contextWindow: 128000 } },\n { pattern: \"*pplx*\", caps: { search: true, contextWindow: 128000 } },\n { pattern: \"*perplexity*\", caps: { search: true, contextWindow: 128000 } },\n\n // ── Others ───────────────────────────────────────────────────────\n { pattern: \"*hunyuan*\", caps: { reasoning: true, thinkingFormat: \"hunyuan\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"hy3*\", caps: { reasoning: true, thinkingFormat: \"hunyuan\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*step-*\", caps: { reasoning: true, thinkingFormat: \"step\", contextWindow: 128000 } },\n { pattern: \"*nemotron*\", caps: { reasoning: true, contextWindow: 128000 } },\n { pattern: \"*ling-*\", caps: { reasoning: true, contextWindow: 128000 } },\n];\n\n/**\n * Resolve capabilities for a model using the 4-step fallback chain,\n * merged over DEFAULT_CAPABILITIES so the result is always complete.\n *\n * @param {string} provider\n * @param {string} model\n * @returns {object} full capabilities object\n */\n/**\n * models.dev-style modalities for a model ref, derived from its capabilities.\n * Ref may be a `provider/model` (vendor prefix tolerated) or a bare combo alias.\n * Mirrors what opencode/aigetwey store per model in opencode.json.\n */\nexport function modalitiesForModel(ref: string): { input: string[]; output: string[] } {\n const slash = ref.indexOf(\"/\");\n const provider = slash > 0 ? ref.slice(0, slash) : null;\n const model = slash > 0 ? ref.slice(slash + 1) : ref;\n const c = getCapabilitiesForModel(provider, model);\n const input = [\"text\"];\n if (c.vision) input.push(\"image\");\n if (c.pdf) input.push(\"pdf\");\n if (c.audioInput) input.push(\"audio\");\n if (c.videoInput) input.push(\"video\");\n const output = [\"text\"];\n if (c.imageOutput) output.push(\"image\");\n if (c.audioOutput) output.push(\"audio\");\n return { input, output };\n}\n\nexport function getCapabilitiesForModel(provider: string | null, model: string): Caps {\n if (!model) return { ...DEFAULT_CAPABILITIES };\n\n // 1. Provider-specific override\n if (provider && PROVIDER_CAPABILITIES[provider]?.[model]) {\n return { ...DEFAULT_CAPABILITIES, ...PROVIDER_CAPABILITIES[provider][model] };\n }\n\n // 2. Canonical exact (strip vendor prefix: \"anthropic/claude-opus-4.7\" -> \"claude-opus-4.7\")\n const baseModel = (model.includes(\"/\") ? model.split(\"/\").pop() : model) ?? model;\n if (MODEL_CAPABILITIES[baseModel]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[baseModel] };\n if (MODEL_CAPABILITIES[model]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[model] };\n\n // 3. Pattern match (first match wins)\n for (const { pattern, caps } of PATTERN_CAPABILITIES) {\n if (matchPattern(pattern, baseModel) || matchPattern(pattern, model)) {\n return { ...DEFAULT_CAPABILITIES, ...caps };\n }\n }\n\n // 4. Floor\n return { ...DEFAULT_CAPABILITIES };\n}\n","\"use client\";\n\nimport { getCapabilitiesForModel, type Caps } from \"@/lib/capabilities\";\nimport { Icon } from \"@/components/Icon\";\n\n/**\n * Per-model capability icons, aigetwey's own CapacityBadges + CAPACITY_META.\n * Caps are DERIVED from the model id (not stored per-model) via the same resolver\n * aigetwey uses, so badges match wherever the model appears. Only set caps render.\n */\nconst CAPACITY_META: Record<string, { icon: string; label: string; desc: string; color: string }> = {\n vision: { icon: \"visibility\", label: \"Vision\", desc: \"Supports image input\", color: \"text-info\" },\n reasoning: { icon: \"neurology\", label: \"Reasoning\", desc: \"Supports reasoning / thinking\", color: \"text-warning\" },\n};\n\nexport function CapacityBadges({\n model,\n provider = null,\n size = 15,\n className = \"\",\n}: {\n model: string;\n provider?: string | null;\n size?: number;\n className?: string;\n}) {\n const caps = getCapabilitiesForModel(provider, model);\n const active = Object.keys(CAPACITY_META).filter((k) => caps[k as keyof Caps]);\n if (active.length === 0) return null;\n\n return (\n <span className={`inline-flex flex-none items-center gap-0.5 ${className}`}>\n {active.map((k) => (\n <span key={k} title={`${CAPACITY_META[k]!.label} — ${CAPACITY_META[k]!.desc}`} className=\"leading-none\">\n <Icon name={CAPACITY_META[k]!.icon} size={size} className={CAPACITY_META[k]!.color} />\n </span>\n ))}\n </span>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { Icon } from \"@/components/Icon\";\nimport { CapacityBadges } from \"@/components/CapacityBadges\";\n\nexport interface ModelGroup {\n label: string;\n items: { value: string; label: string; tag?: string }[];\n}\n\n/**\n * aigetwey-style model picker: a search box + provider-grouped chips you click to\n * toggle in/out of a selection. Used by the combo form and the CLI-tool model\n * selection so both add models the same way (click to add, click again to drop).\n */\nexport function ModelPicker({\n title = \"Add models\",\n note = \"Click to add, click again to remove.\",\n searchPlaceholder = \"Search models…\",\n groups,\n selected,\n onToggle,\n onClose,\n showThinkingHint = true,\n}: {\n title?: string;\n note?: string;\n searchPlaceholder?: string;\n groups: ModelGroup[];\n selected: string[];\n onToggle: (value: string) => void;\n onClose: () => void;\n /** The \"reasoning models accept a thinking suffix\" footer only makes sense when\n * picking MODELS. Provider/key pickers reuse this component, so they hide it. */\n showThinkingHint?: boolean;\n}) {\n const [q, setQ] = useState(\"\");\n const needle = q.trim().toLowerCase();\n const filtered = groups\n .map((g) => ({\n ...g,\n items: needle ? g.items.filter((i) => i.value.toLowerCase().includes(needle)) : g.items,\n }))\n .filter((g) => g.items.length > 0);\n const sel = new Set(selected);\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/60 p-6 sm:p-10\" onClick={onClose}>\n <div\n className=\"flex max-h-[80vh] w-full max-w-lg flex-col rounded-brand-lg border border-border bg-surface shadow-elevated\"\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between border-b border-border-subtle px-4 py-3\">\n <h2 className=\"text-[14px] font-semibold text-text\">{title}</h2>\n <button onClick={onClose} className=\"text-text-subtle hover:text-text\" aria-label=\"Close\">\n <Icon name=\"close\" size={18} />\n </button>\n </div>\n\n <div className=\"border-b border-border-subtle px-4 py-3\">\n <p className=\"mb-2 text-[12px] text-text-muted\">{note}</p>\n <div className=\"relative\">\n <Icon name=\"search\" size={15} className=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-text-subtle\" />\n <input\n autoFocus\n value={q}\n onChange={(e) => setQ(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full rounded-brand border border-border bg-bg py-2 pl-8 pr-3 text-[13px] text-text placeholder:text-text-subtle focus:border-accent focus:outline-none\"\n />\n </div>\n </div>\n\n <div className=\"flex-1 overflow-y-auto px-4 py-3\">\n {filtered.length === 0 ? (\n <p className=\"py-6 text-center text-[12.5px] text-text-subtle\">No models match “{q}”.</p>\n ) : (\n <div className=\"space-y-4\">\n {filtered.map((g) => (\n <div key={g.label}>\n <div className=\"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-text-subtle\">\n {g.label} <span className=\"tnum text-text-subtle/70\">({g.items.length})</span>\n </div>\n <div className=\"flex flex-wrap gap-1.5\">\n {g.items.map((it) => {\n const on = sel.has(it.value);\n return (\n <button\n key={it.value}\n type=\"button\"\n onClick={() => onToggle(it.value)}\n className={`inline-flex items-center gap-1 rounded-brand border px-2 py-1 text-[12px] transition-colors ${\n on ? \"border-accent bg-accent-soft text-accent\" : \"border-border bg-bg text-text-muted hover:border-text-subtle hover:text-text\"\n }`}\n >\n {on && <Icon name=\"check\" size={12} />}\n <span className=\"tnum\">{it.label}</span>\n <CapacityBadges model={it.value} size={13} />\n {it.tag && <span className=\"rounded bg-surface-2 px-1 text-[10px] text-text-subtle\">{it.tag}</span>}\n </button>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {showThinkingHint && (\n <div className=\"border-t border-border-subtle px-4 py-2 text-[11px] text-text-subtle\">\n <Icon name=\"neurology\" size={12} className=\"mr-1 inline align-text-bottom text-warning\" />\n Reasoning models accept a thinking suffix — call{\" \"}\n <code className=\"rounded bg-surface-2 px-1 text-text-muted\">model(high)</code> or{\" \"}\n <code className=\"rounded bg-surface-2 px-1 text-text-muted\">model(none)</code> (high·low·medium·minimal·auto·none·or a token budget).\n </div>\n )}\n\n <div className=\"flex items-center justify-between border-t border-border-subtle px-4 py-3\">\n <span className=\"tnum text-[12px] text-text-subtle\">{selected.length} selected</span>\n <button onClick={onClose} className=\"rounded-brand bg-accent px-3.5 py-1.5 text-[13px] font-semibold text-accent-ink hover:bg-accent-hover\">\n Done\n </button>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["fmt","int","n","toLocaleString","compact","Math","abs","toFixed","String","round","cost","time","ts","Date","hour12","date","d","getDate","padStart","getMonth","getFullYear","ago","s","max","now","floor","duration","ms","h","m","Stat","label","value","sub","className","Empty","children","TONES","live","down","danger","warn","info","neutral","Badge","tone","FormatBadge","format","matchPattern","pattern","model","regex","RegExp","split","map","replace","join","test","DEFAULT_CAPABILITIES","vision","pdf","audioInput","videoInput","imageOutput","audioOutput","search","tools","reasoning","thinkingFormat","thinkingCanDisable","thinkingRange","contextWindow","maxOutput","SERVICE_KIND_CAPABILITIES","imageToText","image","stt","tts","embedding","capabilitiesFromServiceKind","kind","MODEL_CAPABILITIES","PROVIDER_CAPABILITIES","PATTERN_CAPABILITIES","caps","min","modalitiesForModel","ref","slash","indexOf","provider","slice","c","getCapabilitiesForModel","input","push","output","baseModel","includes","pop","ModelPicker","title","note","searchPlaceholder","groups","selected","onToggle","onClose","showThinkingHint","q","setQ","needle","trim","toLowerCase","filtered","g","items","filter","i","length","sel","Set","onClick","e","stopPropagation","name","size","autoFocus","onChange","target","placeholder","it","on","has","type","tag"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[42532,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[{key:"tokens",label:"Tokens"},{key:"cost",label:"Cost"},{key:"requests",label:"Requests"}];function e(a,b){return"cost"===b?a<.01?`$${a.toFixed(4)}`:`$${a.toFixed(2)}`:a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(Math.round(a))}function f(a){return new Date(a).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})}function g({series:a}){let[h,i]=(0,c.useState)("tokens"),j=a.map(a=>"tokens"===h?a.tokens_in+a.tokens_out:"cost"===h?a.cost:a.requests),k=Math.max(1,...j),l=a.length,m=a=>l<=1?8:8+a/(l-1)*984,n=a=>224-a/k*208,o=j.map((a,b)=>`${0===b?"M":"L"}${m(b).toFixed(1)},${n(a).toFixed(1)}`).join(" "),p=`${o} L${m(l-1).toFixed(1)},224 L${m(0).toFixed(1)},224 Z`,q=j.length?j.indexOf(Math.max(...j)):-1,r=j.reduce((a,b)=>a+b,0);return(0,b.jsxs)("div",{className:"overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft",children:[(0,b.jsxs)("header",{className:"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsx)("span",{className:"text-[13px] font-semibold text-text",children:"Over time"}),(0,b.jsxs)("span",{className:"tnum text-[12px] text-text-muted",children:[e(r,h)," total"]})]}),(0,b.jsx)("div",{className:"flex items-center gap-1",children:d.map(a=>(0,b.jsx)("button",{onClick:()=>i(a.key),className:`rounded-full px-3 py-1 text-[12px] font-medium transition-colors ${h===a.key?"bg-surface-2 text-text":"text-text-muted hover:text-text"}`,children:a.label},a.key))})]}),(0,b.jsx)("div",{className:"px-2 py-3",children:0===l||0===r?(0,b.jsx)("div",{className:"flex h-[200px] items-center justify-center text-[13px] text-text-muted",children:"No activity in this range."}):(0,b.jsxs)("svg",{viewBox:"0 0 1000 240",className:"h-[200px] w-full",preserveAspectRatio:"none",children:[(0,b.jsx)("defs",{children:(0,b.jsxs)("linearGradient",{id:"areaFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,b.jsx)("stop",{offset:"0%",stopColor:"var(--color-accent)",stopOpacity:"0.28"}),(0,b.jsx)("stop",{offset:"100%",stopColor:"var(--color-accent)",stopOpacity:"0"})]})}),(0,b.jsx)("path",{d:p,fill:"url(#areaFill)"}),(0,b.jsx)("path",{d:o,fill:"none",stroke:"var(--color-accent)",strokeWidth:"2",vectorEffect:"non-scaling-stroke"}),q>=0&&(0,b.jsx)("circle",{cx:m(q),cy:n(j[q]),r:"3",fill:"var(--color-accent)",vectorEffect:"non-scaling-stroke"})]})}),l>0&&r>0&&q>=0&&(0,b.jsxs)("div",{className:"flex justify-between border-t border-border-subtle px-4 py-2 tnum text-[10px] text-text-subtle",children:[(0,b.jsx)("span",{children:f(a[0].ts)}),(0,b.jsxs)("span",{children:["peak ",e(j[q],h)," @ ",f(a[q].ts)]}),(0,b.jsx)("span",{children:f(a[l-1].ts)})]})]})}var h=a.i(58918),i=a.i(85732);let j=[{label:"Today",key:"today",bucketMs:36e5},{label:"24h",key:"24h",bucketMs:36e5},{label:"7D",key:"7d",bucketMs:216e5},{label:"30D",key:"30d",bucketMs:864e5},{label:"60D",key:"60d",bucketMs:1728e5}];function k({rows:a,loading:c}){return(0,b.jsx)("div",{className:`table-wrap ${c?"opacity-50":""}`,children:(0,b.jsxs)("table",{className:"w-full border-collapse",children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{className:"text-text-subtle",children:["","Reqs","In","Out","Cost"].map((a,c)=>(0,b.jsx)("th",{className:`pb-2 text-[10px] font-medium uppercase tracking-wider ${0===c?"text-left":"text-right"}`,children:a},a+c))})}),(0,b.jsx)("tbody",{children:a.map(a=>(0,b.jsxs)("tr",{className:"border-t border-border-subtle",children:[(0,b.jsx)("td",{className:"py-2 text-[12.5px] text-text",children:a.label}),(0,b.jsx)("td",{className:"py-2 text-right tnum text-[12.5px] text-text-muted",children:h.fmt.int(a.requests)}),(0,b.jsx)("td",{className:"py-2 text-right tnum text-[12.5px] text-text-muted",children:h.fmt.compact(a.tokens_in)}),(0,b.jsx)("td",{className:"py-2 text-right tnum text-[12.5px] text-text-muted",children:h.fmt.compact(a.tokens_out)}),(0,b.jsx)("td",{className:"py-2 text-right tnum text-[12.5px] text-text",children:h.fmt.cost(a.cost)})]},a.label))})]})})}a.s(["UsageView",0,function(){let[a,d]=(0,c.useState)(j[0]),[e,f]=(0,c.useState)(null),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(!0),r=(0,c.useCallback)(async a=>{q(!0),o("");let b=function(a){let b=Date.now();switch(a){case"today":{let a=new Date;return a.setHours(0,0,0,0),a.getTime()}case"24h":return b-864e5;case"7d":return b-6048e5;case"30d":return b-2592e6;case"60d":return b-5184e6}}(a.key),[c,d]=await Promise.all([fetch(`/api/gw/admin/usage?since=${b}`),fetch(`/api/gw/admin/usage/series?since=${b}&bucket=${a.bucketMs}`)]);if(!c.ok){o("could not load usage"),q(!1);return}f(await c.json()),m((d.ok?await d.json():{series:[]}).series),q(!1)},[]);(0,c.useEffect)(()=>{r(a)},[a,r]);let s=e?.total;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"mb-6 flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:"Usage"}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-text-muted",children:"Tokens and cost across providers and models."})]}),(0,b.jsx)("div",{className:"flex items-center gap-1 rounded-full border border-border bg-surface p-1",children:j.map(c=>(0,b.jsx)("button",{onClick:()=>d(c),className:`rounded-full px-3 py-1 text-[12px] font-medium transition-colors ${a.label===c.label?"bg-surface-2 text-text":"text-text-muted hover:text-text"}`,children:c.label},c.label))})]}),n?(0,b.jsx)(h.Empty,{children:n}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4",children:[(0,b.jsx)(h.Stat,{label:"Requests",value:h.fmt.int(s?.requests??0)}),(0,b.jsx)(h.Stat,{label:"Tokens in",value:h.fmt.compact(s?.tokens_in??0)}),(0,b.jsx)(h.Stat,{label:"Tokens out",value:h.fmt.compact(s?.tokens_out??0)}),(0,b.jsx)(h.Stat,{label:"Cost",value:h.fmt.cost(s?.cost??0)})]}),(0,b.jsx)("div",{className:"mb-5",children:(0,b.jsx)(g,{series:l})}),(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,b.jsx)(i.RichCard,{header:(0,b.jsx)("span",{className:"text-[13px] font-semibold text-text",children:"By provider"}),children:e?.by_provider.length?(0,b.jsx)(k,{rows:e.by_provider.map(a=>({label:a.provider,...a})),loading:p}):(0,b.jsx)(h.Empty,{children:"No usage in this window."})}),(0,b.jsx)(i.RichCard,{header:(0,b.jsx)("span",{className:"text-[13px] font-semibold text-text",children:"By model"}),children:e?.by_model.length?(0,b.jsx)(k,{rows:e.by_model.map(a=>({label:`${a.alias} → ${a.model}`,...a})),loading:p}):(0,b.jsx)(h.Empty,{children:"No usage in this window."})})]})]})]})}],42532)},61574,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(47153),e=a.i(2693),f=a.i(93026),g=a.i(58918);let h=[{key:"all",label:"All"},{key:"ok",label:"Success"},{key:"error",label:"Errors"}],i=[{label:"1h",ms:36e5},{label:"6h",ms:216e5},{label:"24h",ms:864e5},{label:"7d",ms:6048e5},{label:"All",ms:null}];function j({label:a,children:c}){return(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider text-text-subtle",children:a}),c]})}function k({children:a,muted:c,right:d,title:e,className:f,suppressHydrationWarning:g}){return(0,b.jsx)("td",{title:e,suppressHydrationWarning:g,className:`whitespace-nowrap px-4 py-2.5 tnum text-[12.5px] ${d?"text-right":"text-left"} ${c?"text-text-muted":"text-text"}${f?` ${f}`:""}`,children:a})}function l({log:a,onClose:c}){let d=a.status>=200&&a.status<300,e=a.tokens_in+a.tokens_out;return(0,b.jsxs)("div",{className:"border-t border-border-subtle bg-surface-2/40 px-5 py-4",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[12px] font-semibold text-text",children:"Request Details"}),(0,b.jsx)("button",{onClick:c,className:"text-text-subtle hover:text-text",children:(0,b.jsx)(f.Icon,{name:"close",size:16})})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-2 text-[12px] sm:grid-cols-4",children:[(0,b.jsx)(m,{label:"Status",value:`${a.status} ${d?"OK":"Error"}`}),(0,b.jsx)(m,{label:"Timestamp",value:new Date(a.ts).toLocaleString()}),(0,b.jsx)(m,{label:"Alias",value:a.alias}),(0,b.jsx)(m,{label:"Provider",value:a.provider}),(0,b.jsx)(m,{label:"Model",value:a.model}),(0,b.jsx)(m,{label:"Mode",value:a.stream?"Streaming":"Unary"}),(0,b.jsx)(m,{label:"Latency",value:`${a.latency_ms}ms`}),(0,b.jsx)(m,{label:"Cost",value:g.fmt.cost(a.cost)}),(0,b.jsx)(m,{label:"Input tokens",value:g.fmt.int(a.tokens_in)}),(0,b.jsx)(m,{label:"Output tokens",value:g.fmt.int(a.tokens_out)}),(0,b.jsx)(m,{label:"Cached tokens",value:g.fmt.int(a.cached_tokens)}),(0,b.jsx)(m,{label:"Total tokens",value:g.fmt.int(e)})]})]})}function m({label:a,value:c}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-text-subtle",children:a}),(0,b.jsx)("div",{className:"tnum text-text",children:c})]})}a.s(["LogTable",0,function({logs:a}){let[m,n]=(0,c.useState)(a),[o,p]=(0,c.useState)("all"),[q,r]=(0,c.useState)("all"),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(!0),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=(0,c.useRef)(null),B=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/gw/admin/logs?limit=200");if(a.ok){let b=await a.json();n(b.logs)}}catch{}},[]);(0,c.useEffect)(()=>{if(u)return A.current=setInterval(B,5e3),()=>{A.current&&clearInterval(A.current)};A.current&&clearInterval(A.current)},[u,B]);let C=[...new Set(m.map(a=>a.provider))].sort(),D=m.filter(a=>a.status>=200&&a.status<300).length,E=m.length-D,F=null!==s?Date.now()-s:null,G=m.filter(a=>("ok"!==o||!!(a.status>=200&&a.status<300))&&("error"!==o||!(a.status>=200)||!(a.status<300))&&("all"===q||a.provider===q)&&(null===F||!(a.ts<F))),H="all"!==o||"all"!==q||null!==s;return(0,b.jsxs)("div",{className:"overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft",children:[(0,b.jsxs)("header",{className:"flex flex-col gap-3 border-b border-border-subtle px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("button",{onClick:()=>x(a=>!a),className:"flex-none rounded p-0.5 text-text-subtle transition-colors hover:text-text","aria-label":w?"Expand requests":"Collapse requests",title:w?"Expand":"Collapse",children:(0,b.jsx)(f.Icon,{name:w?"chevron_right":"expand_more",size:18})}),(0,b.jsx)("div",{className:"flex items-center gap-1",children:h.map(a=>{let c;return(0,b.jsxs)("button",{onClick:()=>p(a.key),className:`flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[12px] font-medium transition-colors ${o===a.key?"bg-surface-2 text-text":"text-text-muted hover:text-text"}`,children:[a.label,(0,b.jsx)("span",{className:"tnum text-text-subtle",children:"all"===(c=a.key)?m.length:"ok"===c?D:E})]},a.key)})})]}),(0,b.jsxs)("button",{onClick:()=>v(a=>!a),className:`flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-medium transition-colors ${u?"bg-success/15 text-success":"text-text-muted hover:text-text"}`,title:u?"Auto-refresh ON (5s)":"Auto-refresh OFF",children:[(0,b.jsx)(f.Icon,{name:u?"radio_button_checked":"radio_button_unchecked",size:12}),"Live"]})]}),!w&&(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2.5",children:[(0,b.jsx)(j,{label:"Provider",children:(0,b.jsxs)("select",{value:q,onChange:a=>r(a.target.value),className:"h-9 rounded-brand border border-border bg-surface-2 px-2.5 text-[12.5px] text-text focus:border-accent focus:outline-none w-40",children:[(0,b.jsx)("option",{value:"all",children:"All providers"}),C.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})}),(0,b.jsx)(j,{label:"Since",children:(0,b.jsx)("div",{className:"flex h-9 items-center gap-0.5 rounded-brand border border-border bg-surface-2 px-1",children:i.map(a=>{let c;return(0,b.jsx)("button",{type:"button",onClick:()=>t(a.ms),className:(c=s===a.ms,`rounded-full px-2.5 py-1 text-[12px] font-medium transition-colors ${c?"bg-accent/15 text-accent":"text-text-muted hover:text-text"}`),children:a.label},a.label)})})}),(0,b.jsxs)("button",{onClick:()=>{p("all"),r("all"),t(null)},disabled:!H,className:"flex h-9 items-center gap-1.5 rounded-brand border border-border bg-surface-2 px-3 text-[12.5px] font-medium text-text-muted transition-colors hover:border-text-subtle hover:text-text disabled:opacity-40 disabled:hover:border-border disabled:hover:text-text-muted",title:H?"Reset all filters":"No filters applied",children:[(0,b.jsx)(f.Icon,{name:"filter_alt_off",size:15}),"Clear"]})]})]}),w?null:0===G.length?(0,b.jsx)("div",{className:"px-4 py-8 text-center text-[13px] text-text-muted",children:0===m.length?"No requests recorded yet.":"No requests match this filter."}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"table-wrap",children:(0,b.jsxs)("table",{className:"w-full min-w-[720px] border-collapse",children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{className:"text-text-subtle",children:["Status","Time","Alias","Provider","Model","In","Out","ms","Mode"].map((a,c)=>(0,b.jsx)("th",{className:`whitespace-nowrap px-4 pb-2.5 pt-3 text-[10px] font-medium uppercase tracking-wider ${c>=5&&c<=7?"text-right":"text-left"}`,children:a},a+c))})}),(0,b.jsx)("tbody",{children:G.map((a,c)=>{let f=a.status>=200&&a.status<300,h=y===c;return(0,b.jsxs)("tr",{onClick:()=>z(h?null:c),className:`border-t border-border-subtle cursor-pointer transition-colors ${h?"bg-surface-2/60":"hover:bg-surface-2/70"}`,children:[(0,b.jsx)(k,{children:(0,b.jsxs)(e.Badge,{tone:f?"live":"down",children:[(0,b.jsx)(d.Lamp,{state:f?"live":"down"}),a.status]})}),(0,b.jsxs)(k,{muted:!0,title:g.fmt.time(a.ts),suppressHydrationWarning:!0,children:[g.fmt.ago(a.ts)," ago"]}),(0,b.jsx)(k,{className:"text-text",children:a.alias}),(0,b.jsx)(k,{muted:!0,children:a.provider}),(0,b.jsx)(k,{muted:!0,children:a.model}),(0,b.jsx)(k,{right:!0,children:g.fmt.int(a.tokens_in)}),(0,b.jsx)(k,{right:!0,children:g.fmt.int(a.tokens_out)}),(0,b.jsx)(k,{right:!0,children:g.fmt.int(a.latency_ms)}),(0,b.jsx)(k,{muted:!0,children:a.stream?"stream":"unary"})]},c)})})]})}),null!==y&&G[y]&&(0,b.jsx)(l,{log:G[y],onClose:()=>z(null)})]})]})}])}];
2
-
3
- //# sourceMappingURL=src_components_10h9ide._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/UsageView.tsx","../../../../src/components/AreaChart.tsx","../../../../src/components/LogTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState, useCallback } from \"react\";\nimport { AreaChart, type SeriesPoint } from \"@/components/AreaChart\";\nimport { Stat, fmt, Empty } from \"@/components/ui\";\nimport { RichCard } from \"@/components/RichCard\";\nimport type { UsageSummary } from \"@/lib/gateway\";\n\ntype Window = { label: string; key: \"today\" | \"24h\" | \"7d\" | \"30d\" | \"60d\"; bucketMs: number };\n\n// window -> chart bucket size. Buckets keep ~24-60 points per range.\nconst WINDOWS: Window[] = [\n { label: \"Today\", key: \"today\", bucketMs: 3600_000 },\n { label: \"24h\", key: \"24h\", bucketMs: 3600_000 },\n { label: \"7D\", key: \"7d\", bucketMs: 6 * 3600_000 },\n { label: \"30D\", key: \"30d\", bucketMs: 86400_000 },\n { label: \"60D\", key: \"60d\", bucketMs: 2 * 86400_000 },\n];\n\n/** Lookback start (ms epoch) for a window. \"Today\" is since local midnight; the\n * rest are rolling lookbacks from now. */\nfunction sinceFor(key: Window[\"key\"]): number {\n const now = Date.now();\n switch (key) {\n case \"today\": {\n const d = new Date();\n d.setHours(0, 0, 0, 0);\n return d.getTime();\n }\n case \"24h\": return now - 24 * 3600_000;\n case \"7d\": return now - 7 * 86400_000;\n case \"30d\": return now - 30 * 86400_000;\n case \"60d\": return now - 60 * 86400_000;\n }\n}\n\nexport function UsageView() {\n const [win, setWin] = useState<Window>(WINDOWS[0]!);\n const [summary, setSummary] = useState<UsageSummary | null>(null);\n const [series, setSeries] = useState<SeriesPoint[]>([]);\n const [error, setError] = useState(\"\");\n const [loading, setLoading] = useState(true);\n\n const load = useCallback(async (w: Window) => {\n setLoading(true);\n setError(\"\");\n const since = sinceFor(w.key);\n const [sumRes, serRes] = await Promise.all([\n fetch(`/api/gw/admin/usage?since=${since}`),\n fetch(`/api/gw/admin/usage/series?since=${since}&bucket=${w.bucketMs}`),\n ]);\n if (!sumRes.ok) {\n setError(\"could not load usage\");\n setLoading(false);\n return;\n }\n setSummary((await sumRes.json()) as UsageSummary);\n const ser = serRes.ok ? ((await serRes.json()) as { series: SeriesPoint[] }) : { series: [] };\n setSeries(ser.series);\n setLoading(false);\n }, []);\n\n useEffect(() => {\n void load(win);\n }, [win, load]);\n\n const total = summary?.total;\n\n return (\n <div>\n <div className=\"mb-6 flex items-center justify-between gap-3\">\n <div>\n <h1 className=\"text-[22px] font-semibold tracking-tight text-text\">Usage</h1>\n <p className=\"mt-1 text-[13px] text-text-muted\">Tokens and cost across providers and models.</p>\n </div>\n <div className=\"flex items-center gap-1 rounded-full border border-border bg-surface p-1\">\n {WINDOWS.map((w) => (\n <button\n key={w.label}\n onClick={() => setWin(w)}\n className={`rounded-full px-3 py-1 text-[12px] font-medium transition-colors ${\n win.label === w.label ? \"bg-surface-2 text-text\" : \"text-text-muted hover:text-text\"\n }`}\n >\n {w.label}\n </button>\n ))}\n </div>\n </div>\n\n {error ? (\n <Empty>{error}</Empty>\n ) : (\n <>\n <div className=\"mb-5 grid grid-cols-2 gap-3 sm:grid-cols-4\">\n <Stat label=\"Requests\" value={fmt.int(total?.requests ?? 0)} />\n <Stat label=\"Tokens in\" value={fmt.compact(total?.tokens_in ?? 0)} />\n <Stat label=\"Tokens out\" value={fmt.compact(total?.tokens_out ?? 0)} />\n <Stat label=\"Cost\" value={fmt.cost(total?.cost ?? 0)} />\n </div>\n\n <div className=\"mb-5\">\n <AreaChart series={series} />\n </div>\n\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <RichCard header={<span className=\"text-[13px] font-semibold text-text\">By provider</span>}>\n {summary?.by_provider.length ? (\n <BreakdownTable\n rows={summary.by_provider.map((p) => ({ label: p.provider, ...p }))}\n loading={loading}\n />\n ) : (\n <Empty>No usage in this window.</Empty>\n )}\n </RichCard>\n <RichCard header={<span className=\"text-[13px] font-semibold text-text\">By model</span>}>\n {summary?.by_model.length ? (\n <BreakdownTable\n rows={summary.by_model.map((m) => ({ label: `${m.alias} → ${m.model}`, ...m }))}\n loading={loading}\n />\n ) : (\n <Empty>No usage in this window.</Empty>\n )}\n </RichCard>\n </div>\n </>\n )}\n </div>\n );\n}\n\nfunction BreakdownTable({\n rows,\n loading,\n}: {\n rows: Array<{ label: string; requests: number; tokens_in: number; tokens_out: number; cost: number }>;\n loading: boolean;\n}) {\n return (\n <div className={`table-wrap ${loading ? \"opacity-50\" : \"\"}`}>\n <table className=\"w-full border-collapse\">\n <thead>\n <tr className=\"text-text-subtle\">\n {[\"\", \"Reqs\", \"In\", \"Out\", \"Cost\"].map((h, i) => (\n <th\n key={h + i}\n className={`pb-2 text-[10px] font-medium uppercase tracking-wider ${i === 0 ? \"text-left\" : \"text-right\"}`}\n >\n {h}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((r) => (\n <tr key={r.label} className=\"border-t border-border-subtle\">\n <td className=\"py-2 text-[12.5px] text-text\">{r.label}</td>\n <td className=\"py-2 text-right tnum text-[12.5px] text-text-muted\">{fmt.int(r.requests)}</td>\n <td className=\"py-2 text-right tnum text-[12.5px] text-text-muted\">{fmt.compact(r.tokens_in)}</td>\n <td className=\"py-2 text-right tnum text-[12.5px] text-text-muted\">{fmt.compact(r.tokens_out)}</td>\n <td className=\"py-2 text-right tnum text-[12.5px] text-text\">{fmt.cost(r.cost)}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\n\nexport interface SeriesPoint {\n ts: number;\n requests: number;\n tokens_in: number;\n tokens_out: number;\n cost: number;\n}\n\ntype Metric = \"tokens\" | \"cost\" | \"requests\";\n\nconst METRICS: { key: Metric; label: string }[] = [\n { key: \"tokens\", label: \"Tokens\" },\n { key: \"cost\", label: \"Cost\" },\n { key: \"requests\", label: \"Requests\" },\n];\n\nfunction valueOf(p: SeriesPoint, m: Metric): number {\n if (m === \"tokens\") return p.tokens_in + p.tokens_out;\n if (m === \"cost\") return p.cost;\n return p.requests;\n}\n\nfunction fmtVal(v: number, m: Metric): string {\n if (m === \"cost\") return v < 0.01 ? `$${v.toFixed(4)}` : `$${v.toFixed(2)}`;\n if (v >= 1_000_000) return `${(v / 1_000_000).toFixed(1)}M`;\n if (v >= 1_000) return `${(v / 1_000).toFixed(1)}K`;\n return String(Math.round(v));\n}\n\nfunction fmtTime(ts: number): string {\n return new Date(ts).toLocaleTimeString(\"en-US\", { hour: \"2-digit\", minute: \"2-digit\", hour12: false });\n}\n\n/** Inline-SVG area chart with a metric toggle. No charting dependency. */\nexport function AreaChart({ series }: { series: SeriesPoint[] }) {\n const [metric, setMetric] = useState<Metric>(\"tokens\");\n\n const W = 1000;\n const H = 240;\n const padX = 8;\n const padY = 16;\n\n const vals = series.map((p) => valueOf(p, metric));\n const max = Math.max(1, ...vals);\n const n = series.length;\n\n const x = (i: number) => (n <= 1 ? padX : padX + (i / (n - 1)) * (W - padX * 2));\n const y = (v: number) => H - padY - (v / max) * (H - padY * 2);\n\n const line = vals.map((v, i) => `${i === 0 ? \"M\" : \"L\"}${x(i).toFixed(1)},${y(v).toFixed(1)}`).join(\" \");\n const area = `${line} L${x(n - 1).toFixed(1)},${H - padY} L${x(0).toFixed(1)},${H - padY} Z`;\n\n const peak = vals.length ? vals.indexOf(Math.max(...vals)) : -1;\n const total = vals.reduce((a, b) => a + b, 0);\n\n return (\n <div className=\"overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft\">\n <header className=\"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3\">\n <div className=\"flex items-center gap-2.5\">\n <span className=\"text-[13px] font-semibold text-text\">Over time</span>\n <span className=\"tnum text-[12px] text-text-muted\">{fmtVal(total, metric)} total</span>\n </div>\n <div className=\"flex items-center gap-1\">\n {METRICS.map((m) => (\n <button\n key={m.key}\n onClick={() => setMetric(m.key)}\n className={`rounded-full px-3 py-1 text-[12px] font-medium transition-colors ${\n metric === m.key ? \"bg-surface-2 text-text\" : \"text-text-muted hover:text-text\"\n }`}\n >\n {m.label}\n </button>\n ))}\n </div>\n </header>\n\n <div className=\"px-2 py-3\">\n {n === 0 || total === 0 ? (\n <div className=\"flex h-[200px] items-center justify-center text-[13px] text-text-muted\">\n No activity in this range.\n </div>\n ) : (\n <svg viewBox={`0 0 ${W} ${H}`} className=\"h-[200px] w-full\" preserveAspectRatio=\"none\">\n <defs>\n <linearGradient id=\"areaFill\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--color-accent)\" stopOpacity=\"0.28\" />\n <stop offset=\"100%\" stopColor=\"var(--color-accent)\" stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <path d={area} fill=\"url(#areaFill)\" />\n <path d={line} fill=\"none\" stroke=\"var(--color-accent)\" strokeWidth=\"2\" vectorEffect=\"non-scaling-stroke\" />\n {peak >= 0 && (\n <circle cx={x(peak)} cy={y(vals[peak]!)} r=\"3\" fill=\"var(--color-accent)\" vectorEffect=\"non-scaling-stroke\" />\n )}\n </svg>\n )}\n </div>\n\n {n > 0 && total > 0 && peak >= 0 && (\n <div className=\"flex justify-between border-t border-border-subtle px-4 py-2 tnum text-[10px] text-text-subtle\">\n <span>{fmtTime(series[0]!.ts)}</span>\n <span>\n peak {fmtVal(vals[peak]!, metric)} @ {fmtTime(series[peak]!.ts)}\n </span>\n <span>{fmtTime(series[n - 1]!.ts)}</span>\n </div>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { useState, useEffect, useRef, useCallback } from \"react\";\nimport { Lamp } from \"@/components/Lamp\";\nimport { Badge } from \"@/components/Badge\";\nimport { Icon } from \"@/components/Icon\";\nimport { fmt } from \"@/components/ui\";\nimport type { UsageLog } from \"@/lib/gateway\";\n\ntype StatusFilter = \"all\" | \"ok\" | \"error\";\n\nconst FILTERS: { key: StatusFilter; label: string }[] = [\n { key: \"all\", label: \"All\" },\n { key: \"ok\", label: \"Success\" },\n { key: \"error\", label: \"Errors\" },\n];\n\n// shared control style for the filter row — bordered surface chip, accent on focus.\nconst ctrl = \"h-9 rounded-brand border border-border bg-surface-2 px-2.5 text-[12.5px] text-text focus:border-accent focus:outline-none\";\n\n// recency presets for the request log (a live 200-row buffer, so relative\n// windows fit better than absolute dates). null = no time filter.\nconst SINCE_PRESETS: { label: string; ms: number | null }[] = [\n { label: \"1h\", ms: 3600_000 },\n { label: \"6h\", ms: 6 * 3600_000 },\n { label: \"24h\", ms: 24 * 3600_000 },\n { label: \"7d\", ms: 7 * 86400_000 },\n { label: \"All\", ms: null },\n];\nconst sincePill = (active: boolean): string =>\n `rounded-full px-2.5 py-1 text-[12px] font-medium transition-colors ${\n active ? \"bg-accent/15 text-accent\" : \"text-text-muted hover:text-text\"\n }`;\n\nexport function LogTable({ logs: initial }: { logs: UsageLog[] }) {\n const [logs, setLogs] = useState(initial);\n const [filter, setFilter] = useState<StatusFilter>(\"all\");\n const [provFilter, setProvFilter] = useState<string>(\"all\");\n const [sinceMs, setSinceMs] = useState<number | null>(null);\n const [live, setLive] = useState(true);\n const [collapsed, setCollapsed] = useState(false);\n const [expandedIdx, setExpandedIdx] = useState<number | null>(null);\n const timer = useRef<ReturnType<typeof setInterval> | null>(null);\n\n const refresh = useCallback(async () => {\n try {\n const res = await fetch(\"/api/gw/admin/logs?limit=200\");\n if (res.ok) {\n const data = (await res.json()) as { logs: UsageLog[] };\n setLogs(data.logs);\n }\n } catch { /* ignore */ }\n }, []);\n\n useEffect(() => {\n if (live) {\n timer.current = setInterval(refresh, 5000);\n return () => { if (timer.current) clearInterval(timer.current); };\n }\n if (timer.current) clearInterval(timer.current);\n }, [live, refresh]);\n\n const providers = [...new Set(logs.map((l) => l.provider))].sort();\n\n const okCount = logs.filter((l) => l.status >= 200 && l.status < 300).length;\n const errCount = logs.length - okCount;\n\n const sinceFloor = sinceMs !== null ? Date.now() - sinceMs : null;\n\n const shown = logs.filter((l) => {\n if (filter === \"ok\" && !(l.status >= 200 && l.status < 300)) return false;\n if (filter === \"error\" && l.status >= 200 && l.status < 300) return false;\n if (provFilter !== \"all\" && l.provider !== provFilter) return false;\n if (sinceFloor !== null && l.ts < sinceFloor) return false;\n return true;\n });\n\n const hasFilters = filter !== \"all\" || provFilter !== \"all\" || sinceMs !== null;\n const clearFilters = () => { setFilter(\"all\"); setProvFilter(\"all\"); setSinceMs(null); };\n\n const count = (k: StatusFilter) => (k === \"all\" ? logs.length : k === \"ok\" ? okCount : errCount);\n\n return (\n <div className=\"overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft\">\n <header className=\"flex flex-col gap-3 border-b border-border-subtle px-4 py-3\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex items-center gap-1.5\">\n <button\n onClick={() => setCollapsed((v) => !v)}\n className=\"flex-none rounded p-0.5 text-text-subtle transition-colors hover:text-text\"\n aria-label={collapsed ? \"Expand requests\" : \"Collapse requests\"}\n title={collapsed ? \"Expand\" : \"Collapse\"}\n >\n <Icon name={collapsed ? \"chevron_right\" : \"expand_more\"} size={18} />\n </button>\n <div className=\"flex items-center gap-1\">\n {FILTERS.map((f) => (\n <button\n key={f.key}\n onClick={() => setFilter(f.key)}\n className={`flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[12px] font-medium transition-colors ${\n filter === f.key ? \"bg-surface-2 text-text\" : \"text-text-muted hover:text-text\"\n }`}\n >\n {f.label}\n <span className=\"tnum text-text-subtle\">{count(f.key)}</span>\n </button>\n ))}\n </div>\n </div>\n <button\n onClick={() => setLive((v) => !v)}\n className={`flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-medium transition-colors ${\n live ? \"bg-success/15 text-success\" : \"text-text-muted hover:text-text\"\n }`}\n title={live ? \"Auto-refresh ON (5s)\" : \"Auto-refresh OFF\"}\n >\n <Icon name={live ? \"radio_button_checked\" : \"radio_button_unchecked\"} size={12} />\n Live\n </button>\n </div>\n\n {!collapsed && (\n <div className=\"flex flex-wrap items-end gap-2.5\">\n <FilterField label=\"Provider\">\n <select\n value={provFilter}\n onChange={(e) => setProvFilter(e.target.value)}\n className={ctrl + \" w-40\"}\n >\n <option value=\"all\">All providers</option>\n {providers.map((p) => (\n <option key={p} value={p}>{p}</option>\n ))}\n </select>\n </FilterField>\n <FilterField label=\"Since\">\n <div className=\"flex h-9 items-center gap-0.5 rounded-brand border border-border bg-surface-2 px-1\">\n {SINCE_PRESETS.map((p) => (\n <button\n key={p.label}\n type=\"button\"\n onClick={() => setSinceMs(p.ms)}\n className={sincePill(sinceMs === p.ms)}\n >\n {p.label}\n </button>\n ))}\n </div>\n </FilterField>\n <button\n onClick={clearFilters}\n disabled={!hasFilters}\n className=\"flex h-9 items-center gap-1.5 rounded-brand border border-border bg-surface-2 px-3 text-[12.5px] font-medium text-text-muted transition-colors hover:border-text-subtle hover:text-text disabled:opacity-40 disabled:hover:border-border disabled:hover:text-text-muted\"\n title={hasFilters ? \"Reset all filters\" : \"No filters applied\"}\n >\n <Icon name=\"filter_alt_off\" size={15} />\n Clear\n </button>\n </div>\n )}\n </header>\n\n {collapsed ? null : shown.length === 0 ? (\n <div className=\"px-4 py-8 text-center text-[13px] text-text-muted\">\n {logs.length === 0 ? \"No requests recorded yet.\" : \"No requests match this filter.\"}\n </div>\n ) : (\n <>\n <div className=\"table-wrap\">\n <table className=\"w-full min-w-[720px] border-collapse\">\n <thead>\n <tr className=\"text-text-subtle\">\n {[\"Status\", \"Time\", \"Alias\", \"Provider\", \"Model\", \"In\", \"Out\", \"ms\", \"Mode\"].map((h, i) => (\n <th\n key={h + i}\n className={`whitespace-nowrap px-4 pb-2.5 pt-3 text-[10px] font-medium uppercase tracking-wider ${\n i >= 5 && i <= 7 ? \"text-right\" : \"text-left\"\n }`}\n >\n {h}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {shown.map((l, i) => {\n const ok = l.status >= 200 && l.status < 300;\n const isExpanded = expandedIdx === i;\n return (\n <tr key={i} onClick={() => setExpandedIdx(isExpanded ? null : i)} className={`border-t border-border-subtle cursor-pointer transition-colors ${isExpanded ? \"bg-surface-2/60\" : \"hover:bg-surface-2/70\"}`}>\n <Td>\n <Badge tone={ok ? \"live\" : \"down\"}>\n <Lamp state={ok ? \"live\" : \"down\"} />\n {l.status}\n </Badge>\n </Td>\n <Td muted title={fmt.time(l.ts)} suppressHydrationWarning>\n {fmt.ago(l.ts)} ago\n </Td>\n <Td className=\"text-text\">{l.alias}</Td>\n <Td muted>{l.provider}</Td>\n <Td muted>{l.model}</Td>\n <Td right>{fmt.int(l.tokens_in)}</Td>\n <Td right>{fmt.int(l.tokens_out)}</Td>\n <Td right>{fmt.int(l.latency_ms)}</Td>\n <Td muted>{l.stream ? \"stream\" : \"unary\"}</Td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n\n {expandedIdx !== null && shown[expandedIdx] && (\n <RequestDetail log={shown[expandedIdx]} onClose={() => setExpandedIdx(null)} />\n )}\n </>\n )}\n </div>\n );\n}\n\nfunction FilterField({ label, children }: { label: string; children: React.ReactNode }) {\n return (\n <label className=\"flex flex-col gap-1\">\n <span className=\"text-[10px] font-medium uppercase tracking-wider text-text-subtle\">{label}</span>\n {children}\n </label>\n );\n}\n\nfunction Td({\n children,\n muted,\n right,\n title,\n className,\n suppressHydrationWarning,\n}: {\n children: React.ReactNode;\n muted?: boolean;\n right?: boolean;\n title?: string;\n className?: string;\n suppressHydrationWarning?: boolean;\n}) {\n return (\n <td\n title={title}\n suppressHydrationWarning={suppressHydrationWarning}\n className={`whitespace-nowrap px-4 py-2.5 tnum text-[12.5px] ${right ? \"text-right\" : \"text-left\"} ${\n muted ? \"text-text-muted\" : \"text-text\"\n }${className ? ` ${className}` : \"\"}`}\n >\n {children}\n </td>\n );\n}\n\nfunction RequestDetail({ log, onClose }: { log: UsageLog; onClose: () => void }) {\n const ok = log.status >= 200 && log.status < 300;\n const totalTokens = log.tokens_in + log.tokens_out;\n\n return (\n <div className=\"border-t border-border-subtle bg-surface-2/40 px-5 py-4\">\n <div className=\"mb-3 flex items-center justify-between\">\n <span className=\"text-[12px] font-semibold text-text\">Request Details</span>\n <button onClick={onClose} className=\"text-text-subtle hover:text-text\">\n <Icon name=\"close\" size={16} />\n </button>\n </div>\n <div className=\"grid grid-cols-2 gap-x-8 gap-y-2 text-[12px] sm:grid-cols-4\">\n <DetailCell label=\"Status\" value={`${log.status} ${ok ? \"OK\" : \"Error\"}`} />\n <DetailCell label=\"Timestamp\" value={new Date(log.ts).toLocaleString()} />\n <DetailCell label=\"Alias\" value={log.alias} />\n <DetailCell label=\"Provider\" value={log.provider} />\n <DetailCell label=\"Model\" value={log.model} />\n <DetailCell label=\"Mode\" value={log.stream ? \"Streaming\" : \"Unary\"} />\n <DetailCell label=\"Latency\" value={`${log.latency_ms}ms`} />\n <DetailCell label=\"Cost\" value={fmt.cost(log.cost)} />\n <DetailCell label=\"Input tokens\" value={fmt.int(log.tokens_in)} />\n <DetailCell label=\"Output tokens\" value={fmt.int(log.tokens_out)} />\n <DetailCell label=\"Cached tokens\" value={fmt.int(log.cached_tokens)} />\n <DetailCell label=\"Total tokens\" value={fmt.int(totalTokens)} />\n </div>\n </div>\n );\n}\n\nfunction DetailCell({ label, value }: { label: string; value: string }) {\n return (\n <div>\n <span className=\"text-[10px] uppercase tracking-wider text-text-subtle\">{label}</span>\n <div className=\"tnum text-text\">{value}</div>\n </div>\n );\n}\n"],"names":["METRICS","key","label","valueOf","p","m","tokens_in","tokens_out","cost","requests","fmtVal","v","toFixed","String","Math","round","fmtTime","ts","Date","toLocaleTimeString","hour","minute","hour12","AreaChart","series","metric","setMetric","W","H","padX","padY","vals","map","max","n","length","x","i","y","line","join","area","peak","indexOf","total","reduce","a","b","className","onClick","viewBox","preserveAspectRatio","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","d","fill","stroke","strokeWidth","vectorEffect","cx","cy","r","FILTERS","ctrl","SINCE_PRESETS","ms","sincePill","active","LogTable","logs","initial","setLogs","filter","setFilter","provFilter","setProvFilter","sinceMs","setSinceMs","live","setLive","collapsed","setCollapsed","expandedIdx","setExpandedIdx","timer","refresh","res","fetch","ok","data","json","current","setInterval","clearInterval","providers","Set","l","provider","sort","okCount","status","errCount","sinceFloor","now","shown","hasFilters","clearFilters","count","k","title","name","size","f","FilterField","value","onChange","e","target","type","disabled","h","isExpanded","Td","tone","state","muted","time","suppressHydrationWarning","ago","alias","model","right","int","latency_ms","stream","RequestDetail","log","onClose","children","totalTokens","DetailCell","toLocaleString","cached_tokens"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ui.tsx","../../../../src/components/Badge.tsx","../../../../src/components/RichCard.tsx","../../../../src/components/Lamp.tsx"],"sourcesContent":["/** Small formatting helpers shared across the console. */\nexport const fmt = {\n int(n: number): string {\n return n.toLocaleString(\"en-US\");\n },\n /** compact number: 1.2K, 3.4M */\n compact(n: number): string {\n if (Math.abs(n) >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n if (Math.abs(n) >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n return String(Math.round(n));\n },\n cost(n: number): string {\n if (n === 0) return \"$0\";\n return n < 0.01 ? `$${n.toFixed(4)}` : `$${n.toFixed(2)}`;\n },\n time(ts: number): string {\n return new Date(ts).toLocaleString(\"en-US\", { hour12: false });\n },\n /** DD/MM/YYYY (local) */\n date(ts: number): string {\n const d = new Date(ts);\n return `${String(d.getDate()).padStart(2, \"0\")}/${String(d.getMonth() + 1).padStart(2, \"0\")}/${d.getFullYear()}`;\n },\n /** \"3m\", \"2h\", \"5d\" — coarse relative age */\n ago(ts: number): string {\n const s = Math.max(0, Math.round((Date.now() - ts) / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m`;\n if (s < 86400) return `${Math.floor(s / 3600)}h`;\n return `${Math.floor(s / 86400)}d`;\n },\n /** ms duration -> \"Xs\", \"Xm Ys\", \"Xh Ym\" for budget/cooldown countdowns */\n duration(ms: number): string {\n const s = Math.max(0, Math.round(ms / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m ${s % 60}s`;\n const h = Math.floor(s / 3600);\n const m = Math.floor((s % 3600) / 60);\n if (h < 24) return `${h}h ${m}m`;\n const d = Math.floor(h / 24);\n return `${d}d ${h % 24}h`;\n },\n};\n\n/** A labelled stat block — number over a caption. */\nexport function Stat({ label, value, sub }: { label: string; value: React.ReactNode; sub?: string }) {\n return (\n <div className=\"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft\">\n <div className=\"text-[11px] font-medium uppercase tracking-wider text-text-subtle\">{label}</div>\n <div className=\"mt-1 tnum text-[22px] font-semibold tracking-tight text-text\">{value}</div>\n {sub && <div className=\"mt-0.5 text-[12px] text-text-muted\">{sub}</div>}\n </div>\n );\n}\n\n/** Empty-state hint inside a card body. */\nexport function Empty({ children }: { children: React.ReactNode }) {\n return <div className=\"px-1 py-8 text-center text-[13px] text-text-muted\">{children}</div>;\n}\n","type Tone = \"live\" | \"down\" | \"warn\" | \"info\" | \"neutral\" | \"danger\";\n\nconst TONES: Record<Tone, string> = {\n live: \"bg-success/12 text-success\",\n down: \"bg-danger/12 text-danger\",\n danger: \"bg-danger/12 text-danger\",\n warn: \"bg-warning/12 text-warning\",\n info: \"bg-info/12 text-info\",\n neutral: \"bg-surface-2 text-text-muted\",\n};\n\nexport function Badge({\n tone = \"neutral\",\n children,\n className,\n}: {\n tone?: Tone;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${TONES[tone]}${className ? ` ${className}` : \"\"}`}\n >\n {children}\n </span>\n );\n}\n\n/** Format badge for a provider's wire format. */\nexport function FormatBadge({ format }: { format: \"openai\" | \"anthropic\" | \"gemini\" }) {\n return <Badge tone=\"info\">{format}</Badge>;\n}\n","/**\n * Rich content card — header (title slot + trailing slot), body, optional footer.\n * Softly rounded, subtle border, warm surface. The Haulix-style workhorse.\n */\nexport function RichCard({\n header,\n footer,\n children,\n className,\n}: {\n header?: React.ReactNode;\n footer?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <section\n className={`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${className ? ` ${className}` : \"\"}`}\n >\n {header && (\n <header className=\"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3\">\n {header}\n </header>\n )}\n <div className=\"p-4\">{children}</div>\n {footer && (\n <footer className=\"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5\">\n {footer}\n </footer>\n )}\n </section>\n );\n}\n\n/** Title + optional subtitle, for the header slot. */\nexport function CardTitle({ title, sub, icon }: { title: string; sub?: string; icon?: React.ReactNode }) {\n return (\n <div className=\"flex items-center gap-2.5 min-w-0\">\n {icon}\n <div className=\"min-w-0\">\n <div className=\"truncate text-[14px] font-semibold tracking-tight text-text\">{title}</div>\n {sub && <div className=\"truncate text-[12px] text-text-muted\">{sub}</div>}\n </div>\n </div>\n );\n}\n","/** Status lamp — green when serving, red pulse on cooldown, grey when idle. */\nexport function Lamp({ state, title }: { state: \"live\" | \"idle\" | \"down\"; title?: string }) {\n return <span className={`lamp lamp-${state}`} title={title} aria-label={state} />;\n}\n\nexport function lampFor(healthy: boolean): \"live\" | \"down\" {\n return healthy ? \"live\" : \"down\";\n}\n"],"names":["fmt","int","n","toLocaleString","compact","Math","abs","toFixed","String","round","cost","time","ts","Date","hour12","date","d","getDate","padStart","getMonth","getFullYear","ago","s","max","now","floor","duration","ms","h","m","Stat","label","value","sub","className","Empty","children","TONES","live","down","danger","warn","info","neutral","Badge","tone","FormatBadge","format","RichCard","header","footer","CardTitle","title","icon","Lamp","state","lampFor","healthy"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/capabilities.ts","../../../../src/components/CapacityBadges.tsx","../../../../src/components/ModelPicker.tsx"],"sourcesContent":["// Model capabilities — what each model can read/do beyond plain text.\n//\n// Fallback order (first match wins), result merged over DEFAULT_CAPABILITIES:\n// 1. PROVIDER_CAPABILITIES[provider][model] — provider-specific override\n// 2. MODEL_CAPABILITIES[model] — canonical exact id (handles exceptions)\n// 3. PATTERN_CAPABILITIES — glob match, ordered specific -> generic\n// 4. DEFAULT_CAPABILITIES — safe floor (always returned)\n//\n// ── HOW TO ADD / UPDATE A MODEL ──────────────────────────────────────\n// Authoritative data source: https://models.dev/api.json (145 providers, 4000+\n// models, MIT). Each model exposes the exact fields we map below:\n// modalities.input [\"text\",\"image\",\"pdf\",\"audio\",\"video\"] -> vision / pdf / audioInput / videoInput\n// modalities.output [\"text\",\"image\",\"audio\"] -> imageOutput / audioOutput\n// reasoning -> reasoning tool_call -> tools\n// limit.context -> contextWindow limit.output -> maxOutput\n// Look up the model id, then:\n// • If a PATTERN below already covers it correctly -> nothing to do.\n// • If it is an exception (pattern would mis-match) -> add an exact entry to\n// MODEL_CAPABILITIES (only the fields that differ from DEFAULT).\n// • If a whole new family -> add an ordered PATTERN (specific before generic).\n// NOTE: models.dev has NO \"search\" flag (web search is a runtime tool, not a\n// model spec); set `search` from vendor docs (Claude 4.x+, GPT-5.x/4o, Gemini\n// 2.0+, Grok, Perplexity). Verify with: curl -s https://models.dev/api.json\n\n\n/**\n * Safe floor — every resolved result is merged over this so consumers\n * never need null-checks. Most modern LLMs meet these limits.\n */\nexport interface Caps {\n vision: boolean;\n pdf: boolean;\n audioInput: boolean;\n videoInput: boolean;\n imageOutput: boolean;\n audioOutput: boolean;\n search: boolean;\n tools: boolean;\n reasoning: boolean;\n thinkingFormat: string | null;\n thinkingCanDisable: boolean;\n thinkingRange: { min: number; max: number } | null;\n contextWindow: number;\n maxOutput: number;\n}\n\n/**\n * Glob (* = wildcard) match, anchored + case-insensitive. aigetwey's\n * pricing.matchPattern so capabilities resolve identically.\n */\nexport function matchPattern(pattern: string, model: string): boolean {\n const regex = new RegExp(\n \"^\" + pattern.split(\"*\").map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\".*\") + \"$\",\n \"i\",\n );\n return regex.test(model);\n}\n\nexport const DEFAULT_CAPABILITIES: Caps = {\n // input modalities\n vision: false, // read images\n pdf: false, // read PDF / documents\n audioInput: false, // read audio\n videoInput: false, // read video\n // output modalities\n imageOutput: false, // generate images\n audioOutput: false, // generate audio\n // features\n search: false, // built-in web search tool / grounding\n tools: true, // function / tool calling\n reasoning: false, // thinking / reasoning\n // thinking wire format (only meaningful when reasoning:true). null → derive from transport.format.\n // enum: openai|claude-adaptive|claude-budget|gemini-level|gemini-budget|zai|qwen|deepseek|kimi|minimax|hunyuan|step\n thinkingFormat: null,\n thinkingCanDisable: true, // false → model cannot turn thinking off (clamp to min instead of disable)\n thinkingRange: null, // { min, max } for budget formats; null = no clamp\n // limits (tokens)\n contextWindow: 200000,\n maxOutput: 64000,\n};\n\n// User-added model metadata can carry dashboard service kinds instead of the\n// runtime capability names used here. Map those typed model kinds into input /\n// output capabilities so custom vision models are not treated as text-only.\nconst SERVICE_KIND_CAPABILITIES: Record<string, Partial<Caps>> = {\n imageToText: { vision: true },\n image: { imageOutput: true },\n stt: { audioInput: true },\n tts: { audioOutput: true },\n embedding: { tools: false },\n};\n\nexport function capabilitiesFromServiceKind(kind: string): Partial<Caps> | null {\n return SERVICE_KIND_CAPABILITIES[kind] || null;\n}\n\n/**\n * Canonical exact-id overrides — used for exceptions that patterns would\n * otherwise mis-match. Only declare deltas vs DEFAULT.\n */\nexport const MODEL_CAPABILITIES: Record<string, Partial<Caps>> = {\n // Claude 4.6/4.7 have 1M context + adaptive thinking (override generic claude pattern)\n \"claude-opus-4.6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-opus-4.7\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-opus-4-6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-sonnet-4.6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 64000 },\n \"claude-sonnet-4-6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 64000 },\n\n // Gemini image-gen / OpenAI image / xai image variants\n \"gpt-image-1\": { imageOutput: true, tools: false },\n\n // GLM vision variant (text GLM has no vision)\n \"glm-4.6v\": { vision: true, reasoning: true, thinkingFormat: \"zai\", contextWindow: 128000 },\n\n // Qwen plain coder/text (no vision) — registry \"vision-model\" / \"coder-model\" aliases\n \"vision-model\": { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 },\n \"coder-model\": { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 },\n};\n\n/**\n * Provider-specific capability overrides. Keyed by provider alias/id.\n */\nexport const PROVIDER_CAPABILITIES: Record<string, Record<string, Partial<Caps>>> = {\n // CodeBuddy.cn — authoritative per-model metadata from the gateway's model\n // config (contextWindow=maxInputTokens, maxOutput=maxOutputTokens, vision=\n // supportsImages). Every model reasons via OpenAI-style reasoning_effort\n // (see registry thinkingFormat). `onlyReasoning` models can't turn thinking\n // off → thinkingCanDisable:false (clamped to minimal instead of disabled).\n \"codebuddy-cn\": {\n \"glm-5.2\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 48000 },\n \"glm-5.1\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"glm-5.0\": { reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 48000 },\n \"glm-5.0-turbo\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"glm-5v-turbo\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 38000 },\n \"glm-4.7\": { reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 48000 },\n \"minimax-m3\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 512000, maxOutput: 48000 },\n \"minimax-m2.7\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"kimi-k2.7\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 256000, maxOutput: 32000 },\n \"kimi-k2.6\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 256000, maxOutput: 32000 },\n \"kimi-k2.5\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 164000, maxOutput: 32000 },\n \"hy3-preview\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 192000, maxOutput: 64000 },\n \"deepseek-v4-pro\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 50000 },\n \"deepseek-v4-flash\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 50000 },\n \"deepseek-v3-2-volc\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 96000, maxOutput: 32000 },\n },\n};\n\n/**\n * Pattern fallback — glob (* = wildcard), matched case-insensitively and\n * anchored (^...$) so a pattern must match the full model id. ORDER MATTERS:\n * vision/specific variants first, text-only/generic families last, to avoid\n * a broad family pattern swallowing an exception (e.g. glm-4.6v vs glm-5).\n */\nexport const PATTERN_CAPABILITIES: Array<{ pattern: string; caps: Partial<Caps> }> = [\n // ── Claude (4.6+ = adaptive thinking; older/haiku = budget) ──────\n { pattern: \"*claude*opus-4.6*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*opus-4.7*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*opus-4.8*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*sonnet-4.6*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*sonnet-4.7*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*haiku*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*opus*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*sonnet*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*fable*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\", contextWindow: 1000000, maxOutput: 128000 } },\n { pattern: \"*claude*mythos*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\", contextWindow: 1000000, maxOutput: 128000 } },\n { pattern: \"*claude-3*\", caps: { vision: true } },\n { pattern: \"*claude*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n\n // ── Gemini (all 2.0+ multimodal + google_search grounding, 1M ctx) ─\n { pattern: \"*gemini*image*\", caps: { vision: true, imageOutput: true, contextWindow: 1048576 } },\n { pattern: \"*gemini-3*pro*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-level\", thinkingCanDisable: false, contextWindow: 1048576, maxOutput: 65535 } },\n { pattern: \"*gemini-3*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-level\", thinkingCanDisable: false, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini-2.5*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-budget\", thinkingRange: { min: 0, max: 24576 }, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini-2*\", caps: { vision: true, audioInput: true, videoInput: true, search: true, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini*\", caps: { vision: true, search: true, contextWindow: 1048576 } },\n { pattern: \"*gemma*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*nanobanana*\", caps: { vision: true, imageOutput: true } },\n\n // ── OpenAI GPT-5.x (vision + thinking + web search) ──────────────\n { pattern: \"*gpt-5*image*\", caps: { imageOutput: true } },\n { pattern: \"*gpt-5*codex*\", caps: { reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 400000, maxOutput: 128000 } },\n { pattern: \"*gpt-5*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 400000, maxOutput: 128000 } },\n { pattern: \"*gpt-4o*\", caps: { vision: true, search: true, contextWindow: 128000, maxOutput: 16384 } },\n { pattern: \"*gpt-4.1*\", caps: { vision: true, contextWindow: 1000000, maxOutput: 32768 } },\n { pattern: \"*gpt-4-turbo*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*gpt-4*\", caps: { contextWindow: 128000 } },\n { pattern: \"*gpt-3.5*\", caps: { contextWindow: 16385, maxOutput: 4096 } },\n { pattern: \"*gpt-oss*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 128000 } },\n\n // ── OpenAI o-series (reasoning, vision) ──────────────────────────\n { pattern: \"*o1-mini*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 128000 } },\n { pattern: \"*o1*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n { pattern: \"*o3*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n { pattern: \"*o4*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n\n // ── Grok (vision + Live Search) ──────────────────────────────────\n { pattern: \"*grok*image*\", caps: { imageOutput: true } },\n { pattern: \"*grok-code*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n { pattern: \"*grok-4*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n { pattern: \"*grok-3*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 131072 } },\n { pattern: \"*grok*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n\n // ── Qwen (enable_thinking + thinking_budget; QwQ = thinking-only) ─\n { pattern: \"*qwen*vl*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n { pattern: \"*qwen*max*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000, maxOutput: 65536 } },\n { pattern: \"*qwen*plus*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000, maxOutput: 65536 } },\n { pattern: \"*qwen*235b*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n { pattern: \"*qwen*coder*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 } },\n { pattern: \"*qwq*\", caps: { reasoning: true, thinkingFormat: \"qwen\", thinkingCanDisable: false, contextWindow: 131072 } },\n { pattern: \"*qwen*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n\n // ── Kimi (enabled→reasoning_effort; K2.7-code cannot disable) ─────\n { pattern: \"*kimi*k2.7*code*\", caps: { vision: true, reasoning: true, thinkingFormat: \"kimi\", thinkingCanDisable: false, contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*kimi*k2*\", caps: { vision: true, reasoning: true, thinkingFormat: \"kimi\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*kimi*\", caps: { reasoning: true, thinkingFormat: \"kimi\", contextWindow: 262144 } },\n\n // ── GLM / Z.ai (thinking.enabled; disable via enable_thinking:false) ─\n { pattern: \"*glm-5*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000, maxOutput: 128000 } },\n { pattern: \"*glm-4.7*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000, maxOutput: 128000 } },\n { pattern: \"*glm-4*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000 } },\n { pattern: \"*glm*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000 } },\n\n // ── DeepSeek (thinking.enabled + reasoning_effort; r1 = thinking-only) ─\n { pattern: \"*deepseek-v4*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", contextWindow: 1000000, maxOutput: 384000 } },\n { pattern: \"*reasoner*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", thinkingCanDisable: false, contextWindow: 128000 } },\n { pattern: \"*deepseek-r*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", thinkingCanDisable: false, contextWindow: 128000 } },\n { pattern: \"*deepseek-chat*\", caps: { contextWindow: 128000 } },\n { pattern: \"*deepseek*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", contextWindow: 128000 } },\n\n // ── MiniMax (M3 = adaptive; M2.x cannot disable) ─────────────────\n { pattern: \"*minimax*image*\", caps: { imageOutput: true } },\n { pattern: \"*minimax-m3*\", caps: { vision: true, reasoning: true, thinkingFormat: \"minimax\", contextWindow: 1048576, maxOutput: 512000 } },\n { pattern: \"*minimax-m2.7*\", caps: { reasoning: true, thinkingFormat: \"minimax\", thinkingCanDisable: false, contextWindow: 204800, maxOutput: 131072 } },\n { pattern: \"*minimax*\", caps: { reasoning: true, thinkingFormat: \"minimax\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 131072 } },\n\n // ── Xiaomi MiMo (vision, 1M / 262K ctx) ──────────────────────────\n { pattern: \"*mimo*v2.5*\", caps: { vision: true, contextWindow: 1048576, maxOutput: 131072 } },\n { pattern: \"*mimo*omni*\", caps: { vision: true, audioInput: true, contextWindow: 262144, maxOutput: 131072 } },\n { pattern: \"*mimo*\", caps: { vision: true, contextWindow: 262144, maxOutput: 131072 } },\n\n // ── Llama (4 = vision/1M; 3.x = text-only/128K) ──────────────────\n { pattern: \"*llama-4*\", caps: { vision: true, contextWindow: 1000000 } },\n { pattern: \"*llama*\", caps: { contextWindow: 128000 } },\n\n // ── Mistral (Large 3 = vision/256K; codestral text) ──────────────\n { pattern: \"*codestral*\", caps: { contextWindow: 256000 } },\n { pattern: \"*mistral-large*\", caps: { vision: true, contextWindow: 256000 } },\n { pattern: \"*mistral*\", caps: { contextWindow: 128000 } },\n\n // ── Cohere (Command A Vision = vision; others text) ──────────────\n { pattern: \"*command-a-vision*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*command*\", caps: { contextWindow: 128000 } },\n\n // ── Perplexity (web search native) ───────────────────────────────\n { pattern: \"*sonar*\", caps: { search: true, contextWindow: 128000 } },\n { pattern: \"*pplx*\", caps: { search: true, contextWindow: 128000 } },\n { pattern: \"*perplexity*\", caps: { search: true, contextWindow: 128000 } },\n\n // ── Others ───────────────────────────────────────────────────────\n { pattern: \"*hunyuan*\", caps: { reasoning: true, thinkingFormat: \"hunyuan\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"hy3*\", caps: { reasoning: true, thinkingFormat: \"hunyuan\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*step-*\", caps: { reasoning: true, thinkingFormat: \"step\", contextWindow: 128000 } },\n { pattern: \"*nemotron*\", caps: { reasoning: true, contextWindow: 128000 } },\n { pattern: \"*ling-*\", caps: { reasoning: true, contextWindow: 128000 } },\n];\n\n/**\n * Resolve capabilities for a model using the 4-step fallback chain,\n * merged over DEFAULT_CAPABILITIES so the result is always complete.\n *\n * @param {string} provider\n * @param {string} model\n * @returns {object} full capabilities object\n */\n/**\n * models.dev-style modalities for a model ref, derived from its capabilities.\n * Ref may be a `provider/model` (vendor prefix tolerated) or a bare combo alias.\n * Mirrors what opencode/aigetwey store per model in opencode.json.\n */\nexport function modalitiesForModel(ref: string): { input: string[]; output: string[] } {\n const slash = ref.indexOf(\"/\");\n const provider = slash > 0 ? ref.slice(0, slash) : null;\n const model = slash > 0 ? ref.slice(slash + 1) : ref;\n const c = getCapabilitiesForModel(provider, model);\n const input = [\"text\"];\n if (c.vision) input.push(\"image\");\n if (c.pdf) input.push(\"pdf\");\n if (c.audioInput) input.push(\"audio\");\n if (c.videoInput) input.push(\"video\");\n const output = [\"text\"];\n if (c.imageOutput) output.push(\"image\");\n if (c.audioOutput) output.push(\"audio\");\n return { input, output };\n}\n\nexport function getCapabilitiesForModel(provider: string | null, model: string): Caps {\n if (!model) return { ...DEFAULT_CAPABILITIES };\n\n // 1. Provider-specific override\n if (provider && PROVIDER_CAPABILITIES[provider]?.[model]) {\n return { ...DEFAULT_CAPABILITIES, ...PROVIDER_CAPABILITIES[provider][model] };\n }\n\n // 2. Canonical exact (strip vendor prefix: \"anthropic/claude-opus-4.7\" -> \"claude-opus-4.7\")\n const baseModel = (model.includes(\"/\") ? model.split(\"/\").pop() : model) ?? model;\n if (MODEL_CAPABILITIES[baseModel]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[baseModel] };\n if (MODEL_CAPABILITIES[model]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[model] };\n\n // 3. Pattern match (first match wins)\n for (const { pattern, caps } of PATTERN_CAPABILITIES) {\n if (matchPattern(pattern, baseModel) || matchPattern(pattern, model)) {\n return { ...DEFAULT_CAPABILITIES, ...caps };\n }\n }\n\n // 4. Floor\n return { ...DEFAULT_CAPABILITIES };\n}\n","\"use client\";\n\nimport { getCapabilitiesForModel, type Caps } from \"@/lib/capabilities\";\nimport { Icon } from \"@/components/Icon\";\n\n/**\n * Per-model capability icons, aigetwey's own CapacityBadges + CAPACITY_META.\n * Caps are DERIVED from the model id (not stored per-model) via the same resolver\n * aigetwey uses, so badges match wherever the model appears. Only set caps render.\n */\nconst CAPACITY_META: Record<string, { icon: string; label: string; desc: string; color: string }> = {\n vision: { icon: \"visibility\", label: \"Vision\", desc: \"Supports image input\", color: \"text-info\" },\n reasoning: { icon: \"neurology\", label: \"Reasoning\", desc: \"Supports reasoning / thinking\", color: \"text-warning\" },\n};\n\nexport function CapacityBadges({\n model,\n provider = null,\n size = 15,\n className = \"\",\n}: {\n model: string;\n provider?: string | null;\n size?: number;\n className?: string;\n}) {\n const caps = getCapabilitiesForModel(provider, model);\n const active = Object.keys(CAPACITY_META).filter((k) => caps[k as keyof Caps]);\n if (active.length === 0) return null;\n\n return (\n <span className={`inline-flex flex-none items-center gap-0.5 ${className}`}>\n {active.map((k) => (\n <span key={k} title={`${CAPACITY_META[k]!.label} — ${CAPACITY_META[k]!.desc}`} className=\"leading-none\">\n <Icon name={CAPACITY_META[k]!.icon} size={size} className={CAPACITY_META[k]!.color} />\n </span>\n ))}\n </span>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { Icon } from \"@/components/Icon\";\nimport { CapacityBadges } from \"@/components/CapacityBadges\";\n\nexport interface ModelGroup {\n label: string;\n items: { value: string; label: string; tag?: string }[];\n}\n\n/**\n * aigetwey-style model picker: a search box + provider-grouped chips you click to\n * toggle in/out of a selection. Used by the combo form and the CLI-tool model\n * selection so both add models the same way (click to add, click again to drop).\n */\nexport function ModelPicker({\n title = \"Add models\",\n note = \"Click to add, click again to remove.\",\n searchPlaceholder = \"Search models…\",\n groups,\n selected,\n onToggle,\n onClose,\n showThinkingHint = true,\n}: {\n title?: string;\n note?: string;\n searchPlaceholder?: string;\n groups: ModelGroup[];\n selected: string[];\n onToggle: (value: string) => void;\n onClose: () => void;\n /** The \"reasoning models accept a thinking suffix\" footer only makes sense when\n * picking MODELS. Provider/key pickers reuse this component, so they hide it. */\n showThinkingHint?: boolean;\n}) {\n const [q, setQ] = useState(\"\");\n const needle = q.trim().toLowerCase();\n const filtered = groups\n .map((g) => ({\n ...g,\n items: needle ? g.items.filter((i) => i.value.toLowerCase().includes(needle)) : g.items,\n }))\n .filter((g) => g.items.length > 0);\n const sel = new Set(selected);\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/60 p-6 sm:p-10\" onClick={onClose}>\n <div\n className=\"flex max-h-[80vh] w-full max-w-lg flex-col rounded-brand-lg border border-border bg-surface shadow-elevated\"\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between border-b border-border-subtle px-4 py-3\">\n <h2 className=\"text-[14px] font-semibold text-text\">{title}</h2>\n <button onClick={onClose} className=\"text-text-subtle hover:text-text\" aria-label=\"Close\">\n <Icon name=\"close\" size={18} />\n </button>\n </div>\n\n <div className=\"border-b border-border-subtle px-4 py-3\">\n <p className=\"mb-2 text-[12px] text-text-muted\">{note}</p>\n <div className=\"relative\">\n <Icon name=\"search\" size={15} className=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-text-subtle\" />\n <input\n autoFocus\n value={q}\n onChange={(e) => setQ(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full rounded-brand border border-border bg-bg py-2 pl-8 pr-3 text-[13px] text-text placeholder:text-text-subtle focus:border-accent focus:outline-none\"\n />\n </div>\n </div>\n\n <div className=\"flex-1 overflow-y-auto px-4 py-3\">\n {filtered.length === 0 ? (\n <p className=\"py-6 text-center text-[12.5px] text-text-subtle\">No models match “{q}”.</p>\n ) : (\n <div className=\"space-y-4\">\n {filtered.map((g) => (\n <div key={g.label}>\n <div className=\"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-text-subtle\">\n {g.label} <span className=\"tnum text-text-subtle/70\">({g.items.length})</span>\n </div>\n <div className=\"flex flex-wrap gap-1.5\">\n {g.items.map((it) => {\n const on = sel.has(it.value);\n return (\n <button\n key={it.value}\n type=\"button\"\n onClick={() => onToggle(it.value)}\n className={`inline-flex items-center gap-1 rounded-brand border px-2 py-1 text-[12px] transition-colors ${\n on ? \"border-accent bg-accent-soft text-accent\" : \"border-border bg-bg text-text-muted hover:border-text-subtle hover:text-text\"\n }`}\n >\n {on && <Icon name=\"check\" size={12} />}\n <span className=\"tnum\">{it.label}</span>\n <CapacityBadges model={it.value} size={13} />\n {it.tag && <span className=\"rounded bg-surface-2 px-1 text-[10px] text-text-subtle\">{it.tag}</span>}\n </button>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {showThinkingHint && (\n <div className=\"border-t border-border-subtle px-4 py-2 text-[11px] text-text-subtle\">\n <Icon name=\"neurology\" size={12} className=\"mr-1 inline align-text-bottom text-warning\" />\n Reasoning models accept a thinking suffix — call{\" \"}\n <code className=\"rounded bg-surface-2 px-1 text-text-muted\">model(high)</code> or{\" \"}\n <code className=\"rounded bg-surface-2 px-1 text-text-muted\">model(none)</code> (high·low·medium·minimal·auto·none·or a token budget).\n </div>\n )}\n\n <div className=\"flex items-center justify-between border-t border-border-subtle px-4 py-3\">\n <span className=\"tnum text-[12px] text-text-subtle\">{selected.length} selected</span>\n <button onClick={onClose} className=\"rounded-brand bg-accent px-3.5 py-1.5 text-[13px] font-semibold text-accent-ink hover:bg-accent-hover\">\n Done\n </button>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["matchPattern","pattern","model","regex","RegExp","split","map","s","replace","join","test","DEFAULT_CAPABILITIES","vision","pdf","audioInput","videoInput","imageOutput","audioOutput","search","tools","reasoning","thinkingFormat","thinkingCanDisable","thinkingRange","contextWindow","maxOutput","SERVICE_KIND_CAPABILITIES","imageToText","image","stt","tts","embedding","capabilitiesFromServiceKind","kind","MODEL_CAPABILITIES","PROVIDER_CAPABILITIES","PATTERN_CAPABILITIES","caps","min","max","modalitiesForModel","ref","slash","indexOf","provider","slice","c","getCapabilitiesForModel","input","push","output","baseModel","includes","pop","ModelPicker","title","note","searchPlaceholder","groups","selected","onToggle","onClose","showThinkingHint","q","setQ","needle","trim","toLowerCase","filtered","g","items","filter","i","value","length","sel","Set","className","onClick","e","stopPropagation","name","size","autoFocus","onChange","target","placeholder","label","it","on","has","type","tag"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ui.tsx","../../../../src/components/Badge.tsx","../../../../src/components/RichCard.tsx","../../../../src/lib/capabilities.ts","../../../../src/components/CapacityBadges.tsx"],"sourcesContent":["/** Small formatting helpers shared across the console. */\nexport const fmt = {\n int(n: number): string {\n return n.toLocaleString(\"en-US\");\n },\n /** compact number: 1.2K, 3.4M */\n compact(n: number): string {\n if (Math.abs(n) >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n if (Math.abs(n) >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n return String(Math.round(n));\n },\n cost(n: number): string {\n if (n === 0) return \"$0\";\n return n < 0.01 ? `$${n.toFixed(4)}` : `$${n.toFixed(2)}`;\n },\n time(ts: number): string {\n return new Date(ts).toLocaleString(\"en-US\", { hour12: false });\n },\n /** DD/MM/YYYY (local) */\n date(ts: number): string {\n const d = new Date(ts);\n return `${String(d.getDate()).padStart(2, \"0\")}/${String(d.getMonth() + 1).padStart(2, \"0\")}/${d.getFullYear()}`;\n },\n /** \"3m\", \"2h\", \"5d\" — coarse relative age */\n ago(ts: number): string {\n const s = Math.max(0, Math.round((Date.now() - ts) / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m`;\n if (s < 86400) return `${Math.floor(s / 3600)}h`;\n return `${Math.floor(s / 86400)}d`;\n },\n /** ms duration -> \"Xs\", \"Xm Ys\", \"Xh Ym\" for budget/cooldown countdowns */\n duration(ms: number): string {\n const s = Math.max(0, Math.round(ms / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m ${s % 60}s`;\n const h = Math.floor(s / 3600);\n const m = Math.floor((s % 3600) / 60);\n if (h < 24) return `${h}h ${m}m`;\n const d = Math.floor(h / 24);\n return `${d}d ${h % 24}h`;\n },\n};\n\n/** A labelled stat block — number over a caption. */\nexport function Stat({ label, value, sub }: { label: string; value: React.ReactNode; sub?: string }) {\n return (\n <div className=\"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft\">\n <div className=\"text-[11px] font-medium uppercase tracking-wider text-text-subtle\">{label}</div>\n <div className=\"mt-1 tnum text-[22px] font-semibold tracking-tight text-text\">{value}</div>\n {sub && <div className=\"mt-0.5 text-[12px] text-text-muted\">{sub}</div>}\n </div>\n );\n}\n\n/** Empty-state hint inside a card body. */\nexport function Empty({ children }: { children: React.ReactNode }) {\n return <div className=\"px-1 py-8 text-center text-[13px] text-text-muted\">{children}</div>;\n}\n","type Tone = \"live\" | \"down\" | \"warn\" | \"info\" | \"neutral\" | \"danger\";\n\nconst TONES: Record<Tone, string> = {\n live: \"bg-success/12 text-success\",\n down: \"bg-danger/12 text-danger\",\n danger: \"bg-danger/12 text-danger\",\n warn: \"bg-warning/12 text-warning\",\n info: \"bg-info/12 text-info\",\n neutral: \"bg-surface-2 text-text-muted\",\n};\n\nexport function Badge({\n tone = \"neutral\",\n children,\n className,\n}: {\n tone?: Tone;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${TONES[tone]}${className ? ` ${className}` : \"\"}`}\n >\n {children}\n </span>\n );\n}\n\n/** Format badge for a provider's wire format. */\nexport function FormatBadge({ format }: { format: \"openai\" | \"anthropic\" | \"gemini\" }) {\n return <Badge tone=\"info\">{format}</Badge>;\n}\n","/**\n * Rich content card — header (title slot + trailing slot), body, optional footer.\n * Softly rounded, subtle border, warm surface. The Haulix-style workhorse.\n */\nexport function RichCard({\n header,\n footer,\n children,\n className,\n}: {\n header?: React.ReactNode;\n footer?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <section\n className={`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${className ? ` ${className}` : \"\"}`}\n >\n {header && (\n <header className=\"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3\">\n {header}\n </header>\n )}\n <div className=\"p-4\">{children}</div>\n {footer && (\n <footer className=\"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5\">\n {footer}\n </footer>\n )}\n </section>\n );\n}\n\n/** Title + optional subtitle, for the header slot. */\nexport function CardTitle({ title, sub, icon }: { title: string; sub?: string; icon?: React.ReactNode }) {\n return (\n <div className=\"flex items-center gap-2.5 min-w-0\">\n {icon}\n <div className=\"min-w-0\">\n <div className=\"truncate text-[14px] font-semibold tracking-tight text-text\">{title}</div>\n {sub && <div className=\"truncate text-[12px] text-text-muted\">{sub}</div>}\n </div>\n </div>\n );\n}\n","// Model capabilities — what each model can read/do beyond plain text.\n//\n// Fallback order (first match wins), result merged over DEFAULT_CAPABILITIES:\n// 1. PROVIDER_CAPABILITIES[provider][model] — provider-specific override\n// 2. MODEL_CAPABILITIES[model] — canonical exact id (handles exceptions)\n// 3. PATTERN_CAPABILITIES — glob match, ordered specific -> generic\n// 4. DEFAULT_CAPABILITIES — safe floor (always returned)\n//\n// ── HOW TO ADD / UPDATE A MODEL ──────────────────────────────────────\n// Authoritative data source: https://models.dev/api.json (145 providers, 4000+\n// models, MIT). Each model exposes the exact fields we map below:\n// modalities.input [\"text\",\"image\",\"pdf\",\"audio\",\"video\"] -> vision / pdf / audioInput / videoInput\n// modalities.output [\"text\",\"image\",\"audio\"] -> imageOutput / audioOutput\n// reasoning -> reasoning tool_call -> tools\n// limit.context -> contextWindow limit.output -> maxOutput\n// Look up the model id, then:\n// • If a PATTERN below already covers it correctly -> nothing to do.\n// • If it is an exception (pattern would mis-match) -> add an exact entry to\n// MODEL_CAPABILITIES (only the fields that differ from DEFAULT).\n// • If a whole new family -> add an ordered PATTERN (specific before generic).\n// NOTE: models.dev has NO \"search\" flag (web search is a runtime tool, not a\n// model spec); set `search` from vendor docs (Claude 4.x+, GPT-5.x/4o, Gemini\n// 2.0+, Grok, Perplexity). Verify with: curl -s https://models.dev/api.json\n\n\n/**\n * Safe floor — every resolved result is merged over this so consumers\n * never need null-checks. Most modern LLMs meet these limits.\n */\nexport interface Caps {\n vision: boolean;\n pdf: boolean;\n audioInput: boolean;\n videoInput: boolean;\n imageOutput: boolean;\n audioOutput: boolean;\n search: boolean;\n tools: boolean;\n reasoning: boolean;\n thinkingFormat: string | null;\n thinkingCanDisable: boolean;\n thinkingRange: { min: number; max: number } | null;\n contextWindow: number;\n maxOutput: number;\n}\n\n/**\n * Glob (* = wildcard) match, anchored + case-insensitive. aigetwey's\n * pricing.matchPattern so capabilities resolve identically.\n */\nexport function matchPattern(pattern: string, model: string): boolean {\n const regex = new RegExp(\n \"^\" + pattern.split(\"*\").map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\".*\") + \"$\",\n \"i\",\n );\n return regex.test(model);\n}\n\nexport const DEFAULT_CAPABILITIES: Caps = {\n // input modalities\n vision: false, // read images\n pdf: false, // read PDF / documents\n audioInput: false, // read audio\n videoInput: false, // read video\n // output modalities\n imageOutput: false, // generate images\n audioOutput: false, // generate audio\n // features\n search: false, // built-in web search tool / grounding\n tools: true, // function / tool calling\n reasoning: false, // thinking / reasoning\n // thinking wire format (only meaningful when reasoning:true). null → derive from transport.format.\n // enum: openai|claude-adaptive|claude-budget|gemini-level|gemini-budget|zai|qwen|deepseek|kimi|minimax|hunyuan|step\n thinkingFormat: null,\n thinkingCanDisable: true, // false → model cannot turn thinking off (clamp to min instead of disable)\n thinkingRange: null, // { min, max } for budget formats; null = no clamp\n // limits (tokens)\n contextWindow: 200000,\n maxOutput: 64000,\n};\n\n// User-added model metadata can carry dashboard service kinds instead of the\n// runtime capability names used here. Map those typed model kinds into input /\n// output capabilities so custom vision models are not treated as text-only.\nconst SERVICE_KIND_CAPABILITIES: Record<string, Partial<Caps>> = {\n imageToText: { vision: true },\n image: { imageOutput: true },\n stt: { audioInput: true },\n tts: { audioOutput: true },\n embedding: { tools: false },\n};\n\nexport function capabilitiesFromServiceKind(kind: string): Partial<Caps> | null {\n return SERVICE_KIND_CAPABILITIES[kind] || null;\n}\n\n/**\n * Canonical exact-id overrides — used for exceptions that patterns would\n * otherwise mis-match. Only declare deltas vs DEFAULT.\n */\nexport const MODEL_CAPABILITIES: Record<string, Partial<Caps>> = {\n // Claude 4.6/4.7 have 1M context + adaptive thinking (override generic claude pattern)\n \"claude-opus-4.6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-opus-4.7\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-opus-4-6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 128000 },\n \"claude-sonnet-4.6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 64000 },\n \"claude-sonnet-4-6\": { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\", contextWindow: 1000000, maxOutput: 64000 },\n\n // Gemini image-gen / OpenAI image / xai image variants\n \"gpt-image-1\": { imageOutput: true, tools: false },\n\n // GLM vision variant (text GLM has no vision)\n \"glm-4.6v\": { vision: true, reasoning: true, thinkingFormat: \"zai\", contextWindow: 128000 },\n\n // Qwen plain coder/text (no vision) — registry \"vision-model\" / \"coder-model\" aliases\n \"vision-model\": { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 },\n \"coder-model\": { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 },\n};\n\n/**\n * Provider-specific capability overrides. Keyed by provider alias/id.\n */\nexport const PROVIDER_CAPABILITIES: Record<string, Record<string, Partial<Caps>>> = {\n // CodeBuddy.cn — authoritative per-model metadata from the gateway's model\n // config (contextWindow=maxInputTokens, maxOutput=maxOutputTokens, vision=\n // supportsImages). Every model reasons via OpenAI-style reasoning_effort\n // (see registry thinkingFormat). `onlyReasoning` models can't turn thinking\n // off → thinkingCanDisable:false (clamped to minimal instead of disabled).\n \"codebuddy-cn\": {\n \"glm-5.2\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 48000 },\n \"glm-5.1\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"glm-5.0\": { reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 48000 },\n \"glm-5.0-turbo\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"glm-5v-turbo\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 38000 },\n \"glm-4.7\": { reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 48000 },\n \"minimax-m3\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 512000, maxOutput: 48000 },\n \"minimax-m2.7\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 48000 },\n \"kimi-k2.7\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 256000, maxOutput: 32000 },\n \"kimi-k2.6\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 256000, maxOutput: 32000 },\n \"kimi-k2.5\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 164000, maxOutput: 32000 },\n \"hy3-preview\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 192000, maxOutput: 64000 },\n \"deepseek-v4-pro\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 50000 },\n \"deepseek-v4-flash\": { vision: true, reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 1000000, maxOutput: 50000 },\n \"deepseek-v3-2-volc\": { reasoning: true, thinkingFormat: \"openai\", thinkingCanDisable: false, contextWindow: 96000, maxOutput: 32000 },\n },\n};\n\n/**\n * Pattern fallback — glob (* = wildcard), matched case-insensitively and\n * anchored (^...$) so a pattern must match the full model id. ORDER MATTERS:\n * vision/specific variants first, text-only/generic families last, to avoid\n * a broad family pattern swallowing an exception (e.g. glm-4.6v vs glm-5).\n */\nexport const PATTERN_CAPABILITIES: Array<{ pattern: string; caps: Partial<Caps> }> = [\n // ── Claude (4.6+ = adaptive thinking; older/haiku = budget) ──────\n { pattern: \"*claude*opus-4.6*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*opus-4.7*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*opus-4.8*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*sonnet-4.6*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*sonnet-4.7*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-adaptive\" } },\n { pattern: \"*claude*haiku*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*opus*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*sonnet*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n { pattern: \"*claude*fable*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\", contextWindow: 1000000, maxOutput: 128000 } },\n { pattern: \"*claude*mythos*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\", contextWindow: 1000000, maxOutput: 128000 } },\n { pattern: \"*claude-3*\", caps: { vision: true } },\n { pattern: \"*claude*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"claude-budget\" } },\n\n // ── Gemini (all 2.0+ multimodal + google_search grounding, 1M ctx) ─\n { pattern: \"*gemini*image*\", caps: { vision: true, imageOutput: true, contextWindow: 1048576 } },\n { pattern: \"*gemini-3*pro*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-level\", thinkingCanDisable: false, contextWindow: 1048576, maxOutput: 65535 } },\n { pattern: \"*gemini-3*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-level\", thinkingCanDisable: false, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini-2.5*\", caps: { vision: true, audioInput: true, videoInput: true, reasoning: true, search: true, thinkingFormat: \"gemini-budget\", thinkingRange: { min: 0, max: 24576 }, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini-2*\", caps: { vision: true, audioInput: true, videoInput: true, search: true, contextWindow: 1048576, maxOutput: 65536 } },\n { pattern: \"*gemini*\", caps: { vision: true, search: true, contextWindow: 1048576 } },\n { pattern: \"*gemma*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*nanobanana*\", caps: { vision: true, imageOutput: true } },\n\n // ── OpenAI GPT-5.x (vision + thinking + web search) ──────────────\n { pattern: \"*gpt-5*image*\", caps: { imageOutput: true } },\n { pattern: \"*gpt-5*codex*\", caps: { reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 400000, maxOutput: 128000 } },\n { pattern: \"*gpt-5*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 400000, maxOutput: 128000 } },\n { pattern: \"*gpt-4o*\", caps: { vision: true, search: true, contextWindow: 128000, maxOutput: 16384 } },\n { pattern: \"*gpt-4.1*\", caps: { vision: true, contextWindow: 1000000, maxOutput: 32768 } },\n { pattern: \"*gpt-4-turbo*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*gpt-4*\", caps: { contextWindow: 128000 } },\n { pattern: \"*gpt-3.5*\", caps: { contextWindow: 16385, maxOutput: 4096 } },\n { pattern: \"*gpt-oss*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 128000 } },\n\n // ── OpenAI o-series (reasoning, vision) ──────────────────────────\n { pattern: \"*o1-mini*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 128000 } },\n { pattern: \"*o1*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n { pattern: \"*o3*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n { pattern: \"*o4*\", caps: { vision: true, reasoning: true, thinkingFormat: \"openai\", contextWindow: 200000, maxOutput: 100000 } },\n\n // ── Grok (vision + Live Search) ──────────────────────────────────\n { pattern: \"*grok*image*\", caps: { imageOutput: true } },\n { pattern: \"*grok-code*\", caps: { reasoning: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n { pattern: \"*grok-4*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n { pattern: \"*grok-3*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 131072 } },\n { pattern: \"*grok*\", caps: { vision: true, reasoning: true, search: true, thinkingFormat: \"openai\", contextWindow: 256000 } },\n\n // ── Qwen (enable_thinking + thinking_budget; QwQ = thinking-only) ─\n { pattern: \"*qwen*vl*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n { pattern: \"*qwen*max*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000, maxOutput: 65536 } },\n { pattern: \"*qwen*plus*\", caps: { vision: true, reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000, maxOutput: 65536 } },\n { pattern: \"*qwen*235b*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n { pattern: \"*qwen*coder*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 1000000 } },\n { pattern: \"*qwq*\", caps: { reasoning: true, thinkingFormat: \"qwen\", thinkingCanDisable: false, contextWindow: 131072 } },\n { pattern: \"*qwen*\", caps: { reasoning: true, thinkingFormat: \"qwen\", contextWindow: 262144 } },\n\n // ── Kimi (enabled→reasoning_effort; K2.7-code cannot disable) ─────\n { pattern: \"*kimi*k2.7*code*\", caps: { vision: true, reasoning: true, thinkingFormat: \"kimi\", thinkingCanDisable: false, contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*kimi*k2*\", caps: { vision: true, reasoning: true, thinkingFormat: \"kimi\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*kimi*\", caps: { reasoning: true, thinkingFormat: \"kimi\", contextWindow: 262144 } },\n\n // ── GLM / Z.ai (thinking.enabled; disable via enable_thinking:false) ─\n { pattern: \"*glm-5*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000, maxOutput: 128000 } },\n { pattern: \"*glm-4.7*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000, maxOutput: 128000 } },\n { pattern: \"*glm-4*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000 } },\n { pattern: \"*glm*\", caps: { reasoning: true, thinkingFormat: \"zai\", contextWindow: 200000 } },\n\n // ── DeepSeek (thinking.enabled + reasoning_effort; r1 = thinking-only) ─\n { pattern: \"*deepseek-v4*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", contextWindow: 1000000, maxOutput: 384000 } },\n { pattern: \"*reasoner*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", thinkingCanDisable: false, contextWindow: 128000 } },\n { pattern: \"*deepseek-r*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", thinkingCanDisable: false, contextWindow: 128000 } },\n { pattern: \"*deepseek-chat*\", caps: { contextWindow: 128000 } },\n { pattern: \"*deepseek*\", caps: { reasoning: true, thinkingFormat: \"deepseek\", contextWindow: 128000 } },\n\n // ── MiniMax (M3 = adaptive; M2.x cannot disable) ─────────────────\n { pattern: \"*minimax*image*\", caps: { imageOutput: true } },\n { pattern: \"*minimax-m3*\", caps: { vision: true, reasoning: true, thinkingFormat: \"minimax\", contextWindow: 1048576, maxOutput: 512000 } },\n { pattern: \"*minimax-m2.7*\", caps: { reasoning: true, thinkingFormat: \"minimax\", thinkingCanDisable: false, contextWindow: 204800, maxOutput: 131072 } },\n { pattern: \"*minimax*\", caps: { reasoning: true, thinkingFormat: \"minimax\", thinkingCanDisable: false, contextWindow: 200000, maxOutput: 131072 } },\n\n // ── Xiaomi MiMo (vision, 1M / 262K ctx) ──────────────────────────\n { pattern: \"*mimo*v2.5*\", caps: { vision: true, contextWindow: 1048576, maxOutput: 131072 } },\n { pattern: \"*mimo*omni*\", caps: { vision: true, audioInput: true, contextWindow: 262144, maxOutput: 131072 } },\n { pattern: \"*mimo*\", caps: { vision: true, contextWindow: 262144, maxOutput: 131072 } },\n\n // ── Llama (4 = vision/1M; 3.x = text-only/128K) ──────────────────\n { pattern: \"*llama-4*\", caps: { vision: true, contextWindow: 1000000 } },\n { pattern: \"*llama*\", caps: { contextWindow: 128000 } },\n\n // ── Mistral (Large 3 = vision/256K; codestral text) ──────────────\n { pattern: \"*codestral*\", caps: { contextWindow: 256000 } },\n { pattern: \"*mistral-large*\", caps: { vision: true, contextWindow: 256000 } },\n { pattern: \"*mistral*\", caps: { contextWindow: 128000 } },\n\n // ── Cohere (Command A Vision = vision; others text) ──────────────\n { pattern: \"*command-a-vision*\", caps: { vision: true, contextWindow: 128000 } },\n { pattern: \"*command*\", caps: { contextWindow: 128000 } },\n\n // ── Perplexity (web search native) ───────────────────────────────\n { pattern: \"*sonar*\", caps: { search: true, contextWindow: 128000 } },\n { pattern: \"*pplx*\", caps: { search: true, contextWindow: 128000 } },\n { pattern: \"*perplexity*\", caps: { search: true, contextWindow: 128000 } },\n\n // ── Others ───────────────────────────────────────────────────────\n { pattern: \"*hunyuan*\", caps: { reasoning: true, thinkingFormat: \"hunyuan\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"hy3*\", caps: { reasoning: true, thinkingFormat: \"hunyuan\", contextWindow: 262144, maxOutput: 262144 } },\n { pattern: \"*step-*\", caps: { reasoning: true, thinkingFormat: \"step\", contextWindow: 128000 } },\n { pattern: \"*nemotron*\", caps: { reasoning: true, contextWindow: 128000 } },\n { pattern: \"*ling-*\", caps: { reasoning: true, contextWindow: 128000 } },\n];\n\n/**\n * Resolve capabilities for a model using the 4-step fallback chain,\n * merged over DEFAULT_CAPABILITIES so the result is always complete.\n *\n * @param {string} provider\n * @param {string} model\n * @returns {object} full capabilities object\n */\n/**\n * models.dev-style modalities for a model ref, derived from its capabilities.\n * Ref may be a `provider/model` (vendor prefix tolerated) or a bare combo alias.\n * Mirrors what opencode/aigetwey store per model in opencode.json.\n */\nexport function modalitiesForModel(ref: string): { input: string[]; output: string[] } {\n const slash = ref.indexOf(\"/\");\n const provider = slash > 0 ? ref.slice(0, slash) : null;\n const model = slash > 0 ? ref.slice(slash + 1) : ref;\n const c = getCapabilitiesForModel(provider, model);\n const input = [\"text\"];\n if (c.vision) input.push(\"image\");\n if (c.pdf) input.push(\"pdf\");\n if (c.audioInput) input.push(\"audio\");\n if (c.videoInput) input.push(\"video\");\n const output = [\"text\"];\n if (c.imageOutput) output.push(\"image\");\n if (c.audioOutput) output.push(\"audio\");\n return { input, output };\n}\n\nexport function getCapabilitiesForModel(provider: string | null, model: string): Caps {\n if (!model) return { ...DEFAULT_CAPABILITIES };\n\n // 1. Provider-specific override\n if (provider && PROVIDER_CAPABILITIES[provider]?.[model]) {\n return { ...DEFAULT_CAPABILITIES, ...PROVIDER_CAPABILITIES[provider][model] };\n }\n\n // 2. Canonical exact (strip vendor prefix: \"anthropic/claude-opus-4.7\" -> \"claude-opus-4.7\")\n const baseModel = (model.includes(\"/\") ? model.split(\"/\").pop() : model) ?? model;\n if (MODEL_CAPABILITIES[baseModel]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[baseModel] };\n if (MODEL_CAPABILITIES[model]) return { ...DEFAULT_CAPABILITIES, ...MODEL_CAPABILITIES[model] };\n\n // 3. Pattern match (first match wins)\n for (const { pattern, caps } of PATTERN_CAPABILITIES) {\n if (matchPattern(pattern, baseModel) || matchPattern(pattern, model)) {\n return { ...DEFAULT_CAPABILITIES, ...caps };\n }\n }\n\n // 4. Floor\n return { ...DEFAULT_CAPABILITIES };\n}\n","\"use client\";\n\nimport { getCapabilitiesForModel, type Caps } from \"@/lib/capabilities\";\nimport { Icon } from \"@/components/Icon\";\n\n/**\n * Per-model capability icons, aigetwey's own CapacityBadges + CAPACITY_META.\n * Caps are DERIVED from the model id (not stored per-model) via the same resolver\n * aigetwey uses, so badges match wherever the model appears. Only set caps render.\n */\nconst CAPACITY_META: Record<string, { icon: string; label: string; desc: string; color: string }> = {\n vision: { icon: \"visibility\", label: \"Vision\", desc: \"Supports image input\", color: \"text-info\" },\n reasoning: { icon: \"neurology\", label: \"Reasoning\", desc: \"Supports reasoning / thinking\", color: \"text-warning\" },\n};\n\nexport function CapacityBadges({\n model,\n provider = null,\n size = 15,\n className = \"\",\n}: {\n model: string;\n provider?: string | null;\n size?: number;\n className?: string;\n}) {\n const caps = getCapabilitiesForModel(provider, model);\n const active = Object.keys(CAPACITY_META).filter((k) => caps[k as keyof Caps]);\n if (active.length === 0) return null;\n\n return (\n <span className={`inline-flex flex-none items-center gap-0.5 ${className}`}>\n {active.map((k) => (\n <span key={k} title={`${CAPACITY_META[k]!.label} — ${CAPACITY_META[k]!.desc}`} className=\"leading-none\">\n <Icon name={CAPACITY_META[k]!.icon} size={size} className={CAPACITY_META[k]!.color} />\n </span>\n ))}\n </span>\n );\n}\n"],"names":["fmt","int","n","toLocaleString","compact","Math","abs","toFixed","String","round","cost","time","ts","Date","hour12","date","d","getDate","padStart","getMonth","getFullYear","ago","s","max","now","floor","duration","ms","h","m","Stat","label","value","sub","className","Empty","children","TONES","live","down","danger","warn","info","neutral","Badge","tone","FormatBadge","format","RichCard","header","footer","CardTitle","title","icon","matchPattern","pattern","model","regex","RegExp","split","map","replace","join","test","DEFAULT_CAPABILITIES","vision","pdf","audioInput","videoInput","imageOutput","audioOutput","search","tools","reasoning","thinkingFormat","thinkingCanDisable","thinkingRange","contextWindow","maxOutput","SERVICE_KIND_CAPABILITIES","imageToText","image","stt","tts","embedding","capabilitiesFromServiceKind","kind","MODEL_CAPABILITIES","PROVIDER_CAPABILITIES","PATTERN_CAPABILITIES","caps","min","modalitiesForModel","ref","slash","indexOf","provider","slice","c","getCapabilitiesForModel","input","push","output","baseModel","includes","pop"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ui.tsx","../../../../src/components/Badge.tsx","../../../../src/components/Lamp.tsx","../../../../src/components/CooldownTimer.tsx"],"sourcesContent":["/** Small formatting helpers shared across the console. */\nexport const fmt = {\n int(n: number): string {\n return n.toLocaleString(\"en-US\");\n },\n /** compact number: 1.2K, 3.4M */\n compact(n: number): string {\n if (Math.abs(n) >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n if (Math.abs(n) >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n return String(Math.round(n));\n },\n cost(n: number): string {\n if (n === 0) return \"$0\";\n return n < 0.01 ? `$${n.toFixed(4)}` : `$${n.toFixed(2)}`;\n },\n time(ts: number): string {\n return new Date(ts).toLocaleString(\"en-US\", { hour12: false });\n },\n /** DD/MM/YYYY (local) */\n date(ts: number): string {\n const d = new Date(ts);\n return `${String(d.getDate()).padStart(2, \"0\")}/${String(d.getMonth() + 1).padStart(2, \"0\")}/${d.getFullYear()}`;\n },\n /** \"3m\", \"2h\", \"5d\" — coarse relative age */\n ago(ts: number): string {\n const s = Math.max(0, Math.round((Date.now() - ts) / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m`;\n if (s < 86400) return `${Math.floor(s / 3600)}h`;\n return `${Math.floor(s / 86400)}d`;\n },\n /** ms duration -> \"Xs\", \"Xm Ys\", \"Xh Ym\" for budget/cooldown countdowns */\n duration(ms: number): string {\n const s = Math.max(0, Math.round(ms / 1000));\n if (s < 60) return `${s}s`;\n if (s < 3600) return `${Math.floor(s / 60)}m ${s % 60}s`;\n const h = Math.floor(s / 3600);\n const m = Math.floor((s % 3600) / 60);\n if (h < 24) return `${h}h ${m}m`;\n const d = Math.floor(h / 24);\n return `${d}d ${h % 24}h`;\n },\n};\n\n/** A labelled stat block — number over a caption. */\nexport function Stat({ label, value, sub }: { label: string; value: React.ReactNode; sub?: string }) {\n return (\n <div className=\"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft\">\n <div className=\"text-[11px] font-medium uppercase tracking-wider text-text-subtle\">{label}</div>\n <div className=\"mt-1 tnum text-[22px] font-semibold tracking-tight text-text\">{value}</div>\n {sub && <div className=\"mt-0.5 text-[12px] text-text-muted\">{sub}</div>}\n </div>\n );\n}\n\n/** Empty-state hint inside a card body. */\nexport function Empty({ children }: { children: React.ReactNode }) {\n return <div className=\"px-1 py-8 text-center text-[13px] text-text-muted\">{children}</div>;\n}\n","type Tone = \"live\" | \"down\" | \"warn\" | \"info\" | \"neutral\" | \"danger\";\n\nconst TONES: Record<Tone, string> = {\n live: \"bg-success/12 text-success\",\n down: \"bg-danger/12 text-danger\",\n danger: \"bg-danger/12 text-danger\",\n warn: \"bg-warning/12 text-warning\",\n info: \"bg-info/12 text-info\",\n neutral: \"bg-surface-2 text-text-muted\",\n};\n\nexport function Badge({\n tone = \"neutral\",\n children,\n className,\n}: {\n tone?: Tone;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${TONES[tone]}${className ? ` ${className}` : \"\"}`}\n >\n {children}\n </span>\n );\n}\n\n/** Format badge for a provider's wire format. */\nexport function FormatBadge({ format }: { format: \"openai\" | \"anthropic\" | \"gemini\" }) {\n return <Badge tone=\"info\">{format}</Badge>;\n}\n","/** Status lamp — green when serving, red pulse on cooldown, grey when idle. */\nexport function Lamp({ state, title }: { state: \"live\" | \"idle\" | \"down\"; title?: string }) {\n return <span className={`lamp lamp-${state}`} title={title} aria-label={state} />;\n}\n\nexport function lampFor(healthy: boolean): \"live\" | \"down\" {\n return healthy ? \"live\" : \"down\";\n}\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { Icon } from \"./Icon\";\nimport { fmt } from \"./ui\";\n\n/**\n * Live countdown from a gateway-snapshot remaining-ms. Counts down locally each\n * second from render. Used for both key cooldowns (danger tone) and budget window\n * resets (muted tone). Renders nothing once it hits zero unless `keepZero`.\n */\nexport function CooldownTimer({\n ms,\n tone = \"danger\",\n icon = \"timer\",\n keepZero = false,\n}: {\n ms: number;\n tone?: \"danger\" | \"muted\";\n icon?: string;\n keepZero?: boolean;\n}) {\n const [until] = useState(() => Date.now() + ms);\n const [remaining, setRemaining] = useState(() => Math.max(0, ms));\n\n useEffect(() => {\n const tick = () => setRemaining(Math.max(0, until - Date.now()));\n tick();\n const id = setInterval(tick, 1000);\n return () => clearInterval(id);\n }, [until]);\n\n if (remaining <= 0 && !keepZero) return null;\n\n const color = tone === \"danger\" ? \"text-danger\" : \"text-text-muted\";\n return (\n <span className={`inline-flex items-center gap-1 tnum text-[12px] ${color}`}>\n <Icon name={icon} size={13} />\n {remaining <= 0 ? \"now\" : fmt.duration(remaining)}\n </span>\n );\n}\n"],"names":["fmt","int","n","toLocaleString","compact","Math","abs","toFixed","String","round","cost","time","ts","Date","hour12","date","d","getDate","padStart","getMonth","getFullYear","ago","s","max","now","floor","duration","ms","h","m","Stat","label","value","sub","className","Empty","children","TONES","live","down","danger","warn","info","neutral","Badge","tone","FormatBadge","format","Lamp","state","title","lampFor","healthy","CooldownTimer","icon","keepZero","until","remaining","setRemaining","tick","id","setInterval","clearInterval","color","name","size"],"mappings":"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"}