watchbell 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1064) hide show
  1. package/bin/watchbell.mjs +5 -2
  2. package/package.json +1 -1
  3. package/server/.next/BUILD_ID +1 -1
  4. package/server/.next/build-manifest.json +105 -105
  5. package/server/.next/prerender-manifest.json +4 -4
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +32 -22
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +82 -80
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +30 -20
  13. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +81 -79
  14. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
  17. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +28 -18
  18. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +81 -79
  19. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
  22. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +34 -24
  23. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +81 -79
  24. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  26. package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
  27. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +30 -20
  28. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +81 -79
  29. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  31. package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
  32. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +48 -38
  33. package/server/.next/server/app/(console)/(private)/ai/models/page.js +81 -79
  34. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  36. package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
  37. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +28 -18
  38. package/server/.next/server/app/(console)/(private)/ai/page.js +81 -79
  39. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
  42. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +34 -24
  43. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +81 -79
  44. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  46. package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
  47. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +40 -30
  48. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +82 -80
  49. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  51. package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
  52. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +30 -20
  53. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +83 -81
  54. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  55. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  56. package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
  57. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +30 -20
  58. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +85 -82
  59. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  60. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  61. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
  62. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +28 -18
  63. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +81 -79
  64. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  65. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  66. package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
  67. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +30 -20
  68. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +81 -79
  69. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  70. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  71. package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
  72. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +84 -44
  73. package/server/.next/server/app/(console)/alerts/page.js +84 -81
  74. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  75. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  76. package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
  77. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +62 -52
  78. package/server/.next/server/app/(console)/apps/[id]/page.js +87 -85
  79. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  80. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  81. package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
  82. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +34 -24
  83. package/server/.next/server/app/(console)/apps/page.js +83 -81
  84. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  85. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  86. package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
  87. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +34 -24
  88. package/server/.next/server/app/(console)/backups/page.js +84 -82
  89. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  90. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  91. package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
  92. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +28 -18
  93. package/server/.next/server/app/(console)/catalog/page.js +82 -80
  94. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  95. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  96. package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
  97. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +50 -40
  98. package/server/.next/server/app/(console)/connections/page.js +85 -83
  99. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  100. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  101. package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
  102. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +28 -18
  103. package/server/.next/server/app/(console)/d1/page.js +83 -81
  104. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  105. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  106. package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
  107. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +40 -30
  108. package/server/.next/server/app/(console)/deployments/page.js +83 -81
  109. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  110. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  111. package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
  112. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +42 -32
  113. package/server/.next/server/app/(console)/dns/page.js +86 -84
  114. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  115. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  116. package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
  117. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +32 -22
  118. package/server/.next/server/app/(console)/domains/page.js +85 -83
  119. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  120. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  121. package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
  122. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +28 -18
  123. package/server/.next/server/app/(console)/events/page.js +82 -80
  124. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  125. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  126. package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
  127. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +42 -32
  128. package/server/.next/server/app/(console)/firebase/page.js +84 -82
  129. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  130. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  131. package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
  132. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +30 -20
  133. package/server/.next/server/app/(console)/logs/page.js +81 -79
  134. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  135. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  136. package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +3 -3
  137. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +30 -20
  138. package/server/.next/server/app/(console)/manage/sections/page.js +81 -79
  139. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  140. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  141. package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
  142. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +50 -40
  143. package/server/.next/server/app/(console)/neon/page.js +86 -84
  144. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  145. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  146. package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
  147. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +44 -34
  148. package/server/.next/server/app/(console)/overview/page.js +90 -88
  149. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  150. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  151. package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
  152. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +30 -20
  153. package/server/.next/server/app/(console)/repos/[id]/page.js +84 -82
  154. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  155. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  156. package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
  157. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +28 -18
  158. package/server/.next/server/app/(console)/repos/page.js +81 -79
  159. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  160. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  161. package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
  162. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +48 -38
  163. package/server/.next/server/app/(console)/settings/page.js +82 -80
  164. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  165. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  166. package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
  167. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +42 -32
  168. package/server/.next/server/app/(console)/sql/page.js +81 -79
  169. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  170. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  171. package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
  172. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +28 -18
  173. package/server/.next/server/app/(console)/status/page.js +84 -81
  174. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  175. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
  177. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +66 -56
  178. package/server/.next/server/app/(console)/supabase/page.js +91 -90
  179. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  180. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  181. package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
  182. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +28 -18
  183. package/server/.next/server/app/(console)/topology/page.js +83 -81
  184. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  185. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  186. package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
  187. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +28 -18
  188. package/server/.next/server/app/(console)/turso/page.js +82 -80
  189. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  190. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  191. package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
  192. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +28 -18
  193. package/server/.next/server/app/(console)/upstash/page.js +82 -80
  194. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  195. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  196. package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
  197. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +56 -46
  198. package/server/.next/server/app/(console)/uptime/page.js +84 -82
  199. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  200. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  201. package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
  202. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +38 -28
  203. package/server/.next/server/app/(console)/welcome/page.js +81 -79
  204. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  205. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  206. package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
  207. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  208. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  209. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  210. package/server/.next/server/app/_global-error.html +1 -1
  211. package/server/.next/server/app/_global-error.rsc +3 -3
  212. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  213. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  214. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  215. package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
  216. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  217. package/server/.next/server/app/_not-found/page.js +14 -11
  218. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  219. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  220. package/server/.next/server/app/_not-found.html +1 -1
  221. package/server/.next/server/app/_not-found.rsc +28 -23
  222. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +28 -23
  223. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +26 -23
  224. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  225. package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
  226. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  227. package/server/.next/server/app/account/password/page.js +17 -18
  228. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  229. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  230. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  231. package/server/.next/server/app/api/collect/route.js +38 -37
  232. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  233. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  234. package/server/.next/server/app/api/daily/route.js +38 -37
  235. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  236. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  237. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  238. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  239. package/server/.next/server/app/api/telegram/webhook/route.js +63 -62
  240. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  241. package/server/.next/server/app/api/v1/advice/route.js +2 -2
  242. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  243. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  244. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  245. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  246. package/server/.next/server/app/api/v1/ai/questions/route.js +2 -2
  247. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  248. package/server/.next/server/app/api/v1/mcp/route.js +2 -2
  249. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  250. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  251. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  252. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +2 -2
  253. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  254. package/server/.next/server/app/api/v1/status/route.js +2 -2
  255. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  256. package/server/.next/server/app/api/watchdog/route.js +13 -13
  257. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  258. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  259. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  260. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  261. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  262. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  263. package/server/.next/server/app/invite/page/build-manifest.json +3 -3
  264. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  265. package/server/.next/server/app/invite/page.js +22 -22
  266. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  267. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  268. package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
  269. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  270. package/server/.next/server/app/mfa/page.js +40 -29
  271. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  272. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  273. package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
  274. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  275. package/server/.next/server/app/mfa/setup/page.js +40 -29
  276. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  277. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  278. package/server/.next/server/app/page/build-manifest.json +3 -3
  279. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  280. package/server/.next/server/app/page.js +14 -11
  281. package/server/.next/server/app/page.js.nft.json +1 -1
  282. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  283. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  284. package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
  285. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  286. package/server/.next/server/app/s/[slug]/page.js +23 -21
  287. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  288. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  289. package/server/.next/server/app/setup/page/build-manifest.json +3 -3
  290. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  291. package/server/.next/server/app/setup/page.js +20 -18
  292. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  293. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  294. package/server/.next/server/app/signin/page/build-manifest.json +3 -3
  295. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  296. package/server/.next/server/app/signin/page.js +47 -33
  297. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  298. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  299. package/server/.next/server/chunks/{[externals]__0y_x27mdj85p4._.js → [externals]__0ia-wyj5qrosx._.js} +1 -1
  300. package/server/.next/server/chunks/{[externals]__1fzfzd0ia0sk6._.js → [externals]__0igl_rsv6z3fr._.js} +1 -1
  301. package/server/.next/server/chunks/{[externals]__1qqyrxnupegg3._.js → [externals]__0mh8e6gkgfswq._.js} +1 -1
  302. package/server/.next/server/chunks/{[root-of-the-server]__0hblpf7wqke-j._.js → [root-of-the-server]__0-ftc1hhcjcl2._.js} +2 -2
  303. package/server/.next/server/chunks/{[root-of-the-server]__0x487cn6dsn12._.js → [root-of-the-server]__0-st5xltl53h9._.js} +2 -2
  304. package/server/.next/server/chunks/{[root-of-the-server]__03i6yscmtbhhg._.js → [root-of-the-server]__0-u9oeob2sa7f._.js} +2 -2
  305. package/server/.next/server/chunks/{[root-of-the-server]__0_nljmqhjcept._.js → [root-of-the-server]__0070gc9ml0mf7._.js} +1 -1
  306. package/server/.next/server/chunks/{[root-of-the-server]__07bw6o0jc31yr._.js → [root-of-the-server]__0185dne3slx7e._.js} +2 -2
  307. package/server/.next/server/chunks/{[root-of-the-server]__0v-gc-c_e8pwl._.js → [root-of-the-server]__040ix5fqb_zb-._.js} +2 -2
  308. package/server/.next/server/chunks/{[root-of-the-server]__07mzeijv31avl._.js → [root-of-the-server]__05jzua9637vlo._.js} +2 -2
  309. package/server/.next/server/chunks/{[root-of-the-server]__1_or7dycvkseg._.js → [root-of-the-server]__06uaa_2zbg57p._.js} +1 -1
  310. package/server/.next/server/chunks/{[root-of-the-server]__1brl5otpkvgd3._.js → [root-of-the-server]__07byme21uj5ln._.js} +2 -2
  311. package/server/.next/server/chunks/{[root-of-the-server]__1lerees-l5-6c._.js → [root-of-the-server]__07g16s_wi2sai._.js} +2 -2
  312. package/server/.next/server/chunks/{[root-of-the-server]__0lu91s5izfu0p._.js → [root-of-the-server]__08-puk3_gawjd._.js} +2 -2
  313. package/server/.next/server/chunks/{[root-of-the-server]__0hnljrh9qi9t-._.js → [root-of-the-server]__0_e2eoq7w3ff_._.js} +2 -2
  314. package/server/.next/server/chunks/{[root-of-the-server]__0zni_2pv2fdgb._.js → [root-of-the-server]__0cc32xnniktg9._.js} +2 -2
  315. package/server/.next/server/chunks/{[root-of-the-server]__213bsllf-9ztc._.js → [root-of-the-server]__0cz3da2wx3_wd._.js} +2 -2
  316. package/server/.next/server/chunks/{[root-of-the-server]__0noc6l63d3l9w._.js → [root-of-the-server]__0dvuy3ibsyiik._.js} +2 -2
  317. package/server/.next/server/chunks/{[root-of-the-server]__1xxmlb3soqzom._.js → [root-of-the-server]__0e2utnqdim70d._.js} +2 -2
  318. package/server/.next/server/chunks/{[root-of-the-server]__0ihedjvt-l2-u._.js → [root-of-the-server]__0exicuoq6gmph._.js} +2 -2
  319. package/server/.next/server/chunks/{[root-of-the-server]__10wbld2tja51-._.js → [root-of-the-server]__0ezd1s2862iob._.js} +2 -2
  320. package/server/.next/server/chunks/[root-of-the-server]__0gmn5s40au84-._.js +3 -0
  321. package/server/.next/server/chunks/[root-of-the-server]__0i75m0es1m3hf._.js +3 -0
  322. package/server/.next/server/chunks/{[root-of-the-server]__0awtaloe4_8am._.js → [root-of-the-server]__0ikiyg3u02ofv._.js} +1 -1
  323. package/server/.next/server/chunks/{[root-of-the-server]__1xl6_spngp6k3._.js → [root-of-the-server]__0ms1uw85c5wg2._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__0o0z59_jylzvy._.js +3 -0
  325. package/server/.next/server/chunks/{[root-of-the-server]__1zvoez8iapsem._.js → [root-of-the-server]__0oqltt9cni6m0._.js} +2 -2
  326. package/server/.next/server/chunks/{[root-of-the-server]__1lj1f2w2-w8nw._.js → [root-of-the-server]__0quiawzx_nww0._.js} +2 -2
  327. package/server/.next/server/chunks/{[root-of-the-server]__0r1men25anfgb._.js → [root-of-the-server]__0r88w3qhrtzz_._.js} +1 -1
  328. package/server/.next/server/chunks/{[root-of-the-server]__0kp0yx909wtab._.js → [root-of-the-server]__0rb1-3538-pq9._.js} +1 -1
  329. package/server/.next/server/chunks/{[root-of-the-server]__0g1cifa7hd790._.js → [root-of-the-server]__0sabwm3w1rm0q._.js} +1 -1
  330. package/server/.next/server/chunks/{[root-of-the-server]__0hlyn_aj72sn5._.js → [root-of-the-server]__0tykhzqhwdx_k._.js} +2 -2
  331. package/server/.next/server/chunks/{[root-of-the-server]__0yuyew8m9dc6-._.js → [root-of-the-server]__0w_og0zl6hqzj._.js} +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0wdxw44t9l9o_._.js +3 -0
  333. package/server/.next/server/chunks/{[root-of-the-server]__16waq6rapvngp._.js → [root-of-the-server]__0x47i6wm-cd1z._.js} +2 -2
  334. package/server/.next/server/chunks/{[root-of-the-server]__0s8vjz6urzn76._.js → [root-of-the-server]__0x6qqr79pq_j9._.js} +1 -1
  335. package/server/.next/server/chunks/{[root-of-the-server]__0nrg8zzqizk69._.js → [root-of-the-server]__0xqgsjnebebv8._.js} +2 -2
  336. package/server/.next/server/chunks/{[root-of-the-server]__0q-x05ekhpohj._.js → [root-of-the-server]__0y99cuuxm0xs3._.js} +1 -1
  337. package/server/.next/server/chunks/[root-of-the-server]__0zflnh-2nol66._.js +3 -0
  338. package/server/.next/server/chunks/{[root-of-the-server]__0l6_iao04u72h._.js → [root-of-the-server]__0znmcklxfccvk._.js} +2 -2
  339. package/server/.next/server/chunks/[root-of-the-server]__10dp33pb5e0ml._.js +3 -0
  340. package/server/.next/server/chunks/[root-of-the-server]__12xl6ax-q8s93._.js +3 -0
  341. package/server/.next/server/chunks/{[root-of-the-server]__090in165mp6av._.js → [root-of-the-server]__14sac3h4sfhh7._.js} +1 -1
  342. package/server/.next/server/chunks/{[root-of-the-server]__0oy0hcm48kl-q._.js → [root-of-the-server]__16md_196q9s8a._.js} +2 -2
  343. package/server/.next/server/chunks/[root-of-the-server]__17xbg7cngebwp._.js +3 -0
  344. package/server/.next/server/chunks/{[root-of-the-server]__0hrtz5c_46jkw._.js → [root-of-the-server]__186-sa38csgot._.js} +1 -1
  345. package/server/.next/server/chunks/[root-of-the-server]__18lfi0w0e_h0k._.js +3 -0
  346. package/server/.next/server/chunks/{[root-of-the-server]__0u3un538__ca5._.js → [root-of-the-server]__1a7_3nq1jjab-._.js} +2 -2
  347. package/server/.next/server/chunks/{[root-of-the-server]__15dhjj384tuw_._.js → [root-of-the-server]__1bce11artflky._.js} +2 -2
  348. package/server/.next/server/chunks/[root-of-the-server]__1c1wqmzm65xo8._.js +3 -0
  349. package/server/.next/server/chunks/{[root-of-the-server]__1adw_bv2u89kc._.js → [root-of-the-server]__1g4iy2tasmn0f._.js} +1 -1
  350. package/server/.next/server/chunks/[root-of-the-server]__1gry2nrq5xhxl._.js +3 -0
  351. package/server/.next/server/chunks/{[root-of-the-server]__1dh4di29mjq9y._.js → [root-of-the-server]__1gt_-h9n48pwi._.js} +2 -2
  352. package/server/.next/server/chunks/[root-of-the-server]__1hl9k6e1o7xh2._.js +3 -0
  353. package/server/.next/server/chunks/[root-of-the-server]__1kk_s-q90445m._.js +3 -0
  354. package/server/.next/server/chunks/{[root-of-the-server]__02ldm_7l9zld8._.js → [root-of-the-server]__1lfsf7un8kdbr._.js} +1 -1
  355. package/server/.next/server/chunks/[root-of-the-server]__1nusfevn1z4nm._.js +3 -0
  356. package/server/.next/server/chunks/{[root-of-the-server]__0l9ja3579qrju._.js → [root-of-the-server]__1ny8nr52qvr4i._.js} +2 -2
  357. package/server/.next/server/chunks/{[root-of-the-server]__125fkw52kl2ty._.js → [root-of-the-server]__1o9v_499yd5k8._.js} +2 -2
  358. package/server/.next/server/chunks/[root-of-the-server]__1oc55uo0ax787._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__1w7dv8zm-k_oa._.js → [root-of-the-server]__1qdbn4gdg7ndr._.js} +2 -2
  360. package/server/.next/server/chunks/[root-of-the-server]__1uqxnb7qfqcms._.js +3 -0
  361. package/server/.next/server/chunks/{[root-of-the-server]__1dbz126yujh44._.js → [root-of-the-server]__1vqs8o9bv1wbk._.js} +2 -2
  362. package/server/.next/server/chunks/[root-of-the-server]__1vxtt1favjdfr._.js +3 -0
  363. package/server/.next/server/chunks/[root-of-the-server]__1xwgj26z5f7ih._.js +3 -0
  364. package/server/.next/server/chunks/{[root-of-the-server]__1ooxluowhatjt._.js → [root-of-the-server]__20ng0hgzxagf_._.js} +2 -2
  365. package/server/.next/server/chunks/{[root-of-the-server]__0032rbj2s87zo._.js → [root-of-the-server]__20r_62r36t28o._.js} +2 -2
  366. package/server/.next/server/chunks/[root-of-the-server]__20sv90-2ei08l._.js +3 -0
  367. package/server/.next/server/chunks/_0-fp57b-utmuw._.js +1 -1
  368. package/server/.next/server/chunks/_004j-wbs3yn84._.js +1 -1
  369. package/server/.next/server/chunks/_01x32f51v50y7._.js +3 -0
  370. package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
  371. package/server/.next/server/chunks/_06gv0srpbf_lk._.js +3 -0
  372. package/server/.next/server/chunks/_06lf75x-xhl7v._.js +1 -1
  373. package/server/.next/server/chunks/_0brb2454uen18._.js +1 -1
  374. package/server/.next/server/chunks/_0dkhprw6wsizx._.js +1 -1
  375. package/server/.next/server/chunks/_0ffsv993spriq._.js +3 -0
  376. package/server/.next/server/chunks/_0hsj1tx2ynla-._.js +3 -0
  377. package/server/.next/server/chunks/{_1-pcsy2hkg0il._.js → _0ljdeybzgdyai._.js} +1 -1
  378. package/server/.next/server/chunks/_0ls7sornjrg95._.js +5 -0
  379. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  380. package/server/.next/server/chunks/{_0duxuj4kmjibl._.js → _0nt4ifc48vl34._.js} +28 -21
  381. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
  382. package/server/.next/server/chunks/{_113ebzq_9i756._.js → _0rkn5gstaj2d0._.js} +28 -21
  383. package/server/.next/server/chunks/_0s2odl9xacsg0._.js +1 -1
  384. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
  385. package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +2 -2
  386. package/server/.next/server/chunks/_0zj10_al6r59j._.js +2 -2
  387. package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
  388. package/server/.next/server/chunks/_17aiz6zt-yv52._.js +2 -2
  389. package/server/.next/server/chunks/_18p-vw2zmdx9f._.js +1 -1
  390. package/server/.next/server/chunks/{_1ihndlef8r00f._.js → _1_4jb754aeifp._.js} +28 -21
  391. package/server/.next/server/chunks/{_0if5sw58tii_3._.js → _1_9n8x5ncta29._.js} +2 -2
  392. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
  393. package/server/.next/server/chunks/_1_xsrlijknnh3._.js +1 -1
  394. package/server/.next/server/chunks/{_16urxazbgm48y._.js → _1cq1vvbp6pglr._.js} +3 -3
  395. package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +2 -2
  396. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
  397. package/server/.next/server/chunks/_1h73gul79s8pi._.js +1 -1
  398. package/server/.next/server/chunks/{_0ry4553j-m5fp._.js → _1myv9csc_in08._.js} +3 -3
  399. package/server/.next/server/chunks/{_1g8r-7wcf8sy3._.js → _1n-fm2bdo9t2m._.js} +3 -3
  400. package/server/.next/server/chunks/{_1mwb214-ablfo._.js → _1qsryafbujfwn._.js} +28 -21
  401. package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +1 -1
  402. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  403. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  404. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
  405. package/server/.next/server/chunks/{src_09cgjvch02173._.js → src_0_l3dzp06o4x5._.js} +2 -2
  406. package/server/.next/server/chunks/{src_0c7qu5adpm3gv._.js → src_0m6xxpw2u-xv_._.js} +2 -2
  407. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
  408. package/server/.next/server/chunks/{src_20ilndq84j3b3._.js → src_15fupbs9-n8q9._.js} +2 -2
  409. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  410. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
  411. package/server/.next/server/chunks/src_1p24c-nz35cov._.js +3 -0
  412. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +1 -1
  413. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  414. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
  415. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +1 -1
  416. package/server/.next/server/chunks/src_lib_001zhbfd1zeuk._.js +3 -0
  417. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +3 -0
  418. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  419. package/server/.next/server/chunks/{src_lib_206j7lyff31-g._.js → src_lib_0k_aposzvy1c8._.js} +2 -2
  420. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +21 -14
  421. package/server/.next/server/chunks/{src_lib_1-u7dbsavbtb0._.js → src_lib_0vjapfdxkooq5._.js} +2 -2
  422. package/server/.next/server/chunks/{src_lib_0krdzz8eu9xh3._.js → src_lib_0yn0bj14ih0id._.js} +2 -2
  423. package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +3 -3
  424. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +21 -14
  425. package/server/.next/server/chunks/{src_lib_0ayxuk4ftzf2f._.js → src_lib_1qbgm0zu8q1rr._.js} +2 -2
  426. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +21 -14
  427. package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +3 -3
  428. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  429. package/server/.next/server/chunks/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
  430. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +4 -4
  431. package/server/.next/server/chunks/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +3 -0
  432. package/server/.next/server/chunks/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
  433. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +6 -6
  434. package/server/.next/server/chunks/src_lib_local-auth_setup_ts_10d8-k_e6pvft._.js +2 -2
  435. package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  436. package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  437. package/server/.next/server/chunks/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
  438. package/server/.next/server/chunks/src_private_assist_questions-db_ts_1pc4g504t-qmu._.js +1 -1
  439. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  440. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +3 -0
  441. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +3 -0
  442. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +4 -0
  443. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +3 -0
  444. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +3 -0
  445. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +3 -0
  446. package/server/.next/server/chunks/ssr/{[externals]__0jv_q8g96gubg._.js → [externals]__01kgu896o9-9t._.js} +1 -1
  447. package/server/.next/server/chunks/ssr/{[externals]__1d_fn156y1kzg._.js → [externals]__0i0hmh-a743jn._.js} +1 -1
  448. package/server/.next/server/chunks/ssr/{[externals]__1neu6qld_ilyx._.js → [externals]__0irbihjwcc9is._.js} +1 -1
  449. package/server/.next/server/chunks/ssr/{[externals]__0yzs5m5hot2o2._.js → [externals]__0qc7l-41h018j._.js} +1 -1
  450. package/server/.next/server/chunks/ssr/{[externals]__0et8619os7o06._.js → [externals]__0vlxry7jq5j1j._.js} +1 -1
  451. package/server/.next/server/chunks/ssr/{[externals]__0x50_fipcza3k._.js → [externals]__0yyslm1ka5px3._.js} +1 -1
  452. package/server/.next/server/chunks/ssr/[externals]__194b54tqm6qaq._.js +3 -0
  453. package/server/.next/server/chunks/ssr/[externals]__1mol6ksxmtkv6._.js +3 -0
  454. package/server/.next/server/chunks/ssr/[externals]__1prfp5pzeoflz._.js +3 -0
  455. package/server/.next/server/chunks/ssr/[externals]__1zxtjc2qr2epg._.js +3 -0
  456. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  457. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0p7d9dfmuhnvv._.js → [root-of-the-server]__004q78ed0nf0_._.js} +2 -2
  458. package/server/.next/server/chunks/ssr/[root-of-the-server]__01zthkv8nrlct._.js +3 -0
  459. package/server/.next/server/chunks/ssr/{[root-of-the-server]__00wwav5k7xmy0._.js → [root-of-the-server]__04_prmhm_cts4._.js} +2 -2
  460. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_677ii9bahoy._.js → [root-of-the-server]__056nm27ib-x1m._.js} +2 -2
  461. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khp_gsot3jh_._.js → [root-of-the-server]__06b1pw15-_hv5._.js} +2 -2
  462. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khvq0xdah931._.js → [root-of-the-server]__09blzlbsxqvy9._.js} +2 -2
  463. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-o5i-5pqjk5v._.js → [root-of-the-server]__0_6on4a5w76va._.js} +1 -1
  464. package/server/.next/server/chunks/ssr/{[root-of-the-server]__15wwi1pda8ims._.js → [root-of-the-server]__0c_q6tvcmsmt9._.js} +2 -2
  465. package/server/.next/server/chunks/ssr/{[root-of-the-server]__050d99bknjdvq._.js → [root-of-the-server]__0ct4apye0sfmc._.js} +2 -2
  466. package/server/.next/server/chunks/ssr/[root-of-the-server]__0e8ya6wyy2plv._.js +3 -0
  467. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0p5znbfo0wgsu._.js → [root-of-the-server]__0eaqsql69fhf8._.js} +2 -2
  468. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1kieqcc6kdywx._.js → [root-of-the-server]__0ek1-s5z9ggq2._.js} +2 -2
  469. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h0txd7z3sxq7._.js +3 -0
  470. package/server/.next/server/chunks/ssr/{[root-of-the-server]__08w3ad-xux1g4._.js → [root-of-the-server]__0h1vffivfh242._.js} +1 -1
  471. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_1130gx52k-9._.js → [root-of-the-server]__0hzlz_t5eect2._.js} +2 -2
  472. package/server/.next/server/chunks/ssr/{[root-of-the-server]__16jkttbe1yoai._.js → [root-of-the-server]__0jgapr1cnvhi6._.js} +2 -2
  473. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11ham42w_feik._.js → [root-of-the-server]__0k29b_kblv6sv._.js} +1 -1
  474. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0bn_thc_vtf_i._.js → [root-of-the-server]__0keo0-hwsnkw9._.js} +2 -2
  475. package/server/.next/server/chunks/ssr/{[root-of-the-server]__12-a3tcnfdcyq._.js → [root-of-the-server]__0l50vsk8enxzj._.js} +2 -2
  476. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0exp042uqhyqs._.js → [root-of-the-server]__0l_cl2qk_xmmr._.js} +2 -2
  477. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0y84mqfn13ss4._.js → [root-of-the-server]__0n-sc7pzu7fpz._.js} +1 -1
  478. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nxyo70ahj7tk._.js +3 -0
  479. package/server/.next/server/chunks/ssr/[root-of-the-server]__0o0cpvobd-u0n._.js +3 -0
  480. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1096-q3_trmm9._.js → [root-of-the-server]__0oon1p2_04l7s._.js} +2 -2
  481. package/server/.next/server/chunks/ssr/[root-of-the-server]__0qnly-gjvfntd._.js +3 -0
  482. package/server/.next/server/chunks/ssr/[root-of-the-server]__0qqcz9ynsgmgl._.js +3 -0
  483. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +3 -0
  484. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +3 -0
  485. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ptdec0sozaqm._.js → [root-of-the-server]__0sj92w6mg92ds._.js} +2 -2
  486. package/server/.next/server/chunks/ssr/{[root-of-the-server]__05hw89gap74cw._.js → [root-of-the-server]__0uxychcp_pldy._.js} +2 -2
  487. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1k_hi9mbd4_by._.js → [root-of-the-server]__0wi2grctadbk8._.js} +1 -1
  488. package/server/.next/server/chunks/ssr/[root-of-the-server]__0xjg51t1__v-s._.js +3 -0
  489. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
  490. package/server/.next/server/chunks/ssr/{[root-of-the-server]__15keslh0ov5mv._.js → [root-of-the-server]__0z_1k5876-_wx._.js} +2 -2
  491. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ua-p_wz8epv9._.js → [root-of-the-server]__1-d88ogkwql_b._.js} +2 -2
  492. package/server/.next/server/chunks/ssr/[root-of-the-server]__10kuehp7saz8h._.js +3 -0
  493. package/server/.next/server/chunks/ssr/{[root-of-the-server]__10rhqv5xq9jaj._.js → [root-of-the-server]__110158s15r7mi._.js} +2 -2
  494. package/server/.next/server/chunks/ssr/[root-of-the-server]__113zn8es2wp67._.js +3 -0
  495. package/server/.next/server/chunks/ssr/[root-of-the-server]__14ept-_l8j32m._.js +1 -1
  496. package/server/.next/server/chunks/ssr/[root-of-the-server]__15s9onrf73-k8._.js +3 -0
  497. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0tjab3yn0asf7._.js → [root-of-the-server]__193nmh09rrpbx._.js} +1 -1
  498. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_b_k8wgqyxy7._.js +3 -0
  499. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  500. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_h_ya1h8efdj._.js +3 -0
  501. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0kr_tvfgqtb-o._.js → [root-of-the-server]__1a0b_dbx4uans._.js} +2 -2
  502. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ctkj-25wt37o._.js +4 -0
  503. package/server/.next/server/chunks/ssr/[root-of-the-server]__1d5tbv79yjhqm._.js +3 -0
  504. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e0l6kek0ufui._.js +3 -0
  505. package/server/.next/server/chunks/ssr/[root-of-the-server]__1hek7tjixcjch._.js +3 -0
  506. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ijizmc3ga_6o._.js +3 -0
  507. package/server/.next/server/chunks/ssr/[root-of-the-server]__1itgt83qo1e77._.js +3 -0
  508. package/server/.next/server/chunks/ssr/[root-of-the-server]__1kfivch_kfesn._.js +4 -0
  509. package/server/.next/server/chunks/ssr/[root-of-the-server]__1nat8lbog5imr._.js +1 -1
  510. package/server/.next/server/chunks/ssr/[root-of-the-server]__1o63-3k1wez40._.js +3 -0
  511. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ogwz1buruc_x._.js +3 -0
  512. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0llh-w4ta1qbp._.js → [root-of-the-server]__1sw2q1p1t59y8._.js} +2 -2
  513. package/server/.next/server/chunks/ssr/{[root-of-the-server]__06uaa_2zbg57p._.js → [root-of-the-server]__1tj-iwvrxfd1a._.js} +2 -2
  514. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xwqrik2sugmi._.js → [root-of-the-server]__1u_13nhw3kuz3._.js} +2 -2
  515. package/server/.next/server/chunks/ssr/[root-of-the-server]__1wr4__6rvsb3b._.js +3 -0
  516. package/server/.next/server/chunks/ssr/[root-of-the-server]__1yx8ayym979jd._.js +3 -0
  517. package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmavjo5fhryp._.js +3 -0
  518. package/server/.next/server/chunks/ssr/[root-of-the-server]__20of6xa16fwqa._.js +1 -1
  519. package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +3 -0
  520. package/server/.next/server/chunks/ssr/_01x32f51v50y7._.js +3 -0
  521. package/server/.next/server/chunks/ssr/{_04ltmruop4rt3._.js → _02eudwc8ieb2r._.js} +3 -3
  522. package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +3 -0
  523. package/server/.next/server/chunks/ssr/_03od6e8ibcxtf._.js +3 -0
  524. package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +3 -0
  525. package/server/.next/server/chunks/ssr/{_1_gydx19bikgo._.js → _08d4hz_ddxc02._.js} +2 -2
  526. package/server/.next/server/chunks/ssr/_08e6i1zuyz-ns._.js +3 -0
  527. package/server/.next/server/chunks/ssr/{_090fib2x989oc._.js → _08xqk3eibu5aw._.js} +2 -2
  528. package/server/.next/server/chunks/ssr/{_01irlde8uxva8._.js → _0_8v3-nq-b4ug._.js} +2 -2
  529. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  530. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  531. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  532. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  533. package/server/.next/server/chunks/ssr/_0c7stbntpuyt_._.js +3 -0
  534. package/server/.next/server/chunks/ssr/{_1ag8axv14phju._.js → _0cbbks0ms7i_u._.js} +3 -3
  535. package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
  536. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  537. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +4 -0
  538. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  539. package/server/.next/server/chunks/ssr/_0e4xfzm8oecc-._.js +3 -0
  540. package/server/.next/server/chunks/ssr/_0ffsv993spriq._.js +3 -0
  541. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +4 -0
  542. package/server/.next/server/chunks/ssr/_0hsj1tx2ynla-._.js +3 -0
  543. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +4 -0
  544. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +4 -0
  545. package/server/.next/server/chunks/ssr/{_0tqc0bsnybvva._.js → _0ipnb60-_660b._.js} +2 -2
  546. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +3 -0
  547. package/server/.next/server/chunks/ssr/{src_lib_0-nc33gvdtkg5._.js → _0ls7sornjrg95._.js} +2 -2
  548. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  549. package/server/.next/server/chunks/ssr/{_18lgd6o04ugow._.js → _0oub-njkja8gu._.js} +3 -3
  550. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +4 -0
  551. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  552. package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
  553. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +4 -0
  554. package/server/.next/server/chunks/ssr/_0uvkx5n0kf7r2._.js +3 -0
  555. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +4 -0
  556. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  557. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  558. package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +4 -0
  559. package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +3 -0
  560. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  561. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  562. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  563. package/server/.next/server/chunks/ssr/_11llsmv578p2i._.js +3 -0
  564. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +4 -0
  565. package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
  566. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  567. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  568. package/server/.next/server/chunks/ssr/_1_xsrlijknnh3._.js +1 -1
  569. package/server/.next/server/chunks/ssr/_1b1t9p1xljuql._.js +5 -0
  570. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +4 -0
  571. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  572. package/server/.next/server/chunks/ssr/_1de6e6l7599fp._.js +1 -1
  573. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +4 -0
  574. package/server/.next/server/chunks/ssr/_1e5kqt081d8yt._.js +3 -0
  575. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +4 -0
  576. package/server/.next/server/chunks/ssr/{_1w_rq6clcs0ft._.js → _1fuywfexex2s8._.js} +3 -3
  577. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  578. package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
  579. package/server/.next/server/chunks/ssr/_1h93joqd_-1og._.js +1 -1
  580. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +4 -0
  581. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_1jclq5d7tposb._.js +3 -0
  583. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  584. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +4 -0
  585. package/server/.next/server/chunks/ssr/{_0hmxyfx7su4uk._.js → _1m4km_w39x5e9._.js} +2 -2
  586. package/server/.next/server/chunks/ssr/_1o94cw0ml7xu7._.js +3 -0
  587. package/server/.next/server/chunks/ssr/_1ok868mr1th-7._.js +3 -0
  588. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +4 -0
  589. package/server/.next/server/chunks/ssr/_1qdox4yn1u4pc._.js +1 -1
  590. package/server/.next/server/chunks/ssr/_1qdqc9j_skd1q._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
  592. package/server/.next/server/chunks/ssr/{_1gk334l49puy-._.js → _1rinsar6bp6ul._.js} +2 -2
  593. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +4 -0
  594. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_20wy2moxkzhf0._.js +3 -0
  596. package/server/.next/server/chunks/ssr/{_026w_ig6vy9bt._.js → _218164gkxgum_._.js} +2 -2
  597. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +3 -0
  598. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +3 -0
  599. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +3 -0
  600. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +3 -0
  601. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +3 -0
  602. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +3 -0
  603. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +3 -0
  604. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +3 -0
  605. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +3 -0
  606. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +3 -0
  607. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +3 -0
  608. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +3 -0
  609. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +3 -0
  610. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +3 -0
  611. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  612. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  613. package/server/.next/server/chunks/ssr/node_modules_0bqq4kab3lt4c._.js +3 -0
  614. package/server/.next/server/chunks/ssr/{node_modules_05z64qbskywkh._.js → node_modules_1-uce_v-roeci._.js} +1 -1
  615. package/server/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_index_parts_mjs_0wvx70_xziwkw._.js +3 -0
  616. package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
  617. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kkewzcx4540.js +3 -0
  618. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00t5_cu_8xco2.js +3 -0
  619. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_028rm32yw9745.js +3 -0
  620. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02tytjla8gfpw.js +3 -0
  621. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05tff2l0grv3d.js +3 -0
  622. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08qavwdx-gipt.js +3 -0
  623. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09jdr97vksmwk.js +3 -0
  624. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c3z69fbbz6-a.js +3 -0
  625. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d4hxwzkts-8z.js +3 -0
  626. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dq-zslzf2s94.js +3 -0
  627. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_1q_82vyl-q7u6.js → node_modules_next_dist_esm_build_templates_app-page_0e-rjmezj0qkk.js} +2 -2
  628. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0ivgh76j_tu2x.js → node_modules_next_dist_esm_build_templates_app-page_0e50mslm8ys4t.js} +2 -2
  629. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0esqulnipbhj7.js +3 -0
  630. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0icasmc2qvtfa.js +3 -0
  631. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0idohkgskbja5.js +3 -0
  632. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ii2a6tud83pj.js +3 -0
  633. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ivr2dcq7hh5t.js +3 -0
  634. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mcwghl-di24f.js +3 -0
  635. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0n05qgf2t9o6n.js +3 -0
  636. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ntej2bo95ns3.js +3 -0
  637. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0o1l93c0tj-p8.js +3 -0
  638. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ollx_iq739y6.js +3 -0
  639. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v16m5nv0x43b.js +3 -0
  640. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0wa_9ywaoqxrf.js +3 -0
  641. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0y94b-zvw0vrq.js +3 -0
  642. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ydzswpddtx9q.js +3 -0
  643. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zwpkpyuh6z99.js +3 -0
  644. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14t5-0abqp0sm.js +3 -0
  645. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18h3ke4tl-fzl.js +3 -0
  646. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_14-4y3i6c1vxc.js → node_modules_next_dist_esm_build_templates_app-page_19kqs-fc2i0zv.js} +2 -2
  647. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_s_25znkg8mz.js +3 -0
  648. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_ysa6fs0tt59.js +3 -0
  649. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b4hixza89i52.js +3 -0
  650. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1brrqdx4msjzf.js +3 -0
  651. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1e74o7dar2z12.js +3 -0
  652. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eqpqmdz9jgs0.js +3 -0
  653. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1f3932777ye1o.js +3 -0
  654. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kx1n5-wqjvko.js +3 -0
  655. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1l6umnmh89nvy.js +3 -0
  656. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mdyuengydtxm.js +3 -0
  657. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmm1wm-dfm_v.js +3 -0
  658. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t-fn8blx1hp8.js +3 -0
  659. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tf9xiz17b3cq.js +3 -0
  660. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tffdbiasnszd.js +3 -0
  661. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uisz6sszlhwp.js +3 -0
  662. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1umag21mbk-rs.js +3 -0
  663. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0i3p3qfjihm3f.js → node_modules_next_dist_esm_build_templates_app-page_1vakvu0qtsn07.js} +2 -2
  664. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wmviw4zw6t_r.js +3 -0
  665. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xq449tjypb4s.js +3 -0
  666. package/server/.next/server/chunks/ssr/src_02ynbzyh8nn02._.js +3 -0
  667. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +3 -0
  668. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
  671. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  672. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +3 -0
  673. package/server/.next/server/chunks/ssr/{src_1xjlp4oxlprxb._.js → src_0jxjbvkvg0bjg._.js} +2 -2
  674. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  675. package/server/.next/server/chunks/ssr/src_0txyv7r1zns16._.js +3 -0
  676. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  679. package/server/.next/server/chunks/ssr/{src_071xsnvnzlvj8._.js → src_1751lvujjc-tz._.js} +2 -2
  680. package/server/.next/server/chunks/ssr/{src_0905fjqu0qv57._.js → src_186l56gdeizg8._.js} +2 -2
  681. package/server/.next/server/chunks/ssr/src_1f1x6508qetmp._.js +3 -0
  682. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +1 -1
  683. package/server/.next/server/chunks/ssr/{src_0i-1ohush6mui._.js → src_1p24c-nz35cov._.js} +2 -2
  684. package/server/.next/server/chunks/ssr/src_1pd5lqhm1x4yf._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  686. package/server/.next/server/chunks/ssr/{src_0widudneyf0oq._.js → src_1wnx8vxv7nd04._.js} +2 -2
  687. package/server/.next/server/chunks/ssr/src_1xoua7wkmyfkn._.js +3 -0
  688. package/server/.next/server/chunks/ssr/src_1y827m5-ojdib._.js +6 -0
  689. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  691. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  692. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  693. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +2 -2
  694. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  695. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  696. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  697. package/server/.next/server/chunks/ssr/src_app_(console)_1co5pna1vfflj._.js +3 -0
  698. package/server/.next/server/chunks/ssr/src_app_(console)_1shtcv6hidi4-._.js +3 -0
  699. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -1
  700. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  701. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1jme7fm7ej_lr._.js +3 -0
  702. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  703. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  705. package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  707. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  710. package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
  711. package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
  712. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  713. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  714. package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  716. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  717. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +1 -1
  718. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  719. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +2 -2
  723. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  724. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  731. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  732. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  733. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  734. package/server/.next/server/chunks/ssr/{src_app_signin_0hb58isfg-2yx._.js → src_app_signin_0ko968fxahf6u._.js} +2 -2
  735. package/server/.next/server/chunks/ssr/src_components_0-x11r8_844pu._.js +1 -1
  736. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
  737. package/server/.next/server/chunks/ssr/src_components_0_xymno8nakru._.js +3 -0
  738. package/server/.next/server/chunks/ssr/src_components_0ozvphxxwb7d-._.js +3 -0
  739. package/server/.next/server/chunks/ssr/src_components_0tmtbf2etsx03._.js +1 -1
  740. package/server/.next/server/chunks/ssr/src_components_charts_tsx_0u0c5sxi3-7ug._.js +1 -1
  741. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  742. package/server/.next/server/chunks/ssr/src_components_live_tsx_1p2s3b807w0jt._.js +1 -1
  743. package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
  744. package/server/.next/server/chunks/ssr/src_lib_001zhbfd1zeuk._.js +3 -0
  745. package/server/.next/server/chunks/ssr/src_lib_04orn7u7ufxp1._.js +3 -0
  746. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +3 -0
  747. package/server/.next/server/chunks/ssr/src_lib_0nbad7vu413-f._.js +23 -0
  748. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +3 -0
  749. package/server/.next/server/chunks/ssr/src_lib_1l8ej-zoyyegd._.js +3 -0
  750. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +3 -0
  751. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  752. package/server/.next/server/chunks/ssr/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
  753. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +1 -1
  754. package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +3 -0
  755. package/server/.next/server/chunks/ssr/src_lib_data_github-db_ts_02xuh84m-__8z._.js +1 -1
  756. package/server/.next/server/chunks/ssr/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +3 -0
  757. package/server/.next/server/chunks/ssr/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
  758. package/server/.next/server/chunks/ssr/{src_lib_demo_1wu-a6lubzph6._.js → src_lib_demo_0ftmf3wmtezvl._.js} +2 -2
  759. package/server/.next/server/chunks/ssr/src_lib_local-auth_setup_ts_05zj7z33ne4f5._.js +1 -1
  760. package/server/.next/server/chunks/ssr/src_lib_security_node-runtime_ts_1jei00s21d6v0._.js +3 -0
  761. package/server/.next/server/chunks/ssr/src_lib_view_14iq8onyfo7nd._.js +3 -0
  762. package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  763. package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  764. package/server/.next/server/chunks/ssr/src_lib_view_network_ts_0toa7t-gw9cup._.js +1 -1
  765. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  766. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  767. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  768. package/server/.next/server/chunks/ssr/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
  769. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  770. package/server/.next/server/middleware-build-manifest.js +105 -105
  771. package/server/.next/server/pages/404.html +1 -1
  772. package/server/.next/server/pages/500.html +1 -1
  773. package/server/.next/server/preview-props.json +3 -3
  774. package/server/.next/server/server-reference-manifest.js +1 -1
  775. package/server/.next/server/server-reference-manifest.json +868 -672
  776. package/server/.next/static/chunks/0-6om8-d7itz8.js +1 -0
  777. package/server/.next/static/chunks/00oeu_tbjky7m.js +1 -0
  778. package/server/.next/static/chunks/0181phyuecg9b.js +1 -0
  779. package/server/.next/static/chunks/{36js6cf9c-53b.js → 01u9q07wu6-x1.js} +1 -1
  780. package/server/.next/static/chunks/0_5_9w6m-xwd0.js +1 -0
  781. package/server/.next/static/chunks/{0rgn3-cks0udn.js → 0a-rekt06v0sv.js} +1 -1
  782. package/server/.next/static/chunks/0hj1-5zruyih6.js +1 -0
  783. package/server/.next/static/chunks/0krhehmzgigx5.js +1 -0
  784. package/server/.next/static/chunks/0md0jy9rztofl.js +1 -0
  785. package/server/.next/static/chunks/0mp6prf1hx5mx.js +1 -0
  786. package/server/.next/static/chunks/0t66sf4vvalei.js +1 -0
  787. package/server/.next/static/chunks/{1o1lidcbrrh92.js → 0v_-lu_cx7f91.js} +1 -1
  788. package/server/.next/static/chunks/0x_wb_w6fgkyt.js +1 -0
  789. package/server/.next/static/chunks/0xcpi35p5fa83.js +1 -0
  790. package/server/.next/static/chunks/0z0may9twpt-j.js +1 -0
  791. package/server/.next/static/chunks/{2yjh4ytp-sedv.js → 149lk0boxihnl.js} +1 -1
  792. package/server/.next/static/chunks/{0i8-ofb4wfcch.js → 16yvy9zkjac5c.js} +1 -1
  793. package/server/.next/static/chunks/17lwu-2id6c_-.js +1 -0
  794. package/server/.next/static/chunks/18johpgap0xmw.js +1 -0
  795. package/server/.next/static/chunks/18mkhwl0zlvnp.js +1 -0
  796. package/server/.next/static/chunks/1_8g4usrgjnnu.js +1 -0
  797. package/server/.next/static/chunks/1c0s-ejiwfy2u.js +1 -0
  798. package/server/.next/static/chunks/{319s97ka6eaex.js → 1gt3cagsbgx4w.js} +1 -1
  799. package/server/.next/static/chunks/1q-m7qgrvvzwb.js +1 -0
  800. package/server/.next/static/chunks/{1qxc6cck2xkbs.js → 1rkrtrvwbbnjf.js} +1 -1
  801. package/server/.next/static/chunks/{12fo0pcbpv7lw.js → 1sc1vz_ygak9u.js} +1 -1
  802. package/server/.next/static/chunks/1tg1mstvws8rj.css +3 -0
  803. package/server/.next/static/chunks/1ukyjy13dwy_z.js +1 -0
  804. package/server/.next/static/chunks/1urtw14pwufsv.js +1 -0
  805. package/server/.next/static/chunks/1xm6ay06cjchs.js +1 -0
  806. package/server/.next/static/chunks/{3orhi-m-n-ra4.js → 1y_6crandf_3f.js} +1 -1
  807. package/server/.next/static/chunks/1ys80h6x541kn.js +5 -0
  808. package/server/.next/static/chunks/2-m982u6v7z8m.js +1 -0
  809. package/server/.next/static/chunks/20ujg0hz_need.js +1 -0
  810. package/server/.next/static/chunks/2a3tky__z9q4j.js +1 -0
  811. package/server/.next/static/chunks/2cipdjdkoq312.js +1 -0
  812. package/server/.next/static/chunks/{0-_zjfssid86w.js → 2ect0ww0gtoad.js} +2 -2
  813. package/server/.next/static/chunks/2s-_9p0-395sm.js +1 -0
  814. package/server/.next/static/chunks/{0a5vchcarwyam.js → 2ue_c6tww95_c.js} +1 -1
  815. package/server/.next/static/chunks/2xio-kspedw69.js +1 -0
  816. package/server/.next/static/chunks/2z6gojfx3lqvt.js +1 -0
  817. package/server/.next/static/chunks/31v3igne_z-0k.js +1 -0
  818. package/server/.next/static/chunks/33ddsp07_9o1d.js +7 -0
  819. package/server/.next/static/chunks/340qccog2_uge.js +2 -0
  820. package/server/.next/static/chunks/35ua22np4u9jr.js +1 -0
  821. package/server/.next/static/chunks/{2q88116332v43.js → 37zqf9hef7g0k.js} +1 -1
  822. package/server/.next/static/chunks/38ao1jq4zw-nd.js +1 -0
  823. package/server/.next/static/chunks/{3xo5igjfumqip.js → 38g-5wiggu6__.js} +1 -1
  824. package/server/.next/static/chunks/{05p62k_8g05pm.js → 3a5a2iizetq9b.js} +11 -11
  825. package/server/.next/static/chunks/3f1td0b-oy-sr.js +1 -0
  826. package/server/.next/static/chunks/{1pre7l9hmk-b6.js → 3imk3dh9_4wd5.js} +1 -1
  827. package/server/.next/static/chunks/3jhh47vezwohc.js +1 -0
  828. package/server/.next/static/chunks/3letbzhf_1srv.js +1 -0
  829. package/server/.next/static/chunks/{3u3h2mlon2qu7.js → 3qedt96akbcad.js} +1 -1
  830. package/server/.next/static/chunks/3vpy-ra0rib9m.js +1 -0
  831. package/server/.next/static/chunks/3wi930ujb_5_z.js +1 -0
  832. package/server/.next/static/chunks/40n6mtthd3_sh.js +1 -0
  833. package/server/drizzle-selfhost/0007_webhook_channel.sql +5 -0
  834. package/server/drizzle-selfhost/meta/_journal.json +7 -0
  835. package/tools/reset-login.mjs +1 -1
  836. package/server/.next/server/chunks/[root-of-the-server]__0f5bt0o1k41ft._.js +0 -3
  837. package/server/.next/server/chunks/[root-of-the-server]__0hedtycoyydoc._.js +0 -3
  838. package/server/.next/server/chunks/[root-of-the-server]__0zmvf4j8e2gno._.js +0 -3
  839. package/server/.next/server/chunks/[root-of-the-server]__1-9hjrgvj0fpb._.js +0 -3
  840. package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +0 -3
  841. package/server/.next/server/chunks/[root-of-the-server]__14eyo4i2tm93k._.js +0 -3
  842. package/server/.next/server/chunks/[root-of-the-server]__14ou3bydfm0ms._.js +0 -3
  843. package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +0 -3
  844. package/server/.next/server/chunks/[root-of-the-server]__1dyith2r4bacm._.js +0 -3
  845. package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +0 -3
  846. package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +0 -3
  847. package/server/.next/server/chunks/[root-of-the-server]__1mim39ea6-dm1._.js +0 -3
  848. package/server/.next/server/chunks/[root-of-the-server]__1p0zd1rtbkj9r._.js +0 -3
  849. package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +0 -3
  850. package/server/.next/server/chunks/[root-of-the-server]__1v4i7ytwadml8._.js +0 -3
  851. package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +0 -3
  852. package/server/.next/server/chunks/[root-of-the-server]__1zg653esm3__p._.js +0 -3
  853. package/server/.next/server/chunks/[root-of-the-server]__1zrqz88a2lkx5._.js +0 -3
  854. package/server/.next/server/chunks/[root-of-the-server]__1zwi7po5_xe8-._.js +0 -3
  855. package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +0 -3
  856. package/server/.next/server/chunks/_1-ior_ot6mgxg._.js +0 -3
  857. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +0 -3
  858. package/server/.next/server/chunks/src_0i-1ohush6mui._.js +0 -3
  859. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +0 -3
  860. package/server/.next/server/chunks/src_lib_0-nc33gvdtkg5._.js +0 -5
  861. package/server/.next/server/chunks/src_lib_0-xd6p5793qdu._.js +0 -3
  862. package/server/.next/server/chunks/src_lib_0qbcg988i_-ee._.js +0 -3
  863. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +0 -3
  864. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +0 -3
  865. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +0 -4
  866. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +0 -3
  867. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +0 -3
  868. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +0 -3
  869. package/server/.next/server/chunks/ssr/[externals]__1hqh7fi0-rtlc._.js +0 -3
  870. package/server/.next/server/chunks/ssr/[externals]__1mmmc4yhx5fm6._.js +0 -3
  871. package/server/.next/server/chunks/ssr/[externals]__1nv-uycpa6_lh._.js +0 -3
  872. package/server/.next/server/chunks/ssr/[externals]__1p5zuqwmfkoo1._.js +0 -3
  873. package/server/.next/server/chunks/ssr/[root-of-the-server]__0-jx3t8dg8n5t._.js +0 -3
  874. package/server/.next/server/chunks/ssr/[root-of-the-server]__01mgajn73iwc7._.js +0 -5
  875. package/server/.next/server/chunks/ssr/[root-of-the-server]__04klr3-4qi7-t._.js +0 -3
  876. package/server/.next/server/chunks/ssr/[root-of-the-server]__04zgt2t-w6-75._.js +0 -3
  877. package/server/.next/server/chunks/ssr/[root-of-the-server]__05q-laapy00sk._.js +0 -3
  878. package/server/.next/server/chunks/ssr/[root-of-the-server]__0dd9rci1isdjf._.js +0 -3
  879. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ejxk0jlgi4eb._.js +0 -3
  880. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lehuiyzxp78t._.js +0 -3
  881. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +0 -4
  882. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tp9vtckbkk9o._.js +0 -3
  883. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +0 -3
  884. package/server/.next/server/chunks/ssr/[root-of-the-server]__10y2ig7dg3f-k._.js +0 -3
  885. package/server/.next/server/chunks/ssr/[root-of-the-server]__18xb7pbdmiyiz._.js +0 -3
  886. package/server/.next/server/chunks/ssr/[root-of-the-server]__194546bqpq02e._.js +0 -3
  887. package/server/.next/server/chunks/ssr/[root-of-the-server]__1bvp2ia3h9qbs._.js +0 -3
  888. package/server/.next/server/chunks/ssr/[root-of-the-server]__1dyjzbqwy6o12._.js +0 -3
  889. package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +0 -4
  890. package/server/.next/server/chunks/ssr/[root-of-the-server]__1l695djsioelp._.js +0 -3
  891. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pfk0fqey3ipf._.js +0 -3
  892. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pgpryg9lkmoz._.js +0 -3
  893. package/server/.next/server/chunks/ssr/[root-of-the-server]__1rvdnoxnu0ddf._.js +0 -3
  894. package/server/.next/server/chunks/ssr/[root-of-the-server]__1t4thrxlv4zre._.js +0 -3
  895. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tco2ec6ha1k6._.js +0 -3
  896. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tcu4-eowz9vt._.js +0 -3
  897. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tuftf7fags7x._.js +0 -5
  898. package/server/.next/server/chunks/ssr/[root-of-the-server]__1vyste6xyyu37._.js +0 -3
  899. package/server/.next/server/chunks/ssr/[root-of-the-server]__1yf4_oyl-3xp7._.js +0 -3
  900. package/server/.next/server/chunks/ssr/[root-of-the-server]__2195hg4329yfp._.js +0 -3
  901. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +0 -4
  902. package/server/.next/server/chunks/ssr/_06kn13xh_13da._.js +0 -3
  903. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +0 -4
  904. package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +0 -3
  905. package/server/.next/server/chunks/ssr/_0ad3y3l77xkxe._.js +0 -3
  906. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +0 -4
  907. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +0 -4
  908. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +0 -4
  909. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +0 -4
  910. package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +0 -3
  911. package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +0 -3
  912. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +0 -3
  913. package/server/.next/server/chunks/ssr/_0ufjz7kfd4jbd._.js +0 -3
  914. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +0 -4
  915. package/server/.next/server/chunks/ssr/_0wzg8e30al7bu._.js +0 -3
  916. package/server/.next/server/chunks/ssr/_0ymtfa6vo-yz5._.js +0 -3
  917. package/server/.next/server/chunks/ssr/_0yn1xeumiigj0._.js +0 -3
  918. package/server/.next/server/chunks/ssr/_1-ior_ot6mgxg._.js +0 -3
  919. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +0 -4
  920. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +0 -4
  921. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +0 -4
  922. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +0 -4
  923. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +0 -4
  924. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +0 -4
  925. package/server/.next/server/chunks/ssr/_1e5zfwgdf0mm5._.js +0 -3
  926. package/server/.next/server/chunks/ssr/_1gvbcfoah__sl._.js +0 -3
  927. package/server/.next/server/chunks/ssr/_1h5tfqxzqd2tz._.js +0 -3
  928. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +0 -4
  929. package/server/.next/server/chunks/ssr/_1k8rjvzlscs56._.js +0 -3
  930. package/server/.next/server/chunks/ssr/_1l-vlfiltmzu3._.js +0 -3
  931. package/server/.next/server/chunks/ssr/_1rf_mwfkk_9oa._.js +0 -3
  932. package/server/.next/server/chunks/ssr/_1uae0vl2c6fz7._.js +0 -3
  933. package/server/.next/server/chunks/ssr/_1y8wer5tpgiqw._.js +0 -3
  934. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +0 -4
  935. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +0 -4
  936. package/server/.next/server/chunks/ssr/_217qa04yo70zg._.js +0 -3
  937. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +0 -3
  938. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +0 -3
  939. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +0 -3
  940. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +0 -3
  941. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +0 -3
  942. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +0 -3
  943. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +0 -3
  944. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +0 -3
  945. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +0 -3
  946. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +0 -3
  947. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +0 -3
  948. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +0 -3
  949. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +0 -3
  950. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +0 -3
  951. package/server/.next/server/chunks/ssr/node_modules_1_u5afwqp6brs._.js +0 -3
  952. package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +0 -3
  953. package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +0 -3
  954. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kg_ige9ehqj.js +0 -3
  955. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00k37tbaia8dh.js +0 -3
  956. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00z_p6szkga15.js +0 -3
  957. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01-utr59mtfg1.js +0 -3
  958. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_055hw7kwif935.js +0 -3
  959. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06fg_efdkc3kx.js +0 -3
  960. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08f3d08smwt6_.js +0 -3
  961. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcfro9qovjn.js +0 -3
  962. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c8wd69fns_0d.js +0 -3
  963. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0cha-3kg99u4h.js +0 -3
  964. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d_0he72lzkh9.js +0 -3
  965. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0f6chw8z5cuyg.js +0 -3
  966. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j9-_xhs21abp.js +0 -3
  967. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kwpdjujljna-.js +0 -3
  968. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rer2akuum5r-.js +0 -3
  969. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0umt_achusjjb.js +0 -3
  970. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0un7wq602mt3n.js +0 -3
  971. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vrdl9n7guitd.js +0 -3
  972. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vse2cboy4cms.js +0 -3
  973. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0x7ey4_8b48_o.js +0 -3
  974. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z8l8t55t65t_.js +0 -3
  975. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zap6p0vuv-fp.js +0 -3
  976. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-m49cfu6a7gl.js +0 -3
  977. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-w3hswsbrppl.js +0 -3
  978. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1167zbjp4ys_a.js +0 -3
  979. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_129serqqq3xyq.js +0 -3
  980. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12en3pdvxu0dy.js +0 -3
  981. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1596hk9t3r1a5.js +0 -3
  982. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17us24ry0om-z.js +0 -3
  983. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_8xi22-aoxu1.js +0 -3
  984. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_l32aoya75_m.js +0 -3
  985. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ar0v26274uhj.js +0 -3
  986. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dkgfjoaf_1g3.js +0 -3
  987. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eg14m09zdg__.js +0 -3
  988. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1h_y671y1la_8.js +0 -3
  989. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mkokmyyp47hd.js +0 -3
  990. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1msjiuu45famw.js +0 -3
  991. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mw7isdchouml.js +0 -3
  992. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n4cotiug2a_r.js +0 -3
  993. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1njl24pr6dwrt.js +0 -3
  994. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o1_3bydb-3j5.js +0 -3
  995. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1pjor42_s9imf.js +0 -3
  996. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qta4yeufzpz7.js +0 -3
  997. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qxbl6k6dji0s.js +0 -3
  998. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_21a3kf8buivxw.js +0 -3
  999. package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +0 -3
  1000. package/server/.next/server/chunks/ssr/src_0ixeyy74fe5jy._.js +0 -3
  1001. package/server/.next/server/chunks/ssr/src_0jdurlhzhcg5x._.js +0 -3
  1002. package/server/.next/server/chunks/ssr/src_0ley8c3htc2q9._.js +0 -3
  1003. package/server/.next/server/chunks/ssr/src_0oagnv9_4qww7._.js +0 -3
  1004. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +0 -3
  1005. package/server/.next/server/chunks/ssr/src_0ubtruqmercw2._.js +0 -3
  1006. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +0 -3
  1007. package/server/.next/server/chunks/ssr/src_12sdm7skn8fr1._.js +0 -3
  1008. package/server/.next/server/chunks/ssr/src_16lx0qdi44evh._.js +0 -3
  1009. package/server/.next/server/chunks/ssr/src_17yq6_bqlwgvy._.js +0 -3
  1010. package/server/.next/server/chunks/ssr/src_1n-6pz04odixj._.js +0 -3
  1011. package/server/.next/server/chunks/ssr/src_1nse4o3frj33x._.js +0 -3
  1012. package/server/.next/server/chunks/ssr/src_app_(console)_08pmfte22v8vg._.js +0 -3
  1013. package/server/.next/server/chunks/ssr/src_app_(console)_1rx84pcbevbbk._.js +0 -3
  1014. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +0 -3
  1015. package/server/.next/server/chunks/ssr/src_components_1yp2m9j9dnsv-._.js +0 -3
  1016. package/server/.next/server/chunks/ssr/src_components_ui_dropdown-menu_tsx_1xyz_k6bpdu_5._.js +0 -3
  1017. package/server/.next/server/chunks/ssr/src_lib_0-xd6p5793qdu._.js +0 -3
  1018. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +0 -16
  1019. package/server/.next/server/chunks/ssr/src_lib_0qbcg988i_-ee._.js +0 -3
  1020. package/server/.next/server/chunks/ssr/src_lib_18e550s395xn5._.js +0 -3
  1021. package/server/.next/server/chunks/ssr/src_lib_1_5ea0kxdn6zt._.js +0 -3
  1022. package/server/.next/server/chunks/ssr/src_lib_collector_node-runtime_ts_0778fef3fi3zj._.js +0 -3
  1023. package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +0 -6
  1024. package/server/.next/static/chunks/02-edmd1oolf2.css +0 -3
  1025. package/server/.next/static/chunks/02e07gc948zdh.js +0 -1
  1026. package/server/.next/static/chunks/073u0a0mfexc8.js +0 -1
  1027. package/server/.next/static/chunks/09fx7h5vm68up.js +0 -1
  1028. package/server/.next/static/chunks/0ao7_ov9mlvqp.js +0 -1
  1029. package/server/.next/static/chunks/0cvmbpyjages7.js +0 -5
  1030. package/server/.next/static/chunks/0hnhf3barhk90.js +0 -1
  1031. package/server/.next/static/chunks/0id261ol_gl6f.js +0 -1
  1032. package/server/.next/static/chunks/0q2ogu5cn9q9p.js +0 -1
  1033. package/server/.next/static/chunks/0z_fqwq62_95p.js +0 -1
  1034. package/server/.next/static/chunks/12l7tr29-a97t.js +0 -1
  1035. package/server/.next/static/chunks/16d1ws92me6_q.js +0 -1
  1036. package/server/.next/static/chunks/1__8cm_-lydee.js +0 -1
  1037. package/server/.next/static/chunks/1hmur12m0hx3z.js +0 -1
  1038. package/server/.next/static/chunks/205s3z3_jvp5m.js +0 -1
  1039. package/server/.next/static/chunks/20cpkauaj8e6x.js +0 -7
  1040. package/server/.next/static/chunks/23scyaimkowfl.js +0 -1
  1041. package/server/.next/static/chunks/25meucm7i1e7b.js +0 -1
  1042. package/server/.next/static/chunks/2oy7awlquezq_.js +0 -1
  1043. package/server/.next/static/chunks/2pj8subq20y-_.js +0 -1
  1044. package/server/.next/static/chunks/2qcurt9u9shwc.js +0 -1
  1045. package/server/.next/static/chunks/2scf40c-_g_q1.js +0 -1
  1046. package/server/.next/static/chunks/2tnx5isef9ryw.js +0 -1
  1047. package/server/.next/static/chunks/2v_f39dz8sa3-.js +0 -1
  1048. package/server/.next/static/chunks/2whojv56qi3ke.js +0 -1
  1049. package/server/.next/static/chunks/2wlen-jacsbqv.js +0 -1
  1050. package/server/.next/static/chunks/36bqhxadlfbfn.js +0 -1
  1051. package/server/.next/static/chunks/372gugw4ldy47.js +0 -1
  1052. package/server/.next/static/chunks/39n_1gky-xh0a.js +0 -1
  1053. package/server/.next/static/chunks/3fv862m8cvcoe.js +0 -1
  1054. package/server/.next/static/chunks/3g73nar6-7bqk.js +0 -1
  1055. package/server/.next/static/chunks/3sg_npfod25zq.js +0 -1
  1056. package/server/.next/static/chunks/3vacue9vhoqag.js +0 -1
  1057. package/server/.next/static/chunks/3x8-w_p0n-gsd.js +0 -1
  1058. package/server/.next/static/chunks/3yljsdgzvrkdf.js +0 -1
  1059. package/server/.next/static/chunks/415ijq-anmr2o.js +0 -1
  1060. package/server/.next/static/chunks/43wm4_0-0-eej.js +0 -1
  1061. package/server/.next/static/chunks/44bizq7fli9cp.js +0 -1
  1062. /package/server/.next/static/{90CuiGzddaxNn9lvRkGlH → 2_t4xVgbum1rtVSQxAYYV}/_buildManifest.js +0 -0
  1063. /package/server/.next/static/{90CuiGzddaxNn9lvRkGlH → 2_t4xVgbum1rtVSQxAYYV}/_clientMiddlewareManifest.js +0 -0
  1064. /package/server/.next/static/{90CuiGzddaxNn9lvRkGlH → 2_t4xVgbum1rtVSQxAYYV}/_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)("40da7f75c144c22d29820681c362e5ce60bb3d9c10",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("40f3f4174e854621abe58417c2cdb9d426b672d863",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("60e68c74a0211ce008adc7f1e292bc1cd1c6ffd387",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("405b351dbf055f9b351315a1aa575572215d9339b4",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)("60c0ed4b85ec5771185ca781c81a7a88a4d748cddb",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("60b38e08bff0b4e80ef512af65f864a0a733f97797",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)("40e598ba0c7bdfcdec244d000c2bc6a6a3222dbf6d",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("401b729a955f7a238d38e6f97d0bdbc44f76aafa94",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("60d5d34c0ea177249745a51e37bf1a36c6f1ca19cd",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("40c9ee1f73d40419e7bba46e2b4c9a9cf0b31d969c",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)("60b775164d8c6465a7a32040c5b942f4626f62d0cd",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("6006f579f9c18a0eec9325f6516529a3d86c30f9e2",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=[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)("60fa1ef7af17e36579ceb04529332a89dbad66626f",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)("603bf071802c2a9fab1c95ca239f8c20bde2825c00",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("Watchbell didn't answer. Check that it's still running, then 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=[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)("40102fb97251f785f50a0a175391bed9097dc0f161",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)("409a11ede303bdda2e00679c09c0541205ea2a962f",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("Watchbell didn't answer. Check that it's still running, then 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
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(742680),k=a.i(767944),l=a.i(405050);let m=(0,l.createServerReference)("40b909d61c1da65c4de755397527e4c4b345b25bd5",l.callServer,void 0,l.findSourceMapURL,"redeployCurrentAction");var n=a.i(752818);a.s(["AppMenu",0,function({app:a}){var l;let o,[,p]=(0,d.useTransition)(),q=(0,n.f)(),r=(0,c.useRouter)(),s=(0,f.useMask)(),t=(0,g.W)(),u=(o=[{label:"Redeploy",onSelect:(l={redeploy:()=>t.open({...(0,i.f)("Redeploy",s("app",a.name),""),run:()=>m(a.id)}),viewLogs:()=>{let b;return r.push((b=a.id,`/apps/${b}?tab=logs`))},togglePause:()=>q(()=>new Promise(b=>p(async()=>{try{let b=await (0,k.f)(a.id,!a.paused);b.ok?e.c.success(b.message??""):e.c.error(b.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{b()}})))}).redeploy},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[],{label:"View logs",onSelect:l.viewLogs}],a.monitorCount>0&&o.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:l.togglePause}),o);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{items:u,label:(0,j.J)(a.name)}),t.dialog]})}],217897)},767944,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60fd4e9293ae6dd387bb63f136c46843813d4cac7b",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],767944);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
+
3
+ //# sourceMappingURL=src_app_%28console%29_1co5pna1vfflj._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[398101,734028,594586,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("603f5b5ca7ddb2043a88cd86b7453de96a4aed3a66",b.callServer,void 0,b.findSourceMapURL,"promoteAction");a.s(["f",0,c],398101);let d=(0,b.createServerReference)("60ab715dc0f3c913901ded5f4768e71fb65bc62160",b.callServer,void 0,b.findSourceMapURL,"redeployAction");a.s(["f",0,d],734028);let e=(0,b.createServerReference)("60f1287cc1e64ea53dc4b944374d18210f5210ddff",b.callServer,void 0,b.findSourceMapURL,"rollbackAction");a.s(["f",0,e],594586)},762253,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(771378),e=a.i(619089),f=a.i(54901),g=a.i(188406),h=a.i(87674),i=a.i(742680),j=a.i(405050);let k=(0,j.createServerReference)("60a6d927970f8843148f3c9f05e7de2353d2ff83d2",j.callServer,void 0,j.findSourceMapURL,"cancelAction");var l=a.i(398101);let m=(0,j.createServerReference)("602819a58d8471551daa878f5f94f831116e341596",j.callServer,void 0,j.findSourceMapURL,"promotePreviewAction");var n=a.i(734028),o=a.i(594586),p=a.i(728951),q=a.i(814574),r=a.i(507504);let s=/(\berror(?![-\w])|\bERR!|\bERR_[A-Z_]+|\bfailed\b|exited with (?:code )?[1-9]|Module not found|command not found)/i,t=/^\s*(?:npm |pnpm |yarn )?(?:warn|warning)\b|\b0 (?:errors?|failed)\b/i;function u(a){return"command"!==a.kind&&"delimiter"!==a.kind&&s.test(a.text)&&!t.test(a.text)}var v=a.i(368114);let w=(0,j.createServerReference)("60d1dea235418057e78d12d4440f69ad26fe4e4606",j.callServer,void 0,j.findSourceMapURL,"buildLogsAction"),x={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},y=a=>`build-line-${a}`;function z({log:a}){let c=a.lines.findIndex(u),d=a.lines.filter(u).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[a.lines.length," lines",a.truncated?` (the last ${2e3.toLocaleString("en-US")})`:""]}),c>=0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-err",children:[d," error line",1===d?"":"s"]}),(0,b.jsx)("button",{type:"button","data-line":y(c),className:"text-brand hover:underline",onClick:()=>document.getElementById(y(c))?.scrollIntoView({block:"center"}),children:"Jump to first error"})]}):(0,b.jsx)("span",{children:"No error lines"})]}),(0,b.jsx)("div",{tabIndex:0,"aria-label":"Build log lines",className:"min-h-0 flex-1 overflow-auto bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===a.lines.length?(0,b.jsx)("div",{className:"text-code-dim",children:"Vercel returned no build output for this deployment."}):a.lines.map((a,c)=>{let d=u(a);return(0,b.jsx)("div",{id:y(c),"data-error":d?"":void 0,className:(0,v.f)("whitespace-pre-wrap [overflow-wrap:anywhere]",d?"-mx-4 border-l-2 border-err bg-err/15 px-[14px] text-code-err":x[a.kind],"delimiter"===a.kind&&"mt-1.5 font-medium"),children:"command"===a.kind?`$ ${a.text}`:a.text||" "},c)})})]})}function A({appId:a,deploymentId:d,title:e,open:f,onOpenChange:g,read:h=w}){let[i,j]=(0,c.useState)(null);return(0,r.useHoldRefresh)(f),(0,c.useEffect)(()=>{if(!f)return;let b=!0;return h(a,d).then(a=>{b&&j(a.ok&&a.data?{log:a.data}:{error:a.ok?"No build log came back.":a.error})}).catch(()=>{b&&j({error:"Watchbell didn't answer. Check that it's still running, then try again."})}),()=>{b=!1,j(null)}},[f,a,d,h]),(0,b.jsx)(q.N,{open:f,onOpenChange:g,children:(0,b.jsxs)(q.d,{className:"top-0 right-0 left-auto flex h-dvh max-w-full translate-x-0 translate-y-0 flex-col gap-0 rounded-none p-0 sm:max-w-[780px]",children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,b.jsxs)(q.F,{className:"text-base",children:["Build log · ",e]}),(0,b.jsxs)(q.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Newest build, read from Vercel now",(0,b.jsx)(p.Src,{kind:"api"})]})]}),null===i?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in i?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:i.error}):(0,b.jsx)(z,{log:i.log})]})})}let B={label:"View build logs",kind:"logs"};a.s(["DeployRowActions",0,function({d:a,actions:j,logs:p}){var q;let r,s,t,u=(0,d.useMask)(),{open:v,dialog:w}=(0,f.W)(),[x,y]=(0,c.useState)(!1),z=a.sha?a.sha.slice(0,7):"",{visit:C,deployment:D}=(r=a.url?`https://${a.url}`:null,a.primaryDomain?{visit:`https://${a.primaryDomain}`,deployment:r}:{visit:r??"",deployment:null}),{buttons:E,menu:F}=(s=[...(q={actions:j,logs:p,visit:!!C&&a.visit}).visit&&"button"!==q.logs?[{label:"Visit",kind:"visit"}]:[],...q.actions.map(a=>({label:a,kind:"action",action:a})),..."button"===q.logs?[B]:[]],t="menu"===q.logs?[B]:[],s.length>2?{buttons:[],menu:[...s,...t]}:{buttons:s,menu:t}),G=b=>v({...(0,h.f)(b,u("app",a.appName),z),run:function(a,b,c){switch(a){case"Redeploy":return()=>(0,n.f)(b,c);case"Roll back to this":return()=>(0,o.f)(b,c);case"Promote":return()=>(0,l.f)(b,c);case"Cancel":return()=>k(b,c);case"Promote to production":return()=>m(b,c)}}(b,a.appId,a.externalId)});return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[E.map(a=>"visit"===a.kind?(0,b.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:(0,e.R)({size:"sm"}),children:"Visit"},a.label):"logs"===a.kind?(0,b.jsx)(e.K,{size:"sm",onClick:()=>y(!0),children:a.label},a.label):(0,b.jsx)(e.K,{size:"sm",onClick:()=>G(a.action),children:a.label},a.label)),D&&a.visit&&"button"!==p&&(0,b.jsx)("a",{href:D,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),F.length>0&&(0,b.jsx)(g.RowMenu,{label:(0,i.J)(u("app",a.appName),z||a.url||a.externalId),items:F.map(a=>"visit"===a.kind?{label:a.label,href:C}:"logs"===a.kind?{label:a.label,onSelect:()=>y(!0)}:{label:a.label,onSelect:()=>G(a.action)})}),w,p&&(0,b.jsx)(A,{appId:a.appId,deploymentId:a.externalId,title:`${u("app",a.appName)}${z?` ${z}`:""}`,open:x,onOpenChange:y})]})}],762253)}]})();
2
+
3
+ //# sourceMappingURL=src_app_%28console%29_1shtcv6hidi4-._.js.map
@@ -1,3 +1,4 @@
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)("60532a17b860939a19831f66dc64e4d23989493799",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)("40331935346f6c4f8584b00646ba034c5c82cc0e52",m.callServer,void 0,m.findSourceMapURL,"saveDigest"),o=(0,m.createServerReference)("403dda1887491899565ca6d7fa2235e966ad33517f",m.callServer,void 0,m.findSourceMapURL,"saveDiscord"),p=(0,m.createServerReference)("603ea6749027e451b7f11fcf9600cee480c512e211",m.callServer,void 0,m.findSourceMapURL,"saveTelegram"),q=(0,m.createServerReference)("407b3001e801cafaefe17ce33792b23c6ddef9b714",m.callServer,void 0,m.findSourceMapURL,"sendTest"),r=(0,m.createServerReference)("6092dc709490f5c64ec2d930e34fc62a47143686ef",m.callServer,void 0,m.findSourceMapURL,"setChannelEnabled"),s=(0,m.createServerReference)("00bb9cbf3e7fd1a0bbc930e6600d678175fb6950fd",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)("6033e3dde920e9f7eafecaac8378ac3c2929a65825",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 critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}};Object.keys(j);let k=[["critical","Critical"],["warning","Warning"],["info","Info"]];var l=a.i(405050);let m=(0,l.createServerReference)("6067e8b8572316e3aa8750fbe2c06a946748ece65a",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)("007675a0efa22cfc08a0d9d9952427d38db530e4f2",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("00a32e97d9daa1fd16befbae17f65b56ac4bc5787e",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("003314e51ced8f43a30010d0dba1b7ddffe5609aab",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("006aa4e795211d0f7c7164e3cc2de1f356269e4948",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)}]})();
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)("60668f6b26bdc8f05ba3f75d3fe1d90f3429a39766",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("Watchbell didn't answer. Check that it's still running, then 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"}]]),g=(0,c.f)("outline","webhook","Webhook",[["path",{d:"M4.876 13.61a4 4 0 1 0 6.124 3.39h6",key:"svg-0"}],["path",{d:"M15.066 20.502a4 4 0 1 0 1.934 -7.502c-.706 0 -1.424 .179 -2 .5l-3 -5.5",key:"svg-1"}],["path",{d:"M16 8a4 4 0 1 0 -8 0c0 1.506 .77 2.818 2 3.5l-3 5.5",key:"svg-2"}]]);var h=a.i(901615),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(851519);function o({id:a,onChange:c}){let[d,e]=(0,i.useState)([]),[f,g]=(0,i.useState)(""),h=(a,b)=>{e(a),g(b),c([...a,b.trim()].filter(Boolean).join(", "))},j=a=>{var b;let c;return h((b=[...d,a].join(","),c=new Set,b.split(/[\s,;]+/).filter(a=>a&&!c.has(a.toLowerCase())&&c.add(a.toLowerCase()))),"")};return(0,b.jsxs)("div",{className:"flex min-h-[34px] flex-wrap items-center gap-1.5 rounded-md border border-line-strong bg-surface px-1.5 py-1 focus-within:border-brand focus-within:ring-2 focus-within:ring-brand/40",children:[d.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-line bg-sunken py-0.5 pl-2.5 pr-1 text-[12.5px]",children:[a,(0,b.jsx)("button",{type:"button",className:"grid size-4 place-items-center rounded-full text-ink-soft hover:text-ink","aria-label":`Remove ${a}`,onClick:()=>h(d.filter((a,b)=>b!==c),f),children:(0,b.jsx)(n.f,{size:12,"aria-hidden":!0})})]},a)),(0,b.jsx)("input",{id:a,className:"min-w-[160px] flex-1 bg-transparent px-1 py-0.5 text-ink outline-none",type:"text",inputMode:"email",autoComplete:"off",placeholder:d.length?d.length<10?"Add another":"":"you@example.com",value:f,onChange:a=>/[\s,;]/.test(a.target.value)?j(a.target.value):h(d,a.target.value),onKeyDown:a=>{"Enter"===a.key&&f.trim()?(a.preventDefault(),j(f)):"Backspace"===a.key&&!f&&d.length&&h(d.slice(0,-1),d.at(-1))},onBlur:()=>{f.trim()&&j(f)}})]})}var p=a.i(405050);let q=(0,p.createServerReference)("40e5d9c1ddaa8802fe609d7b7b4ffae28a3fd7b8f1",p.callServer,void 0,p.findSourceMapURL,"saveDigest"),r=(0,p.createServerReference)("4050ba41680c1d28fa0d3c75adf58b0995b28558a0",p.callServer,void 0,p.findSourceMapURL,"saveDiscord"),s=(0,p.createServerReference)("406cd6df6d6629aff6cf09a3f858510e76d0fc5456",p.callServer,void 0,p.findSourceMapURL,"saveSmtp"),t=(0,p.createServerReference)("6078029e8a15fa12db9935d66ff52ed3faaf8f55cf",p.callServer,void 0,p.findSourceMapURL,"saveTelegram"),u=(0,p.createServerReference)("6028173406e1d2ecc37cf8a9f1a962d17c3d9337b6",p.callServer,void 0,p.findSourceMapURL,"saveWebhook"),v=(0,p.createServerReference)("40c4c05b18447b970bd2ca85506bae1c525a8e3185",p.callServer,void 0,p.findSourceMapURL,"sendTest"),w=(0,p.createServerReference)("60fe8e375437cf5ca2d34f961a506b6b8f8fc5ce08",p.callServer,void 0,p.findSourceMapURL,"setChannelEnabled"),x=(0,p.createServerReference)("001c208ed3be66fe4f395996dc576c82ef08fe2fb4",p.callServer,void 0,p.findSourceMapURL,"telegramChats"),y={telegram:{icon:e,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${h.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."},webhook:{icon:g,title:"Connect a webhook",name:"Webhook",about:"Watchbell POSTs JSON to this address for every alert message. It must be https on a public host (port 443); Watchbell doesn't post into private networks or follow redirects."},smtp:{icon:f,title:"Email through your mail server",name:"Email (SMTP)",about:"Port 587 or 2525 with STARTTLS, or 465 with TLS; the password only ever goes over TLS. The server must be on the public internet. Office 365: smtp.office365.com, 587, and an app password if your account has MFA."},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 ${h.n.setting} (RESEND_API_KEY).`}},z={telegram:"Telegram",discord:"Discord",webhook:"Webhook",smtp:"Email (SMTP)",email_digest:"Daily email digest"};a.s(["ChannelControls",0,function({kind:a,connected:c,enabled:d,envMissing:e}){let[f,g]=(0,i.useState)(!1),[h,n]=(0,i.useState)([]),[p,A]=(0,i.useState)(""),[B,C]=(0,i.useState)(""),[D,E]=(0,i.useState)(""),[F,G]=(0,i.useState)(""),[H,I]=(0,i.useState)({host:"",port:"587",user:"",pass:"",from:"",to:""}),[J,K]=(0,i.useState)({}),[L,M]=(0,i.useTransition)(),[N,O]=(0,i.useTransition)(),[P,Q]=(0,i.useTransition)();(0,l.useHoldRefresh)(f);let R=y[a],S=R.icon;function T(a){a&&(n([]),A(""),C(""),E(""),G(""),I({host:"",port:"587",user:"",pass:"",from:"",to:""}),K({})),g(a)}function U(a,b){Q(async()=>{try{let c=await a();c.ok?j.c.success(b,{description:c.message}):j.c.error(c.error)}catch{j.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(m.N,{open:f,onOpenChange:a=>{L||T(a)},children:[(0,b.jsx)(m.a,{render:(0,b.jsx)(k.K,{size:"sm",disabled:null!==e,children:c?"Change":"Connect"})}),(0,b.jsxs)(m.d,{className:"max-h-[92vh] gap-0 overflow-y-auto 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)(S,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:R.title}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:R.about})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c;b.preventDefault(),c={},"telegram"!==a||p||(c.chat="Press Find chats, then pick one."),"discord"!==a||B.trim()||(c.url="Paste the whole webhook URL from Discord."),"webhook"!==a||B.trim()||(c.url="Paste the whole address, starting with https://."),"smtp"!==a||H.host.trim()||(c.host="Enter the server name, for example smtp.office365.com."),"smtp"!==a||H.to.trim()||(c.to="Enter the address that gets the alerts."),"email_digest"!==a||D.trim()||(c.to="Enter a valid email address."),K(c),Object.keys(c).length||M(async()=>{try{let b=h.find(a=>a.id===p)?.label??"",c="telegram"===a?await t(p,b):"discord"===a?await r(B):"webhook"===a?await u(B,F):"smtp"===a?await s({...H,port:Number(H.port)}):await q(D);if(!c.ok){K(c.fieldErrors??{}),c.fieldErrors||j.c.error(c.error);return}j.c.success("Channel saved",{description:c.message}),g(!1)}catch{j.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:J.chat,children:(0,b.jsxs)("select",{id:"ch-chat",className:k.S,value:p,onChange:a=>A(a.target.value),children:[0===h.length&&(0,b.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),h.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)(k.K,{size:"sm",onClick:function(){O(async()=>{try{let a=await x();if(!a.ok)return void j.c.error(a.error);let b=a.data?.chats??[];n(b),A(b[0]?.id??""),K({}),b.length?j.c.success(`Found ${b.length} chat${1===b.length?"":"s"}: ${b.map(a=>a.label).join(", ")}.`):j.c.info("No chats yet",{description:a.message??"Send /start to your bot in Telegram, then try again."})}catch{j.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:N,children:N?"Looking…":"Find chats"})})]}),"discord"===a&&(0,b.jsx)(k.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:J.url,children:(0,b.jsx)("input",{id:"ch-hook",className:k.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:B,onChange:a=>C(a.target.value)})}),"webhook"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.O,{id:"ch-wh",label:"Address",help:"Encrypted before it's saved and never shown again; the console shows only its host.",error:J.url,children:(0,b.jsx)("input",{id:"ch-wh",className:k.S,type:"url",autoComplete:"off",placeholder:"https://n8n.example.com/webhook/…",value:B,onChange:a=>C(a.target.value)})}),(0,b.jsx)(k.O,{id:"ch-wh-secret",label:"Secret (optional)",help:"16 to 200 characters. Each body is signed with it: header X-Watchbell-Signature = sha256 HMAC of the timestamp, a dot and the body.",error:J.secret,children:(0,b.jsx)("input",{id:"ch-wh-secret",className:k.S,type:"password",autoComplete:"off",value:F,onChange:a=>G(a.target.value)})})]}),"smtp"===a&&(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 max-[520px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"ch-sm-host",label:"Server",error:J.host,children:(0,b.jsx)("input",{id:"ch-sm-host",className:k.S,autoComplete:"off",placeholder:"smtp.office365.com",value:H.host,onChange:a=>I({...H,host:a.target.value})})}),(0,b.jsx)(k.O,{id:"ch-sm-port",label:"Port",error:J.port,children:(0,b.jsxs)("select",{id:"ch-sm-port",className:k.S,value:H.port,onChange:a=>I({...H,port:a.target.value}),children:[(0,b.jsx)("option",{value:"587",children:"587 · STARTTLS"}),(0,b.jsx)("option",{value:"465",children:"465 · TLS"}),(0,b.jsx)("option",{value:"2525",children:"2525 · STARTTLS"})]})}),(0,b.jsx)(k.O,{id:"ch-sm-user",label:"User name",error:J.user,children:(0,b.jsx)("input",{id:"ch-sm-user",className:k.S,autoComplete:"off",value:H.user,onChange:a=>I({...H,user:a.target.value})})}),(0,b.jsx)(k.O,{id:"ch-sm-pass",label:"Password",help:c?"Leave empty to keep the saved one.":"Encrypted before it's saved and never shown again.",error:J.pass,children:(0,b.jsx)("input",{id:"ch-sm-pass",className:k.S,type:"password",autoComplete:"off",value:H.pass,onChange:a=>I({...H,pass:a.target.value})})}),(0,b.jsx)(k.O,{id:"ch-sm-from",label:"From",error:J.from,children:(0,b.jsx)("input",{id:"ch-sm-from",className:k.S,type:"email",autoComplete:"off",placeholder:"alerts@example.com",value:H.from,onChange:a=>I({...H,from:a.target.value})})}),(0,b.jsxs)("div",{className:"col-span-2 max-[520px]:col-span-1",children:[(0,b.jsx)(k.O,{id:"ch-sm-to",label:"Send to",help:"Up to 10 addresses; each one gets the same email. Press Enter or a comma after each.",error:J.to,children:(0,b.jsx)(o,{id:"ch-sm-to",onChange:a=>I(b=>({...b,to:a}))})}),"onboarding@resend.dev"===H.from.trim().toLowerCase()&&H.to.includes(",")&&(0,b.jsx)("p",{className:"-mt-2 mb-3.5 rounded-md border border-warn/40 bg-warn-soft px-2.5 py-2 text-[12.5px]",children:"Resend's test sender (onboarding@resend.dev) only delivers to your own Resend account address. Verify a domain in Resend and send from it to reach other people."})]})]}),"email_digest"===a&&(0,b.jsx)(k.O,{id:"ch-to",label:"Send to",error:J.to,children:(0,b.jsx)("input",{id:"ch-to",className:k.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:D,onChange:a=>E(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)(k.K,{onClick:()=>T(!1),disabled:L,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:L,children:L?"Saving…":"Save"})]})]})]})]}),c&&d&&null===e&&(0,b.jsx)(k.K,{size:"sm",disabled:P,onClick:()=>U(()=>v(a),`${z[a]} test`),children:P?"Sending…":"Send test"}),c&&(0,b.jsx)(k.K,{size:"sm",variant:"ghost",disabled:P,onClick:()=>U(()=>w(a,!d),z[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)("609715b0d25a02a99864a125d25d2788a7285bb28a",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("Watchbell didn't answer. Check that it's still running, then 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=>`Slowest 5% of checks over ${i(a)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A production deploy fails"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase pauses the project"},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 critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}};Object.keys(j);let k=[["critical","Critical"],["warning","Warning"],["info","Info"]];var l=a.i(405050);let m=(0,l.createServerReference)("60de2c50773a6ae0c96013e9789a05f95bab011167",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=(0,l.createServerReference)("60b2418629545aaa136967618d210fb3d4ab4ad966",l.callServer,void 0,l.findSourceMapURL,"testRule"),o=["status","severity","rule","target","detail","cause","step","since","threshold"],p=["id","en"],q={status:"FIRING, REPEAT or RESOLVED (MUNCUL, ULANG, PULIH in Indonesian)",severity:"critical, warning or info",rule:"the rule's key, like MonitorDown",target:"what the alert is about: an app, a database, a domain",detail:"Watchbell's sentence about what it saw",cause:"the alert that caused this one, or a provider incident",step:"Watchbell's next step for rules that have one",since:"when the alert started: the time and the time zone",threshold:"the rule's number from Threshold"},r={en:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nNext step: {step}\nsince {since}",id:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nYang perlu kamu lakukan: {step}\nsejak {since}"},s={en:"Test message: Watchbell's sentence about what it saw goes here.",id:"Pesan tes: di sini nanti kalimat Watchbell soal apa yang dilihatnya."},t=/\{([a-zA-Z_]+)\}/g,u=a=>a.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function v(a,b){let c="string"==typeof a?u(a):"";return c&&c!==r[b]?c:null}let w={id:"Bahasa Indonesia",en:"English"},x={en:"FIRING",id:"MUNCUL"},y={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},z={en:"1 firing",id:"1 aktif"},A={en:"Open alerts",id:"Buka Alerts"},B=a=>({id:a.id??r.id,en:a.en??r.en});function C({ruleKey:a,severity:c,threshold:e,sample:g,texts:h,onChange:i,errors:j}){let[k,l]=(0,d.useState)("id"),m=(0,d.useRef)(null),n=h[k],B=null!==v(n,k),D={status:x[k],severity:y[k][c]??c,rule:a,target:"my-app",detail:s[k],cause:"",step:g.step[k]??"",since:g.since,threshold:e},[E="",...F]=u(n).split("\n").flatMap(a=>{let b=[...a.matchAll(t)].map(a=>a[1]).filter(a=>Object.hasOwn(D,a));return b.length&&b.every(a=>!D[a].trim())?[]:[a.replace(t,(a,b)=>Object.hasOwn(D,b)?D[b]:a)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim().split("\n");return(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px] border-t border-line pt-3.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsx)("legend",{className:"text-[13px] font-medium",children:"Message"}),(0,b.jsx)("span",{className:`rounded-full border px-2 py-px text-[11.5px] ${B?"border-brand/40 text-brand":"border-line text-ink-soft"}`,children:B?"Changed":"Watchbell's wording"})]}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Word the notification yourself. Left as it is, the rule keeps Watchbell's wording, including later fixes to it."}),(0,b.jsx)("div",{role:"tablist",className:"mt-1 flex gap-1 border-b border-line",children:p.map(a=>(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":a===k,onClick:()=>l(a),className:`-mb-px border-b-2 px-2.5 py-1.5 text-[13px] ${a===k?"border-brand font-medium text-ink":"border-transparent text-ink-soft hover:text-ink"}`,children:[w[a],null!==v(h[a],a)?" · changed":""]},a))}),(0,b.jsx)("textarea",{ref:m,id:`rule-msg-${k}`,"aria-label":`Message in ${w[k]}`,className:`${f.S} min-h-[124px] resize-y font-mono text-[12.5px] leading-relaxed`,maxLength:1200,value:n,onChange:a=>i({...h,[k]:a.target.value})}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:o.map(a=>(0,b.jsx)("button",{type:"button",title:q[a],onClick:()=>{let b,c,d,e;return b=m.current,c=b?.selectionStart??n.length,d=b?.selectionEnd??c,e=`{${a}}`,void(i({...h,[k]:n.slice(0,c)+e+n.slice(d)}),requestAnimationFrame(()=>{b?.focus(),b?.setSelectionRange(c+e.length,c+e.length)}))},className:"rounded border border-line-strong bg-sunken px-1.5 py-px font-mono text-[12px] text-ink hover:border-brand",children:`{${a}}`},a))}),j[`template_${k}`]&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:j[`template_${k}`]}),p.filter(a=>a!==k&&j[`template_${a}`]).map(a=>(0,b.jsxs)("span",{className:"text-[12.5px] text-err",role:"alert",children:[w[a],": ",j[`template_${a}`]]},a)),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"A line whose fields are all empty is left out."}),(0,b.jsx)("button",{type:"button",className:"text-[12.5px] text-link underline disabled:opacity-50 disabled:no-underline",disabled:!B,onClick:()=>i({...h,[k]:r[k]}),children:"Back to Watchbell's wording"})]}),(0,b.jsxs)("div",{className:"mt-1 rounded-md border border-line bg-sunken px-3 py-2.5 text-[13px] leading-relaxed",children:[(0,b.jsx)("div",{className:"mb-1 text-[11.5px] uppercase tracking-wide text-ink-faint",children:"Preview, with sample values"}),(0,b.jsxs)("div",{className:"whitespace-pre-wrap break-words",children:[(0,b.jsx)("b",{children:"Watchbell"}),": ",z[k]," · ",g.since,"\n\n",(0,b.jsx)("b",{children:E}),F.length?`
2
+ ${F.join("\n")}`:"","\n",(0,b.jsx)("span",{className:"text-link",children:A[k]})]})]})]})}let D=[["telegram","Telegram"],["discord","Discord"],["webhook","Webhook"],["smtp","Email (SMTP)"],["email_digest","Daily email digest"]],E=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,templates:l,sample:o}){let[p,q]=(0,d.useState)(!1),[r,s]=(0,d.useState)(()=>E(a)),[t,u]=(0,d.useState)(()=>B(l)),[v,w]=(0,d.useState)({}),[x,y]=(0,d.useTransition)(),[z,A]=(0,d.useTransition)();(0,g.useHoldRefresh)(p);let F=j[a.key].bounds;function G(b){b&&(s(E(a)),u(B(l)),w({})),q(b)}function H(b,c){y(async()=>{try{let d=await m(a.key,b);if(!d.ok){w(d.fieldErrors??{}),e.c.error(d.error);return}c(d.message??""),q(!1)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsxs)(h.N,{open:p,onOpenChange:a=>{x||G(a)},children:[(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{size:"sm",children:"Edit"})}),(0,b.jsxs)(h.d,{className:"max-h-[92vh] gap-0 overflow-y-auto p-0 sm:max-w-[620px]",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(),H({...r,templates:t},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:v.severity,children:(0,b.jsx)("select",{id:"rule-sev",className:f.S,value:r.severity,onChange:a=>s({...r,severity:a.target.value}),children:k.map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))})}),F&&(0,b.jsx)(f.O,{id:"rule-num",label:"Threshold",help:`Replaces ${a.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:v.threshold,children:(0,b.jsx)("input",{id:"rule-num",className:f.S,inputMode:"numeric",autoComplete:"off",value:r.threshold,onChange:a=>s({...r,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:D.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:r.channels.includes(a),onChange:b=>{let c;return c=b.target.checked,s({...r,channels:c?[...r.channels,a]:r.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."}),v.channels&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.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:r.enabled,onChange:a=>s({...r,enabled:a.target.checked})}),"Rule is on"]}),(0,b.jsx)(C,{ruleKey:a.key,severity:r.severity,threshold:r.threshold,sample:o,texts:t,onChange:u,errors:v})]}),(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,{className:"mr-auto",disabled:x||z||!r.channels.some(a=>"email_digest"!==a),onClick:function(){A(async()=>{try{let b=await n(a.key,{...r,templates:t});w(b.ok?{}:b.fieldErrors??{}),b.ok?e.c.success("Test sent",{description:b.message}):e.c.error(b.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},title:"Sends this message, as a made-up alert, to the ticked channels (not the daily digest)",children:z?"Sending…":"Send test"}),(0,b.jsx)(f.K,{onClick:()=>G(!1),disabled:x,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:x,children:x?"Saving…":"Save rule"})]})]})]})]}),(0,b.jsx)(f.K,{size:"sm",disabled:x,onClick:()=>H({...E(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)("00ae9340dcdbcd845d3346c1c16deaaa47dbf84af2",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("0050908ed60bb1ac799e03417a8e3fedb6f8767982",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("006fdefec2117b13e1faafb2e092f31724f57ec719",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("0056c7c29408c90ace30cd0b3b9b1e71ccf3e0409d",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??"Watchbell didn't answer. Check that it's still running, then try again.");c.data&&g(c.data),b?.(),c.message&&d.c.success("Approval buttons",{description:c.message})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then 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?"Watchbell didn't answer. Check that it's still running, then try again.":a.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then 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
3
 
3
4
  //# 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(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))}];
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:"smtp",label:"Email (SMTP)",help:"Each alert message by email through your own mail server (Office 365, Zimbra, any SMTP with TLS)."},{kind:"webhook",label:"Webhook",help:"A JSON POST to your own address (n8n, Zapier, your server) with the same alerts, signed when you set a secret."},{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",smtp:"email",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})}),"webhook"!==h.kind&&(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(927262),I=a.i(469762),J=a.i(71575),K=a.i(387413);let L=["Severity","Alert","Resource","Since","Notified",""],M=["Severity","Alert","Resource","Started","Outcome"];function N({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,J.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,(0,H.v)(a.ruleKey),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:(0,H.v)(a.ruleKey)})," ",(0,b.jsx)("span",{className:"font-mono text-[11px] text-ink-faint",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,I.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)(K.AlertMenu,{id:a.id,label:`${a.ruleKey} ${a.title}`,silenced:i,resourceHref:h})})]})}});return(0,b.jsx)(C.ListFilter,{placeholder:"Filter alerts",states:J._,head:L,rows:g})}function O({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.jsxs)("td",{className:F.z,children:[(0,b.jsx)("b",{className:"font-medium",children:(0,H.v)(a.ruleKey)})," ",(0,b.jsx)("span",{className:"font-mono text-[11px] text-ink-faint",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,I.v)(a.startedAt,c)}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsxs)(r.F,{state:"ok",children:["Resolved after ",(0,J.M)(a.startedAt,a.resolvedAt)]})})]})}));return(0,b.jsx)(D.PlainTable,{head:M,rows:d})}var P=a.i(954296),Q=a.i(192738),R=a.i(390566);let S=["Rule","Severity","Condition","State",""];function T({rules:a,owner:c,templates:d,now:e}){let f=`${(0,s.U)(e)} ${(0,s.J)(e)}`,g=a.map(({rule:a,firing:e,hasData:g})=>{let h=H._[a.key],i=(0,J.G)({enabled:a.enabled,firing:e,hasData:g});return{key:a.key,state:a.severity,text:`${H.$[a.key]} ${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:H.$[a.key]})," ",(0,b.jsx)("span",{className:"font-mono text-[11px] text-ink-faint",children:a.key}),(0,b.jsx)(P.Src,{kind:h.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:h.condition(a.threshold)}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(r.F,{state:i.state,children:i.text})}),(0,b.jsx)("td",{className:F.z,children:c&&(0,b.jsx)(R.RuleActions,{rule:a,condition:h.condition(a.threshold),templates:d[a.key]??{},sample:{since:f,step:{en:(0,Q.a)(a.key,"en"),id:(0,Q.a)(a.key,"id")}}})})]})}});return(0,b.jsx)(D.PlainTable,{head:S,rows:g})}async function U(){let a=await (0,g.I)(),q=new Date,r=await (0,k.I)(),[s,t,u,v,w,x,y]=await Promise.all([(0,h.q)(r),(0,h.I)(q),(0,h.y)(),(0,j.k)(),(0,i.e)(),(0,l.B)(),(0,h.w)()]),z=n.I.filter(a=>r.has(a)).map(a=>n.Z[a].label),A=s.map(a=>({...(0,o.o)(a,w),search:[a.title,a.message].join(" ")})),C=t.map(a=>({...a,title:(0,o.o)({...a,message:"",causedBy:null},w).title})),D="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:[z.length>0&&(0,b.jsx)(d.M,{tone:"info",title:`Paused: ${z.join(", ")}`,action:D?(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)(N,{rows:A,now:q,act:(0,p.z)(a.role)})}),C.length>0&&(0,b.jsx)(d.N,{title:"Resolved in the last 7 days",flush:!0,children:(0,b.jsx)(O,{rows:C,now:q})})]}),(0,b.jsx)(f.TabsContent,{value:"rules",children:(0,b.jsx)(d.N,{flush:!0,children:(0,b.jsx)(T,{rules:u,owner:D,templates:y,now:q})})}),(0,b.jsx)(f.TabsContent,{value:"notifications",children:(0,b.jsx)(B,{views:v,owner:D,now:q,approvals:!!m.extensions.telegramCallback,langs:x})})]})]})}a.s(["default",0,U],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
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[718064,a=>{var b=a.i(907997),c=a.i(395936),d=a.i(414280),e=a.i(803681),f=a.i(605826),g=a.i(293167),h=a.i(954296),i=a.i(686251),j=a.i(791444),k=a.i(852539),l=a.i(120213),m=a.i(245710),n=a.i(139138),o=a.i(462820);let p={"no-repo":"no linked repository. Link one (Repository card below) to scan its lockfile for known vulnerabilities.","devops-off":"DevOps is off (Manage › Sections), so Watchbell doesn't read GitHub. Turn it on to scan the linked repository.",failed:"the scan failed.","no-lockfile":"no lockfile or package.json was found in the linked repository.","not-yet":"the daily run scans linked repositories; Scan now does it at once."};var q=a.i(67400);let r="font-mono text-[12.5px]",s={critical:"CRITICAL",high:"HIGH",moderate:"MODERATE",low:"LOW",unknown:"UNKNOWN"};function t({vulns:a}){let c=(0,l.Z)(a);return(0,b.jsx)("span",{className:"flex flex-wrap gap-x-3 gap-y-1",children:l.u.filter(a=>c[a]>0).map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:r,children:c[a]}),(0,b.jsx)(g.s,{severity:s[a]})]},a))})}a.s(["f",0,function({app:a,view:u,canAct:v,owner:w,now:x,devopsOff:y=!1}){let{repo:z,scan:A,vulns:B}=u,C=function(a,b){if(!a.repo)return{scanned:!1,reason:"no-repo"};let c=a.scan;return c?.scannedAt&&(c.lockfilePath||c.packageCount>0)?{scanned:!0,paused:b}:b?{scanned:!1,reason:"devops-off"}:c?.scannedAt&&c.error?{scanned:!1,reason:"failed"}:c?.scannedAt?{scanned:!1,reason:"no-lockfile"}:{scanned:!1,reason:"not-yet"}}(u,y),D=B.filter(a=>!a.dev),E=B.filter(a=>a.dev),F=(0,l.B)(B).length;return(0,b.jsxs)(e.N,{title:"Dependencies",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Src,{kind:"api",children:"OSV.dev"}),v&&z&&!y&&(0,b.jsx)(q.DepsScanButton,{appId:a.id,appName:a.name})]}),flush:!0,children:[(0,b.jsx)("div",{className:"px-[18px] pb-4 pt-2",children:C.scanned&&A?.scannedAt?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dt]:text-ink-soft",children:[(0,b.jsx)("dt",{children:"In production"}),(0,b.jsx)("dd",{children:0===D.length?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(i.Z,{state:"ok"}),"None known"]}):(0,b.jsx)(t,{vulns:D})}),E.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"Development tools"}),(0,b.jsxs)("dd",{children:[(0,b.jsx)(t,{vulns:E}),(0,b.jsx)("div",{className:"mt-0.5 text-[12.5px] text-ink-faint",children:"Local development only, no production impact. Not alerted."})]})]}),(0,b.jsx)("dt",{children:"Lockfile"}),(0,b.jsx)("dd",{children:A.lockfilePath?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:r,children:A.lockfilePath}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" · ",A.packageCount," packages"]})]}):(0,b.jsx)("span",{className:"text-ink-faint",children:"None found"})}),(0,b.jsx)("dt",{children:"Last scan"}),(0,b.jsx)("dd",{children:(0,m.$)(A.scannedAt,x)})]}),A.error&&(0,b.jsxs)("p",{className:"mt-3 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(i.Z,{state:"warn"}),(0,b.jsxs)("span",{children:["The last scan failed: ",A.error," The list below is from the scan before."]})]}),A.note&&(0,b.jsx)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:A.note}),C.paused&&(0,b.jsx)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:"Scans pause while DevOps is off (Manage › Sections); this is the last scan."}),u.prs&&u.prs.length>0&&(0,b.jsx)("ul",{className:"mt-2 flex flex-col gap-0.5 text-[13px]",children:u.prs.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsx)(d.f,{href:`https://github.com/${a.fullName}/pull/${a.number}`,target:"_blank",rel:"noopener",children:a.stageText??`PR #${a.number}`}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" · ",(0,m.$)(a.openedAt,x)]})]},a.number))}),F>0&&(0,b.jsxs)("p",{className:"mt-2 text-[12.5px] text-ink-soft",children:[F," direct package",1===F?" has":"s have"," a fixed version. ",o.K.cardProposes,w&&!u.writeConnected&&(0,b.jsxs)(b.Fragment,{children:[" It needs the ",(0,b.jsx)(c.default,{href:"/connections?provider=github_write",children:"GitHub (PR write)"})," token."]})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-ink-soft",children:[!C.scanned&&"failed"===C.reason&&(0,b.jsx)(i.Z,{state:"warn"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium text-ink",children:"Not scanned:"})," ",p[C.scanned?"not-yet":C.reason],!C.scanned&&"failed"===C.reason&&A?.error&&(0,b.jsxs)(b.Fragment,{children:[" ",A.error]})]})]}),A?.scannedAt&&(0,b.jsxs)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:["Last tried ",(0,m.$)(A.scannedAt,x),".",A.note&&(0,b.jsxs)(b.Fragment,{children:[" ",A.note]})]})]})}),C.scanned&&B.length>0&&(0,b.jsx)(f.PlainTable,{head:["Package","Version","Severity","Advisory"],rows:B.map(a=>{let c=(0,k.m)(a.aliases);return{key:`${a.package}@${a.installedVersion}|${a.vulnId}`,state:s[a.severity],text:[a.package,a.vulnId,c,a.summary].filter(Boolean).join(" "),row:(0,b.jsxs)("tr",{className:j.C,children:[(0,b.jsxs)("td",{className:j.z,children:[(0,b.jsx)("span",{className:r,children:a.package}),(a.dev||!a.direct)&&(0,b.jsx)("div",{className:"mt-0.5 text-xs text-ink-faint",children:[a.direct?null:"transitive",a.dev?"dev only, local":null].filter(Boolean).join(" · ")})]}),(0,b.jsxs)("td",{className:(0,n.f)(j.z,r,"whitespace-nowrap"),children:[a.installedVersion," ",a.fixedVersion?(0,b.jsxs)(b.Fragment,{children:["→ ",a.fixedVersion]}):(0,b.jsx)("span",{className:"font-sans text-ink-faint",children:"· no fix yet"})]}),(0,b.jsx)("td",{className:j.z,children:(0,b.jsx)(g.s,{severity:s[a.severity]})}),(0,b.jsxs)("td",{className:(0,n.f)(j.z,j.M),children:[(0,b.jsx)("a",{href:`https://osv.dev/vulnerability/${encodeURIComponent(c??a.vulnId)}`,target:"_blank",rel:"noopener",className:r,children:c??a.vulnId}),c&&(0,b.jsx)("span",{className:(0,n.f)(r,"ml-1.5 text-xs text-ink-faint"),children:a.vulnId}),a.summary&&(0,b.jsx)("div",{className:"mt-0.5 text-ink-soft",children:a.summary})]})]})}})})]})}],718064)},925345,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call DepsScanButton() from the server but DepsScanButton 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)/apps/[id]/deps-scan-button.tsx","DepsScanButton");a.s(["DepsScanButton",0,b])},67400,a=>{var b=a.i(925345);a.n(b)}]})();
2
+
3
+ //# sourceMappingURL=src_app_%28console%29_apps_%5Bid%5D_1jme7fm7ej_lr._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[340855,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(636397),k=a.i(247583),l=a.i(280318),m=a.i(55910),n=a.i(405050);let o=(0,n.createServerReference)("407398a188dbbc215bfb2b590c31dd39d2329991a7",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.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()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},685194,a=>{var b=a.i(187924);let c=(0,a.i(449862).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(814574);let j={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},k={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function l(a){return a.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var m=a.i(405050);let n=(0,m.createServerReference)("60e931fb1a5e33a551ae07e8c57c9218a64077597e",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.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,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},605761,a=>{var b=a.i(187924),c=a.i(36600),d=a.i(147909),e=a.i(572131),f=a.i(823292),g=a.i(771378),h=a.i(619089),i=a.i(507504),j=a.i(814574),k=a.i(368114),l=a.i(405050);let m=(0,l.createServerReference)("6086aefabbb012cfd7ad8e208cc2d9f0d3126b75b6",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("40ced3ff39319faf815a41cdded6871a6359cd6119",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.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)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Something went wrong. Try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("408e151a25dad9305f3bfcc3315fd98e125761fe16",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Something went wrong. Try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
1
+ (()=>{"use strict";module.exports=[340855,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(767944),k=a.i(398101),l=a.i(734028),m=a.i(594586),n=a.i(405050);let o=(0,n.createServerReference)("405d2bcfe4964cac4ee650d936a8830171619e5a80",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{b()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},685194,a=>{var b=a.i(187924);let c=(0,a.i(449862).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(814574);let j={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},k={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function l(a){return a.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var m=a.i(405050);let n=(0,m.createServerReference)("609c3be780a5939b33987353e9cf656225aa69237f",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.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,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},605761,a=>{var b=a.i(187924),c=a.i(36600),d=a.i(147909),e=a.i(572131),f=a.i(823292),g=a.i(771378),h=a.i(619089),i=a.i(507504),j=a.i(814574),k=a.i(368114),l=a.i(405050);let m=(0,l.createServerReference)("6004736b2b4779fbc5dee592138467445d19df3fcf",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("4080c3c93703affbba77c27ee8bef34fb7777fa45a",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.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)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("40dd435a87680722e2e68db0427c80526ffc0caa81",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_apps_%5Bid%5D_1sfvku9ui1le-._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[459296,a=>{"use strict";var b=a.i(137936),c=a.i(905246),d=a.i(118558),e=a.i(600079),f=a.i(109307),g=a.i(544854),h=a.i(21096),i=a.i(77608),j=a.i(966425),k=a.i(447681);class l extends Error{kind;constructor(a,b){super(b),this.kind=a}}async function m(a){let{month:b,partial:c,now:d}=a,e=(0,i.p)();if(!e)return{ok:!1,month:b,kind:"env",error:i.S};let f=await j.N();if(!f)return{ok:!1,month:b,kind:"not-connected",error:"Google Drive isn't connected."};if(!f.refreshToken){let a="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await j.s(f.id,{status:"error",lastError:a}),{ok:!1,month:b,kind:"failed",error:a}}let h=await j.z(b),m={sheetFileId:h?.sheetFileId??null,csvFileId:h?.csvFileId??null,driveFolderId:h?.driveFolderId??null},o=h?.status??"error";await j.W(b,{status:o,attempts:(h?.attempts??0)+1,startedAt:d});let p=a=>(m={...m,...a},j.W(b,{status:o,...a})),q={fetch:a.fetch},r=()=>{if(Date.now()>a.deadline)throw new l("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},s=a=>{if(!a.ok)throw new l("failed",a.error);return a.data};try{let h=await (0,i.B)(e,f.refreshToken,q);if(!h.ok){if("revoked"===h.kind)throw await j.s(f.id,{status:"error",lastError:i.L}),new l("revoked",i.L);throw new l("failed",h.error)}"error"===f.status&&await j.s(f.id,{status:"ok",lastError:null});let o=h.accessToken;r();let t=await j.M(),u=t?.id??null;if(t){let a=s(await k.f(o,t.id,q));a.usable?a.name&&a.name!==t.name&&await j.t(t.id,a.name):u=null}if(!u){r();let a=s(await k.T(o,g.R,q)),b=a?null:s(await k.T(o,g.C,q));u=a??b??s(await k.B(o,g.R,q)),await j.t(u,b?g.C:g.R)}let v=await j.f(b,c,d);r(),m.sheetFileId||await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r();let w=await k.A(o,m.sheetFileId,g.O,q);w.ok||"missing"!==w.kind||(await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r(),w=await k.A(o,m.sheetFileId,g.O,q)),s(w),r(),s(await k.c(o,m.sheetFileId,(0,g.m)(v),q)),r();let x=(0,g.b)((0,g.E)(v)),y=s(await k.G(o,{name:(0,g.V)(b),mimeType:"application/gzip",folderId:u,content:x,fileId:m.csvFileId},q));await p({csvFileId:y.id}),await j.W(b,{status:c?"partial":"ok",sizeBytes:y.size,error:null,finishedAt:new Date});let z=c?null:await n(o,d,a.deadline,q);return{ok:!0,month:b,retention:z,message:`${(0,g.n)(b)}${c?" so far":""} saved to Google Drive.`}}catch(e){let a=e instanceof l?e:new l("failed","The backup failed. The next daily run tries again.");e instanceof l||console.error("backup failed:",e instanceof Error?e.name:"unknown");let d=c&&"partial"===o?"partial":"error";return await j.W(b,{status:d,error:a.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:b,kind:a.kind,error:a.message}}}async function n(a,b,c,d){let e=(0,g.c)(await j.e(),b),f=[];for(let h of e){if(Date.now()>c)break;let e=!0;for(let b of[h.sheetFileId,h.csvFileId])b&&((await k.$(a,b,d)).ok||(e=!1));e&&(await j.W(h.month,{status:h.status,trashedAt:b}),f.push((0,g.n)(h.month)))}return f.length?`Moved to Drive trash: ${f.join(", ")}.`:null}var o=a.i(221084),p=a.i(492665),q=a.i(312573),r=a.i(323878),s=a.i(713095);let t={requireActionMember:f.g};async function u(){return(0,e.F)("owner",async a=>{let b=(0,i.p)();if(!b)return{ok:!1,error:i.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,p.f)(),f=(0,i.C)(),{verifier:g,challenge:j}=(0,i.U)();return(await (0,c.cookies)()).set(h.a,(0,h.G)({state:f,verifier:g,memberId:a.id,exp:Date.now()+1e3*h.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:h.Y,maxAge:h.N}),{ok:!0,data:{url:(0,i.a)(b,{state:f,challenge:j,redirectUri:(0,i.I)(d)})}}},t)}async function v(){return(0,e.F)("owner",async a=>{let b=await (0,j.g)();return((0,d.revalidatePath)("/backups"),(0,d.revalidatePath)("/connections"),b)?(await (0,o.f)({kind:"ok",message:"Google Drive disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),{ok:!0,message:"Google Drive disconnected. The backups already in your Drive stay; remove Watchbell's access in your Google Account if you want."}):{ok:!1,error:"Google Drive isn't connected."}},t)}async function w(){return(0,e.F)("owner",async a=>{let b=await (0,r.C)(q.t.backupNow,a.id);if(!b.allowed)return{ok:!1,error:`Too many backups. Try again in ${(0,q.H)(b.retryAfter)}.`};let c=new Date,e=(0,g.L)(c),f=await m({month:e,partial:!0,now:c,deadline:Date.now()+45e3});return f.ok||"env"!==f.kind&&"not-connected"!==f.kind?(await (0,o.f)({kind:f.ok?"ok":"err",message:`Back up now \xb7 ${(0,g.n)(e)}`,resourceId:null,actorUserId:a.userId,...f.ok?{}:{detail:f.error.slice(0,200)}}).catch(()=>void 0),(0,d.revalidatePath)("/backups"),f.ok?{ok:!0,message:f.message}:{ok:!1,error:f.error}):{ok:!1,error:f.error}},t)}(0,s.ensureServerEntryExports)([u,v,w]),(0,b.registerServerReference)(u,"006f653a62baceeded3eac8f8e1321703246926a47",null),(0,b.registerServerReference)(v,"00ae8990262e164c609c12e5f4225a35be21b04731",null),(0,b.registerServerReference)(w,"00f642d4ccff699bacc54f27e6346c67f67622aa98",null),a.s(["p",0,w,"C",0,v,"A",0,u],459296)}];
1
+ module.exports=[459296,a=>{"use strict";var b=a.i(137936),c=a.i(905246),d=a.i(118558),e=a.i(600079),f=a.i(109307),g=a.i(544854),h=a.i(21096),i=a.i(77608),j=a.i(966425),k=a.i(447681);class l extends Error{kind;constructor(a,b){super(b),this.kind=a}}async function m(a){let{month:b,partial:c,now:d}=a,e=(0,i.p)();if(!e)return{ok:!1,month:b,kind:"env",error:i.S};let f=await j.N();if(!f)return{ok:!1,month:b,kind:"not-connected",error:"Google Drive isn't connected."};if(!f.refreshToken){let a="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await j.s(f.id,{status:"error",lastError:a}),{ok:!1,month:b,kind:"failed",error:a}}let h=await j.z(b),m={sheetFileId:h?.sheetFileId??null,csvFileId:h?.csvFileId??null,driveFolderId:h?.driveFolderId??null},o=h?.status??"error";await j.W(b,{status:o,attempts:(h?.attempts??0)+1,startedAt:d});let p=a=>(m={...m,...a},j.W(b,{status:o,...a})),q={fetch:a.fetch},r=()=>{if(Date.now()>a.deadline)throw new l("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},s=a=>{if(!a.ok)throw new l("failed",a.error);return a.data};try{let h=await (0,i.B)(e,f.refreshToken,q);if(!h.ok){if("revoked"===h.kind)throw await j.s(f.id,{status:"error",lastError:i.L}),new l("revoked",i.L);throw new l("failed",h.error)}"error"===f.status&&await j.s(f.id,{status:"ok",lastError:null});let o=h.accessToken;r();let t=await j.M(),u=t?.id??null;if(t){let a=s(await k.f(o,t.id,q));a.usable?a.name&&a.name!==t.name&&await j.t(t.id,a.name):u=null}if(!u){r();let a=s(await k.T(o,g.R,q)),b=a?null:s(await k.T(o,g.C,q));u=a??b??s(await k.B(o,g.R,q)),await j.t(u,b?g.C:g.R)}let v=await j.f(b,c,d);r(),m.sheetFileId||await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r();let w=await k.A(o,m.sheetFileId,g.O,q);w.ok||"missing"!==w.kind||(await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r(),w=await k.A(o,m.sheetFileId,g.O,q)),s(w),r(),s(await k.c(o,m.sheetFileId,(0,g.m)(v),q)),r();let x=(0,g.b)((0,g.E)(v)),y=s(await k.G(o,{name:(0,g.V)(b),mimeType:"application/gzip",folderId:u,content:x,fileId:m.csvFileId},q));await p({csvFileId:y.id}),await j.W(b,{status:c?"partial":"ok",sizeBytes:y.size,error:null,finishedAt:new Date});let z=c?null:await n(o,d,a.deadline,q);return{ok:!0,month:b,retention:z,message:`${(0,g.n)(b)}${c?" so far":""} saved to Google Drive.`}}catch(e){let a=e instanceof l?e:new l("failed","The backup failed. The next daily run tries again.");e instanceof l||console.error("backup failed:",e instanceof Error?e.name:"unknown");let d=c&&"partial"===o?"partial":"error";return await j.W(b,{status:d,error:a.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:b,kind:a.kind,error:a.message}}}async function n(a,b,c,d){let e=(0,g.c)(await j.e(),b),f=[];for(let h of e){if(Date.now()>c)break;let e=!0;for(let b of[h.sheetFileId,h.csvFileId])b&&((await k.$(a,b,d)).ok||(e=!1));e&&(await j.W(h.month,{status:h.status,trashedAt:b}),f.push((0,g.n)(h.month)))}return f.length?`Moved to Drive trash: ${f.join(", ")}.`:null}var o=a.i(221084),p=a.i(492665),q=a.i(312573),r=a.i(323878),s=a.i(713095);let t={requireActionMember:f.g};async function u(){return(0,e.F)("owner",async a=>{let b=(0,i.p)();if(!b)return{ok:!1,error:i.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,p.f)(),f=(0,i.C)(),{verifier:g,challenge:j}=(0,i.U)();return(await (0,c.cookies)()).set(h.a,(0,h.G)({state:f,verifier:g,memberId:a.id,exp:Date.now()+1e3*h.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:h.Y,maxAge:h.N}),{ok:!0,data:{url:(0,i.a)(b,{state:f,challenge:j,redirectUri:(0,i.I)(d)})}}},t)}async function v(){return(0,e.F)("owner",async a=>{let b=await (0,j.g)();return((0,d.revalidatePath)("/backups"),(0,d.revalidatePath)("/connections"),b)?(await (0,o.f)({kind:"ok",message:"Google Drive disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),{ok:!0,message:"Google Drive disconnected. The backups already in your Drive stay; remove Watchbell's access in your Google Account if you want."}):{ok:!1,error:"Google Drive isn't connected."}},t)}async function w(){return(0,e.F)("owner",async a=>{let b=await (0,r.C)(q.t.backupNow,a.id);if(!b.allowed)return{ok:!1,error:`Too many backups. Try again in ${(0,q.H)(b.retryAfter)}.`};let c=new Date,e=(0,g.L)(c),f=await m({month:e,partial:!0,now:c,deadline:Date.now()+45e3});return f.ok||"env"!==f.kind&&"not-connected"!==f.kind?(await (0,o.f)({kind:f.ok?"ok":"err",message:`Back up now \xb7 ${(0,g.n)(e)}`,resourceId:null,actorUserId:a.userId,...f.ok?{}:{detail:f.error.slice(0,200)}}).catch(()=>void 0),(0,d.revalidatePath)("/backups"),f.ok?{ok:!0,message:f.message}:{ok:!1,error:f.error}):{ok:!1,error:f.error}},t)}(0,s.ensureServerEntryExports)([u,v,w]),(0,b.registerServerReference)(u,"0003376bee22d878be2bf377207aedad445df6b743",null),(0,b.registerServerReference)(v,"004ba97cfa6760065a10b3f32c878089c7eb703ca1",null),(0,b.registerServerReference)(w,"00d1ac78b1fc03c5da97b7367638cc2d547584218b",null),a.s(["p",0,w,"C",0,v,"A",0,u],459296)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_backups_actions_ts_1vpytsdh0wc1f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[43963,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("00f642d4ccff699bacc54f27e6346c67f67622aa98",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("00ae8990262e164c609c12e5f4225a35be21b04731",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("006f653a62baceeded3eac8f8e1321703246926a47",g.callServer,void 0,g.findSourceMapURL,"startDriveConnect");a.s(["BackUpNowButton",0,function({monthLabel:a,disabled:e}){let[g,i]=(0,c.useTransition)(),j=(0,c.useRef)(!1);return(0,b.jsx)(f.K,{onClick:()=>{if(j.current)return;j.current=!0;let b=d.c.loading(`Backing up ${a} so far. It will appear here in a few seconds.`);i(async()=>{try{let a=await h();a.ok?d.c.success(a.message??"Saved to Google Drive.",{id:b}):d.c.error(a.error,{id:b})}catch{d.c.error("Something went wrong. Try again.",{id:b})}finally{j.current=!1}})},disabled:g||e,children:g?"Backing up…":"Back up now"})},"DisconnectDriveButton",0,function(){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Disconnect"}),title:"Disconnect Google Drive?",body:"The console forgets its access and stops the monthly backups. The backups already in your Drive stay where they are.",cta:"Disconnect",danger:!0,onConfirm:async()=>{let a=await i();return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})},"DriveConnectButton",0,function({reconnect:a=!1,quiet:c=!1,size:d="md"}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:d,variant:c?"secondary":"primary",children:c?"Reconnect":a?"Reconnect Google Drive":"Connect Google Drive"}),title:a?"Reconnect Google Drive":"Connect Google Drive",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, create, and delete only the specific Google Drive files you use with this app."}),(0,b.jsxs)("ul",{className:"list-disc space-y-0.5 pl-5 text-ink-soft",children:[(0,b.jsx)("li",{children:"The console can't see any of your other files."}),(0,b.jsx)("li",{children:"It uses one folder: the backups folder it made before, or a new one named Watchbell backups."}),(0,b.jsx)("li",{children:"You can remove access any time in your Google Account settings."})]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await j();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Something went wrong. Try again.":a.error}}})}],43963)}];
1
+ module.exports=[43963,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("00d1ac78b1fc03c5da97b7367638cc2d547584218b",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("004ba97cfa6760065a10b3f32c878089c7eb703ca1",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("0003376bee22d878be2bf377207aedad445df6b743",g.callServer,void 0,g.findSourceMapURL,"startDriveConnect");a.s(["BackUpNowButton",0,function({monthLabel:a,disabled:e}){let[g,i]=(0,c.useTransition)(),j=(0,c.useRef)(!1);return(0,b.jsx)(f.K,{onClick:()=>{if(j.current)return;j.current=!0;let b=d.c.loading(`Backing up ${a} so far. It will appear here in a few seconds.`);i(async()=>{try{let a=await h();a.ok?d.c.success(a.message??"Saved to Google Drive.",{id:b}):d.c.error(a.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{j.current=!1}})},disabled:g||e,children:g?"Backing up…":"Back up now"})},"DisconnectDriveButton",0,function(){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Disconnect"}),title:"Disconnect Google Drive?",body:"The console forgets its access and stops the monthly backups. The backups already in your Drive stay where they are.",cta:"Disconnect",danger:!0,onConfirm:async()=>{let a=await i();return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})},"DriveConnectButton",0,function({reconnect:a=!1,quiet:c=!1,size:d="md"}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:d,variant:c?"secondary":"primary",children:c?"Reconnect":a?"Reconnect Google Drive":"Connect Google Drive"}),title:a?"Reconnect Google Drive":"Connect Google Drive",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, create, and delete only the specific Google Drive files you use with this app."}),(0,b.jsxs)("ul",{className:"list-disc space-y-0.5 pl-5 text-ink-soft",children:[(0,b.jsx)("li",{children:"The console can't see any of your other files."}),(0,b.jsx)("li",{children:"It uses one folder: the backups folder it made before, or a new one named Watchbell backups."}),(0,b.jsx)("li",{children:"You can remove access any time in your Google Account settings."})]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await j();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Watchbell didn't answer. Check that it's still running, then try again.":a.error}}})}],43963)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_backups_drive-buttons_tsx_00cku5r_z3jkg._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[[863333,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RemoveAccountButton() from the server but RemoveAccountButton 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)/connections/account-actions.tsx","RemoveAccountButton"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RetestButton() from the server but RetestButton 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)/connections/account-actions.tsx","RetestButton");a.s(["RemoveAccountButton",0,c,"RetestButton",0,d])},207179,a=>{var b=a.i(863333);a.n(b)},273981,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call GithubSyncButton() from the server but GithubSyncButton 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)/connections/github-sync-button.tsx","GithubSyncButton");a.s(["GithubSyncButton",0,b])},412159,a=>{var b=a.i(273981);a.n(b)},157372,a=>{var b=a.i(907997),c=a.i(530385),d=a.i(93321),e=a.i(395936),f=a.i(803681),g=a.i(75148),h=a.i(548734),i=a.i(837137),j=a.i(109068),k=a.i(109307),l=a.i(544854),m=a.i(77608),n=a.i(462820),o=a.i(358179),p=a.i(966425),q=a.i(944571),r=a.i(322145),s=a.i(492665),t=a.i(371289),u=a.i(686921),v=a.i(45468),w=a.i(245710),x=a.i(646322),y=a.i(564371),z=a.i(160147);let A=["hosting","database","devops"].map(a=>({id:a,title:z.Z[a].label}));var B=a.i(556987),C=a.i(993835),D=a.i(362990),E=a.i(154756),F=a.i(686251),G=a.i(207179),H=a.i(801168),I=a.i(412159),J=a.i(532380);let K={ok:"ok",off:"warn",faint:"off"};function L({hint:a}){return(0,b.jsxs)("div",{className:`mt-0.5 flex items-start gap-1.5 text-[12px] ${"faint"===a.tone?"text-ink-faint":""}`,children:[(0,b.jsx)("span",{className:"mt-px",children:(0,b.jsx)(F.Z,{state:K[a.tone],size:14})}),(0,b.jsx)("span",{children:a.text})]})}function M({m:a}){return a?"repos"in a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.repos}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" repos · ",a.linked," linked"]})]}):0===a.total?(0,b.jsx)("span",{className:"text-ink-faint",children:"—"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.on}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" of ",a.total]}),a.fresh>0&&(0,b.jsxs)("span",{className:"ml-1.5 rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:[a.fresh," new"]})]}):(0,b.jsx)("span",{className:"text-ink-faint",children:"—"})}function N({term:a,children:c}){return(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("dt",{className:"text-[12px] text-ink-faint",children:a}),(0,b.jsx)("dd",{className:"text-[13px]",children:c})]})}let O="px-[18px] pb-1 pt-4 text-[13px] font-medium text-ink-soft";function P({provider:a,accounts:c,demo:d}){let e=u.m[a],f=e.multiAccount||0===c.length;return(0,b.jsxs)(b.Fragment,{children:[c.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h3",{className:O,children:1===c.length?"Account":`Accounts (${c.length})`}),(0,b.jsx)("ul",{className:"border-b border-line",children:c.map(c=>{let f=`${e.name} \xb7 ${(0,B.G)(c.label)}`;return(0,b.jsxs)("li",{className:"border-t border-line px-[18px] py-3 first:border-t-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(E.c,{name:c.label}),(0,b.jsx)("span",{className:"ml-auto",children:c.problem?(0,b.jsx)(F.F,{state:"err",children:(0,B.G)(c.problem)}):(0,b.jsx)(F.F,{state:"ok",children:d?"Demo account":"Connected"})})]}),(0,b.jsxs)("dl",{className:"mt-2 grid grid-cols-2 gap-x-4 gap-y-2 max-[520px]:grid-cols-1",children:[(0,b.jsx)(N,{term:"Credential",children:c.credentialKind}),(0,b.jsx)(N,{term:"Expires",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.expires})}),(0,b.jsxs)(N,{term:"Access",children:[(0,b.jsx)("span",{className:"text-ink-soft",children:c.scopeNote}),c.hint&&(0,b.jsx)(L,{hint:c.hint})]}),(0,b.jsx)(N,{term:"Monitored",children:(0,b.jsx)(M,{m:c.monitored})}),(0,b.jsx)(N,{term:"Last sync",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.lastSync})})]}),(0,b.jsxs)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:[!c.problem&&"github_write"!==a&&("github"===a?(0,b.jsx)(I.GithubSyncButton,{accountId:c.id}):(0,b.jsx)(J.SyncButton,{accountId:c.id,title:f,watchNew:c.watchNew,kind:v.f[a]})),!c.unreadable&&(0,b.jsx)(G.RetestButton,{accountId:c.id}),(0,b.jsx)(H.AccountDialog,{provider:a,replace:{id:c.id,label:c.label},primary:null!==c.problem}),(0,b.jsx)(G.RemoveAccountButton,{accountId:c.id,title:f})]})]},c.id)})})]}),f?(0,b.jsxs)("section",{"aria-label":0===c.length?`Connect ${e.name}`:"Add another account",children:[(0,b.jsx)("h3",{className:O,children:0===c.length?`Connect ${e.name}`:"Add another account"}),(0,b.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft",children:"The credential is encrypted before it's saved and never shown again."}),(0,b.jsx)(H.AccountForm,{provider:a})]}):(0,b.jsxs)("p",{className:"px-[18px] py-4 text-[12.5px] text-ink-soft",children:["One ",e.name," account per Watchbell. Replace its credential above, or remove it to connect a different one."]})]})}var Q=a.i(103493);let R={env:{state:"off",text:"Not set up"},none:{state:"off",text:"Not connected"},ok:{state:"ok",text:"Connected"},reconnect:{state:"err",text:"Reconnect needed"},problem:{state:"warn",text:"Connected · last run failed"}};async function S({searchParams:a}={}){var E,F;let G,H=await (0,k.B)("owner");if(!H.ok)return(0,b.jsx)(g.f,{role:H.member.role});let I="drive"===(G=Array.isArray(E=(await a)?.provider)?E[0]:E)?"drive":G&&u.L.includes(G)?G:null,J=(0,s.f)().OPS_ENCRYPTION_KEY,[K,L]=await Promise.all([(0,h.f)().select().from(i.accounts).orderBy((0,c.M)(i.accounts.createdAt)),(0,h.f)().select({accountId:i.resources.accountId,kind:i.resources.kind,monitored:i.resources.monitored,firstSeenAt:i.resources.firstSeenAt,goneAt:i.resources.goneAt}).from(i.resources).where((0,d.y)(i.resources.kind,Object.values(v.f)))]),[M,N,O]=await Promise.all([(0,r.f)(K.map(a=>a.id)),(0,q.w)(),(0,p.M)()]),T=(0,t.W)(),U=K.map(a=>{let b="drive"===a.provider||T?null:(0,j.A)((0,o.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},J));return{...a,unreadable:null!==b,problem:b??("error"===a.status?a.lastError:null)}}),V=new Date,W=U.filter(a=>a.problem),X=(0,y.O)(null!==(0,m.p)(),U.find(a=>"drive"===a.provider)??null),Y=(F=U.filter(a=>"drive"!==a.provider),A.map(({id:a,title:b})=>({section:a,title:b,tiles:u.L.filter(b=>z.D[b]===a).map(a=>{let b=F.filter(b=>b.provider===a);return{provider:a,accounts:b.length,attention:b.filter(a=>a.problem).length}})})).filter(a=>a.tiles.length>0)),Z="grid grid-cols-[repeat(auto-fill,minmax(230px,1fr))] gap-2.5",$="mb-2 text-[13px] font-medium text-ink-soft";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.L,{crumbs:[{label:"Manage"},{label:"Connections"}],title:"Connections",sub:`Credentials are encrypted (AES-256-GCM) before they're stored. The key lives in ${n.n.keyHome}, and credentials never reach the browser. Sync lists everything in an account, and you choose what the console watches.`}),W.length>0&&(0,b.jsxs)(f.M,{tone:"danger",title:`${W.length} connection${W.length>1?"s need":" needs"} attention`,children:[W.map(a=>`${a.provider} \xb7 ${(0,B.G)(a.label)}`).join(", "),". Data from ",W.length>1?"these accounts is":"this account is"," not being updated."]}),Y.map(a=>(0,b.jsxs)("section",{"aria-labelledby":`sec-${a.section}`,"data-section":a.section,children:[(0,b.jsx)("h2",{id:`sec-${a.section}`,className:$,children:a.title}),(0,b.jsx)("div",{className:Z,children:a.tiles.map(a=>{let c,d=u.m[a.provider];return(0,b.jsx)(D.ProviderDrawer,{name:d.name,note:d.note,icon:d.icon,line:0===a.accounts?{state:"off",text:"Not connected"}:a.attention>0?{state:"err",text:1===a.attention&&1===a.accounts?"Needs attention":`${a.attention} of ${a.accounts} ${1===a.attention?"needs":"need"} attention`}:{state:"ok",text:1===a.accounts?"Connected":`${a.accounts} accounts connected`},defaultOpen:I===a.provider,children:(0,b.jsx)(P,{provider:a.provider,accounts:(c=a.provider,U.filter(a=>a.provider===c).map(a=>{let b=(0,v.K)(c);return{id:a.id,label:a.label,credentialKind:a.credentialKind,scopeNote:a.scopeNote,hint:(0,x.f)(a.provider,M.get(a.id),a.scopeNote),expires:(0,w.A)(a.expiresAt,V),lastSync:(0,w.K)(a.lastSyncAt,V),problem:a.problem,unreadable:a.unreadable,watchNew:a.watchNew,monitored:"github"===c?N.get(a.id)??null:b?(0,v.D)(L.filter(b=>b.accountId===a.id),V,b):null}})),demo:T})},a.provider)})})]},a.section)),(0,b.jsxs)("section",{"aria-labelledby":"sec-manage","data-section":"manage",children:[(0,b.jsx)("h2",{id:"sec-manage",className:$,children:"Manage"}),(0,b.jsx)("div",{className:Z,children:(0,b.jsx)(D.ProviderDrawer,{name:"Google Drive",note:"Monthly backups. The app can only see the files it creates (drive.file).",icon:"drive",line:R[X.kind],defaultOpen:"drive"===I,children:(0,b.jsxs)("div",{className:"px-[18px] py-4",children:[(0,b.jsx)(C.f,{state:X,folderName:(0,l.A)(O),showDisconnect:!0}),(0,b.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:["Schedule, history and restore are on ",(0,b.jsx)(e.default,{href:"/backups",children:"Backups"}),"."]})]})})})]}),(0,b.jsx)(Q.f,{})]})}a.s(["default",0,S],157372)},19251,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ProviderDrawer() from the server but ProviderDrawer 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)/connections/provider-drawer.tsx","ProviderDrawer");a.s(["ProviderDrawer",0,b])},362990,a=>{var b=a.i(19251);a.n(b)}],476227,function(a){a.n(a.i(157372))}];
1
+ module.exports=[[863333,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RemoveAccountButton() from the server but RemoveAccountButton 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)/connections/account-actions.tsx","RemoveAccountButton"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RetestButton() from the server but RetestButton 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)/connections/account-actions.tsx","RetestButton");a.s(["RemoveAccountButton",0,c,"RetestButton",0,d])},207179,a=>{var b=a.i(863333);a.n(b)},273981,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call GithubSyncButton() from the server but GithubSyncButton 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)/connections/github-sync-button.tsx","GithubSyncButton");a.s(["GithubSyncButton",0,b])},412159,a=>{var b=a.i(273981);a.n(b)},157372,a=>{var b=a.i(907997),c=a.i(530385),d=a.i(93321),e=a.i(395936),f=a.i(803681),g=a.i(75148),h=a.i(548734),i=a.i(837137),j=a.i(109068),k=a.i(109307),l=a.i(544854),m=a.i(77608),n=a.i(462820),o=a.i(358179),p=a.i(966425),q=a.i(944571),r=a.i(322145),s=a.i(492665),t=a.i(371289),u=a.i(686921),v=a.i(45468),w=a.i(245710),x=a.i(646322),y=a.i(564371),z=a.i(160147);let A=["hosting","database","devops"].map(a=>({id:a,title:z.Z[a].label}));var B=a.i(556987),C=a.i(993835),D=a.i(362990),E=a.i(154756),F=a.i(686251),G=a.i(207179),H=a.i(801168),I=a.i(412159),J=a.i(532380);let K={ok:"ok",off:"warn",faint:"off"};function L({hint:a}){return(0,b.jsxs)("div",{className:`mt-0.5 flex items-start gap-1.5 text-[12px] ${"faint"===a.tone?"text-ink-faint":""}`,children:[(0,b.jsx)("span",{className:"mt-px",children:(0,b.jsx)(F.Z,{state:K[a.tone],size:14})}),(0,b.jsx)("span",{children:a.text})]})}function M({m:a}){return a?"repos"in a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.repos}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" repos · ",a.linked," linked"]})]}):0===a.total?(0,b.jsx)("span",{className:"text-ink-faint",children:"—"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.on}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" of ",a.total]}),a.fresh>0&&(0,b.jsxs)("span",{className:"ml-1.5 rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:[a.fresh," new"]})]}):(0,b.jsx)("span",{className:"text-ink-faint",children:"—"})}function N({term:a,children:c}){return(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("dt",{className:"text-[12px] text-ink-faint",children:a}),(0,b.jsx)("dd",{className:"text-[13px]",children:c})]})}let O="px-[18px] pb-1 pt-4 text-[13px] font-medium text-ink-soft";function P({provider:a,accounts:c,demo:d}){let e=u.m[a],f=e.multiAccount||0===c.length;return(0,b.jsxs)(b.Fragment,{children:[c.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h3",{className:O,children:1===c.length?"Account":`Accounts (${c.length})`}),(0,b.jsx)("ul",{className:"border-b border-line",children:c.map(c=>{let f=`${e.name} \xb7 ${(0,B.G)(c.label)}`,g=c.monitored&&"repos"in c.monitored?c.monitored.gaps:null;return(0,b.jsxs)("li",{className:"border-t border-line px-[18px] py-3 first:border-t-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(E.c,{name:c.label}),(0,b.jsx)("span",{className:"ml-auto",children:c.problem?(0,b.jsx)(F.F,{state:"err",children:(0,B.G)(c.problem)}):g?(0,b.jsx)(F.F,{state:"warn",children:"Connected, some reads refused"}):(0,b.jsx)(F.F,{state:"ok",children:d?"Demo account":"Connected"})})]}),!c.problem&&g&&(0,b.jsxs)("p",{className:"mt-1.5 flex items-start gap-1.5 text-[12.5px] text-ink-soft",children:[(0,b.jsx)("span",{className:"mt-px",children:(0,b.jsx)(F.Z,{state:"warn",size:14})}),(0,b.jsx)("span",{children:g})]}),(0,b.jsxs)("dl",{className:"mt-2 grid grid-cols-2 gap-x-4 gap-y-2 max-[520px]:grid-cols-1",children:[(0,b.jsx)(N,{term:"Credential",children:c.credentialKind}),(0,b.jsx)(N,{term:"Expires",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.expires})}),(0,b.jsxs)(N,{term:"Access",children:[(0,b.jsx)("span",{className:"text-ink-soft",children:c.scopeNote}),c.hint&&(0,b.jsx)(L,{hint:c.hint})]}),(0,b.jsx)(N,{term:"Monitored",children:(0,b.jsx)(M,{m:c.monitored})}),(0,b.jsx)(N,{term:"Last sync",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.lastSync})})]}),(0,b.jsxs)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:[!c.problem&&"github_write"!==a&&("github"===a?(0,b.jsx)(I.GithubSyncButton,{accountId:c.id}):(0,b.jsx)(J.SyncButton,{accountId:c.id,title:f,watchNew:c.watchNew,kind:v.f[a]})),!c.unreadable&&(0,b.jsx)(G.RetestButton,{accountId:c.id}),(0,b.jsx)(H.AccountDialog,{provider:a,replace:{id:c.id,label:c.label},primary:null!==c.problem}),(0,b.jsx)(G.RemoveAccountButton,{accountId:c.id,title:f})]})]},c.id)})})]}),f?(0,b.jsxs)("section",{"aria-label":0===c.length?`Connect ${e.name}`:"Add another account",children:[(0,b.jsx)("h3",{className:O,children:0===c.length?`Connect ${e.name}`:"Add another account"}),(0,b.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft",children:"The credential is encrypted before it's saved and never shown again."}),(0,b.jsx)(H.AccountForm,{provider:a})]}):(0,b.jsxs)("p",{className:"px-[18px] py-4 text-[12.5px] text-ink-soft",children:["One ",e.name," account per Watchbell. Replace its credential above, or remove it to connect a different one."]})]})}var Q=a.i(103493);let R={env:{state:"off",text:"Not set up"},none:{state:"off",text:"Not connected"},ok:{state:"ok",text:"Connected"},reconnect:{state:"err",text:"Reconnect needed"},problem:{state:"warn",text:"Connected · last run failed"}};async function S({searchParams:a}={}){var E,F;let G,H=await (0,k.B)("owner");if(!H.ok)return(0,b.jsx)(g.f,{role:H.member.role});let I="drive"===(G=Array.isArray(E=(await a)?.provider)?E[0]:E)?"drive":G&&u.L.includes(G)?G:null,J=(0,s.f)().OPS_ENCRYPTION_KEY,[K,L]=await Promise.all([(0,h.f)().select().from(i.accounts).orderBy((0,c.M)(i.accounts.createdAt)),(0,h.f)().select({accountId:i.resources.accountId,kind:i.resources.kind,monitored:i.resources.monitored,firstSeenAt:i.resources.firstSeenAt,goneAt:i.resources.goneAt}).from(i.resources).where((0,d.y)(i.resources.kind,Object.values(v.f)))]),[M,N,O]=await Promise.all([(0,r.f)(K.map(a=>a.id)),(0,q.w)(),(0,p.M)()]),T=(0,t.W)(),U=K.map(a=>{let b="drive"===a.provider||T?null:(0,j.A)((0,o.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},J));return{...a,unreadable:null!==b,problem:b??("error"===a.status?a.lastError:null)}}),V=new Date,W=U.filter(a=>a.problem),X=(0,y.O)(null!==(0,m.p)(),U.find(a=>"drive"===a.provider)??null),Y=(F=U.filter(a=>"drive"!==a.provider),A.map(({id:a,title:b})=>({section:a,title:b,tiles:u.L.filter(b=>z.D[b]===a).map(a=>{let b=F.filter(b=>b.provider===a);return{provider:a,accounts:b.length,attention:b.filter(a=>a.problem).length}})})).filter(a=>a.tiles.length>0)),Z="grid grid-cols-[repeat(auto-fill,minmax(230px,1fr))] gap-2.5",$="mb-2 text-[13px] font-medium text-ink-soft";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.L,{crumbs:[{label:"Manage"},{label:"Connections"}],title:"Connections",sub:`Credentials are encrypted (AES-256-GCM) before they're stored. The key lives in ${n.n.keyHome}, and credentials never reach the browser. Sync lists everything in an account, and you choose what the console watches.`}),W.length>0&&(0,b.jsxs)(f.M,{tone:"danger",title:`${W.length} connection${W.length>1?"s need":" needs"} attention`,children:[W.map(a=>`${a.provider} \xb7 ${(0,B.G)(a.label)}`).join(", "),". Data from ",W.length>1?"these accounts is":"this account is"," not being updated."]}),Y.map(a=>(0,b.jsxs)("section",{"aria-labelledby":`sec-${a.section}`,"data-section":a.section,children:[(0,b.jsx)("h2",{id:`sec-${a.section}`,className:$,children:a.title}),(0,b.jsx)("div",{className:Z,children:a.tiles.map(a=>{let c,d=u.m[a.provider];return(0,b.jsx)(D.ProviderDrawer,{name:d.name,note:d.note,icon:d.icon,line:0===a.accounts?{state:"off",text:"Not connected"}:a.attention>0?{state:"err",text:1===a.attention&&1===a.accounts?"Needs attention":`${a.attention} of ${a.accounts} ${1===a.attention?"needs":"need"} attention`}:{state:"ok",text:1===a.accounts?"Connected":`${a.accounts} accounts connected`},defaultOpen:I===a.provider,children:(0,b.jsx)(P,{provider:a.provider,accounts:(c=a.provider,U.filter(a=>a.provider===c).map(a=>{let b=(0,v.K)(c);return{id:a.id,label:a.label,credentialKind:a.credentialKind,scopeNote:a.scopeNote,hint:(0,x.f)(a.provider,M.get(a.id),a.scopeNote),expires:(0,w.A)(a.expiresAt,V),lastSync:(0,w.K)(a.lastSyncAt,V),problem:a.problem,unreadable:a.unreadable,watchNew:a.watchNew,monitored:"github"===c?N.get(a.id)??null:b?(0,v.D)(L.filter(b=>b.accountId===a.id),V,b):null}})),demo:T})},a.provider)})})]},a.section)),(0,b.jsxs)("section",{"aria-labelledby":"sec-manage","data-section":"manage",children:[(0,b.jsx)("h2",{id:"sec-manage",className:$,children:"Manage"}),(0,b.jsx)("div",{className:Z,children:(0,b.jsx)(D.ProviderDrawer,{name:"Google Drive",note:"Monthly backups. The app can only see the files it creates (drive.file).",icon:"drive",line:R[X.kind],defaultOpen:"drive"===I,children:(0,b.jsxs)("div",{className:"px-[18px] py-4",children:[(0,b.jsx)(C.f,{state:X,folderName:(0,l.A)(O),showDisconnect:!0}),(0,b.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:["Schedule, history and restore are on ",(0,b.jsx)(e.default,{href:"/backups",children:"Backups"}),"."]})]})})})]}),(0,b.jsx)(Q.f,{})]})}a.s(["default",0,S],157372)},19251,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ProviderDrawer() from the server but ProviderDrawer 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)/connections/provider-drawer.tsx","ProviderDrawer");a.s(["ProviderDrawer",0,b])},362990,a=>{var b=a.i(19251);a.n(b)}],476227,function(a){a.n(a.i(157372))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_connections_02upf_c41dauw._.js.map