watchbell 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +123 -84
  3. package/bin/watchbell.mjs +593 -23
  4. package/package.json +1 -1
  5. package/server/.next/BUILD_ID +1 -1
  6. package/server/.next/app-path-routes-manifest.json +1 -0
  7. package/server/.next/build-manifest.json +116 -105
  8. package/server/.next/prerender-manifest.json +3 -3
  9. package/server/.next/routes-manifest.json +6 -0
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
  11. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +61 -58
  13. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
  17. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +61 -58
  18. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
  21. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
  22. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +61 -58
  23. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
  26. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
  27. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +61 -58
  28. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
  31. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
  32. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +61 -58
  33. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
  36. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
  37. package/server/.next/server/app/(console)/(private)/ai/models/page.js +61 -58
  38. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
  41. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
  42. package/server/.next/server/app/(console)/(private)/ai/page.js +61 -58
  43. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
  46. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
  47. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +61 -58
  48. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
  51. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
  52. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +61 -58
  53. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  54. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  55. package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
  56. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
  57. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +61 -58
  58. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  59. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  60. package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
  61. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
  62. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +61 -58
  63. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
  66. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
  67. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +61 -58
  68. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  69. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  70. package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
  71. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
  72. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +61 -58
  73. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  74. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  75. package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
  76. package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
  77. package/server/.next/server/app/(console)/[...slug]/page.js +62 -59
  78. package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
  79. package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
  80. package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
  81. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
  82. package/server/.next/server/app/(console)/alerts/page.js +61 -58
  83. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
  86. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +23 -23
  87. package/server/.next/server/app/(console)/apps/[id]/page.js +61 -58
  88. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  89. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  90. package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
  91. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +11 -11
  92. package/server/.next/server/app/(console)/apps/page.js +61 -58
  93. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
  96. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
  97. package/server/.next/server/app/(console)/backups/page.js +61 -58
  98. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  99. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  100. package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
  101. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
  102. package/server/.next/server/app/(console)/catalog/page.js +61 -58
  103. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
  106. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +54 -54
  107. package/server/.next/server/app/(console)/connections/page.js +67 -64
  108. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
  111. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
  112. package/server/.next/server/app/(console)/d1/page.js +61 -58
  113. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  114. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  115. package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
  116. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +14 -14
  117. package/server/.next/server/app/(console)/deployments/page.js +61 -58
  118. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  119. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  120. package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
  121. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
  122. package/server/.next/server/app/(console)/dns/page.js +61 -58
  123. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
  126. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
  127. package/server/.next/server/app/(console)/domains/page.js +61 -58
  128. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  129. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  130. package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
  131. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
  132. package/server/.next/server/app/(console)/events/page.js +61 -58
  133. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  134. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  135. package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
  136. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +15 -15
  137. package/server/.next/server/app/(console)/firebase/page.js +62 -59
  138. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
  141. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
  142. package/server/.next/server/app/(console)/logs/page.js +61 -58
  143. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/manage/sections/page/app-paths-manifest.json +3 -0
  146. package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
  147. package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
  148. package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
  149. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
  150. package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
  151. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
  152. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
  153. package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
  154. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
  155. package/server/.next/server/app/(console)/neon/page.js +61 -58
  156. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  157. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  158. package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
  159. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +16 -16
  160. package/server/.next/server/app/(console)/overview/page.js +61 -58
  161. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  162. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  163. package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
  164. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
  165. package/server/.next/server/app/(console)/repos/[id]/page.js +61 -58
  166. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
  169. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
  170. package/server/.next/server/app/(console)/repos/page.js +61 -58
  171. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  172. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  173. package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
  174. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
  175. package/server/.next/server/app/(console)/settings/page.js +61 -58
  176. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  177. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  178. package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
  179. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
  180. package/server/.next/server/app/(console)/sql/page.js +61 -58
  181. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  182. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  183. package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
  184. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
  185. package/server/.next/server/app/(console)/status/page.js +61 -58
  186. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  187. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  188. package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
  189. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +27 -27
  190. package/server/.next/server/app/(console)/supabase/page.js +61 -58
  191. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  192. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  193. package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
  194. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
  195. package/server/.next/server/app/(console)/topology/page.js +61 -58
  196. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  197. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  198. package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
  199. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
  200. package/server/.next/server/app/(console)/turso/page.js +61 -58
  201. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  202. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
  204. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
  205. package/server/.next/server/app/(console)/upstash/page.js +61 -58
  206. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  207. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  208. package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
  209. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +22 -22
  210. package/server/.next/server/app/(console)/uptime/page.js +61 -58
  211. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  212. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  213. package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
  214. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
  215. package/server/.next/server/app/(console)/welcome/page.js +62 -59
  216. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  217. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
  219. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  220. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  221. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  222. package/server/.next/server/app/_global-error.html +1 -1
  223. package/server/.next/server/app/_global-error.rsc +3 -3
  224. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  225. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  226. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  227. package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
  228. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  229. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  230. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  231. package/server/.next/server/app/_not-found.html +1 -1
  232. package/server/.next/server/app/_not-found.rsc +4 -4
  233. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  234. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  235. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  236. package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
  237. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  238. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  239. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  240. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  241. package/server/.next/server/app/api/collect/route.js +78 -73
  242. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  243. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  244. package/server/.next/server/app/api/daily/route.js +77 -72
  245. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  246. package/server/.next/server/app/api/health/route.js.nft.json +1 -1
  247. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  248. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  249. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  250. package/server/.next/server/app/api/telegram/webhook/route.js +75 -70
  251. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  252. package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
  253. package/server/.next/server/app/api/v1/advice/route.js +20 -19
  254. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  255. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +2 -2
  256. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  257. package/server/.next/server/app/api/v1/ai/models/route.js +2 -2
  258. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  259. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
  260. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  261. package/server/.next/server/app/api/v1/ai/questions/route.js +24 -23
  262. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  263. package/server/.next/server/app/api/v1/mcp/route.js +22 -21
  264. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  265. package/server/.next/server/app/api/v1/me/route.js +1 -1
  266. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  267. package/server/.next/server/app/api/v1/openapi.json/route.js +10 -9
  268. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  269. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +20 -19
  270. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  271. package/server/.next/server/app/api/v1/status/route.js +20 -19
  272. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  273. package/server/.next/server/app/api/watchdog/route.js +21 -19
  274. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  275. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  276. package/server/.next/server/app/auth/google/callback/route.js +18 -17
  277. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  278. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  279. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  280. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  281. package/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  282. package/server/.next/server/app/invite/page/build-manifest.json +3 -3
  283. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  284. package/server/.next/server/app/invite/page.js +4 -3
  285. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  286. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  287. package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
  288. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  289. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  290. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  291. package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
  292. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  293. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  294. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  295. package/server/.next/server/app/page/build-manifest.json +3 -3
  296. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  297. package/server/.next/server/app/page.js.nft.json +1 -1
  298. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  299. package/server/.next/server/app/s/[slug]/badge/[file]/route.js +9 -8
  300. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  301. package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
  302. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  303. package/server/.next/server/app/s/[slug]/page.js +8 -8
  304. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  305. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  306. package/server/.next/server/app/setup/page/build-manifest.json +3 -3
  307. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  308. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  309. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  310. package/server/.next/server/app/signin/page/build-manifest.json +3 -3
  311. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  312. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  313. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  314. package/server/.next/server/app-paths-manifest.json +1 -0
  315. package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
  316. package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
  317. package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
  318. package/server/.next/server/chunks/{[root-of-the-server]__0_6eq1806attx._.js → [root-of-the-server]__00hb7hqa7qktx._.js} +1 -1
  319. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  320. package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
  321. package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
  323. package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
  325. package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
  326. package/server/.next/server/chunks/{[root-of-the-server]__06iz-tlpv7pqm._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
  327. package/server/.next/server/chunks/{[root-of-the-server]__0mtlynfv-vklo._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
  328. package/server/.next/server/chunks/{[root-of-the-server]__0j0medewrv95l._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
  329. package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
  330. package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
  331. package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
  333. package/server/.next/server/chunks/{[root-of-the-server]__09qqv-zsz9qhr._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
  334. package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
  335. package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__0znb_m_wygjdc._.js → [root-of-the-server]__0erdelc9_06nk._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__018ux7xja83l6._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
  339. package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
  340. package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__02ihdvnmhshoe._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
  342. package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0grtjjr51j6xe._.js} +1 -1
  343. package/server/.next/server/chunks/{[root-of-the-server]__1jrqehmo6kq8x._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
  344. package/server/.next/server/chunks/{[root-of-the-server]__08801yoxfe_os._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
  345. package/server/.next/server/chunks/{[root-of-the-server]__081ywec7cjq3d._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
  346. package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
  347. package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
  348. package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
  349. package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
  350. package/server/.next/server/chunks/{[root-of-the-server]__0-ok-3r9xtz0y._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
  351. package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
  352. package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
  353. package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
  354. package/server/.next/server/chunks/[root-of-the-server]__0qmkpydmx3ljf._.js +3 -0
  355. package/server/.next/server/chunks/[root-of-the-server]__0r-zdzq6ki5gr._.js +3 -0
  356. package/server/.next/server/chunks/{[root-of-the-server]__0mhtnnebbepzx._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
  357. package/server/.next/server/chunks/{[root-of-the-server]__0u66-8g4ql645._.js → [root-of-the-server]__0sivlmcvkc1uq._.js} +1 -1
  358. package/server/.next/server/chunks/[root-of-the-server]__0t8d8b4qkw3y-._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__1z3-s7wc9-uc6._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
  361. package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__1x9tt_2yhozwe._.js → [root-of-the-server]__0vp-x4ifpr3p9._.js} +2 -2
  364. package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
  365. package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
  366. package/server/.next/server/chunks/[root-of-the-server]__0z-07azr3zk8s._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__0z-41cwvkliev._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__0zxyfd7u67hmv._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1-rqermjb77se._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
  371. package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
  372. package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
  373. package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
  374. package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
  376. package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
  377. package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
  378. package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
  379. package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__13be7gbo81td4._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
  382. package/server/.next/server/chunks/{[root-of-the-server]__0wt74rsaz-308._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
  383. package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
  384. package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
  385. package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
  386. package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
  387. package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
  388. package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
  389. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
  390. package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
  391. package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
  392. package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
  393. package/server/.next/server/chunks/{[root-of-the-server]__0qpf0qusq792k._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
  394. package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
  395. package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
  397. package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
  398. package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
  399. package/server/.next/server/chunks/[root-of-the-server]__1j26i51ankv-z._.js +3 -0
  400. package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
  401. package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
  402. package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
  403. package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
  404. package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
  405. package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
  406. package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
  407. package/server/.next/server/chunks/{[root-of-the-server]__0q691wec2busx._.js → [root-of-the-server]__1objhlwwrjfjk._.js} +2 -2
  408. package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
  409. package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
  410. package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
  411. package/server/.next/server/chunks/{[root-of-the-server]__0tb-63ts77gqd._.js → [root-of-the-server]__1tefe1f5835t_._.js} +2 -2
  412. package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +3 -0
  413. package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
  414. package/server/.next/server/chunks/{[root-of-the-server]__132wlw6sbwt1d._.js → [root-of-the-server]__1vi0u2vkv3tk0._.js} +2 -2
  415. package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
  416. package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +3 -0
  417. package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
  418. package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
  419. package/server/.next/server/chunks/{[root-of-the-server]__18mztbxkzaxjs._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
  420. package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
  421. package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
  422. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  423. package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
  424. package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
  425. package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
  426. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  427. package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
  428. package/server/.next/server/chunks/_0ejcrge5k4quv._.js +9 -9
  429. package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
  430. package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
  431. package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
  432. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +3 -0
  433. package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
  434. package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
  435. package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
  436. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
  437. package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
  438. package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
  439. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
  440. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  441. package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
  442. package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
  443. package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
  444. package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
  445. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
  446. package/server/.next/server/chunks/_103ai6ybnpq1k._.js +1 -1
  447. package/server/.next/server/chunks/_108e86rhye0o1._.js +1 -1
  448. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  449. package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
  450. package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
  451. package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
  452. package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
  453. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
  454. package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +9 -9
  455. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
  456. package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
  457. package/server/.next/server/chunks/_1kcmwgs544mo-._.js +1 -1
  458. package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +1 -1
  459. package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
  460. package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +3 -0
  461. package/server/.next/server/chunks/_1nuf-l7izvfl_._.js +1 -1
  462. package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
  463. package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +1 -1
  464. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
  465. package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
  466. package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
  467. package/server/.next/server/chunks/{src_0uxqs7150nhx2._.js → src_014zbodp4djeb._.js} +2 -2
  468. package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
  469. package/server/.next/server/chunks/{src_0n42os1q41rha._.js → src_04pgj--n_d4w5._.js} +2 -2
  470. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  471. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
  472. package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +3 -0
  473. package/server/.next/server/chunks/{src_01wdnb4skk1wz._.js → src_0kwnhwi77unm7._.js} +2 -2
  474. package/server/.next/server/chunks/src_0o4-snj7wkaav._.js +1 -1
  475. package/server/.next/server/chunks/{src_0d-zi077mzm6v._.js → src_0xqorb3-ef3ub._.js} +2 -2
  476. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
  477. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  478. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  479. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
  480. package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
  481. package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
  482. package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
  483. package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
  484. package/server/.next/server/chunks/{src_1-r51arho90p7._.js → src_1no_yh953mran._.js} +2 -2
  485. package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
  486. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
  487. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
  488. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
  489. package/server/.next/server/chunks/src_instrumentation-node_ts_1c--sr1k7_8k2._.js +3 -0
  490. package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +2 -2
  491. package/server/.next/server/chunks/src_lib_0cbs2jlrw1qbh._.js +3 -0
  492. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  493. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  494. package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +6 -0
  495. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
  496. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
  497. package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +1 -1
  498. package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
  499. package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
  500. package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +2 -2
  501. package/server/.next/server/chunks/src_lib_13g9xjx8ci00z._.js +3 -0
  502. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
  503. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
  504. package/server/.next/server/chunks/src_lib_1p21oczr6lh5a._.js +3 -0
  505. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
  506. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  507. package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +2 -2
  508. package/server/.next/server/chunks/src_lib_1yd94hta5y1hx._.js +3 -0
  509. package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
  510. package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
  511. package/server/.next/server/chunks/src_lib_brand-env_ts_1wcm1bjuismq_._.js +3 -0
  512. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
  513. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
  514. package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +1 -1
  515. package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +1 -1
  516. package/server/.next/server/chunks/src_lib_data_backup-db_ts_19rtzbv84xz_h._.js +2 -2
  517. package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  518. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  519. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  520. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +9 -9
  521. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
  522. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +9 -9
  523. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  524. package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  525. package/server/.next/server/chunks/src_lib_time_ts_1__07rt8x18k-._.js +3 -0
  526. package/server/.next/server/chunks/src_lib_time_ts_1a27wp71yhgti._.js +3 -0
  527. package/server/.next/server/chunks/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  528. package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
  529. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  530. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  531. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
  532. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
  533. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
  534. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
  535. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
  536. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
  537. package/server/.next/server/chunks/ssr/{[externals]__1u-jgivpw0_oh._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
  538. package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.js +1 -1
  539. package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
  540. package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
  541. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0aahjz4fnt4c_._.js → [root-of-the-server]__052_cprs0alpy._.js} +2 -2
  542. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11-ssp_43878t._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
  543. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ijk9z1ot_xi4._.js → [root-of-the-server]__08479d23kb1xv._.js} +2 -2
  544. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1csz822qejxk-._.js → [root-of-the-server]__08fqg76puqdfr._.js} +2 -2
  545. package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
  546. package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
  547. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0lks-6wz-rmk5._.js → [root-of-the-server]__0acmauri7z1sg._.js} +2 -2
  548. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
  549. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tkmutq84zkeh._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
  550. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h9gtpapca7i_._.js +3 -0
  551. package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
  552. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
  553. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
  554. package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
  555. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
  556. package/server/.next/server/chunks/ssr/[root-of-the-server]__0op0kqh43wd-a._.js +3 -0
  557. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
  558. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
  559. package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
  560. package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
  561. package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
  562. package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
  563. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1fdzriy6yyu5d._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
  564. package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
  565. package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
  566. package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
  567. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  568. package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
  569. package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
  570. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryb947ux5cq7._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
  571. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
  572. package/server/.next/server/chunks/ssr/[root-of-the-server]__1owrn7crnsybx._.js +3 -0
  573. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.js +1 -1
  574. package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
  575. package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
  576. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
  577. package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
  578. package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
  579. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
  580. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  581. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
  583. package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
  584. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  585. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
  587. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  588. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  589. package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
  590. package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
  592. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
  593. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
  594. package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
  596. package/server/.next/server/chunks/ssr/{_18t7ov64ycb-w._.js → _0ooh0hh-r_12s._.js} +2 -2
  597. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  598. package/server/.next/server/chunks/ssr/{_14bz_443syxhi._.js → _0pn3dn9s9es51._.js} +2 -2
  599. package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
  600. package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
  601. package/server/.next/server/chunks/ssr/{_06_f735j-1i20._.js → _0r04c1-snv6jw._.js} +2 -2
  602. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
  603. package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
  604. package/server/.next/server/chunks/ssr/{_0i6y4bkm-0cm3._.js → _0tnfblwwlyvq2._.js} +2 -2
  605. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
  606. package/server/.next/server/chunks/ssr/{_0o0-2ela2_qqd._.js → _0x1vi7mal3bqd._.js} +2 -2
  607. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  608. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  609. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
  610. package/server/.next/server/chunks/ssr/_11w5w9dpxcf1w._.js +3 -0
  611. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
  612. package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
  613. package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
  614. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
  615. package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
  616. package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
  617. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  618. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  619. package/server/.next/server/chunks/ssr/{_08y82qdosn7ga._.js → _1_ojvke28lw3y._.js} +2 -2
  620. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
  621. package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
  622. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
  623. package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
  624. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  625. package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
  626. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
  627. package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
  628. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  629. package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
  630. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
  631. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  632. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  633. package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
  634. package/server/.next/server/chunks/ssr/_1qt1czw3w8dww._.js +3 -0
  635. package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
  636. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
  637. package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
  638. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  639. package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
  640. package/server/.next/server/chunks/ssr/_20ln-4gu85-yt._.js +3 -0
  641. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
  642. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
  643. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
  644. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
  645. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
  646. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
  647. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
  648. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
  649. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
  650. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
  651. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
  652. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
  653. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
  654. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
  655. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
  656. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  657. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  658. package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
  659. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
  660. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
  661. package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
  662. package/server/.next/server/chunks/ssr/src_00ze92e3aolj8._.js +1 -1
  663. package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
  664. package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
  665. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  666. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  667. package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
  668. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  671. package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
  672. package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +3 -0
  673. package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
  674. package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
  675. package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
  676. package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
  679. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
  680. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  681. package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
  682. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  683. package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
  684. package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
  686. package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
  687. package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.js +1 -1
  688. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  689. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_11iuy79j_finh._.js +3 -0
  691. package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
  692. package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
  693. package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
  694. package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
  695. package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
  696. package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
  697. package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
  698. package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
  699. package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
  700. package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
  701. package/server/.next/server/chunks/ssr/{src_1eermasnm2cgy._.js → src_1ottjkdvhje3g._.js} +2 -2
  702. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  703. package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
  705. package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
  707. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
  710. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
  711. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  712. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
  713. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_connect-view_tsx_04abz05n7hdsd._.js +15 -15
  714. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
  716. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
  717. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.js +1 -1
  718. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  719. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
  724. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  731. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
  732. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
  733. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  734. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
  735. package/server/.next/server/chunks/ssr/{src_app_(console)_1ppp9j5e2rtqf._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
  736. package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
  737. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  738. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  739. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_088bs149wsgca._.js +1 -1
  740. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  741. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  742. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  743. package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
  744. package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
  745. package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
  746. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  747. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +3 -0
  748. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  749. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  750. package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
  751. package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
  752. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  753. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  754. package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
  755. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +1 -1
  756. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  757. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +3 -0
  758. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
  759. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  760. package/server/.next/server/chunks/ssr/src_app_(console)_neon_1ubea__gt06o0._.js +1 -1
  761. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  762. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  763. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  764. package/server/.next/server/chunks/ssr/src_app_(console)_sql_16-sh45tpob8n._.js +1 -1
  765. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  766. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  767. package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
  768. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  769. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  770. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  771. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
  772. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  773. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  774. package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
  775. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  776. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  777. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  778. package/server/.next/server/chunks/ssr/{src_app_signin_124xn9wb2fasu._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
  779. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +3 -0
  780. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  781. package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
  782. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +3 -3
  783. package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
  784. package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +1 -1
  785. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +1 -1
  786. package/server/.next/server/chunks/ssr/{src_lib_1l8ej-zoyyegd._.js → src_lib_1p21oczr6lh5a._.js} +2 -2
  787. package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +1 -1
  788. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  789. package/server/.next/server/chunks/ssr/src_lib_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
  790. package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
  791. package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  792. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  793. package/server/.next/server/chunks/ssr/{src_lib_demo_20hj85e_64pp1._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
  794. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  795. package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  796. package/server/.next/server/chunks/ssr/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  797. package/server/.next/server/chunks/ssr/src_lib_time_ts_1ualgyi3irm1z._.js +3 -0
  798. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  799. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  800. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  801. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  802. package/server/.next/server/chunks/ssr/src_private_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
  803. package/server/.next/server/chunks/ssr/src_private_ai_views-db_ts_1jbnr41mskha2._.js +1 -1
  804. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +3 -3
  805. package/server/.next/server/chunks/ssr/src_private_explorer_explorer_tsx_04m_tdottspjs._.js +1 -1
  806. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  807. package/server/.next/server/middleware-build-manifest.js +116 -105
  808. package/server/.next/server/next-font-manifest.js +1 -1
  809. package/server/.next/server/next-font-manifest.json +4 -0
  810. package/server/.next/server/pages/404.html +1 -1
  811. package/server/.next/server/pages/500.html +1 -1
  812. package/server/.next/server/preview-props.json +3 -3
  813. package/server/.next/server/server-reference-manifest.js +1 -1
  814. package/server/.next/server/server-reference-manifest.json +210 -164
  815. package/server/.next/static/chunks/08dak2kh1c6_7.js +1 -0
  816. package/server/.next/static/chunks/{2v14aqfx8wv9o.js → 0b9slopuz4e8a.js} +1 -1
  817. package/server/.next/static/chunks/{36ureqoyz5e06.js → 0dp-tuwkw7xf8.js} +2 -2
  818. package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
  819. package/server/.next/static/chunks/{2k9ytb8jmg14_.js → 0h9i512dn01kj.js} +1 -1
  820. package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
  821. package/server/.next/static/chunks/0icohez16w-ei.js +1 -0
  822. package/server/.next/static/chunks/{1ieazx9t3vl5p.js → 0j1wzqg4ukm70.js} +1 -1
  823. package/server/.next/static/chunks/{43_va15lk2zc1.js → 0j_5norjm-kef.js} +1 -1
  824. package/server/.next/static/chunks/{1-1hfgat2l_o9.js → 0kscmnb071fci.js} +1 -1
  825. package/server/.next/static/chunks/{0c7pskzfstcdh.js → 0ld78j1d4j201.js} +1 -1
  826. package/server/.next/static/chunks/0qlb-l1uyqku5.js +1 -0
  827. package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
  828. package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
  829. package/server/.next/static/chunks/{1ts_fd_r1kcrv.js → 1-oetq3mwlhds.js} +1 -1
  830. package/server/.next/static/chunks/{2fj4o7-stsvht.js → 11ywzwmfd_pt0.js} +1 -1
  831. package/server/.next/static/chunks/1j18pg23fzwv_.js +1 -0
  832. package/server/.next/static/chunks/1jaozq01v9r6e.js +1 -0
  833. package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
  834. package/server/.next/static/chunks/{0cannaigw8lhi.js → 1lsu_fxiyaeiz.js} +1 -1
  835. package/server/.next/static/chunks/1o3_amrh-sxr3.js +1 -0
  836. package/server/.next/static/chunks/{0wtboeftyamyk.js → 1w9o_jo_pejc5.js} +1 -1
  837. package/server/.next/static/chunks/1xy80z39ducub.js +1 -0
  838. package/server/.next/static/chunks/1yvbs41m8_4nc.js +7 -0
  839. package/server/.next/static/chunks/22alexnun_rdm.js +1 -0
  840. package/server/.next/static/chunks/{1o_q7_4ulcq9x.js → 27qwmt1w6-iri.js} +1 -1
  841. package/server/.next/static/chunks/29humkd2-_1oo.js +1 -0
  842. package/server/.next/static/chunks/29j96yfhxsf41.js +1 -0
  843. package/server/.next/static/chunks/29qnnsjsgsia6.js +1 -0
  844. package/server/.next/static/chunks/{2cjfogw85k3h-.js → 2ii8j9xuvv604.js} +1 -1
  845. package/server/.next/static/chunks/{30fczssqw6xys.js → 2m0ftj__ody0m.js} +1 -1
  846. package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
  847. package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
  848. package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
  849. package/server/.next/static/chunks/{0li9-xjc40g51.js → 2toeyr9b_nk0e.js} +1 -1
  850. package/server/.next/static/chunks/{2fo6iuxb0ec7f.js → 2w7qxt7ux-m1-.js} +1 -1
  851. package/server/.next/static/chunks/{1gmof0n5nswkk.js → 2zc1osymeruya.js} +1 -1
  852. package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
  853. package/server/.next/static/chunks/{026asl66kuq3f.js → 340ecjh1jzqjd.js} +15 -15
  854. package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
  855. package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
  856. package/server/.next/static/chunks/{3tqh7fwtd_k_l.js → 3gl2k6v182lli.js} +2 -2
  857. package/server/.next/static/chunks/{3f5sxz8awpdog.js → 3gurl_36kr7sg.js} +1 -1
  858. package/server/.next/static/chunks/{1gb8jvw-g7fr7.js → 3h-i_hcaaf7vs.js} +1 -1
  859. package/server/.next/static/chunks/{2jlv5ekbb0wu2.js → 3kznplgmzot89.js} +1 -1
  860. package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
  861. package/server/.next/static/chunks/{3dokgd9nungcr.js → 3n_n6yeienmn-.js} +1 -1
  862. package/server/.next/static/chunks/3nqciag05fif0.js +1 -0
  863. package/server/.next/static/chunks/{1zi37go-xtasg.js → 3o45i7xbzm0w-.js} +1 -1
  864. package/server/.next/static/chunks/{1c4fx4kipvnqz.js → 3oe302ug_esoe.js} +1 -1
  865. package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
  866. package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
  867. package/server/.next/static/chunks/{2rdmebof0d_c4.js → 3shbvizselyoq.js} +1 -1
  868. package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
  869. package/server/.next/static/chunks/{2z1xy8l4s3usi.js → 3yv-enyk37whg.js} +1 -1
  870. package/server/node_modules/@next/env/package.json +1 -1
  871. package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
  872. package/server/node_modules/next/dist/build/index.js +3 -3
  873. package/server/node_modules/next/dist/build/swc/index.js +1 -1
  874. package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
  875. package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
  876. package/server/node_modules/next/dist/build/webpack-config.js +3 -3
  877. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
  878. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
  879. package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
  880. package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  881. package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
  882. package/server/node_modules/next/dist/server/config.js +1 -1
  883. package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  884. package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  885. package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  886. package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
  887. package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
  888. package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
  889. package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
  890. package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
  891. package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
  892. package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  893. package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  894. package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
  895. package/server/node_modules/next/package.json +11 -11
  896. package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
  897. package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
  898. package/server/.next/server/chunks/[root-of-the-server]__08n3x1x850wqc._.js +0 -3
  899. package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
  900. package/server/.next/server/chunks/[root-of-the-server]__0grnl7ncqcjft._.js +0 -3
  901. package/server/.next/server/chunks/[root-of-the-server]__0hju4mctdmvz9._.js +0 -3
  902. package/server/.next/server/chunks/[root-of-the-server]__0i3n8l6ecdb4u._.js +0 -3
  903. package/server/.next/server/chunks/[root-of-the-server]__0m8w2-7618scn._.js +0 -3
  904. package/server/.next/server/chunks/[root-of-the-server]__0p_b0m2cstlrl._.js +0 -3
  905. package/server/.next/server/chunks/[root-of-the-server]__0uyagcs61c0t_._.js +0 -3
  906. package/server/.next/server/chunks/[root-of-the-server]__0v1kcolrxwmob._.js +0 -3
  907. package/server/.next/server/chunks/[root-of-the-server]__0vctt_0kj1gz4._.js +0 -3
  908. package/server/.next/server/chunks/[root-of-the-server]__0x0x6v75re5_e._.js +0 -3
  909. package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
  910. package/server/.next/server/chunks/[root-of-the-server]__0ymon9r-17xe_._.js +0 -3
  911. package/server/.next/server/chunks/[root-of-the-server]__0zxjft8y2r575._.js +0 -3
  912. package/server/.next/server/chunks/[root-of-the-server]__114vjjaqb2wyv._.js +0 -3
  913. package/server/.next/server/chunks/[root-of-the-server]__12uyws-qe6wxs._.js +0 -3
  914. package/server/.next/server/chunks/[root-of-the-server]__139pgc0wpc7kg._.js +0 -3
  915. package/server/.next/server/chunks/[root-of-the-server]__157yb_wl7w4ly._.js +0 -3
  916. package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
  917. package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
  918. package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
  919. package/server/.next/server/chunks/[root-of-the-server]__1_5q9zgl6p5_3._.js +0 -3
  920. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
  921. package/server/.next/server/chunks/[root-of-the-server]__1bwgi7nn5-hc3._.js +0 -3
  922. package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
  923. package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
  924. package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
  925. package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
  926. package/server/.next/server/chunks/[root-of-the-server]__1k8s02gwythps._.js +0 -3
  927. package/server/.next/server/chunks/[root-of-the-server]__1lf_lo1wqcbcg._.js +0 -3
  928. package/server/.next/server/chunks/[root-of-the-server]__1n32c8l_j8jt4._.js +0 -3
  929. package/server/.next/server/chunks/[root-of-the-server]__1niiijc82bgoj._.js +0 -3
  930. package/server/.next/server/chunks/[root-of-the-server]__1on_3p53yn6fs._.js +0 -3
  931. package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
  932. package/server/.next/server/chunks/[root-of-the-server]__1q90luznbe9-l._.js +0 -3
  933. package/server/.next/server/chunks/[root-of-the-server]__1r15vmrh2r06l._.js +0 -3
  934. package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
  935. package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
  936. package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
  937. package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
  938. package/server/.next/server/chunks/[root-of-the-server]__1woerg3tb4ls3._.js +0 -3
  939. package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
  940. package/server/.next/server/chunks/[root-of-the-server]__1zaomh_4901_f._.js +0 -3
  941. package/server/.next/server/chunks/[root-of-the-server]__20lwsd6a4wnpe._.js +0 -3
  942. package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
  943. package/server/.next/server/chunks/_03bua_9n4apok._.js +0 -3
  944. package/server/.next/server/chunks/_0594j_bb0l80e._.js +0 -3
  945. package/server/.next/server/chunks/_076dwl7r_5vcl._.js +0 -34
  946. package/server/.next/server/chunks/_08tppw9ujlpke._.js +0 -34
  947. package/server/.next/server/chunks/_08y82qdosn7ga._.js +0 -3
  948. package/server/.next/server/chunks/_0m49djgc1t4wg._.js +0 -3
  949. package/server/.next/server/chunks/_0n5m3o7at0adm._.js +0 -34
  950. package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
  951. package/server/.next/server/chunks/_0r4am1mgz4dg_._.js +0 -3
  952. package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
  953. package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
  954. package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
  955. package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
  956. package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
  957. package/server/.next/server/chunks/_11p2ejgai2a78._.js +0 -3
  958. package/server/.next/server/chunks/_1bcsmpznxhk9h._.js +0 -3
  959. package/server/.next/server/chunks/_1he3nioua8ee5._.js +0 -3
  960. package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
  961. package/server/.next/server/chunks/_1lpcbqj4uzrsh._.js +0 -3
  962. package/server/.next/server/chunks/_1rw6_0nf-3sxs._.js +0 -34
  963. package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
  964. package/server/.next/server/chunks/src_0l-no1yc1_izn._.js +0 -3
  965. package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
  966. package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
  967. package/server/.next/server/chunks/src_156ewlek-4a4z._.js +0 -3
  968. package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
  969. package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
  970. package/server/.next/server/chunks/src_lib_0-ylqsh7whlj2._.js +0 -3
  971. package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
  972. package/server/.next/server/chunks/src_lib_0f0p6-l5vvduu._.js +0 -3
  973. package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
  974. package/server/.next/server/chunks/src_lib_15a3m-j_urkkp._.js +0 -3
  975. package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
  976. package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
  977. package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
  978. package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
  979. package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
  980. package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
  981. package/server/.next/server/chunks/ssr/[root-of-the-server]__06s-dfcfuperv._.js +0 -3
  982. package/server/.next/server/chunks/ssr/[root-of-the-server]__07or1m2vwon1m._.js +0 -3
  983. package/server/.next/server/chunks/ssr/[root-of-the-server]__0d9lwldljqtvx._.js +0 -3
  984. package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
  985. package/server/.next/server/chunks/ssr/[root-of-the-server]__0uklr553mp86_._.js +0 -3
  986. package/server/.next/server/chunks/ssr/[root-of-the-server]__1cykncw1_xcno._.js +0 -3
  987. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ih2a_fbqu7ko._.js +0 -3
  988. package/server/.next/server/chunks/ssr/[root-of-the-server]__1j7_a902k_8es._.js +0 -3
  989. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ofzjllv-b0o0._.js +0 -3
  990. package/server/.next/server/chunks/ssr/_040ixxsgfs0vi._.js +0 -3
  991. package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
  992. package/server/.next/server/chunks/ssr/_0ux6eo_w1x155._.js +0 -3
  993. package/server/.next/server/chunks/ssr/_12o9qqjoik4q4._.js +0 -3
  994. package/server/.next/server/chunks/ssr/_1k2q3yt1h6cfs._.js +0 -3
  995. package/server/.next/server/chunks/ssr/_1zhtvg8t3jtxe._.js +0 -3
  996. package/server/.next/server/chunks/ssr/_200p6me5_kp2j._.js +0 -3
  997. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
  998. package/server/.next/server/chunks/ssr/src_00s82lfm2ga7-._.js +0 -3
  999. package/server/.next/server/chunks/ssr/src_13hsrg6rdvh-d._.js +0 -3
  1000. package/server/.next/server/chunks/ssr/src_1xgsz_do2xpr2._.js +0 -3
  1001. package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
  1002. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
  1003. package/server/.next/server/chunks/ssr/src_components_shell_shell_tsx_1cpq-hbch_dvj._.js +0 -3
  1004. package/server/.next/server/chunks/ssr/src_lib_0y40wht-o-oc2._.js +0 -3
  1005. package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
  1006. package/server/.next/static/chunks/03qto0oyf2r1n.js +0 -1
  1007. package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
  1008. package/server/.next/static/chunks/0n_l4a3za5-q8.js +0 -1
  1009. package/server/.next/static/chunks/0t96fqp1vsmrp.js +0 -1
  1010. package/server/.next/static/chunks/0wlc502815llk.js +0 -1
  1011. package/server/.next/static/chunks/158-i6phe17yl.js +0 -1
  1012. package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
  1013. package/server/.next/static/chunks/1mlvn70-zqjvi.js +0 -1
  1014. package/server/.next/static/chunks/1sm8wxvlpowwg.js +0 -1
  1015. package/server/.next/static/chunks/1teh52nh5dujq.js +0 -1
  1016. package/server/.next/static/chunks/1v4hl1z0y1npd.js +0 -1
  1017. package/server/.next/static/chunks/1vh2psoqw3ddc.js +0 -1
  1018. package/server/.next/static/chunks/1xau8pf40_upi.js +0 -7
  1019. package/server/.next/static/chunks/1z2rcngn3-7i5.js +0 -1
  1020. package/server/.next/static/chunks/210qrsqvmgaet.js +0 -1
  1021. package/server/.next/static/chunks/29p15vj15jcsb.js +0 -1
  1022. package/server/.next/static/chunks/2kmerzslng988.js +0 -1
  1023. package/server/.next/static/chunks/2llric-1orr3y.js +0 -1
  1024. package/server/.next/static/chunks/2wb9a1xth0yhf.js +0 -1
  1025. package/server/.next/static/chunks/34gs6c2dsgtqy.js +0 -1
  1026. package/server/.next/static/chunks/3ag6t3ta58rih.js +0 -1
  1027. package/server/.next/static/chunks/3gkta99h3_5i2.js +0 -1
  1028. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
  1029. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
  1030. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[492768,a=>{var b=a.i(187924),c=a.i(335371),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(188406),i=a.i(405050);let j=(0,i.createServerReference)("409b35735850969b1e607e477bd97b020233144809",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("40d3a2343578d87ad648a3fe90dee744f04d55c12a",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("6015c50d3dd3dfff01cdd9def5c289771ea9feba6a",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("40f4e48487161a41402c8b992a130571596c967813",i.callServer,void 0,i.findSourceMapURL,"testProvider");function n(a){a.ok?e.c.success(a.message??"Done."):e.c.error(a.error??"Something went wrong.")}a.s(["DefaultProviderSelect",0,function({options:a,current:c}){let[e,f]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c??"");return 0===a.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,b.jsxs)("select",{"aria-label":"Default provider",className:`${g.S} w-auto`,value:h,disabled:e,onChange:a=>{let b=a.target.value;i(b),b&&f(async()=>n(await j(b)))},children:[!c&&(0,b.jsx)("option",{value:"",children:"None yet"}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})},"EnabledSwitch",0,function({id:a,on:c,name:e}){let[f,g]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c);return(0,b.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${e}: ${h?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:h,disabled:f,"aria-label":`${e} enabled`,onChange:b=>{let c=b.target.checked;i(c),g(async()=>{let b=await l(a,c);b.ok||i(!c),n(b)})}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:a,name:c,isDefault:e}){let[g,i]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{label:`Actions for ${c}`,items:[...e?[]:[{label:"Make default",onSelect:async()=>n(await j(a))},"---"],{label:"Remove",danger:!0,onSelect:()=>i(!0)}]}),(0,b.jsx)(f.f,{open:g,onOpenChange:i,title:`Remove ${c}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await k(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"TestProviderButton",0,function({id:a}){let[e,f]=(0,d.useTransition)();return(0,b.jsxs)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>n(await m(a))),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),e?"Testing…":"Test"]})}],492768)},36105,a=>{var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(814574),h=a.i(405050);let i=(0,h.createServerReference)("6044af7125f48d4b7635fd244af712fa9580e0844b",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("6062d290de9b6e11a3ec76f0e3129b794438898ff7",h.callServer,void 0,h.findSourceMapURL,"replaceProviderKey");var k=a.i(901615);let l={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:a=>`https://api.cloudflare.com/client/v4/accounts/${a.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:a=>(a.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};k.X.localUrl;var m=a.i(449862);let n=(0,m.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var o=a.i(786581);let p=(0,m.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),q={gemini:n,cloudflare:o.f,custom:p},r={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};a.s(["ProviderDialog",0,function({kind:a,replace:h,primary:m,label:n,selfhost:o=!1}){let p=l[a],s=q[a],[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useTransition)(),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),[D,E]=(0,d.useState)(h?.baseUrl??""),[F,G]=(0,d.useState)(!1),[H,I]=(0,d.useState)({}),[J,K]=(0,d.useState)(null),[L,M]=(0,d.useState)(null);function N(a){u(a),a||(M(null),y(""),A(""),C(""),E(h?.baseUrl??""),G(!1),I({}),K(null))}let O=h?`Replace key \xb7 ${h.name}`:`Connect ${p.name}`;return(0,b.jsxs)(g.N,{open:t,onOpenChange:N,children:[(0,b.jsx)(g.a,{className:(0,f.R)({size:"sm",variant:m?"primary":"secondary"}),children:n??(h?"Replace":"Connect")}),(0,b.jsxs)(g.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(s,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(g.F,{className:"text-base",children:O}),(0,b.jsxs)(g.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[p.keyLabel,"cloudflare"===a?" and account ID":""]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[p.where.url&&(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsxs)("a",{href:p.where.url,target:"_blank",rel:"noopener noreferrer",children:[p.where.url.replace("https://","")," ",(0,b.jsx)(c.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),p.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===a&&!h&&(0,b.jsx)(f.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:H.name,children:(0,b.jsx)("input",{id:"p-name",value:B,onChange:a=>C(a.target.value),placeholder:"my-llm",className:f.S,autoComplete:"off"})}),"custom"===a?(0,b.jsx)(f.O,{id:"p-base",label:"Base URL",help:o?k.X.baseUrlHelp.selfhost:k.X.baseUrlHelp.cloud,error:H.baseUrl,children:(0,b.jsx)("input",{id:"p-base",value:D,onChange:a=>E(a.target.value),placeholder:"https://example.com/v1",className:`${f.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,b.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===a?p.baseUrl({apiKey:"",accountId:"{account_id}"}):p.baseUrl({apiKey:""})})]}),"cloudflare"===a&&(0,b.jsx)(f.O,{id:"p-acct",label:"Account ID",error:H.accountId,children:(0,b.jsx)("input",{id:"p-acct",value:z,onChange:a=>A(a.target.value),placeholder:"32 hex characters",className:`${f.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,b.jsx)(f.O,{id:"p-key",label:p.keyLabel,help:"custom"===a&&o?k.X.keyHelp.selfhostCustom:k.X.keyHelp.cloud,error:H.apiKey,children:(0,b.jsx)("input",{id:"p-key",type:"password",value:x,onChange:a=>y(a.target.value),placeholder:r[a],className:`${f.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!h&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:F,onChange:a=>G(a.target.checked)})," Make this the default provider"]}),J&&(0,b.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:J}),L&&(0,b.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,b.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",L.length," model",1===L.length?"":"s",":"]}),(0,b.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:L.map(a=>(0,b.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:a},a))}),(0,b.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:L?(0,b.jsx)(f.K,{variant:"primary",onClick:()=>N(!1),children:"Done"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.K,{onClick:()=>N(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{variant:"primary",onClick:function(){w(async()=>{let b={apiKey:x,..."cloudflare"===a?{accountId:z}:{},..."custom"===a?{baseUrl:D,...h?{}:{name:B}}:{},makeDefault:F},c=h?await j(h.id,b):await i(a,b);if(I(c.ok?{}:c.fieldErrors??{}),K(c.ok||c.fieldErrors?null:c.error),c.ok){e.c.success(c.message??`${p.name} connected.`);let b=c.data?.models??[];"custom"===a&&b.length?M(b):N(!1)}})},disabled:v,children:v?"Testing…":h?"Test and replace":"Test and connect"})]})})]})]})}],36105)}]})();
1
+ (()=>{"use strict";module.exports=[492768,a=>{var b=a.i(187924),c=a.i(335371),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(188406),i=a.i(405050);let j=(0,i.createServerReference)("40f6e1fce2c129c148d35d2e1d0bc4f02297deaed6",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("4025cb3331a27d82c0ee1407a5980db3d9566c8d17",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("601c29cd3b9bd073ae487cf78c1b32baca9bb3804f",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("40411f9cc8fb96993777b6a3e4657546515120d752",i.callServer,void 0,i.findSourceMapURL,"testProvider");function n(a){a.ok?e.c.success(a.message??"Done."):e.c.error(a.error??"Something went wrong.")}a.s(["DefaultProviderSelect",0,function({options:a,current:c}){let[e,f]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c??"");return 0===a.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,b.jsxs)("select",{"aria-label":"Default provider",className:`${g.S} w-auto`,value:h,disabled:e,onChange:a=>{let b=a.target.value;i(b),b&&f(async()=>n(await j(b)))},children:[!c&&(0,b.jsx)("option",{value:"",children:"None yet"}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})},"EnabledSwitch",0,function({id:a,on:c,name:e}){let[f,g]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c);return(0,b.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${e}: ${h?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:h,disabled:f,"aria-label":`${e} enabled`,onChange:b=>{let c=b.target.checked;i(c),g(async()=>{let b=await l(a,c);b.ok||i(!c),n(b)})}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:a,name:c,isDefault:e}){let[g,i]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{label:`Actions for ${c}`,items:[...e?[]:[{label:"Make default",onSelect:async()=>n(await j(a))},"---"],{label:"Remove",danger:!0,onSelect:()=>i(!0)}]}),(0,b.jsx)(f.f,{open:g,onOpenChange:i,title:`Remove ${c}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await k(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"TestProviderButton",0,function({id:a}){let[e,f]=(0,d.useTransition)();return(0,b.jsxs)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>n(await m(a))),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),e?"Testing…":"Test"]})}],492768)},36105,a=>{var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(814574),h=a.i(405050);let i=(0,h.createServerReference)("60ed4d3c899c0c239593ddc2515f66f4ae33fb3fbf",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("60f6383aae46732cd0959c6c309d4c306133c0e1ca",h.callServer,void 0,h.findSourceMapURL,"replaceProviderKey");var k=a.i(901615);let l={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:a=>`https://api.cloudflare.com/client/v4/accounts/${a.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:a=>(a.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};k.X.localUrl;var m=a.i(449862);let n=(0,m.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var o=a.i(786581);let p=(0,m.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),q={gemini:n,cloudflare:o.f,custom:p},r={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};a.s(["ProviderDialog",0,function({kind:a,replace:h,primary:m,label:n,selfhost:o=!1}){let p=l[a],s=q[a],[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useTransition)(),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),[D,E]=(0,d.useState)(h?.baseUrl??""),[F,G]=(0,d.useState)(!1),[H,I]=(0,d.useState)({}),[J,K]=(0,d.useState)(null),[L,M]=(0,d.useState)(null);function N(a){u(a),a||(M(null),y(""),A(""),C(""),E(h?.baseUrl??""),G(!1),I({}),K(null))}let O=h?`Replace key \xb7 ${h.name}`:`Connect ${p.name}`;return(0,b.jsxs)(g.N,{open:t,onOpenChange:N,children:[(0,b.jsx)(g.a,{className:(0,f.R)({size:"sm",variant:m?"primary":"secondary"}),children:n??(h?"Replace":"Connect")}),(0,b.jsxs)(g.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(s,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(g.F,{className:"text-base",children:O}),(0,b.jsxs)(g.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[p.keyLabel,"cloudflare"===a?" and account ID":""]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[p.where.url&&(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsxs)("a",{href:p.where.url,target:"_blank",rel:"noopener noreferrer",children:[p.where.url.replace("https://","")," ",(0,b.jsx)(c.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),p.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===a&&!h&&(0,b.jsx)(f.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:H.name,children:(0,b.jsx)("input",{id:"p-name",value:B,onChange:a=>C(a.target.value),placeholder:"my-llm",className:f.S,autoComplete:"off"})}),"custom"===a?(0,b.jsx)(f.O,{id:"p-base",label:"Base URL",help:o?k.X.baseUrlHelp.selfhost:k.X.baseUrlHelp.cloud,error:H.baseUrl,children:(0,b.jsx)("input",{id:"p-base",value:D,onChange:a=>E(a.target.value),placeholder:"https://example.com/v1",className:`${f.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,b.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===a?p.baseUrl({apiKey:"",accountId:"{account_id}"}):p.baseUrl({apiKey:""})})]}),"cloudflare"===a&&(0,b.jsx)(f.O,{id:"p-acct",label:"Account ID",error:H.accountId,children:(0,b.jsx)("input",{id:"p-acct",value:z,onChange:a=>A(a.target.value),placeholder:"32 hex characters",className:`${f.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,b.jsx)(f.O,{id:"p-key",label:p.keyLabel,help:"custom"===a&&o?k.X.keyHelp.selfhostCustom:k.X.keyHelp.cloud,error:H.apiKey,children:(0,b.jsx)("input",{id:"p-key",type:"password",value:x,onChange:a=>y(a.target.value),placeholder:r[a],className:`${f.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!h&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:F,onChange:a=>G(a.target.checked)})," Make this the default provider"]}),J&&(0,b.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:J}),L&&(0,b.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,b.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",L.length," model",1===L.length?"":"s",":"]}),(0,b.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:L.map(a=>(0,b.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:a},a))}),(0,b.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:L?(0,b.jsx)(f.K,{variant:"primary",onClick:()=>N(!1),children:"Done"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.K,{onClick:()=>N(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{variant:"primary",onClick:function(){w(async()=>{let b={apiKey:x,..."cloudflare"===a?{accountId:z}:{},..."custom"===a?{baseUrl:D,...h?{}:{name:B}}:{},makeDefault:F},c=h?await j(h.id,b):await i(a,b);if(I(c.ok?{}:c.fieldErrors??{}),K(c.ok||c.fieldErrors?null:c.error),c.ok){e.c.success(c.message??`${p.name} connected.`);let b=c.data?.models??[];"custom"===a&&b.length?M(b):N(!1)}})},disabled:v,children:v?"Testing…":h?"Test and replace":"Test and connect"})]})})]})]})}],36105)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_providers_1ru-30x6-uwu4._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[134819,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["AI & API"],children:(0,b.jsx)(c.G,{title:!0,rows:2,cols:6})})}])},700710,function(a){a.n(a.i(134819))}];
1
+ module.exports=[134819,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["Manage"],children:(0,b.jsx)(c.G,{title:!0,rows:2,cols:6})})}])},700710,function(a){a.n(a.i(134819))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[[355235,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LimitsForm() from the server but LimitsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/(private)/ai/quota/limits-form.tsx","LimitsForm");a.s(["LimitsForm",0,b])},398527,a=>{var b=a.i(355235);a.n(b)},278893,a=>{var b=a.i(907997),c=a.i(175038),d=a.i(938123),e=a.i(996432),f=a.i(395936),g=a.i(685865),h=a.i(803681),i=a.i(791444),j=a.i(384896),k=a.i(849423),l=a.i(916056),m=a.i(462820),n=a.i(955996);let o=["chat","console","models","agent"],p=()=>({requests:0,input:0,cached:0,output:0,errors:0});function q(a,b){a.requests++,a.input+=b.tokensIn??0,a.cached+=b.tokensCached??0,a.output+=(b.tokensOut??0)+(b.tokensThinking??0),b.status>=400&&a.errors++}let r=a=>new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(a);var s=a.i(263972),t=a.i(777302),u=a.i(398527),v=a.i(75148),w=a.i(109307);async function x(a){try{let[b,c]=await Promise.all([(0,k.A)(a),(0,k.S)()]);return function(a,b,c){let d=(0,n.r)(c.getTime()),e=c.getTime()-6048e5,f=b.map(a=>({...a,today:p(),week:p()})),g=new Map(f.map(a=>[a.id,a])),h=null;for(let b of a){if(!o.includes(b.kind))continue;let a=b.at.getTime();if(a<e||a>c.getTime())continue;let f=b.providerId?g.get(b.providerId):void 0;f||b.providerId||"agent"!==b.kind||(h??={id:"vm-agent",name:m.V.providerName,kind:"agent",enabled:!0,today:p(),week:p()},f=h),f&&(q(f.week,b),a>=d&&q(f.today,b))}return h?[...f,h]:f}(b,c,a)}catch{return console.warn("reading the provider usage failed"),[]}}async function y(){let a=await (0,w.B)("owner");if(!a.ok)return(0,b.jsx)(v.f,{role:a.member.role});let c=new Date,[d,e,k,m,n,o]=await Promise.all([(0,t.q)(c),(0,s.d)(),(0,s.Q)(c),(0,l.T)(c),(0,l.K)(c),x(c)]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.AutoRefresh,{at:c.getTime()}),(0,b.jsx)(h.L,{crumbs:[{label:"AI & API"},{label:"AI Gateway",href:"/ai"},{label:"Quota"}],title:"Quota",sub:l.t.sub}),(0,b.jsx)(l.L,{view:n,now:c}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]",children:[(0,b.jsx)(h.N,{title:"Provider usage",meta:"Today (WIB) · last 7 days",flush:!0,children:0===o.length?(0,b.jsx)(h.k,{title:"No provider connected",action:(0,b.jsx)(f.default,{href:"/ai/providers",className:(0,h.R)({size:"sm"}),children:"Bring your own key"}),children:"Connect a provider to see its requests and tokens here."}):o.map(a=>(0,b.jsx)(z,{p:a,groups:d.filter(b=>b.providerId===a.id),canLimit:e.some(b=>b.id===a.id)},a.id))}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,b.jsxs)(h.N,{title:"Where these numbers come from",children:[(0,b.jsx)("p",{className:"mb-2 text-[13px] text-ink-soft",children:"From the provider's rate-limit headers when it sends them. Otherwise Watchbell counts the calls it forwards against limits you enter; calls made with the same account outside Watchbell aren't counted. A 429 from a provider marks the row as used up until it resets."}),(0,b.jsxs)("p",{className:"m-0 text-[12.5px] text-ink-faint",children:[l.t.sourceNote&&`${l.t.sourceNote} `,"Day and week windows of your limits reset at 00:00 UTC (weeks on Monday)."]})]}),(0,b.jsx)(h.N,{title:(0,b.jsx)("span",{id:"limits",children:"Limits you enter"}),children:0===e.length?(0,b.jsxs)("p",{className:"m-0 text-[13px] text-ink-soft",children:["Connect a provider first. ",(0,b.jsx)(f.default,{href:"/ai/providers",children:"Bring your own key"})]}):(0,b.jsx)(u.LimitsForm,{providers:e})})]})]}),m&&(0,b.jsx)(l.A,{ag:m}),(0,b.jsx)(h.N,{title:"Per key",meta:"Applied before the provider's limits",flush:!0,children:0===k.length?(0,b.jsx)(h.k,{title:"No active keys",action:(0,b.jsx)(f.default,{href:"/ai/keys",className:(0,h.R)({size:"sm"}),children:"API keys"}),children:"Create a key to see its usage here."}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:i.o,children:[(0,b.jsx)(i.U,{head:["Key","Limit","This minute","Today",""]}),(0,b.jsx)("tbody",{children:k.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:i.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.name})}),(0,b.jsxs)("td",{className:`${i.z} font-mono`,children:[a.ratePerMin," / min"]}),(0,b.jsxs)("td",{className:`${i.z} font-mono`,children:[a.lastMinute,(0,b.jsx)(h.e,{pct:(0,j.c)(a.lastMinute/a.ratePerMin*100),tone:a.lastMinute>=a.ratePerMin?"err":a.lastMinute/a.ratePerMin>=.75?"warn":void 0})]}),(0,b.jsx)("td",{className:`${i.z} font-mono`,children:a.today.toLocaleString("en-US")}),(0,b.jsx)("td",{className:i.z,children:(0,b.jsx)(f.default,{href:"/ai/keys",className:(0,h.R)({size:"sm"}),children:"Change"})})]},a.id))})]})})})]})}function z({p:a,groups:f,canLimit:g}){let i=f.flatMap(a=>a.rows.map(b=>({...b,key:`${a.group}|${b.label}`,group:a.group})));return(0,b.jsxs)("section",{className:"border-t border-line px-4 py-3 first-of-type:border-t-0",children:[(0,b.jsxs)("h3",{className:"mb-1.5 flex items-center gap-2 text-[13px] font-medium",children:["gemini"===a.kind||"agent"===a.kind?(0,b.jsx)(d.f,{size:16,"aria-hidden":!0}):"groq"===a.kind?(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}):(0,b.jsx)(e.f,{size:16,"aria-hidden":!0}),a.name,!a.enabled&&(0,b.jsx)(h.E,{children:"Off"})]}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse text-[12.5px]",children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{className:"text-left text-ink-soft",children:["","Requests","Input","Cached","Output","Errors"].map(a=>(0,b.jsx)("th",{className:"py-1 pr-3 font-medium",children:a},a))})}),(0,b.jsx)("tbody",{className:"font-mono",children:[["Today",a.today],["7 days",a.week]].map(([a,c])=>(0,b.jsxs)("tr",{className:"border-t border-line",children:[(0,b.jsx)("td",{className:"py-1 pr-3 font-sans text-ink-soft",children:a}),[c.requests.toLocaleString("en-US"),r(c.input),r(c.cached),r(c.output),c.errors.toLocaleString("en-US")].map((a,d)=>(0,b.jsx)("td",{className:4===d&&c.errors>0?"py-1 pr-3 text-err":"py-1 pr-3",children:a},d))]},a))})]})}),i.length>0?(0,b.jsx)("ul",{className:"m-0 mt-2 flex list-none flex-col gap-2 p-0",children:i.map(a=>(0,b.jsxs)("li",{className:"text-[12.5px]",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),a.limited&&(0,b.jsx)(h.E,{children:"Used up"}),(0,b.jsxs)("span",{className:"ml-auto font-mono text-ink-soft",children:[a.pctLeft,"% left"]})]}),(0,b.jsx)(h.e,{pct:100-a.pctLeft,tone:a.pctLeft<20?"err":a.pctLeft<50?"warn":void 0}),(0,b.jsxs)("small",{className:"block text-[11.5px] text-ink-faint",children:[a.group," · resets in ",a.resetsIn," · ","header"===a.source?"from the provider's headers":`Watchbell's count of ${(a.used??0).toLocaleString("en-US")} / ${(a.limit??0).toLocaleString("en-US")}`]})]},a.key))}):g?(0,b.jsx)("a",{href:"#limits",className:"mt-1.5 inline-block text-[12px] text-ink-faint",children:"Add a limit to see a bar"}):null]})}a.s(["default",0,y],278893)}],915801,function(a){a.n(a.i(278893))}];
1
+ module.exports=[[355235,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LimitsForm() from the server but LimitsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/(private)/ai/quota/limits-form.tsx","LimitsForm");a.s(["LimitsForm",0,b])},398527,a=>{var b=a.i(355235);a.n(b)},278893,a=>{var b=a.i(907997),c=a.i(175038),d=a.i(938123),e=a.i(996432),f=a.i(395936),g=a.i(685865),h=a.i(803681),i=a.i(791444),j=a.i(384896),k=a.i(849423),l=a.i(916056),m=a.i(462820),n=a.i(955996);let o=["chat","console","models","agent"],p=()=>({requests:0,input:0,cached:0,output:0,errors:0});function q(a,b){a.requests++,a.input+=b.tokensIn??0,a.cached+=b.tokensCached??0,a.output+=(b.tokensOut??0)+(b.tokensThinking??0),b.status>=400&&a.errors++}let r=a=>new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(a);var s=a.i(263972),t=a.i(777302),u=a.i(398527),v=a.i(75148),w=a.i(109307),x=a.i(245710);async function y(a){try{let[b,c]=await Promise.all([(0,k.A)(a),(0,k.S)()]);return function(a,b,c){let d=(0,n.S)(c.getTime()),e=c.getTime()-6048e5,f=b.map(a=>({...a,today:p(),week:p()})),g=new Map(f.map(a=>[a.id,a])),h=null;for(let b of a){if(!o.includes(b.kind))continue;let a=b.at.getTime();if(a<e||a>c.getTime())continue;let f=b.providerId?g.get(b.providerId):void 0;f||b.providerId||"agent"!==b.kind||(h??={id:"vm-agent",name:m.V.providerName,kind:"agent",enabled:!0,today:p(),week:p()},f=h),f&&(q(f.week,b),a>=d&&q(f.today,b))}return h?[...f,h]:f}(b,c,a)}catch{return console.warn("reading the provider usage failed"),[]}}async function z(){let a=await (0,w.B)("owner");if(!a.ok)return(0,b.jsx)(v.f,{role:a.member.role});let c=new Date,[d,e,k,m,n,o]=await Promise.all([(0,t.q)(c),(0,s.d)(),(0,s.Q)(c),(0,l.T)(c),(0,l.K)(c),y(c)]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.AutoRefresh,{at:c.getTime()}),(0,b.jsx)(h.L,{crumbs:[{label:"Manage"},{label:"AI Gateway",href:"/ai"},{label:"Quota"}],title:"Quota",sub:l.t.sub}),(0,b.jsx)(l.L,{view:n,now:c}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]",children:[(0,b.jsx)(h.N,{title:"Provider usage",meta:`Today (${(0,x.D)()}) \xb7 last 7 days`,flush:!0,children:0===o.length?(0,b.jsx)(h.k,{title:"No provider connected",action:(0,b.jsx)(f.default,{href:"/ai/providers",className:(0,h.R)({size:"sm"}),children:"Bring your own key"}),children:"Connect a provider to see its requests and tokens here."}):o.map(a=>(0,b.jsx)(A,{p:a,groups:d.filter(b=>b.providerId===a.id),canLimit:e.some(b=>b.id===a.id)},a.id))}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,b.jsxs)(h.N,{title:"Where these numbers come from",children:[(0,b.jsx)("p",{className:"mb-2 text-[13px] text-ink-soft",children:"From the provider's rate-limit headers when it sends them. Otherwise Watchbell counts the calls it forwards against limits you enter; calls made with the same account outside Watchbell aren't counted. A 429 from a provider marks the row as used up until it resets."}),(0,b.jsxs)("p",{className:"m-0 text-[12.5px] text-ink-faint",children:[l.t.sourceNote&&`${l.t.sourceNote} `,"Day and week windows of your limits reset at 00:00 UTC (weeks on Monday)."]})]}),(0,b.jsx)(h.N,{title:(0,b.jsx)("span",{id:"limits",children:"Limits you enter"}),children:0===e.length?(0,b.jsxs)("p",{className:"m-0 text-[13px] text-ink-soft",children:["Connect a provider first. ",(0,b.jsx)(f.default,{href:"/ai/providers",children:"Bring your own key"})]}):(0,b.jsx)(u.LimitsForm,{providers:e})})]})]}),m&&(0,b.jsx)(l.A,{ag:m}),(0,b.jsx)(h.N,{title:"Per key",meta:"Applied before the provider's limits",flush:!0,children:0===k.length?(0,b.jsx)(h.k,{title:"No active keys",action:(0,b.jsx)(f.default,{href:"/ai/keys",className:(0,h.R)({size:"sm"}),children:"API keys"}),children:"Create a key to see its usage here."}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:i.o,children:[(0,b.jsx)(i.U,{head:["Key","Limit","This minute","Today",""]}),(0,b.jsx)("tbody",{children:k.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:i.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.name})}),(0,b.jsxs)("td",{className:`${i.z} font-mono`,children:[a.ratePerMin," / min"]}),(0,b.jsxs)("td",{className:`${i.z} font-mono`,children:[a.lastMinute,(0,b.jsx)(h.e,{pct:(0,j.c)(a.lastMinute/a.ratePerMin*100),tone:a.lastMinute>=a.ratePerMin?"err":a.lastMinute/a.ratePerMin>=.75?"warn":void 0})]}),(0,b.jsx)("td",{className:`${i.z} font-mono`,children:a.today.toLocaleString("en-US")}),(0,b.jsx)("td",{className:i.z,children:(0,b.jsx)(f.default,{href:"/ai/keys",className:(0,h.R)({size:"sm"}),children:"Change"})})]},a.id))})]})})})]})}function A({p:a,groups:f,canLimit:g}){let i=f.flatMap(a=>a.rows.map(b=>({...b,key:`${a.group}|${b.label}`,group:a.group})));return(0,b.jsxs)("section",{className:"border-t border-line px-4 py-3 first-of-type:border-t-0",children:[(0,b.jsxs)("h3",{className:"mb-1.5 flex items-center gap-2 text-[13px] font-medium",children:["gemini"===a.kind||"agent"===a.kind?(0,b.jsx)(d.f,{size:16,"aria-hidden":!0}):"groq"===a.kind?(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}):(0,b.jsx)(e.f,{size:16,"aria-hidden":!0}),a.name,!a.enabled&&(0,b.jsx)(h.E,{children:"Off"})]}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse text-[12.5px]",children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{className:"text-left text-ink-soft",children:["","Requests","Input","Cached","Output","Errors"].map(a=>(0,b.jsx)("th",{className:"py-1 pr-3 font-medium",children:a},a))})}),(0,b.jsx)("tbody",{className:"font-mono",children:[["Today",a.today],["7 days",a.week]].map(([a,c])=>(0,b.jsxs)("tr",{className:"border-t border-line",children:[(0,b.jsx)("td",{className:"py-1 pr-3 font-sans text-ink-soft",children:a}),[c.requests.toLocaleString("en-US"),r(c.input),r(c.cached),r(c.output),c.errors.toLocaleString("en-US")].map((a,d)=>(0,b.jsx)("td",{className:4===d&&c.errors>0?"py-1 pr-3 text-err":"py-1 pr-3",children:a},d))]},a))})]})}),i.length>0?(0,b.jsx)("ul",{className:"m-0 mt-2 flex list-none flex-col gap-2 p-0",children:i.map(a=>(0,b.jsxs)("li",{className:"text-[12.5px]",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),a.limited&&(0,b.jsx)(h.E,{children:"Used up"}),(0,b.jsxs)("span",{className:"ml-auto font-mono text-ink-soft",children:[a.pctLeft,"% left"]})]}),(0,b.jsx)(h.e,{pct:100-a.pctLeft,tone:a.pctLeft<20?"err":a.pctLeft<50?"warn":void 0}),(0,b.jsxs)("small",{className:"block text-[11.5px] text-ink-faint",children:[a.group," · resets in ",a.resetsIn," · ","header"===a.source?"from the provider's headers":`Watchbell's count of ${(a.used??0).toLocaleString("en-US")} / ${(a.limit??0).toLocaleString("en-US")}`]})]},a.key))}):g?(0,b.jsx)("a",{href:"#limits",className:"mt-1.5 inline-block text-[12px] text-ink-faint",children:"Add a limit to see a bar"}):null]})}a.s(["default",0,z],278893)}],915801,function(a){a.n(a.i(278893))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_quota_1kor9sy67qpiw._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[223538,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(851519),e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(507504),i=a.i(368114);let j=["requests","tokens"],k=["minute","day","week"];var l=a.i(405050);let m=(0,l.createServerReference)("60b0c3b5f14cf715de30a66f539966523152015f68",l.callServer,void 0,l.findSourceMapURL,"saveLimits"),n={minute:"per minute",day:"per day",week:"per week"};function o({provider:a}){let[l,p]=(0,e.useState)(()=>a.limits.map(a=>({...a,limit:String(a.limit)}))),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useTransition)();(0,h.useHoldRefresh)(q);let w=(a,b)=>{p(c=>c.map((c,d)=>d===a?{...c,...b}:c)),r(!0),t(null)};return(0,b.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,b.jsx)("div",{className:"mb-1.5 text-[13px] font-medium",children:a.name}),0===l.length&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-ink-faint",children:"No limits entered. Add one to count calls against it."}),l.map((c,e)=>(0,b.jsxs)("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-x-2 gap-y-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} metric`,value:c.metric,onChange:a=>w(e,{metric:a.target.value}),children:j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} window`,value:c.window,onChange:a=>w(e,{window:a.target.value}),children:k.map(a=>(0,b.jsx)("option",{value:a,children:n[a]},a))}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[120px] font-mono"),inputMode:"numeric","aria-label":`${a.name} limit ${e+1} value`,value:c.limit,onChange:a=>w(e,{limit:a.target.value})}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[150px] font-mono"),"aria-label":`${a.name} limit ${e+1} model (all = every model)`,placeholder:"model, or all",value:c.scope,onChange:a=>w(e,{scope:a.target.value})})]}),(0,b.jsx)("button",{type:"button","aria-label":`Remove limit ${e+1}`,className:"rounded-md p-1.5 text-ink-faint hover:bg-hover hover:text-ink",onClick:()=>{p(a=>a.filter((a,b)=>b!==e)),r(!0),t(null)},children:(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})]},e)),s&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-err",role:"alert",children:s}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(g.K,{size:"sm",disabled:l.length>=10,onClick:()=>{p(a=>[...a,{metric:"requests",scope:"all",limit:"",window:"day"}]),r(!0)},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),"Add limit"]}),(0,b.jsx)(g.K,{size:"sm",variant:"primary",disabled:!q||u,onClick:()=>v(async()=>{try{let b=await m(a.id,l);b.ok?(f.c.success(b.message??"Limits saved."),r(!1),t(null)):t(b.error)}catch{t("Something went wrong. Try again.")}}),children:u?"Saving...":"Save"})]})]})}a.s(["LimitsForm",0,function({providers:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)(o,{provider:a},a.id))})}],223538)}];
1
+ module.exports=[223538,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(851519),e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(507504),i=a.i(368114);let j=["requests","tokens"],k=["minute","day","week"];var l=a.i(405050);let m=(0,l.createServerReference)("6001ae9cdc4df563e933cdc7c5cc2105f915c1ea25",l.callServer,void 0,l.findSourceMapURL,"saveLimits"),n={minute:"per minute",day:"per day",week:"per week"};function o({provider:a}){let[l,p]=(0,e.useState)(()=>a.limits.map(a=>({...a,limit:String(a.limit)}))),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useTransition)();(0,h.useHoldRefresh)(q);let w=(a,b)=>{p(c=>c.map((c,d)=>d===a?{...c,...b}:c)),r(!0),t(null)};return(0,b.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,b.jsx)("div",{className:"mb-1.5 text-[13px] font-medium",children:a.name}),0===l.length&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-ink-faint",children:"No limits entered. Add one to count calls against it."}),l.map((c,e)=>(0,b.jsxs)("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-x-2 gap-y-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} metric`,value:c.metric,onChange:a=>w(e,{metric:a.target.value}),children:j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} window`,value:c.window,onChange:a=>w(e,{window:a.target.value}),children:k.map(a=>(0,b.jsx)("option",{value:a,children:n[a]},a))}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[120px] font-mono"),inputMode:"numeric","aria-label":`${a.name} limit ${e+1} value`,value:c.limit,onChange:a=>w(e,{limit:a.target.value})}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[150px] font-mono"),"aria-label":`${a.name} limit ${e+1} model (all = every model)`,placeholder:"model, or all",value:c.scope,onChange:a=>w(e,{scope:a.target.value})})]}),(0,b.jsx)("button",{type:"button","aria-label":`Remove limit ${e+1}`,className:"rounded-md p-1.5 text-ink-faint hover:bg-hover hover:text-ink",onClick:()=>{p(a=>a.filter((a,b)=>b!==e)),r(!0),t(null)},children:(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})]},e)),s&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-err",role:"alert",children:s}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(g.K,{size:"sm",disabled:l.length>=10,onClick:()=>{p(a=>[...a,{metric:"requests",scope:"all",limit:"",window:"day"}]),r(!0)},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),"Add limit"]}),(0,b.jsx)(g.K,{size:"sm",variant:"primary",disabled:!q||u,onClick:()=>v(async()=>{try{let b=await m(a.id,l);b.ok?(f.c.success(b.message??"Limits saved."),r(!1),t(null)):t(b.error)}catch{t("Something went wrong. Try again.")}}),children:u?"Saving...":"Save"})]})]})}a.s(["LimitsForm",0,function({providers:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)(o,{provider:a},a.id))})}],223538)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_quota_limits-form_tsx_1vouaaf560z_x._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[918076,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["AI & API","AI Gateway"],children:(0,b.jsx)(c.Z,{lines:8})})}])},232703,function(a){a.n(a.i(918076))}];
1
+ module.exports=[918076,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["Manage","AI Gateway"],children:(0,b.jsx)(c.Z,{lines:8})})}])},232703,function(a){a.n(a.i(918076))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_quota_loading_tsx_1hhnum-g2eq3n._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[[984890,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LimitsForm() from the server but LimitsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/(private)/ai/usage/limits-form.tsx","LimitsForm");a.s(["LimitsForm",0,b])},500762,a=>{var b=a.i(984890);a.n(b)},258291,a=>{var b=a.i(907997);let c=(0,a.i(377269).f)("outline","activity","Activity",[["path",{d:"M3 12h4l3 8l4 -16l3 8h4",key:"svg-0"}]]);var d=a.i(735453),e=a.i(395936),f=a.i(252302),g=a.i(803681),h=a.i(685865),i=a.i(75148),j=a.i(109307),k=a.i(462820),l=a.i(139138),m=a.i(690041),n=a.i(849423),o=a.i(484458),p=a.i(916056),q=a.i(912459),r=a.i(955996),s=a.i(500762);let t=new Intl.NumberFormat("en");function u({n:a}){let c="hub"===a.kind?132:150,d="hub"===a.kind?46:40,e=(a.chips??[]).slice(0,4);return(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y-d/2,width:c,height:d,rx:7,className:"hub"===a.kind?"fill-ink stroke-ink":"fill-surface stroke-line-strong",strokeWidth:1}),(0,b.jsx)("text",{x:a.x,y:a.y-3,textAnchor:"middle",className:"hub"===a.kind?"fill-surface text-[13px] font-semibold":"fill-ink text-[12.5px] font-medium",children:a.label.length>22?`${a.label.slice(0,21)}…`:a.label}),(0,b.jsx)("text",{x:a.x,y:a.y+12,textAnchor:"middle",className:"hub"===a.kind?"fill-surface font-mono text-[10.5px] opacity-80":"fill-ink-soft font-mono text-[10.5px]",children:"hub"===a.kind?a.sub:`${a.sub} \xb7 ${t.format(a.requests)} req`}),e.map((e,f)=>(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y+d/2+4+17*f,width:c,height:14,rx:3,className:e.active?"fill-brand-soft stroke-brand":"fill-surface-2 stroke-line",strokeWidth:.75}),(0,b.jsx)("text",{x:a.x,y:a.y+d/2+14+17*f,textAnchor:"middle",className:e.active?"fill-brand font-mono text-[9.5px]":"fill-ink-faint font-mono text-[9.5px]",children:e.id.length>26?`${e.id.slice(0,25)}…`:e.id})]},e.id)),(a.chips?.length??0)>e.length&&(0,b.jsxs)("text",{x:a.x,y:a.y+d/2+14+17*e.length,textAnchor:"middle",className:"fill-ink-faint text-[10px]",children:["+",(a.chips?.length??0)-e.length," more"]})]})}function v({graph:a}){let c=a.nodes[0],d=new Map(a.nodes.map(a=>[a.id,a])),e=a.edges.map(a=>`${d.get(a.to)?.label}: ${a.running?"running":a.active?"traffic":"no traffic"}`).join("; ");return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("svg",{viewBox:`0 0 ${a.width} ${a.height+40}`,className:"block h-auto w-full min-w-[560px]",role:"img","aria-label":`Sources of AI traffic. ${e}`,children:[a.edges.map(a=>{let e=d.get(a.to);return e?(0,b.jsxs)("g",{children:[(0,b.jsx)("line",{x1:c.x,y1:c.y,x2:e.x,y2:e.y,className:a.active?"stroke-brand":"stroke-line-strong",strokeWidth:a.running?3.5:a.active?1.75:1,strokeDasharray:a.active?void 0:"4 4"}),a.running&&(0,b.jsx)("text",{x:(c.x+e.x)/2,y:(c.y+e.y)/2-7,textAnchor:"middle",className:"fill-brand font-mono text-[11px] font-medium",children:"running"})]},a.to):null}),a.nodes.map(a=>(0,b.jsx)(u,{n:a},a.id))]})})}let w=new Intl.NumberFormat("en"),x=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}),y="font-mono text-[24px] font-semibold tracking-tight",z="text-[11.5px] font-medium uppercase tracking-wide text-ink-soft",A="mt-1 text-[12px] text-ink-soft",B="px-3 py-2 text-left text-[12px] font-medium text-ink-soft",C="border-t border-line px-3 py-2";async function D({searchParams:a}){let t=await (0,j.B)("owner");if(!t.ok)return(0,b.jsx)(i.f,{role:t.member.role});let u=await a,E=(0,r.D)(u.range),F="1"===u.api,G=new Date,H=(0,r.q)(E,G),[{rows:I,capped:J},K,L,M,N,O,P,Q,R]=await Promise.all([(0,n.v)(H.since),(0,n.c)(F?[...r.b,...r.X]:[...r.b],50),(0,n.e)(G),(0,n.q)(H.since),(0,n.S)(),(0,n.m)(G),(0,n.a)(G).catch(()=>({activity:null,limits:{...m.m}})),(0,o.y)(G).catch(()=>null),(0,o.V)().catch(()=>null)]),S=Q?.report?Q.report.models.filter(a=>(0,o._)(Q.report,Q.prefs,Q.allowed).includes(a.id)):[],T=P.activity?.running??null,U=(0,r.L)(I),V=(0,r.V)(I,H),W=!!Q?.report&&(0,o.U)(Q.report,G),X=(0,r.K)({agModels:S,providers:N,clients:O,rows:I,byAgent:M,running:T,agConnected:W}),Y=L.reduce((a,b)=>!a||b.at>a?b.at:a,null),Z=(0,r.z)(T,Y,Q?.report?.models??[],G),$=(0,m.X)(L,P.limits,G),_="requests"===u.chart?"requests":"tokens",aa=a=>{let b=new URLSearchParams;return b.set("range",a.range??E),(a.api??F)&&b.set("api","1"),(a.chart??_)==="requests"&&b.set("chart","requests"),`/ai/usage?${b.toString()}`},ab=a=>(0,l.f)("rounded-md px-2.5 py-1 text-[13px] hover:no-underline",a?"bg-nav-active font-medium text-nav-active-text":"text-ink-soft hover:bg-hover hover:text-ink");return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.AutoRefresh,{at:G.getTime(),everyMs:Z.running?5e3:void 0}),(0,b.jsx)(g.L,{crumbs:[{label:"AI & API"},{label:"AI Gateway",href:"/ai"},{label:"Usage"}],title:"Usage & Analytics",sub:k.V.sub}),(0,b.jsxs)("nav",{"aria-label":"Range",className:"flex flex-wrap items-center gap-1",children:[r.d.map(a=>(0,b.jsx)(e.default,{href:aa({range:a.key}),"aria-current":a.key===E?"page":void 0,className:ab(a.key===E),children:a.label},a.key)),"all"===E&&(0,b.jsx)("span",{className:"ml-2 text-[12px] text-ink-faint",children:"Watchbell keeps 30 days."})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-5",children:[(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Total requests"}),(0,b.jsx)("div",{className:y,children:w.format(U.requests)}),(0,b.jsxs)("div",{className:A,children:[w.format(U.agentRequests)," ",k.V.agentRequests," · ",w.format(U.providerRequests)," providers",U.errors?` \xb7 ${U.errors} failed`:""]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Input tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.input),children:x.format(U.input)}),(0,b.jsx)("div",{className:A,children:"New input, not from cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Cached tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.cached),children:x.format(U.cached)}),(0,b.jsx)("div",{className:A,children:"Read from the prompt cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Output tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.output),children:x.format(U.output)}),(0,b.jsxs)("div",{className:A,children:["incl. ",(0,b.jsx)("span",{className:"font-mono",children:x.format(U.thinking)})," thinking"]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Est. cost"}),(0,b.jsx)("div",{className:y,children:"$0.00"}),(0,b.jsxs)("div",{className:A,children:[k.V.costAgents," · providers: ",(0,b.jsx)("span",{title:"No prices are known for your own keys",children:"—"})]})]})]}),(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[minmax(0,1fr)_320px]",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)(g.N,{title:"Sources",meta:(0,b.jsx)("span",{className:"font-mono",children:r.d.find(a=>a.key===E)?.label}),children:[(0,b.jsxs)("div",{className:(0,l.f)("mb-2 flex items-center gap-2 rounded-md border px-3 py-2 text-[13px]",Z.running?"border-brand bg-brand-soft text-ink":"border-line text-ink-soft"),role:"status",children:[Z.running?(0,b.jsx)(c,{size:16,className:"text-brand","aria-hidden":!0}):(0,b.jsx)(d.f,{size:16,"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:Z.text})]}),(0,b.jsx)(v,{graph:X})]}),(0,b.jsxs)(g.N,{title:"tokens"===_?"Tokens":"Requests",meta:(0,b.jsxs)("span",{className:"flex gap-1",children:[(0,b.jsx)(e.default,{href:aa({chart:"tokens"}),className:ab("tokens"===_),children:"Tokens"}),(0,b.jsx)(e.default,{href:aa({chart:"requests"}),className:ab("requests"===_),children:"Requests"})]}),children:[(0,b.jsx)(f.T,{height:140,label:"tokens"===_?`Tokens per ${H.bucket}: new input, cached, output`:`Requests per ${H.bucket}`,parts:"tokens"===_?["New input","Cached","Output"]:["Requests"],bars:V.map(a=>({key:a.t.toISOString(),title:"tokens"===_?`${a.label}: ${w.format(a.fresh)} new \xb7 ${w.format(a.cached)} cached \xb7 ${w.format(a.output)} out`:`${a.label}: ${w.format(a.requests)} requests`,values:"tokens"===_?[a.fresh,a.cached,a.output]:[a.requests]}))}),(0,b.jsxs)("div",{className:"mt-1 flex justify-between font-mono text-[11px] text-ink-faint",children:[(0,b.jsx)("span",{children:V[0]?.label}),(0,b.jsx)("span",{children:V.at(-1)?.label})]}),J&&(0,b.jsx)("p",{className:"m-0 mt-2 text-[12px] text-warn",children:"Only the newest 20,000 requests are counted in this range."})]})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsx)(p.V,{report:R,now:G}),W&&(0,b.jsxs)(g.N,{title:k.V.quotaTitle,meta:(0,b.jsx)(s.LimitsForm,{values:P.limits}),children:[(0,b.jsx)("ul",{className:"m-0 flex list-none flex-col gap-3 p-0",children:$.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)("span",{className:"ml-auto font-mono text-[12px] text-ink-soft",children:null===a.limit?`${x.format(a.used)} used`:`${x.format(a.remaining??0)} left of ${x.format(a.limit)}`})]}),null!==a.limit&&null!==a.pct&&(0,b.jsx)(g.e,{pct:a.pct,tone:a.pct>=100?"err":a.pct>=80?"warn":void 0}),(0,b.jsxs)("div",{className:"mt-1 text-[12px] text-ink-faint",children:[null===a.limit?"No limit entered · ":"",a.runs," runs in ",a.window,a.resetsAt?` \xb7 resets as the oldest run leaves the window (~${(0,q.g)(a.resetsAt,G)})`:""]})]},a.key))}),(0,b.jsxs)("p",{className:"m-0 mt-3 text-[12px] text-ink-faint",children:[k.V.quotaNote," ","Counted: new input + output + thinking; cached input excluded."]})]})]})]}),(0,b.jsx)(g.N,{title:"Recent requests",meta:(0,b.jsx)(e.default,{href:aa({api:!F}),className:"text-[12.5px]","aria-pressed":F,children:F?"Hide API calls":"Include API calls"}),flush:!0,children:0===K.length?(0,b.jsx)(g.k,{title:"No requests yet",children:k.V.emptyRecent}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse text-[13px]",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:B,children:"Model"}),(0,b.jsx)("th",{className:B,children:"Purpose"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"New ↑"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Cached"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Out ↓"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Duration"}),(0,b.jsx)("th",{className:B,children:"Status"}),(0,b.jsx)("th",{className:B,children:"When"})]})}),(0,b.jsx)("tbody",{children:K.map((a,b)=>(0,r.I)(a,G,b)).map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:`${C} max-w-[260px] truncate font-mono text-[12.5px]`,children:a.model}),(0,b.jsx)("td",{className:`${C} text-ink-soft`,children:a.purpose}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.fresh?"–":w.format(a.fresh)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.cached?"–":w.format(a.cached)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.out?"–":w.format(a.out)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:a.durationMs<1e3?`${a.durationMs} ms`:(0,q._)(a.durationMs)}),(0,b.jsx)("td",{className:C,children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-mono text-[12px]",children:[(0,b.jsx)("i",{className:(0,l.f)("inline-block size-2 rounded-full","ok"===a.tone?"bg-ok":"warn"===a.tone?"bg-warn-icon":"bg-err"),"aria-hidden":!0}),a.status]})}),(0,b.jsx)("td",{className:`${C} whitespace-nowrap text-ink-soft`,title:a.whenTitle,children:a.when})]},a.key))})]})})})]})}a.s(["default",0,D],258291)}],91185,function(a){a.n(a.i(258291))}];
1
+ module.exports=[[984890,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LimitsForm() from the server but LimitsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/(private)/ai/usage/limits-form.tsx","LimitsForm");a.s(["LimitsForm",0,b])},500762,a=>{var b=a.i(984890);a.n(b)},258291,a=>{var b=a.i(907997);let c=(0,a.i(377269).f)("outline","activity","Activity",[["path",{d:"M3 12h4l3 8l4 -16l3 8h4",key:"svg-0"}]]);var d=a.i(735453),e=a.i(395936),f=a.i(252302),g=a.i(803681),h=a.i(685865),i=a.i(75148),j=a.i(109307),k=a.i(462820),l=a.i(139138),m=a.i(690041),n=a.i(849423),o=a.i(484458),p=a.i(916056),q=a.i(912459),r=a.i(955996),s=a.i(500762);let t=new Intl.NumberFormat("en");function u({n:a}){let c="hub"===a.kind?132:150,d="hub"===a.kind?46:40,e=(a.chips??[]).slice(0,4);return(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y-d/2,width:c,height:d,rx:7,className:"hub"===a.kind?"fill-ink stroke-ink":"fill-surface stroke-line-strong",strokeWidth:1}),(0,b.jsx)("text",{x:a.x,y:a.y-3,textAnchor:"middle",className:"hub"===a.kind?"fill-surface text-[13px] font-semibold":"fill-ink text-[12.5px] font-medium",children:a.label.length>22?`${a.label.slice(0,21)}…`:a.label}),(0,b.jsx)("text",{x:a.x,y:a.y+12,textAnchor:"middle",className:"hub"===a.kind?"fill-surface font-mono text-[10.5px] opacity-80":"fill-ink-soft font-mono text-[10.5px]",children:"hub"===a.kind?a.sub:`${a.sub} \xb7 ${t.format(a.requests)} req`}),e.map((e,f)=>(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y+d/2+4+17*f,width:c,height:14,rx:3,className:e.active?"fill-brand-soft stroke-brand":"fill-surface-2 stroke-line",strokeWidth:.75}),(0,b.jsx)("text",{x:a.x,y:a.y+d/2+14+17*f,textAnchor:"middle",className:e.active?"fill-brand font-mono text-[9.5px]":"fill-ink-faint font-mono text-[9.5px]",children:e.id.length>26?`${e.id.slice(0,25)}…`:e.id})]},e.id)),(a.chips?.length??0)>e.length&&(0,b.jsxs)("text",{x:a.x,y:a.y+d/2+14+17*e.length,textAnchor:"middle",className:"fill-ink-faint text-[10px]",children:["+",(a.chips?.length??0)-e.length," more"]})]})}function v({graph:a}){let c=a.nodes[0],d=new Map(a.nodes.map(a=>[a.id,a])),e=a.edges.map(a=>`${d.get(a.to)?.label}: ${a.running?"running":a.active?"traffic":"no traffic"}`).join("; ");return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("svg",{viewBox:`0 0 ${a.width} ${a.height+40}`,className:"block h-auto w-full min-w-[560px]",role:"img","aria-label":`Sources of AI traffic. ${e}`,children:[a.edges.map(a=>{let e=d.get(a.to);return e?(0,b.jsxs)("g",{children:[(0,b.jsx)("line",{x1:c.x,y1:c.y,x2:e.x,y2:e.y,className:a.active?"stroke-brand":"stroke-line-strong",strokeWidth:a.running?3.5:a.active?1.75:1,strokeDasharray:a.active?void 0:"4 4"}),a.running&&(0,b.jsx)("text",{x:(c.x+e.x)/2,y:(c.y+e.y)/2-7,textAnchor:"middle",className:"fill-brand font-mono text-[11px] font-medium",children:"running"})]},a.to):null}),a.nodes.map(a=>(0,b.jsx)(u,{n:a},a.id))]})})}let w=new Intl.NumberFormat("en"),x=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}),y="font-mono text-[24px] font-semibold tracking-tight",z="text-[11.5px] font-medium uppercase tracking-wide text-ink-soft",A="mt-1 text-[12px] text-ink-soft",B="px-3 py-2 text-left text-[12px] font-medium text-ink-soft",C="border-t border-line px-3 py-2";async function D({searchParams:a}){let t=await (0,j.B)("owner");if(!t.ok)return(0,b.jsx)(i.f,{role:t.member.role});let u=await a,E=(0,r.D)(u.range),F="1"===u.api,G=new Date,H=(0,r.q)(E,G),[{rows:I,capped:J},K,L,M,N,O,P,Q,R]=await Promise.all([(0,n.v)(H.since),(0,n.c)(F?[...r.b,...r.X]:[...r.b],50),(0,n.e)(G),(0,n.q)(H.since),(0,n.S)(),(0,n.m)(G),(0,n.a)(G).catch(()=>({activity:null,limits:{...m.m}})),(0,o.y)(G).catch(()=>null),(0,o.V)().catch(()=>null)]),S=Q?.report?Q.report.models.filter(a=>(0,o._)(Q.report,Q.prefs,Q.allowed).includes(a.id)):[],T=P.activity?.running??null,U=(0,r.L)(I),V=(0,r.V)(I,H),W=!!Q?.report&&(0,o.U)(Q.report,G),X=(0,r.K)({agModels:S,providers:N,clients:O,rows:I,byAgent:M,running:T,agConnected:W}),Y=L.reduce((a,b)=>!a||b.at>a?b.at:a,null),Z=(0,r.z)(T,Y,Q?.report?.models??[],G),$=(0,m.X)(L,P.limits,G),_="requests"===u.chart?"requests":"tokens",aa=a=>{let b=new URLSearchParams;return b.set("range",a.range??E),(a.api??F)&&b.set("api","1"),(a.chart??_)==="requests"&&b.set("chart","requests"),`/ai/usage?${b.toString()}`},ab=a=>(0,l.f)("rounded-md px-2.5 py-1 text-[13px] hover:no-underline",a?"bg-nav-active font-medium text-nav-active-text":"text-ink-soft hover:bg-hover hover:text-ink");return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.AutoRefresh,{at:G.getTime(),everyMs:Z.running?5e3:void 0}),(0,b.jsx)(g.L,{crumbs:[{label:"Manage"},{label:"AI Gateway",href:"/ai"},{label:"Usage"}],title:"Usage & Analytics",sub:k.V.sub}),(0,b.jsxs)("nav",{"aria-label":"Range",className:"flex flex-wrap items-center gap-1",children:[r.d.map(a=>(0,b.jsx)(e.default,{href:aa({range:a.key}),"aria-current":a.key===E?"page":void 0,className:ab(a.key===E),children:a.label},a.key)),"all"===E&&(0,b.jsx)("span",{className:"ml-2 text-[12px] text-ink-faint",children:"Watchbell keeps 30 days."})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-5",children:[(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Total requests"}),(0,b.jsx)("div",{className:y,children:w.format(U.requests)}),(0,b.jsxs)("div",{className:A,children:[w.format(U.agentRequests)," ",k.V.agentRequests," · ",w.format(U.providerRequests)," providers",U.errors?` \xb7 ${U.errors} failed`:""]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Input tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.input),children:x.format(U.input)}),(0,b.jsx)("div",{className:A,children:"New input, not from cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Cached tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.cached),children:x.format(U.cached)}),(0,b.jsx)("div",{className:A,children:"Read from the prompt cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Output tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.output),children:x.format(U.output)}),(0,b.jsxs)("div",{className:A,children:["incl. ",(0,b.jsx)("span",{className:"font-mono",children:x.format(U.thinking)})," thinking"]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Est. cost"}),(0,b.jsx)("div",{className:y,children:"$0.00"}),(0,b.jsxs)("div",{className:A,children:[k.V.costAgents," · providers: ",(0,b.jsx)("span",{title:"No prices are known for your own keys",children:"—"})]})]})]}),(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[minmax(0,1fr)_320px]",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)(g.N,{title:"Sources",meta:(0,b.jsx)("span",{className:"font-mono",children:r.d.find(a=>a.key===E)?.label}),children:[(0,b.jsxs)("div",{className:(0,l.f)("mb-2 flex items-center gap-2 rounded-md border px-3 py-2 text-[13px]",Z.running?"border-brand bg-brand-soft text-ink":"border-line text-ink-soft"),role:"status",children:[Z.running?(0,b.jsx)(c,{size:16,className:"text-brand","aria-hidden":!0}):(0,b.jsx)(d.f,{size:16,"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:Z.text})]}),(0,b.jsx)(v,{graph:X})]}),(0,b.jsxs)(g.N,{title:"tokens"===_?"Tokens":"Requests",meta:(0,b.jsxs)("span",{className:"flex gap-1",children:[(0,b.jsx)(e.default,{href:aa({chart:"tokens"}),className:ab("tokens"===_),children:"Tokens"}),(0,b.jsx)(e.default,{href:aa({chart:"requests"}),className:ab("requests"===_),children:"Requests"})]}),children:[(0,b.jsx)(f.T,{height:140,label:"tokens"===_?`Tokens per ${H.bucket}: new input, cached, output`:`Requests per ${H.bucket}`,parts:"tokens"===_?["New input","Cached","Output"]:["Requests"],bars:V.map(a=>({key:a.t.toISOString(),title:"tokens"===_?`${a.label}: ${w.format(a.fresh)} new \xb7 ${w.format(a.cached)} cached \xb7 ${w.format(a.output)} out`:`${a.label}: ${w.format(a.requests)} requests`,values:"tokens"===_?[a.fresh,a.cached,a.output]:[a.requests]}))}),(0,b.jsxs)("div",{className:"mt-1 flex justify-between font-mono text-[11px] text-ink-faint",children:[(0,b.jsx)("span",{children:V[0]?.label}),(0,b.jsx)("span",{children:V.at(-1)?.label})]}),J&&(0,b.jsx)("p",{className:"m-0 mt-2 text-[12px] text-warn",children:"Only the newest 20,000 requests are counted in this range."})]})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsx)(p.V,{report:R,now:G}),W&&(0,b.jsxs)(g.N,{title:k.V.quotaTitle,meta:(0,b.jsx)(s.LimitsForm,{values:P.limits}),children:[(0,b.jsx)("ul",{className:"m-0 flex list-none flex-col gap-3 p-0",children:$.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)("span",{className:"ml-auto font-mono text-[12px] text-ink-soft",children:null===a.limit?`${x.format(a.used)} used`:`${x.format(a.remaining??0)} left of ${x.format(a.limit)}`})]}),null!==a.limit&&null!==a.pct&&(0,b.jsx)(g.e,{pct:a.pct,tone:a.pct>=100?"err":a.pct>=80?"warn":void 0}),(0,b.jsxs)("div",{className:"mt-1 text-[12px] text-ink-faint",children:[null===a.limit?"No limit entered · ":"",a.runs," runs in ",a.window,a.resetsAt?` \xb7 resets as the oldest run leaves the window (~${(0,q.X)(a.resetsAt,G)})`:""]})]},a.key))}),(0,b.jsxs)("p",{className:"m-0 mt-3 text-[12px] text-ink-faint",children:[k.V.quotaNote," ","Counted: new input + output + thinking; cached input excluded."]})]})]})]}),(0,b.jsx)(g.N,{title:"Recent requests",meta:(0,b.jsx)(e.default,{href:aa({api:!F}),className:"text-[12.5px]","aria-pressed":F,children:F?"Hide API calls":"Include API calls"}),flush:!0,children:0===K.length?(0,b.jsx)(g.k,{title:"No requests yet",children:k.V.emptyRecent}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse text-[13px]",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:B,children:"Model"}),(0,b.jsx)("th",{className:B,children:"Purpose"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"New ↑"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Cached"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Out ↓"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Duration"}),(0,b.jsx)("th",{className:B,children:"Status"}),(0,b.jsx)("th",{className:B,children:"When"})]})}),(0,b.jsx)("tbody",{children:K.map((a,b)=>(0,r.I)(a,G,b)).map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:`${C} max-w-[260px] truncate font-mono text-[12.5px]`,children:a.model}),(0,b.jsx)("td",{className:`${C} text-ink-soft`,children:a.purpose}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.fresh?"–":w.format(a.fresh)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.cached?"–":w.format(a.cached)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.out?"–":w.format(a.out)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:a.durationMs<1e3?`${a.durationMs} ms`:(0,q._)(a.durationMs)}),(0,b.jsx)("td",{className:C,children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-mono text-[12px]",children:[(0,b.jsx)("i",{className:(0,l.f)("inline-block size-2 rounded-full","ok"===a.tone?"bg-ok":"warn"===a.tone?"bg-warn-icon":"bg-err"),"aria-hidden":!0}),a.status]})}),(0,b.jsx)("td",{className:`${C} whitespace-nowrap text-ink-soft`,title:a.whenTitle,children:a.when})]},a.key))})]})})})]})}a.s(["default",0,D],258291)}],91185,function(a){a.n(a.i(258291))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_1v003vrkwk19w._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[348021,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114);let g=[{key:"gemini5h",label:"Gemini · 5 h",family:"gemini",windowMs:18e6,window:"5 h"},{key:"geminiWeek",label:"Gemini · week",family:"gemini",windowMs:6048e5,window:"7 days"},{key:"claude5h",label:"Claude · 5 h",family:"claude",windowMs:18e6,window:"5 h"},{key:"claudeWeek",label:"Claude · week",family:"claude",windowMs:6048e5,window:"7 days"}];var h=a.i(405050);let i=(0,h.createServerReference)("40b5d5669ef989f9ffbc17fd1b7a96244ac2097954",h.callServer,void 0,h.findSourceMapURL,"saveAgLimits");a.s(["LimitsForm",0,function({values:a}){let[h,j]=(0,c.useTransition)(),[k,l]=(0,c.useState)(!1);return k?(0,b.jsxs)("form",{className:"flex flex-col gap-2",action:a=>j(async()=>{try{let b=await i(a);b.ok?(d.c.success(b.message??"Saved."),l(!1)):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}}),children:[g.map(c=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"w-28 shrink-0 text-ink-soft",children:c.label}),(0,b.jsx)("input",{name:c.key,inputMode:"numeric",autoComplete:"off",placeholder:"No limit",defaultValue:a[c.key]??"",className:(0,f.f)(e.S,"min-w-0 flex-1 py-1 text-right font-mono text-[12.5px]"),"aria-label":`${c.label} limit in tokens`})]},c.key)),(0,b.jsx)("p",{className:"m-0 text-[12px] text-ink-faint",children:"Tokens per window: new input + output + thinking. Cached input isn't counted."}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(e.K,{size:"sm",variant:"primary",type:"submit",disabled:h,children:h?"Saving…":"Save"}),(0,b.jsx)(e.K,{size:"sm",type:"button",disabled:h,onClick:()=>l(!1),children:"Cancel"})]})]}):(0,b.jsx)(e.K,{size:"sm",onClick:()=>l(!0),children:"Edit limits"})}],348021)}];
1
+ module.exports=[348021,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114);let g=[{key:"gemini5h",label:"Gemini · 5 h",family:"gemini",windowMs:18e6,window:"5 h"},{key:"geminiWeek",label:"Gemini · week",family:"gemini",windowMs:6048e5,window:"7 days"},{key:"claude5h",label:"Claude · 5 h",family:"claude",windowMs:18e6,window:"5 h"},{key:"claudeWeek",label:"Claude · week",family:"claude",windowMs:6048e5,window:"7 days"}];var h=a.i(405050);let i=(0,h.createServerReference)("40df3302cde9b50afe80f610c5ed6bfeba94c63242",h.callServer,void 0,h.findSourceMapURL,"saveAgLimits");a.s(["LimitsForm",0,function({values:a}){let[h,j]=(0,c.useTransition)(),[k,l]=(0,c.useState)(!1);return k?(0,b.jsxs)("form",{className:"flex flex-col gap-2",action:a=>j(async()=>{try{let b=await i(a);b.ok?(d.c.success(b.message??"Saved."),l(!1)):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}}),children:[g.map(c=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"w-28 shrink-0 text-ink-soft",children:c.label}),(0,b.jsx)("input",{name:c.key,inputMode:"numeric",autoComplete:"off",placeholder:"No limit",defaultValue:a[c.key]??"",className:(0,f.f)(e.S,"min-w-0 flex-1 py-1 text-right font-mono text-[12.5px]"),"aria-label":`${c.label} limit in tokens`})]},c.key)),(0,b.jsx)("p",{className:"m-0 text-[12px] text-ink-faint",children:"Tokens per window: new input + output + thinking. Cached input isn't counted."}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(e.K,{size:"sm",variant:"primary",type:"submit",disabled:h,children:h?"Saving…":"Save"}),(0,b.jsx)(e.K,{size:"sm",type:"button",disabled:h,onClick:()=>l(!1),children:"Cancel"})]})]}):(0,b.jsx)(e.K,{size:"sm",onClick:()=>l(!0),children:"Edit limits"})}],348021)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[748121,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["AI & API","AI Gateway"],children:(0,b.jsx)(c.G,{rows:8,cols:8})})}])},461708,function(a){a.n(a.i(748121))}];
1
+ module.exports=[748121,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["Manage","AI Gateway"],children:(0,b.jsx)(c.G,{rows:8,cols:8})})}])},461708,function(a){a.n(a.i(748121))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(742680),g=a.i(293078),h=a.i(752818);a.s(["AppMenu",0,function({app:a}){let[,i]=(0,c.useTransition)(),j=(0,h.f)(),k=[{label:"Redeploy",later:6},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[],{label:"View logs",later:5}];return a.monitorCount>0&&k.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>j(()=>new Promise(b=>i(async()=>{try{let b=await (0,g.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}finally{b()}})))}),(0,b.jsx)(e.RowMenu,{items:k,label:(0,f.J)(a.name)})}])},293078,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60366e1f5a6a959733f3b03a61c7a3da273ded3b18",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],293078);var d=a.i(572131);a.s(["f",0,function(){let a=(0,d.useRef)(!1);return b=>!a.current&&(a.current=!0,b().catch(()=>void 0).finally(()=>{a.current=!1}),!0)}],752818)}]})();
1
+ (()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(742680),g=a.i(224766),h=a.i(752818);a.s(["AppMenu",0,function({app:a}){let[,i]=(0,c.useTransition)(),j=(0,h.f)(),k=[{label:"Redeploy",later:6},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[],{label:"View logs",later:5}];return a.monitorCount>0&&k.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>j(()=>new Promise(b=>i(async()=>{try{let b=await (0,g.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}finally{b()}})))}),(0,b.jsx)(e.RowMenu,{items:k,label:(0,f.J)(a.name)})}])},224766,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60859733a4976da0b21f1b15bd4bbb739bade49c9d",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],224766);var d=a.i(572131);a.s(["f",0,function(){let a=(0,d.useRef)(!1);return b=>!a.current&&(a.current=!0,b().catch(()=>void 0).finally(()=>{a.current=!1}),!0)}],752818)}]})();
2
2
 
3
- //# sourceMappingURL=src_app_%28console%29_1ppp9j5e2rtqf._.js.map
3
+ //# sourceMappingURL=src_app_%28console%29_1l7irblrb5fae._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[177727,a=>{"use strict";var b=a.i(907997);let c=(0,a.i(377269).f)("outline","tools","Tools",[["path",{d:"M3 21h4l13 -13a1.5 1.5 0 0 0 -4 -4l-13 13v4",key:"svg-0"}],["path",{d:"M14.5 5.5l4 4",key:"svg-1"}],["path",{d:"M12 8l-5 -5l-4 4l5 5",key:"svg-2"}],["path",{d:"M7 8l-1.5 1.5",key:"svg-3"}],["path",{d:"M16 12l5 5l-4 4l-5 -5",key:"svg-4"}],["path",{d:"M16 17l-1.5 1.5",key:"svg-5"}]]);a.i(570396);var d=a.i(673727),e=a.i(803681),f=a.i(75148),g=a.i(109307),h=a.i(534908);let i=[{group:"Home",items:[{key:"overview",label:"Overview",href:"/overview",icon:"dashboard",stage:2},{key:"topology",label:"Topology",href:"/topology",icon:"topology",stage:4},{key:"events",label:"Events",href:"/events",icon:"activity",stage:2}]},{group:"Workloads",items:[{key:"apps",label:"Applications",href:"/apps",icon:"apps",stage:2},{key:"deployments",label:"Deployments",href:"/deployments",icon:"rocket",stage:2}]},{group:"GitHub",items:[{key:"repos",label:"Repositories",href:"/repos",icon:"github",stage:9}]},{group:"Network",items:[{key:"domains",label:"Domains",href:"/domains",icon:"world",stage:4},{key:"dns",label:"DNS records",href:"/dns",icon:"sitemap",stage:4}]},{group:"Databases",items:[{key:"supabase",label:"Supabase",href:"/supabase",icon:"bolt",stage:3},{key:"neon",label:"Neon",href:"/neon",icon:"database",stage:3},{key:"firebase",label:"Firebase",href:"/firebase",icon:"flame",stage:3},{key:"turso",label:"Turso",href:"/turso",icon:"database",stage:8},{key:"upstash",label:"Upstash Redis",href:"/upstash",icon:"bolt",stage:8},{key:"d1",label:"Cloudflare D1",href:"/d1",icon:"cloud",stage:8},{key:"sql",label:"SQL console",href:"/sql",icon:"terminal",stage:9,ownerOnly:!0},{key:"catalog",label:"Free databases",href:"/catalog",icon:"books",stage:7}]},{group:"Observe",items:[{key:"uptime",label:"Uptime",href:"/uptime",icon:"heartbeat",stage:2},{key:"alerts",label:"Alerts",href:"/alerts",icon:"bell",stage:5},{key:"logs",label:"Logs",href:"/logs",icon:"file",stage:5,hideForViewer:!0},{key:"status",label:"Provider status",href:"/status",icon:"broadcast",stage:5}]},{group:"Administration",items:[{key:"connections",label:"Connections",href:"/connections",icon:"plug",stage:1,ownerOnly:!0},{key:"backups",label:"Backups",href:"/backups",icon:"cloud-upload",stage:7,ownerOnly:!0},{key:"settings",label:"Settings",href:"/settings",icon:"settings",stage:1,ownerOnly:!0}]}],j={nav:[]};function k(a=j){let b=[...i];for(let c of a.nav){let a=b.findIndex(a=>a.group===c.after),d={group:c.group,items:c.items};a<0?b.push(d):b.splice(a+1,0,d)}return b}async function l({params:a}){var i;let{slug:m}=await a,n=function(a,b=j){let c="/"+(a.split("/").filter(Boolean)[0]??"");return k(b).flatMap(a=>a.items).find(a=>a.href===c)??null}("/"+m.join("/"),h.extensions);n||(0,d.notFound)();let o=await (0,g.I)();return(i=o.role,n.ownerOnly?"owner"!==i:n.hideForViewer&&"viewer"===i)?(0,b.jsx)(f.f,{role:o.role}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:function(a,b=j){return k(b).find(b=>b.items.some(b=>b.key===a))?.group??""}(n.key,h.extensions)},{label:n.label}],title:n.label}),(0,b.jsx)(e.N,{children:(0,b.jsxs)(e.k,{icon:c,title:`${n.label} arrives in stage ${n.stage}`,children:["This page is in the mockup and gets built in stage ",n.stage,". Connections and Settings work now."]})})]})}a.s(["default",0,l],177727)},68867,function(a){a.n(a.i(177727))}];
1
+ module.exports=[177727,a=>{"use strict";var b=a.i(907997);let c=(0,a.i(377269).f)("outline","tools","Tools",[["path",{d:"M3 21h4l13 -13a1.5 1.5 0 0 0 -4 -4l-13 13v4",key:"svg-0"}],["path",{d:"M14.5 5.5l4 4",key:"svg-1"}],["path",{d:"M12 8l-5 -5l-4 4l5 5",key:"svg-2"}],["path",{d:"M7 8l-1.5 1.5",key:"svg-3"}],["path",{d:"M16 12l5 5l-4 4l-5 -5",key:"svg-4"}],["path",{d:"M16 17l-1.5 1.5",key:"svg-5"}]]);a.i(570396);var d=a.i(673727),e=a.i(803681),f=a.i(75148),g=a.i(109307),h=a.i(534908),i=a.i(160147);let j={home:[{key:"overview",label:"Overview",href:"/overview",icon:"dashboard",stage:2},{key:"topology",label:"Topology",href:"/topology",icon:"topology",stage:4},{key:"events",label:"Events",href:"/events",icon:"activity",stage:2},{key:"status",label:"Provider status",href:"/status",icon:"broadcast",stage:5}],hosting:[{key:"apps",label:"Applications",href:"/apps",icon:"apps",stage:2},{key:"deployments",label:"Deployments",href:"/deployments",icon:"rocket",stage:2},{key:"domains",label:"Domains",href:"/domains",icon:"world",stage:4},{key:"dns",label:"DNS records",href:"/dns",icon:"sitemap",stage:4},{key:"uptime",label:"Uptime",href:"/uptime",icon:"heartbeat",stage:2},{key:"logs",label:"Logs",href:"/logs",icon:"file",stage:5,hideForViewer:!0}],database:[{key:"supabase",label:"Supabase",href:"/supabase",icon:"bolt",stage:3},{key:"neon",label:"Neon",href:"/neon",icon:"database",stage:3},{key:"firebase",label:"Firebase",href:"/firebase",icon:"flame",stage:3},{key:"turso",label:"Turso",href:"/turso",icon:"database",stage:8},{key:"upstash",label:"Upstash Redis",href:"/upstash",icon:"bolt",stage:8},{key:"d1",label:"Cloudflare D1",href:"/d1",icon:"cloud",stage:8},{key:"sql",label:"SQL console",href:"/sql",icon:"terminal",stage:9,ownerOnly:!0},{key:"catalog",label:"Free databases",href:"/catalog",icon:"books",stage:7}],devops:[{key:"repos",label:"Repositories",href:"/repos",icon:"github",stage:9,sub:"Automation"}],manage:[{key:"connections",label:"Connections",href:"/connections",icon:"plug",stage:1,ownerOnly:!0},{key:"alerts",label:"Alerts",href:"/alerts",icon:"bell",stage:5},{key:"sections",label:"Sections",href:"/manage/sections",icon:"layout",stage:12,ownerOnly:!0},{key:"settings",label:"Settings",href:"/settings",icon:"settings",stage:1,ownerOnly:!0},{key:"backups",label:"Backups",href:"/backups",icon:"cloud-upload",stage:7,ownerOnly:!0},{key:"status-page",label:"Status page",href:"/settings?tab=status-page",icon:"page",stage:7,ownerOnly:!0}]},k=i.I.map(a=>({section:a,group:i.Z[a].label,items:j[a]})),l={nav:[]};function m(a=l){let b=k.map(a=>({...a,items:[...a.items]}));for(let c of a.nav){let a=b.find(a=>a.section===c.section)??b.find(a=>"manage"===a.section),d=c.after?a.items.findIndex(a=>a.key===c.after):-1;d<0?a.items.push(...c.items):a.items.splice(d+1,0,...c.items)}return b}let n=a=>a.split("?")[0];async function o({params:a}){var i;let{slug:j}=await a,k=function(a,b=l){let[c,d]=a.split("?"),e=c.replace(/\/+$/,"")||"/",f=void 0!==d?new URLSearchParams(d):null,g=null;for(let a of m(b).flatMap(a=>a.items)){let b=n(a.href);if(e!==b&&!e.startsWith(`${b}/`))continue;let c=a.href.includes("?");if(c&&(e!==b||!function(a,b){let c=a.split("?")[1];return!c||!!b&&[...new URLSearchParams(c)].every(([a,c])=>b.get(a)===c)}(a.href,f)))continue;let d=g?n(g.href).length:-1;(!g||b.length>d||b.length===d&&c&&!g.href.includes("?"))&&(g=a)}return g}("/"+j.join("/"),h.extensions);k||(0,d.notFound)();let p=await (0,g.I)();return(i=p.role,k.ownerOnly?"owner"!==i:k.hideForViewer&&"viewer"===i)?(0,b.jsx)(f.f,{role:p.role}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:function(a,b=l){return m(b).find(b=>b.items.some(b=>b.key===a))?.group??""}(k.key,h.extensions)},{label:k.label}],title:k.label}),(0,b.jsx)(e.N,{children:(0,b.jsxs)(e.k,{icon:c,title:`${k.label} arrives in stage ${k.stage}`,children:["This page is in the mockup and gets built in stage ",k.stage,". Connections and Settings work now."]})})]})}a.s(["default",0,o],177727)},68867,function(a){a.n(a.i(177727))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%5B___slug%5D_page_tsx_0b007i3c1v_vg._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[34282,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(405050);let g=(0,f.createServerReference)("60680aa25fbd0a9c81ecb64e80e81da54e63b29e4b",f.callServer,void 0,f.findSourceMapURL,"silence");a.s(["AlertMenu",0,function({id:a,label:f,silenced:h,resourceHref:i}){let[,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=b=>{k.current||(k.current=!0,j(async()=>{try{let c=await g(a,b);c.ok?d.c.success(c.message??""):d.c.error(c.error)}catch{d.c.error("Something went wrong. Try again.")}finally{k.current=!1}}))},m=i?[{label:"View resource",href:i}]:[];return(0,b.jsx)(e.RowMenu,{label:`Actions for ${f}`,items:h?[{label:"Unsilence",onSelect:()=>l("off")},...m]:[{label:"Silence 1 hour",onSelect:()=>l("1h")},{label:"Silence until resolved",onSelect:()=>l("resolved")},...m]})}],34282)},264420,a=>{var b=a.i(187924),c=a.i(449862);let d=(0,c.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),e=(0,c.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),f=(0,c.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]);var g=a.i(901615),h=a.i(572131),i=a.i(823292),j=a.i(619089),k=a.i(507504),l=a.i(814574),m=a.i(405050);let n=(0,m.createServerReference)("405227a21cff4cd2bfd3dbf7c3ece29238ec675e82",m.callServer,void 0,m.findSourceMapURL,"saveDigest"),o=(0,m.createServerReference)("4092c6db6d87c36aa51500724cfc64066a2dfaffed",m.callServer,void 0,m.findSourceMapURL,"saveDiscord"),p=(0,m.createServerReference)("60ef7dde0f81807b3be1fd5a06e7a40a947b4bf08b",m.callServer,void 0,m.findSourceMapURL,"saveTelegram"),q=(0,m.createServerReference)("40149449b6f432aaa3877fb512b7996b7103832372",m.callServer,void 0,m.findSourceMapURL,"sendTest"),r=(0,m.createServerReference)("60a8767208f5fdde1406e10137f616145eecd543b9",m.callServer,void 0,m.findSourceMapURL,"setChannelEnabled"),s=(0,m.createServerReference)("00019120d5608533a6e4123e832b88f536d1f74f19",m.callServer,void 0,m.findSourceMapURL,"telegramChats"),t={telegram:{icon:e,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${g.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:d,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},email_digest:{icon:f,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${g.n.setting} (RESEND_API_KEY).`}},u={telegram:"Telegram",discord:"Discord",email_digest:"Daily email digest"};a.s(["ChannelControls",0,function({kind:a,connected:c,enabled:d,envMissing:e}){let[f,g]=(0,h.useState)(!1),[m,v]=(0,h.useState)([]),[w,x]=(0,h.useState)(""),[y,z]=(0,h.useState)(""),[A,B]=(0,h.useState)(""),[C,D]=(0,h.useState)({}),[E,F]=(0,h.useTransition)(),[G,H]=(0,h.useTransition)(),[I,J]=(0,h.useTransition)();(0,k.useHoldRefresh)(f);let K=t[a],L=K.icon;function M(a){a&&(v([]),x(""),z(""),B(""),D({})),g(a)}function N(a,b){J(async()=>{try{let c=await a();c.ok?i.c.success(b,{description:c.message}):i.c.error(c.error)}catch{i.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(l.N,{open:f,onOpenChange:a=>{E||M(a)},children:[(0,b.jsx)(l.a,{render:(0,b.jsx)(j.K,{size:"sm",disabled:null!==e,children:c?"Change":"Connect"})}),(0,b.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(L,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(l.F,{className:"text-base",children:K.title}),(0,b.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:K.about})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c;b.preventDefault(),c={},"telegram"!==a||w||(c.chat="Press Find chats, then pick one."),"discord"!==a||y.trim()||(c.url="Paste the whole webhook URL from Discord."),"email_digest"!==a||A.trim()||(c.to="Enter a valid email address."),D(c),Object.keys(c).length||F(async()=>{try{let b=m.find(a=>a.id===w)?.label??"",c="telegram"===a?await p(w,b):"discord"===a?await o(y):await n(A);if(!c.ok){D(c.fieldErrors??{}),c.fieldErrors||i.c.error(c.error);return}i.c.success("Channel saved",{description:c.message}),g(!1)}catch{i.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:C.chat,children:(0,b.jsxs)("select",{id:"ch-chat",className:j.S,value:w,onChange:a=>x(a.target.value),children:[0===m.length&&(0,b.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),m.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})}),(0,b.jsx)("p",{className:"mb-3",children:(0,b.jsx)(j.K,{size:"sm",onClick:function(){H(async()=>{try{let a=await s();if(!a.ok)return void i.c.error(a.error);let b=a.data?.chats??[];v(b),x(b[0]?.id??""),D({}),b.length?i.c.success(`Found ${b.length} chat${1===b.length?"":"s"}: ${b.map(a=>a.label).join(", ")}.`):i.c.info("No chats yet",{description:a.message??"Send /start to your bot in Telegram, then try again."})}catch{i.c.error("Something went wrong. Try again.")}})},disabled:G,children:G?"Looking…":"Find chats"})})]}),"discord"===a&&(0,b.jsx)(j.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:C.url,children:(0,b.jsx)("input",{id:"ch-hook",className:j.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:y,onChange:a=>z(a.target.value)})}),"email_digest"===a&&(0,b.jsx)(j.O,{id:"ch-to",label:"Send to",error:C.to,children:(0,b.jsx)("input",{id:"ch-to",className:j.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:A,onChange:a=>B(a.target.value)})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(j.K,{onClick:()=>M(!1),disabled:E,children:"Cancel"}),(0,b.jsx)(j.K,{type:"submit",variant:"primary",disabled:E,children:E?"Saving…":"Save"})]})]})]})]}),c&&d&&null===e&&(0,b.jsx)(j.K,{size:"sm",disabled:I,onClick:()=>N(()=>q(a),`${u[a]} test`),children:I?"Sending…":"Send test"}),c&&(0,b.jsx)(j.K,{size:"sm",variant:"ghost",disabled:I,onClick:()=>N(()=>r(a,!d),u[a]),children:d?"Turn off":"Turn on"})]})}],264420)},153508,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("60574baae8072cea2104ffc06cd898002065f2e363",f.callServer,void 0,f.findSourceMapURL,"setNotifyLanguage");a.s(["LanguageSelect",0,function({channel:a,label:f,saved:h}){let[i,j]=(0,c.useState)(h),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("select",{"aria-label":`${f} language`,className:`${e.S} w-auto min-w-[160px]`,value:i,disabled:k,onChange:b=>{var c;j(c="id"===b.target.value?"id":"en"),l(async()=>{try{let b=await g(a,c);b.ok?d.c.success(`${f} language saved`,{description:b.message}):(j(i),d.c.error(b.error))}catch{j(i),d.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsx)("option",{value:"en",children:"English"}),(0,b.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],153508)},621765,a=>{var b=a.i(187924),c=a.i(896293),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574);let i=a=>(a??0).toLocaleString("en-US"),j={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:a=>`${i(a)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:a=>`No collector run for ${i(a)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:a=>`p95 > ${i(a)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"Production deployment state = ERROR"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase status = INACTIVE"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:a=>`TLS certificate expires in < ${i(a)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:a=>`Domain expires in < ${i(a)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Database size > ${i(a)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:a=>`> ${i(a)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:a=>`Daily reads > ${i(a)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase project without API traffic for ${i(a)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase CPU > ${i(a)}% for 15 min, RAM > ${i(Math.min(99,(a??80)+10))}%, disk > ${i(a)}% or connections > ${i(a)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Turso, Upstash or D1 usage > ${i(a)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:a=>`Account credential expires in < ${i(a)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a high or critical advisory (OSV.dev)"}};Object.keys(j);let k=[["critical","Critical"],["warning","Warning"],["info","Info"]];var l=a.i(405050);let m=(0,l.createServerReference)("600fb2fdae8ae165df7cedec56b093f94076edc547",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=[["telegram","Telegram"],["discord","Discord"],["email_digest","Daily email digest"]],o=a=>({severity:a.severity,threshold:null===a.threshold?"":a.threshold.toLocaleString("en-US"),channels:[...a.channels],enabled:a.enabled});a.s(["RuleActions",0,function({rule:a,condition:i}){let[l,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(()=>o(a)),[s,t]=(0,d.useState)({}),[u,v]=(0,d.useTransition)();(0,g.useHoldRefresh)(l);let w=j[a.key].bounds;function x(b){b&&(r(o(a)),t({})),p(b)}function y(b,c){v(async()=>{try{let d=await m(a.key,b);if(!d.ok){t(d.fieldErrors??{}),e.c.error(d.error);return}c(d.message??""),p(!1)}catch{e.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsxs)(h.N,{open:l,onOpenChange:a=>{u||x(a)},children:[(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{size:"sm",children:"Edit"})}),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Edit ",a.key]}),(0,b.jsx)(h.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:i})]})]}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),y(q,a=>e.c.success("Rule saved",{description:a}))},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"rule-sev",label:"Severity",error:s.severity,children:(0,b.jsx)("select",{id:"rule-sev",className:f.S,value:q.severity,onChange:a=>r({...q,severity:a.target.value}),children:k.map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))})}),w&&(0,b.jsx)(f.O,{id:"rule-num",label:"Threshold",help:`Replaces ${a.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:s.threshold,children:(0,b.jsx)("input",{id:"rule-num",className:f.S,inputMode:"numeric",autoComplete:"off",value:q.threshold,onChange:a=>r({...q,threshold:a.target.value})})})]}),(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Send to"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:n.map(([a,c])=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.channels.includes(a),onChange:b=>{let c;return c=b.target.checked,r({...q,channels:c?[...q.channels,a]:q.channels.filter(b=>b!==a)})}}),c]},a))}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Opens and resolves are sent once; a still-firing alert repeats every 6 hours unless silenced."}),s.channels&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:s.channels})]}),(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.enabled,onChange:a=>r({...q,enabled:a.target.checked})}),"Rule is on"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>x(!1),disabled:u,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:u,children:u?"Saving…":"Save rule"})]})]})]})]}),(0,b.jsx)(f.K,{size:"sm",disabled:u,onClick:()=>y({...o(a),enabled:!a.enabled},b=>a.enabled?e.c.success(`${a.key} disabled. It won't fire until you enable it again.`):e.c.success(`${a.key} enabled.`,{description:b})),children:a.enabled?"Disable":"Enable"})]})}],621765)},869347,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("00cf796bb31404ba552a4c8b630ed60fc70da4e04d",f.callServer,void 0,f.findSourceMapURL,"approvalsStatus"),h=(0,f.createServerReference)("00354be225920eba338821157a612a0725cadd41fd",f.callServer,void 0,f.findSourceMapURL,"disableApprovals"),i=(0,f.createServerReference)("007d57394acaf8fe32c1e5dbb1ec13cb8e7d34135c",f.callServer,void 0,f.findSourceMapURL,"enableApprovals"),j=(0,f.createServerReference)("0097093a6e038acc7f5fd5d4b3394c1eb7c6a431df",f.callServer,void 0,f.findSourceMapURL,"telegramLinkCode");a.s(["TelegramApprovals",0,function(){let[a,f]=(0,c.useState)(null),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useTransition)();function q(a,b){p(async()=>{try{let c=await a();if(!c.ok)return void d.c.error(c.error??"Something went wrong. Try again.");c.data&&f(c.data),b?.(),c.message&&d.c.success("Approval buttons",{description:c.message})}catch{d.c.error("Something went wrong. Try again.")}})}(0,c.useEffect)(()=>{let a=!0;return g().then(b=>{a&&(b.ok&&b.data?f(b.data):l(b.ok?null:b.error))}).catch(()=>a&&l("Couldn't read the status.")),()=>{a=!1}},[]);let r=a?a.on?a.linked?"On · linked to your Telegram account":"On · not linked yet":"Off":k??"Checking…",s=m?new Date(m.expiresAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"";return(0,b.jsxs)("div",{className:"mt-1 basis-full rounded-md border border-line px-3 py-2 text-[13px]",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Approval buttons"}),(0,b.jsx)("span",{className:"text-ink-soft",children:r}),(0,b.jsxs)("span",{className:"ml-auto inline-flex flex-wrap gap-2",children:[a&&!a.on&&(0,b.jsx)(e.K,{size:"sm",disabled:o,onClick:()=>q(i),children:o?"Working…":"Turn on"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",disabled:o,onClick:function(){p(async()=>{try{let a=await j();a.ok&&a.data?n(a.data):d.c.error(a.ok?"Something went wrong. Try again.":a.error)}catch{d.c.error("Something went wrong. Try again.")}})},children:a.linked?"Link again":"Show link code"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",variant:"ghost",disabled:o,onClick:()=>q(h,()=>n(null)),children:"Turn off"})]})]}),(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:"Proposal notices get ✅ Approve / ❌ Reject buttons that only your linked Telegram account can use; risky actions ask twice. While this is on, Telegram sends updates to the console instead of holding them, so Find chats lists the chats the bot has seen since then."}),a?.problem&&(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-err",children:a.problem}),m&&(0,b.jsxs)("p",{className:"mt-1 text-[12.5px]",children:["Send ",(0,b.jsxs)("code",{className:"rounded bg-sunken px-1 font-mono",children:["/link ",m.code]})," in the connected chat before ",s,". The code works once."]})]})}],869347)}]})();
1
+ (()=>{"use strict";module.exports=[34282,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(405050);let g=(0,f.createServerReference)("60bf355ee9384b20152567835463097c145a74905a",f.callServer,void 0,f.findSourceMapURL,"silence");a.s(["AlertMenu",0,function({id:a,label:f,silenced:h,resourceHref:i}){let[,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=b=>{k.current||(k.current=!0,j(async()=>{try{let c=await g(a,b);c.ok?d.c.success(c.message??""):d.c.error(c.error)}catch{d.c.error("Something went wrong. Try again.")}finally{k.current=!1}}))},m=i?[{label:"View resource",href:i}]:[];return(0,b.jsx)(e.RowMenu,{label:`Actions for ${f}`,items:h?[{label:"Unsilence",onSelect:()=>l("off")},...m]:[{label:"Silence 1 hour",onSelect:()=>l("1h")},{label:"Silence until resolved",onSelect:()=>l("resolved")},...m]})}],34282)},264420,a=>{var b=a.i(187924),c=a.i(449862);let d=(0,c.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),e=(0,c.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),f=(0,c.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]);var g=a.i(901615),h=a.i(572131),i=a.i(823292),j=a.i(619089),k=a.i(507504),l=a.i(814574),m=a.i(405050);let n=(0,m.createServerReference)("40f2fd9075ff6faca842fc490ec436efe65477829a",m.callServer,void 0,m.findSourceMapURL,"saveDigest"),o=(0,m.createServerReference)("4059b0b8cf288c78655fbf12915d34ac87a47167a2",m.callServer,void 0,m.findSourceMapURL,"saveDiscord"),p=(0,m.createServerReference)("60268d70e88a1dc303740bfaf43478a5e4c62e7d46",m.callServer,void 0,m.findSourceMapURL,"saveTelegram"),q=(0,m.createServerReference)("4048bfc25d4971638b6fd0d2cc03ca4f468ea47a35",m.callServer,void 0,m.findSourceMapURL,"sendTest"),r=(0,m.createServerReference)("602b237330040f45f92d805a8845d808ff238f46d4",m.callServer,void 0,m.findSourceMapURL,"setChannelEnabled"),s=(0,m.createServerReference)("00c07a513c2ff8e8d19dc024bce40dea0f3caeea17",m.callServer,void 0,m.findSourceMapURL,"telegramChats"),t={telegram:{icon:e,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${g.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:d,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},email_digest:{icon:f,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${g.n.setting} (RESEND_API_KEY).`}},u={telegram:"Telegram",discord:"Discord",email_digest:"Daily email digest"};a.s(["ChannelControls",0,function({kind:a,connected:c,enabled:d,envMissing:e}){let[f,g]=(0,h.useState)(!1),[m,v]=(0,h.useState)([]),[w,x]=(0,h.useState)(""),[y,z]=(0,h.useState)(""),[A,B]=(0,h.useState)(""),[C,D]=(0,h.useState)({}),[E,F]=(0,h.useTransition)(),[G,H]=(0,h.useTransition)(),[I,J]=(0,h.useTransition)();(0,k.useHoldRefresh)(f);let K=t[a],L=K.icon;function M(a){a&&(v([]),x(""),z(""),B(""),D({})),g(a)}function N(a,b){J(async()=>{try{let c=await a();c.ok?i.c.success(b,{description:c.message}):i.c.error(c.error)}catch{i.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(l.N,{open:f,onOpenChange:a=>{E||M(a)},children:[(0,b.jsx)(l.a,{render:(0,b.jsx)(j.K,{size:"sm",disabled:null!==e,children:c?"Change":"Connect"})}),(0,b.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(L,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(l.F,{className:"text-base",children:K.title}),(0,b.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:K.about})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c;b.preventDefault(),c={},"telegram"!==a||w||(c.chat="Press Find chats, then pick one."),"discord"!==a||y.trim()||(c.url="Paste the whole webhook URL from Discord."),"email_digest"!==a||A.trim()||(c.to="Enter a valid email address."),D(c),Object.keys(c).length||F(async()=>{try{let b=m.find(a=>a.id===w)?.label??"",c="telegram"===a?await p(w,b):"discord"===a?await o(y):await n(A);if(!c.ok){D(c.fieldErrors??{}),c.fieldErrors||i.c.error(c.error);return}i.c.success("Channel saved",{description:c.message}),g(!1)}catch{i.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:C.chat,children:(0,b.jsxs)("select",{id:"ch-chat",className:j.S,value:w,onChange:a=>x(a.target.value),children:[0===m.length&&(0,b.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),m.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})}),(0,b.jsx)("p",{className:"mb-3",children:(0,b.jsx)(j.K,{size:"sm",onClick:function(){H(async()=>{try{let a=await s();if(!a.ok)return void i.c.error(a.error);let b=a.data?.chats??[];v(b),x(b[0]?.id??""),D({}),b.length?i.c.success(`Found ${b.length} chat${1===b.length?"":"s"}: ${b.map(a=>a.label).join(", ")}.`):i.c.info("No chats yet",{description:a.message??"Send /start to your bot in Telegram, then try again."})}catch{i.c.error("Something went wrong. Try again.")}})},disabled:G,children:G?"Looking…":"Find chats"})})]}),"discord"===a&&(0,b.jsx)(j.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:C.url,children:(0,b.jsx)("input",{id:"ch-hook",className:j.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:y,onChange:a=>z(a.target.value)})}),"email_digest"===a&&(0,b.jsx)(j.O,{id:"ch-to",label:"Send to",error:C.to,children:(0,b.jsx)("input",{id:"ch-to",className:j.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:A,onChange:a=>B(a.target.value)})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(j.K,{onClick:()=>M(!1),disabled:E,children:"Cancel"}),(0,b.jsx)(j.K,{type:"submit",variant:"primary",disabled:E,children:E?"Saving…":"Save"})]})]})]})]}),c&&d&&null===e&&(0,b.jsx)(j.K,{size:"sm",disabled:I,onClick:()=>N(()=>q(a),`${u[a]} test`),children:I?"Sending…":"Send test"}),c&&(0,b.jsx)(j.K,{size:"sm",variant:"ghost",disabled:I,onClick:()=>N(()=>r(a,!d),u[a]),children:d?"Turn off":"Turn on"})]})}],264420)},153508,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("603e479458fcddf905783e26721fd06fb0e382f0d5",f.callServer,void 0,f.findSourceMapURL,"setNotifyLanguage");a.s(["LanguageSelect",0,function({channel:a,label:f,saved:h}){let[i,j]=(0,c.useState)(h),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("select",{"aria-label":`${f} language`,className:`${e.S} w-auto min-w-[160px]`,value:i,disabled:k,onChange:b=>{var c;j(c="id"===b.target.value?"id":"en"),l(async()=>{try{let b=await g(a,c);b.ok?d.c.success(`${f} language saved`,{description:b.message}):(j(i),d.c.error(b.error))}catch{j(i),d.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsx)("option",{value:"en",children:"English"}),(0,b.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],153508)},621765,a=>{var b=a.i(187924),c=a.i(896293),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574);let i=a=>(a??0).toLocaleString("en-US"),j={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:a=>`${i(a)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:a=>`No collector run for ${i(a)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:a=>`p95 > ${i(a)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"Production deployment state = ERROR"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase status = INACTIVE"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:a=>`TLS certificate expires in < ${i(a)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:a=>`Domain expires in < ${i(a)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Database size > ${i(a)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:a=>`> ${i(a)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:a=>`Daily reads > ${i(a)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase project without API traffic for ${i(a)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase CPU > ${i(a)}% for 15 min, RAM > ${i(Math.min(99,(a??80)+10))}%, disk > ${i(a)}% or connections > ${i(a)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Turso, Upstash or D1 usage > ${i(a)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:a=>`Account credential expires in < ${i(a)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a high or critical advisory (OSV.dev)"}};Object.keys(j);let k=[["critical","Critical"],["warning","Warning"],["info","Info"]];var l=a.i(405050);let m=(0,l.createServerReference)("60c8b655dddaa634d573a230acc932fe87b84952b7",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=[["telegram","Telegram"],["discord","Discord"],["email_digest","Daily email digest"]],o=a=>({severity:a.severity,threshold:null===a.threshold?"":a.threshold.toLocaleString("en-US"),channels:[...a.channels],enabled:a.enabled});a.s(["RuleActions",0,function({rule:a,condition:i}){let[l,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(()=>o(a)),[s,t]=(0,d.useState)({}),[u,v]=(0,d.useTransition)();(0,g.useHoldRefresh)(l);let w=j[a.key].bounds;function x(b){b&&(r(o(a)),t({})),p(b)}function y(b,c){v(async()=>{try{let d=await m(a.key,b);if(!d.ok){t(d.fieldErrors??{}),e.c.error(d.error);return}c(d.message??""),p(!1)}catch{e.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsxs)(h.N,{open:l,onOpenChange:a=>{u||x(a)},children:[(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{size:"sm",children:"Edit"})}),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Edit ",a.key]}),(0,b.jsx)(h.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:i})]})]}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),y(q,a=>e.c.success("Rule saved",{description:a}))},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"rule-sev",label:"Severity",error:s.severity,children:(0,b.jsx)("select",{id:"rule-sev",className:f.S,value:q.severity,onChange:a=>r({...q,severity:a.target.value}),children:k.map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))})}),w&&(0,b.jsx)(f.O,{id:"rule-num",label:"Threshold",help:`Replaces ${a.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:s.threshold,children:(0,b.jsx)("input",{id:"rule-num",className:f.S,inputMode:"numeric",autoComplete:"off",value:q.threshold,onChange:a=>r({...q,threshold:a.target.value})})})]}),(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Send to"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:n.map(([a,c])=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.channels.includes(a),onChange:b=>{let c;return c=b.target.checked,r({...q,channels:c?[...q.channels,a]:q.channels.filter(b=>b!==a)})}}),c]},a))}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Opens and resolves are sent once; a still-firing alert repeats every 6 hours unless silenced."}),s.channels&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:s.channels})]}),(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.enabled,onChange:a=>r({...q,enabled:a.target.checked})}),"Rule is on"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>x(!1),disabled:u,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:u,children:u?"Saving…":"Save rule"})]})]})]})]}),(0,b.jsx)(f.K,{size:"sm",disabled:u,onClick:()=>y({...o(a),enabled:!a.enabled},b=>a.enabled?e.c.success(`${a.key} disabled. It won't fire until you enable it again.`):e.c.success(`${a.key} enabled.`,{description:b})),children:a.enabled?"Disable":"Enable"})]})}],621765)},869347,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(147474),g=a.i(405050);let h=(0,g.createServerReference)("00699c1a457a9effe94986c3c8230c9d489c647870",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("00e036b4457f4e4b79d48019fd09e0f02f0cd866ed",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("00a1f0d4c0f79c7683bbf45b5a104358863ed13816",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("000d463d73f6c64b4bf896fde39a464412827be6b6",g.callServer,void 0,g.findSourceMapURL,"telegramLinkCode");a.s(["TelegramApprovals",0,function(){let[a,g]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useTransition)();function r(a,b){q(async()=>{try{let c=await a();if(!c.ok)return void d.c.error(c.error??"Something went wrong. Try again.");c.data&&g(c.data),b?.(),c.message&&d.c.success("Approval buttons",{description:c.message})}catch{d.c.error("Something went wrong. Try again.")}})}(0,c.useEffect)(()=>{let a=!0;return h().then(b=>{a&&(b.ok&&b.data?g(b.data):m(b.ok?null:b.error))}).catch(()=>a&&m("Couldn't read the status.")),()=>{a=!1}},[]);let s=a?a.on?a.linked?"On · linked to your Telegram account":"On · not linked yet":"Off":l??"Checking…",t=n?(0,f.U)(new Date(n.expiresAt)):"";return(0,b.jsxs)("div",{className:"mt-1 basis-full rounded-md border border-line px-3 py-2 text-[13px]",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Approval buttons"}),(0,b.jsx)("span",{className:"text-ink-soft",children:s}),(0,b.jsxs)("span",{className:"ml-auto inline-flex flex-wrap gap-2",children:[a&&!a.on&&(0,b.jsx)(e.K,{size:"sm",disabled:p,onClick:()=>r(j),children:p?"Working…":"Turn on"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",disabled:p,onClick:function(){q(async()=>{try{let a=await k();a.ok&&a.data?o(a.data):d.c.error(a.ok?"Something went wrong. Try again.":a.error)}catch{d.c.error("Something went wrong. Try again.")}})},children:a.linked?"Link again":"Show link code"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",variant:"ghost",disabled:p,onClick:()=>r(i,()=>o(null)),children:"Turn off"})]})]}),(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:"Proposal notices get ✅ Approve / ❌ Reject buttons that only your linked Telegram account can use; risky actions ask twice. While this is on, Telegram sends updates to the console instead of holding them, so Find chats lists the chats the bot has seen since then."}),a?.problem&&(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-err",children:a.problem}),n&&(0,b.jsxs)("p",{className:"mt-1 text-[12.5px]",children:["Send ",(0,b.jsxs)("code",{className:"rounded bg-sunken px-1 font-mono",children:["/link ",n.code]})," in the connected chat before ",t,". The code works once."]})]})}],869347)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_alerts_0j5xlt68kwg8x._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[[892055,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AlertMenu() from the server but AlertMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/alert-menu.tsx","AlertMenu");a.s(["AlertMenu",0,b])},387413,a=>{var b=a.i(892055);a.n(b)},552573,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ChannelControls() from the server but ChannelControls is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/channel-dialog.tsx","ChannelControls");a.s(["ChannelControls",0,b])},655454,a=>{var b=a.i(552573);a.n(b)},728301,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LanguageSelect() from the server but LanguageSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/language-select.tsx","LanguageSelect");a.s(["LanguageSelect",0,b])},579853,a=>{var b=a.i(728301);a.n(b)},198154,a=>{var b=a.i(907997),c=a.i(803681),d=a.i(685865),e=a.i(473083),f=a.i(109307),g=a.i(455317),h=a.i(532620),i=a.i(49146),j=a.i(552543),k=a.i(534908),l=a.i(556987),m=a.i(505237),n=a.i(701702),o=a.i(686251),p=a.i(245710),q=a.i(655454),r=a.i(579853),s=a.i(674118);let t=[{kind:"telegram",label:"Telegram bot",help:"Free. One message per collector run, listing every alert that opened, repeated (every 6 h) or resolved."},{kind:"discord",label:"Discord webhook",help:"Free. Same messages as Telegram."},{kind:"email_digest",label:"Daily email digest",help:"Sent through Resend at 07:00 WIB: what fired, what resolved, uptime and stored errors of the last 24 h. Free plan: 100 emails a day, we send 1."}],u="grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",v={telegram:"en",discord:"en",email:"en"},w={telegram:"telegram",discord:"discord",email_digest:"email"},x={en:"English",id:"Bahasa Indonesia"};function y({views:a,owner:d,now:e,approvals:f=!1,langs:g=v}){return(0,b.jsx)(c.N,{title:"Channels",children:(0,b.jsxs)("div",{children:[t.map(c=>{let h=a.find(a=>a.kind===c.kind),i=function(a,b){if(a.envMissing)return{state:"unknown",text:a.envMissing,shot:a.envMissing};if(!a.connected)return{state:"off",text:"Not connected",shot:"Not connected"};if(!a.enabled)return{state:"off",text:`Off \xb7 ${a.hint}`,shot:"Off"};let c=a.lastSentAt?`last sent ${(0,p.$)(a.lastSentAt,b)}`:"never sent",d=b=>"email_digest"===a.kind?`Every day at 07:00 \xb7 to ${b} \xb7 ${c}`:`Connected \xb7 ${b} \xb7 ${c}`;return{state:a.lastError?"warn":"ok",text:d(a.hint??""),shot:d("email_digest"===a.kind?"[email hidden]":"hidden")}}(h,e);return(0,b.jsxs)("div",{className:u,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:c.label}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:c.help})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(o.F,{state:i.state,children:(0,b.jsx)(n.Masked,{kind:"text",real:i.text,masked:i.shot})}),d?(0,b.jsx)(r.LanguageSelect,{channel:w[h.kind],label:c.label,saved:g[w[h.kind]]}):(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:x[g[w[h.kind]]]}),d&&(0,b.jsx)(q.ChannelControls,{kind:h.kind,connected:h.connected,enabled:h.enabled,envMissing:h.envMissing}),h.lastError&&(0,b.jsxs)("span",{className:"basis-full text-[12.5px] text-err",children:["The last send failed: ",(0,b.jsx)(n.Masked,{kind:"text",real:h.lastError})]}),d&&f&&"telegram"===h.kind&&h.connected&&null===h.envMissing&&(0,b.jsx)(s.TelegramApprovals,{})]})]},c.kind)}),(0,b.jsxs)("div",{className:u,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:"Quiet rules"}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:"Built in, not editable."})]}),(0,b.jsxs)("ul",{className:"m-0 list-disc pl-[18px] text-[13px] text-ink-soft",children:[(0,b.jsx)("li",{children:"While CollectorStale fires, no other alert is sent: the data is stale."}),(0,b.jsx)("li",{children:"A paused database mutes MonitorDown and HighLatency of the apps linked to it."}),(0,b.jsx)("li",{children:"An alert resolves after 2 good evaluations in a row, so a flapping site doesn't page twice."})]})]})]})})}var z=a.i(395936),A=a.i(959581),B=a.i(605826),C=a.i(293167),D=a.i(791444),E=a.i(139138),F=a.i(469762),G=a.i(71575),H=a.i(387413);let I=["Severity","Alert","Resource","Since","Notified",""],J=["Severity","Alert","Resource","Started","Outcome"];function K({rows:a,now:d,act:e}){if(0===a.length)return(0,b.jsx)(c.k,{title:"No alerts firing",children:"Everything the rules watch looks fine."});let f=a.map(a=>{let f=(0,G.O)(a,d),g=a.resourceId&&"app"===a.resourceKind?`/apps/${a.resourceId}`:null,h=a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>d.getTime();return{key:a.id,state:a.severity,text:[a.severity,a.ruleKey,a.title,a.message,a.title,a.providerIncident??"",a.search??""].join(" "),row:(0,b.jsxs)("tr",{className:D.C,children:[(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(C.e,{severity:a.severity})}),(0,b.jsxs)("td",{className:(0,E.f)(D.z,D.M),children:[(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey}),a.providerIncident&&(0,b.jsx)("span",{className:"ml-1.5",children:(0,b.jsxs)(c.E,{children:["Provider incident · ",a.providerIncident]})}),(0,b.jsx)("div",{className:"text-ink-soft",children:(0,b.jsx)(n.MaskedText,{text:a.message})}),a.causedBy&&(0,b.jsxs)("div",{className:"text-[12.5px] text-ink-faint",children:["Caused by ",(0,b.jsx)(n.MaskedText,{text:a.causedBy})," · notifications muted"]})]}),(0,b.jsx)("td",{className:D.z,children:g?(0,b.jsx)(z.default,{href:g,children:(0,b.jsx)(n.MaskedText,{text:a.title,inLink:!0})}):(0,b.jsx)(n.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,E.f)(D.z,"text-ink-soft"),children:(0,F.v)(a.startedAt,d)}),(0,b.jsx)("td",{className:(0,E.f)(D.z,"text-ink-soft"),children:"ok"===f.state?f.text:(0,b.jsx)(o.F,{state:f.state,children:f.text})}),(0,b.jsx)("td",{className:D.z,children:e&&(0,b.jsx)(H.AlertMenu,{id:a.id,label:`${a.ruleKey} ${a.title}`,silenced:h,resourceHref:g})})]})}});return(0,b.jsx)(A.ListFilter,{placeholder:"Filter alerts",states:G._,head:I,rows:f})}function L({rows:a,now:c}){let d=a.map(a=>({key:a.id,state:"ok",text:"",row:(0,b.jsxs)("tr",{className:D.C,children:[(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(C.e,{severity:a.severity})}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey})}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(n.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,E.f)(D.z,"text-ink-soft"),children:(0,F.v)(a.startedAt,c)}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsxs)(o.F,{state:"ok",children:["Resolved after ",(0,G.M)(a.startedAt,a.resolvedAt)]})})]})}));return(0,b.jsx)(B.PlainTable,{head:J,rows:d})}var M=a.i(954296),N=a.i(927262),O=a.i(390566);let P=["Rule","Severity","Condition","State",""];function Q({rules:a,owner:c}){let d=a.map(({rule:a,firing:d,hasData:e})=>{let f=N._[a.key],g=(0,G.G)({enabled:a.enabled,firing:d,hasData:e});return{key:a.key,state:a.severity,text:a.key,row:(0,b.jsxs)("tr",{className:D.C,children:[(0,b.jsxs)("td",{className:D.z,children:[(0,b.jsx)("b",{className:"font-medium",children:a.key}),(0,b.jsx)(M.Src,{kind:f.source})]}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(C.e,{severity:a.severity})}),(0,b.jsx)("td",{className:`${D.z} text-ink-soft`,children:f.condition(a.threshold)}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(o.F,{state:g.state,children:g.text})}),(0,b.jsx)("td",{className:D.z,children:c&&(0,b.jsx)(O.RuleActions,{rule:a,condition:f.condition(a.threshold)})})]})}});return(0,b.jsx)(B.PlainTable,{head:P,rows:d})}async function R(){let a=await (0,f.I)(),n=new Date,[o,p,q,r,s,t]=await Promise.all([(0,g.q)(),(0,g.I)(n),(0,g.y)(),(0,i.k)(),(0,h.e)(),(0,j.B)()]),u=o.map(a=>({...(0,l.o)(a,s),search:[a.title,a.message].join(" ")})),v=p.map(a=>({...a,title:(0,l.o)({...a,message:"",causedBy:null},s).title})),w="owner"===a.role;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.AutoRefresh,{at:n.getTime()}),(0,b.jsx)(c.L,{crumbs:[{label:"Observe"},{label:"Alerts"}],title:"Alerts",sub:"Rules run after every collector run. Unknown data never opens or resolves an alert."}),(0,b.jsxs)(e.Tabs,{defaultValue:"firing",className:"gap-4",children:[(0,b.jsxs)(e.TabsList,{variant:"line",children:[(0,b.jsx)(e.TabsTrigger,{value:"firing",children:"Firing"}),(0,b.jsx)(e.TabsTrigger,{value:"rules",children:"Rules"}),(0,b.jsx)(e.TabsTrigger,{value:"notifications",children:"Notifications"})]}),(0,b.jsxs)(e.TabsContent,{value:"firing",className:"flex flex-col gap-4",children:[(0,b.jsx)(c.N,{flush:!0,children:(0,b.jsx)(K,{rows:u,now:n,act:(0,m.z)(a.role)})}),v.length>0&&(0,b.jsx)(c.N,{title:"Resolved in the last 7 days",flush:!0,children:(0,b.jsx)(L,{rows:v,now:n})})]}),(0,b.jsx)(e.TabsContent,{value:"rules",children:(0,b.jsx)(c.N,{flush:!0,children:(0,b.jsx)(Q,{rules:q,owner:w})})}),(0,b.jsx)(e.TabsContent,{value:"notifications",children:(0,b.jsx)(y,{views:r,owner:w,now:n,approvals:!!k.extensions.telegramCallback,langs:t})})]})]})}a.s(["default",0,R],198154)},100113,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RuleActions() from the server but RuleActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/rule-dialog.tsx","RuleActions");a.s(["RuleActions",0,b])},390566,a=>{var b=a.i(100113);a.n(b)},356435,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call TelegramApprovals() from the server but TelegramApprovals is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/telegram-approvals.tsx","TelegramApprovals");a.s(["TelegramApprovals",0,b])},674118,a=>{var b=a.i(356435);a.n(b)}],181361,function(a){a.n(a.i(198154))}];
1
+ module.exports=[[892055,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AlertMenu() from the server but AlertMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/alert-menu.tsx","AlertMenu");a.s(["AlertMenu",0,b])},387413,a=>{var b=a.i(892055);a.n(b)},552573,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ChannelControls() from the server but ChannelControls is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/channel-dialog.tsx","ChannelControls");a.s(["ChannelControls",0,b])},655454,a=>{var b=a.i(552573);a.n(b)},728301,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LanguageSelect() from the server but LanguageSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/language-select.tsx","LanguageSelect");a.s(["LanguageSelect",0,b])},579853,a=>{var b=a.i(728301);a.n(b)},198154,a=>{var b=a.i(907997),c=a.i(395936),d=a.i(803681),e=a.i(685865),f=a.i(473083),g=a.i(109307),h=a.i(455317),i=a.i(532620),j=a.i(49146),k=a.i(396667),l=a.i(552543),m=a.i(534908),n=a.i(160147),o=a.i(556987),p=a.i(505237),q=a.i(701702),r=a.i(686251),s=a.i(245710),t=a.i(655454),u=a.i(579853),v=a.i(674118);let w=[{kind:"telegram",label:"Telegram bot",help:"Free. One message per collector run, listing every alert that opened, repeated (every 6 h) or resolved."},{kind:"discord",label:"Discord webhook",help:"Free. Same messages as Telegram."},{kind:"email_digest",label:"Daily email digest",help:"Sent through Resend at 07:00 {zone}: what fired, what resolved, uptime and stored errors of the last 24 h. Free plan: 100 emails a day, we send 1."}],x="grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",y={telegram:"en",discord:"en",email:"en"},z={telegram:"telegram",discord:"discord",email_digest:"email"},A={en:"English",id:"Bahasa Indonesia"};function B({views:a,owner:c,now:e,approvals:f=!1,langs:g=y}){return(0,b.jsx)(d.N,{title:"Channels",children:(0,b.jsxs)("div",{children:[w.map(d=>{let h=a.find(a=>a.kind===d.kind),i=function(a,b){if(a.envMissing)return{state:"unknown",text:a.envMissing,shot:a.envMissing};if(!a.connected)return{state:"off",text:"Not connected",shot:"Not connected"};if(!a.enabled)return{state:"off",text:`Off \xb7 ${a.hint}`,shot:"Off"};let c=a.lastSentAt?`last sent ${(0,s.$)(a.lastSentAt,b)}`:"never sent",d=b=>"email_digest"===a.kind?`Every day at 07:00 \xb7 to ${b} \xb7 ${c}`:`Connected \xb7 ${b} \xb7 ${c}`;return{state:a.lastError?"warn":"ok",text:d(a.hint??""),shot:d("email_digest"===a.kind?"[email hidden]":"hidden")}}(h,e);return(0,b.jsxs)("div",{className:x,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:d.label}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:d.help.replace("{zone}",(0,s.D)())})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(r.F,{state:i.state,children:(0,b.jsx)(q.Masked,{kind:"text",real:i.text,masked:i.shot})}),c?(0,b.jsx)(u.LanguageSelect,{channel:z[h.kind],label:d.label,saved:g[z[h.kind]]}):(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:A[g[z[h.kind]]]}),c&&(0,b.jsx)(t.ChannelControls,{kind:h.kind,connected:h.connected,enabled:h.enabled,envMissing:h.envMissing}),h.lastError&&(0,b.jsxs)("span",{className:"basis-full text-[12.5px] text-err",children:["The last send failed: ",(0,b.jsx)(q.Masked,{kind:"text",real:h.lastError})]}),c&&f&&"telegram"===h.kind&&h.connected&&null===h.envMissing&&(0,b.jsx)(v.TelegramApprovals,{})]})]},d.kind)}),(0,b.jsxs)("div",{className:x,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:"Quiet rules"}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:"Built in, not editable."})]}),(0,b.jsxs)("ul",{className:"m-0 list-disc pl-[18px] text-[13px] text-ink-soft",children:[(0,b.jsx)("li",{children:"While CollectorStale fires, no other alert is sent: the data is stale."}),(0,b.jsx)("li",{children:"A paused database mutes MonitorDown and HighLatency of the apps linked to it."}),(0,b.jsx)("li",{children:"An alert resolves after 2 good evaluations in a row, so a flapping site doesn't page twice."})]})]})]})})}var C=a.i(959581),D=a.i(605826),E=a.i(293167),F=a.i(791444),G=a.i(139138),H=a.i(469762),I=a.i(71575),J=a.i(387413);let K=["Severity","Alert","Resource","Since","Notified",""],L=["Severity","Alert","Resource","Started","Outcome"];function M({rows:a,now:e,act:f}){if(0===a.length)return(0,b.jsx)(d.k,{title:"No alerts firing",children:"Everything the rules watch looks fine."});let g=a.map(a=>{let g=(0,I.O)(a,e),h=a.resourceId&&"app"===a.resourceKind?`/apps/${a.resourceId}`:null,i=a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>e.getTime();return{key:a.id,state:a.severity,text:[a.severity,a.ruleKey,a.title,a.message,a.title,a.providerIncident??"",a.search??""].join(" "),row:(0,b.jsxs)("tr",{className:F.C,children:[(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(E.e,{severity:a.severity})}),(0,b.jsxs)("td",{className:(0,G.f)(F.z,F.M),children:[(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey}),a.providerIncident&&(0,b.jsx)("span",{className:"ml-1.5",children:(0,b.jsxs)(d.E,{children:["Provider incident · ",a.providerIncident]})}),(0,b.jsx)("div",{className:"text-ink-soft",children:(0,b.jsx)(q.MaskedText,{text:a.message})}),a.causedBy&&(0,b.jsxs)("div",{className:"text-[12.5px] text-ink-faint",children:["Caused by ",(0,b.jsx)(q.MaskedText,{text:a.causedBy})," · notifications muted"]})]}),(0,b.jsx)("td",{className:F.z,children:h?(0,b.jsx)(c.default,{href:h,children:(0,b.jsx)(q.MaskedText,{text:a.title,inLink:!0})}):(0,b.jsx)(q.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,G.f)(F.z,"text-ink-soft"),children:(0,H.v)(a.startedAt,e)}),(0,b.jsx)("td",{className:(0,G.f)(F.z,"text-ink-soft"),children:"ok"===g.state?g.text:(0,b.jsx)(r.F,{state:g.state,children:g.text})}),(0,b.jsx)("td",{className:F.z,children:f&&(0,b.jsx)(J.AlertMenu,{id:a.id,label:`${a.ruleKey} ${a.title}`,silenced:i,resourceHref:h})})]})}});return(0,b.jsx)(C.ListFilter,{placeholder:"Filter alerts",states:I._,head:K,rows:g})}function N({rows:a,now:c}){let d=a.map(a=>({key:a.id,state:"ok",text:"",row:(0,b.jsxs)("tr",{className:F.C,children:[(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(E.e,{severity:a.severity})}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey})}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(q.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,G.f)(F.z,"text-ink-soft"),children:(0,H.v)(a.startedAt,c)}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsxs)(r.F,{state:"ok",children:["Resolved after ",(0,I.M)(a.startedAt,a.resolvedAt)]})})]})}));return(0,b.jsx)(D.PlainTable,{head:L,rows:d})}var O=a.i(954296),P=a.i(927262),Q=a.i(390566);let R=["Rule","Severity","Condition","State",""];function S({rules:a,owner:c}){let d=a.map(({rule:a,firing:d,hasData:e})=>{let f=P._[a.key],g=(0,I.G)({enabled:a.enabled,firing:d,hasData:e});return{key:a.key,state:a.severity,text:a.key,row:(0,b.jsxs)("tr",{className:F.C,children:[(0,b.jsxs)("td",{className:F.z,children:[(0,b.jsx)("b",{className:"font-medium",children:a.key}),(0,b.jsx)(O.Src,{kind:f.source})]}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(E.e,{severity:a.severity})}),(0,b.jsx)("td",{className:`${F.z} text-ink-soft`,children:f.condition(a.threshold)}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(r.F,{state:g.state,children:g.text})}),(0,b.jsx)("td",{className:F.z,children:c&&(0,b.jsx)(Q.RuleActions,{rule:a,condition:f.condition(a.threshold)})})]})}});return(0,b.jsx)(D.PlainTable,{head:R,rows:d})}async function T(){let a=await (0,g.I)(),q=new Date,r=await (0,k.I)(),[s,t,u,v,w,x]=await Promise.all([(0,h.q)(r),(0,h.I)(q),(0,h.y)(),(0,j.k)(),(0,i.e)(),(0,l.B)()]),y=n.I.filter(a=>r.has(a)).map(a=>n.Z[a].label),z=s.map(a=>({...(0,o.o)(a,w),search:[a.title,a.message].join(" ")})),A=t.map(a=>({...a,title:(0,o.o)({...a,message:"",causedBy:null},w).title})),C="owner"===a.role;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.AutoRefresh,{at:q.getTime()}),(0,b.jsx)(d.L,{crumbs:[{label:"Manage"},{label:"Alerts"}],title:"Alerts",sub:"Rules run after every collector run. Unknown data never opens or resolves an alert."}),(0,b.jsxs)(f.Tabs,{defaultValue:"firing",className:"gap-4",children:[(0,b.jsxs)(f.TabsList,{variant:"line",children:[(0,b.jsx)(f.TabsTrigger,{value:"firing",children:"Firing"}),(0,b.jsx)(f.TabsTrigger,{value:"rules",children:"Rules"}),(0,b.jsx)(f.TabsTrigger,{value:"notifications",children:"Notifications"})]}),(0,b.jsxs)(f.TabsContent,{value:"firing",className:"flex flex-col gap-4",children:[y.length>0&&(0,b.jsx)(d.M,{tone:"info",title:`Paused: ${y.join(", ")}`,action:C?(0,b.jsx)(c.default,{href:"/manage/sections",children:"Sections"}):void 0,children:"The alerts of a section that is turned off are kept but not shown, evaluated or sent until it is turned on again."}),(0,b.jsx)(d.N,{flush:!0,children:(0,b.jsx)(M,{rows:z,now:q,act:(0,p.z)(a.role)})}),A.length>0&&(0,b.jsx)(d.N,{title:"Resolved in the last 7 days",flush:!0,children:(0,b.jsx)(N,{rows:A,now:q})})]}),(0,b.jsx)(f.TabsContent,{value:"rules",children:(0,b.jsx)(d.N,{flush:!0,children:(0,b.jsx)(S,{rules:u,owner:C})})}),(0,b.jsx)(f.TabsContent,{value:"notifications",children:(0,b.jsx)(B,{views:v,owner:C,now:q,approvals:!!m.extensions.telegramCallback,langs:x})})]})]})}a.s(["default",0,T],198154)},100113,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RuleActions() from the server but RuleActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/rule-dialog.tsx","RuleActions");a.s(["RuleActions",0,b])},390566,a=>{var b=a.i(100113);a.n(b)},356435,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call TelegramApprovals() from the server but TelegramApprovals is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/telegram-approvals.tsx","TelegramApprovals");a.s(["TelegramApprovals",0,b])},674118,a=>{var b=a.i(356435);a.n(b)}],181361,function(a){a.n(a.i(198154))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_alerts_1t61z2wktki-v._.js.map