watchbell 1.7.0 → 1.7.1

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 (756) hide show
  1. package/package.json +1 -1
  2. package/server/.next/BUILD_ID +1 -1
  3. package/server/.next/build-manifest.json +3 -3
  4. package/server/.next/prerender-manifest.json +3 -3
  5. package/server/.next/required-server-files.json +1 -1
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +52 -51
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +52 -51
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +52 -51
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  18. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +52 -51
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  22. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +52 -51
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  26. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  27. package/server/.next/server/app/(console)/(private)/ai/models/page.js +52 -51
  28. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  31. package/server/.next/server/app/(console)/(private)/ai/page.js +52 -51
  32. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +52 -51
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  38. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +52 -51
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  42. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +52 -51
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  46. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +52 -51
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +52 -51
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  53. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  54. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +52 -51
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  57. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  58. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  59. package/server/.next/server/app/(console)/alerts/page.js +52 -51
  60. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  61. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  62. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +34 -34
  63. package/server/.next/server/app/(console)/apps/[id]/page.js +52 -51
  64. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  65. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  66. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  67. package/server/.next/server/app/(console)/apps/page.js +52 -51
  68. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  69. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  70. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  71. package/server/.next/server/app/(console)/backups/page.js +52 -51
  72. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  73. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  74. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  75. package/server/.next/server/app/(console)/catalog/page.js +52 -51
  76. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  77. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  78. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  79. package/server/.next/server/app/(console)/connections/page.js +52 -51
  80. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  81. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  82. package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +14 -14
  83. package/server/.next/server/app/(console)/containers/page.js +52 -51
  84. package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -1
  85. package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +1 -1
  86. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  87. package/server/.next/server/app/(console)/d1/page.js +52 -51
  88. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  89. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  90. package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +11 -11
  91. package/server/.next/server/app/(console)/deploy/page.js +52 -51
  92. package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -1
  93. package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +1 -1
  94. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
  95. package/server/.next/server/app/(console)/deployments/page.js +52 -51
  96. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  97. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  98. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  99. package/server/.next/server/app/(console)/dns/page.js +52 -51
  100. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  101. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  102. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  103. package/server/.next/server/app/(console)/domains/page.js +52 -51
  104. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  105. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  106. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  107. package/server/.next/server/app/(console)/events/page.js +52 -51
  108. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  111. package/server/.next/server/app/(console)/firebase/page.js +52 -51
  112. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  113. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  114. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  115. package/server/.next/server/app/(console)/logs/page.js +52 -51
  116. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  117. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  118. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  119. package/server/.next/server/app/(console)/manage/sections/page.js +52 -51
  120. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  121. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  122. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  123. package/server/.next/server/app/(console)/neon/page.js +52 -51
  124. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  125. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  126. package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +12 -12
  127. package/server/.next/server/app/(console)/os/page.js +52 -51
  128. package/server/.next/server/app/(console)/os/page.js.nft.json +1 -1
  129. package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +1 -1
  130. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  131. package/server/.next/server/app/(console)/overview/page.js +52 -51
  132. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  133. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  134. package/server/.next/server/app/(console)/reports/[id]/pdf/route.js +5 -5
  135. package/server/.next/server/app/(console)/reports/[id]/pdf/route.js.nft.json +1 -1
  136. package/server/.next/server/app/(console)/reports/page/server-reference-manifest.json +35 -15
  137. package/server/.next/server/app/(console)/reports/page.js +52 -51
  138. package/server/.next/server/app/(console)/reports/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/reports/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  141. package/server/.next/server/app/(console)/repos/[id]/page.js +52 -51
  142. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  143. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  144. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  145. package/server/.next/server/app/(console)/repos/page.js +52 -51
  146. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  147. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  148. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +23 -23
  149. package/server/.next/server/app/(console)/settings/page.js +52 -51
  150. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  151. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  152. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  153. package/server/.next/server/app/(console)/sql/page.js +52 -51
  154. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  155. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  156. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  157. package/server/.next/server/app/(console)/status/page.js +52 -51
  158. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  159. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  160. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  161. package/server/.next/server/app/(console)/supabase/page.js +52 -51
  162. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  163. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  164. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  165. package/server/.next/server/app/(console)/topology/page.js +52 -51
  166. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  169. package/server/.next/server/app/(console)/turso/page.js +52 -51
  170. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  171. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  172. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  173. package/server/.next/server/app/(console)/upstash/page.js +52 -51
  174. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  175. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  177. package/server/.next/server/app/(console)/uptime/page.js +52 -51
  178. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  179. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  180. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  181. package/server/.next/server/app/(console)/welcome/page.js +52 -51
  182. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  183. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  184. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  185. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  186. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  187. package/server/.next/server/app/_global-error.html +1 -1
  188. package/server/.next/server/app/_global-error.rsc +2 -2
  189. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  190. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  191. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  192. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  193. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  194. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  195. package/server/.next/server/app/_not-found.html +1 -1
  196. package/server/.next/server/app/_not-found.rsc +3 -3
  197. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  198. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  199. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  200. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  201. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  202. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  204. package/server/.next/server/app/api/collect/route.js +59 -59
  205. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  206. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  207. package/server/.next/server/app/api/daily/route.js +66 -66
  208. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  209. package/server/.next/server/app/api/ping/[...parts]/route.js +1 -1
  210. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  211. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  212. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  213. package/server/.next/server/app/api/telegram/webhook/route.js +50 -49
  214. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  215. package/server/.next/server/app/api/v1/advice/route.js +9 -9
  216. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  217. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  218. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  219. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  220. package/server/.next/server/app/api/v1/ai/questions/route.js +8 -8
  221. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  222. package/server/.next/server/app/api/v1/mcp/route.js +7 -7
  223. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  224. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  225. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  226. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +10 -10
  227. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  228. package/server/.next/server/app/api/v1/status/route.js +10 -10
  229. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  230. package/server/.next/server/app/api/watchdog/route.js +4 -4
  231. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  232. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  233. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  234. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  235. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  236. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  237. package/server/.next/server/app/brand-icon/route.js +6 -6
  238. package/server/.next/server/app/brand-icon/route.js.nft.json +1 -1
  239. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  240. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  241. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  242. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  243. package/server/.next/server/app/mfa/page.js +27 -26
  244. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  245. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  246. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  247. package/server/.next/server/app/mfa/setup/page.js +27 -26
  248. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  249. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  250. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  251. package/server/.next/server/app/page.js.nft.json +1 -1
  252. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  253. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  254. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  255. package/server/.next/server/app/s/[slug]/page.js +1 -1
  256. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  257. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  258. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  259. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  260. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  261. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  262. package/server/.next/server/app/signin/page.js +25 -24
  263. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  264. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  265. package/server/.next/server/chunks/{[externals]__0oqc6ym5k457v._.js → [externals]__0ws552tlu2170._.js} +1 -1
  266. package/server/.next/server/chunks/{[externals]__1aervsuoo1qe_._.js → [externals]__14rgrk9t-kxa1._.js} +1 -1
  267. package/server/.next/server/chunks/{[externals]__1oag9t_9gex2-._.js → [externals]__1pdwh-htbnox8._.js} +1 -1
  268. package/server/.next/server/chunks/[root-of-the-server]__0-amtx67pqi56._.js +3 -0
  269. package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
  270. package/server/.next/server/chunks/{[root-of-the-server]__0_2fr1g7uby1m._.js → [root-of-the-server]__01nlh4ps9u-65._.js} +2 -2
  271. package/server/.next/server/chunks/{[root-of-the-server]__016wnct3b5iby._.js → [root-of-the-server]__01ur0kf75ampv._.js} +2 -2
  272. package/server/.next/server/chunks/{[root-of-the-server]__0ra_bw8zg6kmk._.js → [root-of-the-server]__028m_6oqyqmyy._.js} +2 -2
  273. package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +1 -1
  274. package/server/.next/server/chunks/{[root-of-the-server]__1hcn00gn9mapd._.js → [root-of-the-server]__02wzui3ksepqf._.js} +2 -2
  275. package/server/.next/server/chunks/[root-of-the-server]__0326wv5xmnp48._.js +3 -0
  276. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  277. package/server/.next/server/chunks/{[root-of-the-server]__0tsly874_mafr._.js → [root-of-the-server]__03537tx7cun49._.js} +2 -2
  278. package/server/.next/server/chunks/{[root-of-the-server]__1p1e6x-mb7ro2._.js → [root-of-the-server]__0400g-0wvq3uf._.js} +2 -2
  279. package/server/.next/server/chunks/[root-of-the-server]__04htuwoulmp21._.js +3 -0
  280. package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
  281. package/server/.next/server/chunks/{[root-of-the-server]__0ux78ppoct5b_._.js → [root-of-the-server]__06bn4cfh-g8-d._.js} +2 -2
  282. package/server/.next/server/chunks/{[root-of-the-server]__1ia-rts7ilt7c._.js → [root-of-the-server]__06ty1ktg427pm._.js} +2 -2
  283. package/server/.next/server/chunks/{[root-of-the-server]__0afpn-tk2qlu0._.js → [root-of-the-server]__076yrld-lo25r._.js} +2 -2
  284. package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
  285. package/server/.next/server/chunks/{[root-of-the-server]__0xnag1k7mnvoh._.js → [root-of-the-server]__081k4lp976vd7._.js} +2 -2
  286. package/server/.next/server/chunks/[root-of-the-server]__08i6b8tzxads4._.js +3 -0
  287. package/server/.next/server/chunks/[root-of-the-server]__09oipjf2ew_pn._.js +3 -0
  288. package/server/.next/server/chunks/{[root-of-the-server]__1-bbb_srnbm5x._.js → [root-of-the-server]__0_c_c1bv7sopk._.js} +1 -1
  289. package/server/.next/server/chunks/{[root-of-the-server]__0mg6rmq22tf26._.js → [root-of-the-server]__0a34twsor45ml._.js} +1 -1
  290. package/server/.next/server/chunks/{[root-of-the-server]__07gjmfv5mi33j._.js → [root-of-the-server]__0bjh2kw90a-m_._.js} +1 -1
  291. package/server/.next/server/chunks/{[root-of-the-server]__0pm83e1a3wwlw._.js → [root-of-the-server]__0c41pzboxtjvz._.js} +1 -1
  292. package/server/.next/server/chunks/{[root-of-the-server]__0ng-t81zeeipc._.js → [root-of-the-server]__0dahxh87cvyn2._.js} +2 -2
  293. package/server/.next/server/chunks/[root-of-the-server]__0dd4hulw1w-4i._.js +3 -0
  294. package/server/.next/server/chunks/{[root-of-the-server]__0nyxfjn368366._.js → [root-of-the-server]__0dfkxg4ax2hqz._.js} +1 -1
  295. package/server/.next/server/chunks/[root-of-the-server]__0e3hcgbyb09-p._.js +3 -0
  296. package/server/.next/server/chunks/{[root-of-the-server]__0gv3v5775wfmw._.js → [root-of-the-server]__0fk1609_5zg7g._.js} +2 -2
  297. package/server/.next/server/chunks/[root-of-the-server]__0fl1uspuemkzr._.js +3 -0
  298. package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
  299. package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
  300. package/server/.next/server/chunks/{[root-of-the-server]__0jz91oppmwtiq._.js → [root-of-the-server]__0hm5-0_rh9r6m._.js} +2 -2
  301. package/server/.next/server/chunks/{[root-of-the-server]__1qelr0qe50xap._.js → [root-of-the-server]__0hwm4j4o2v8nc._.js} +2 -2
  302. package/server/.next/server/chunks/[root-of-the-server]__0k73a-s2lcpoz._.js +3 -0
  303. package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
  304. package/server/.next/server/chunks/{[root-of-the-server]__0jevd1p5unnre._.js → [root-of-the-server]__0kzgu06ee59vd._.js} +2 -2
  305. package/server/.next/server/chunks/[root-of-the-server]__0mrbo2p5fy4ji._.js +3 -0
  306. package/server/.next/server/chunks/[root-of-the-server]__0nw8jgr3bsi8b._.js +3 -0
  307. package/server/.next/server/chunks/{[root-of-the-server]__0g0-q56cumuup._.js → [root-of-the-server]__0o4e39mvq8_el._.js} +1 -1
  308. package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
  309. package/server/.next/server/chunks/{[root-of-the-server]__1le7r_1_00km1._.js → [root-of-the-server]__0opds07bp1fnb._.js} +2 -2
  310. package/server/.next/server/chunks/{[root-of-the-server]__070v8547b4qpa._.js → [root-of-the-server]__0pfcnbr0br6li._.js} +1 -1
  311. package/server/.next/server/chunks/{[root-of-the-server]__1-9vvc9y0qqhf._.js → [root-of-the-server]__0pi9id-ywuq6g._.js} +2 -2
  312. package/server/.next/server/chunks/{[root-of-the-server]__0aazgg7203ez1._.js → [root-of-the-server]__0s3zxs-_ayd-6._.js} +1 -1
  313. package/server/.next/server/chunks/{[root-of-the-server]__0eyd4kffoz9ex._.js → [root-of-the-server]__0sgy49rgsxyvy._.js} +1 -1
  314. package/server/.next/server/chunks/[root-of-the-server]__0sp5xoed3-994._.js +3 -0
  315. package/server/.next/server/chunks/{[root-of-the-server]__03y8yvaulshnn._.js → [root-of-the-server]__0swji6flwxtbv._.js} +2 -2
  316. package/server/.next/server/chunks/{[root-of-the-server]__0p_rkszoindlf._.js → [root-of-the-server]__0tyilr06jn8nb._.js} +1 -1
  317. package/server/.next/server/chunks/[root-of-the-server]__0uss50b85q1j1._.js +3 -0
  318. package/server/.next/server/chunks/{[root-of-the-server]__0w1iqt-rpp_3h._.js → [root-of-the-server]__0vco1v37du1ez._.js} +1 -1
  319. package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
  320. package/server/.next/server/chunks/{[root-of-the-server]__05s9-538s47_e._.js → [root-of-the-server]__0w_hiz5nrm8-4._.js} +1 -1
  321. package/server/.next/server/chunks/[root-of-the-server]__0xzl28izr2tiq._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__0xzreqng-t2g8._.js +3 -0
  323. package/server/.next/server/chunks/{[root-of-the-server]__0b7xflnrk4amk._.js → [root-of-the-server]__0z9of310ruzug._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__0zu1odpvrptrt._.js +3 -0
  325. package/server/.next/server/chunks/{[root-of-the-server]__14cb1pomeg0x7._.js → [root-of-the-server]__1-3u16rnk101p._.js} +2 -2
  326. package/server/.next/server/chunks/[root-of-the-server]__1-pe9ipc3y6rn._.js +3 -0
  327. package/server/.next/server/chunks/[root-of-the-server]__1-tqm3jzny4zd._.js +3 -0
  328. package/server/.next/server/chunks/{[root-of-the-server]__1mqv7anx5l3yq._.js → [root-of-the-server]__108g59p2fl8tw._.js} +2 -2
  329. package/server/.next/server/chunks/[root-of-the-server]__12_wmn5mkj9v7._.js +3 -0
  330. package/server/.next/server/chunks/{[root-of-the-server]__0vuirlylhcyzm._.js → [root-of-the-server]__12bo9op0qkw9d._.js} +2 -2
  331. package/server/.next/server/chunks/{[root-of-the-server]__0p955ekgdwy_c._.js → [root-of-the-server]__12tontjm90s-j._.js} +2 -2
  332. package/server/.next/server/chunks/[root-of-the-server]__13-qqkdecmwba._.js +1 -1
  333. package/server/.next/server/chunks/{[root-of-the-server]__1qxm3lqqdbyy7._.js → [root-of-the-server]__140ixflf83vxj._.js} +2 -2
  334. package/server/.next/server/chunks/{[root-of-the-server]__1qqdsrhuw0z-w._.js → [root-of-the-server]__152e1b97gc8hw._.js} +2 -2
  335. package/server/.next/server/chunks/[root-of-the-server]__153lxhkj8-_vf._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__1rusbj8ktmzj0._.js → [root-of-the-server]__15tr3yx8k9lyt._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__029099rqwqwff._.js → [root-of-the-server]__16-0nul8mfe2m._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__0qhyj1r9qcxp3._.js → [root-of-the-server]__172vz80sdr5ny._.js} +2 -2
  339. package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
  340. package/server/.next/server/chunks/{[root-of-the-server]__0u4o6oo428rvf._.js → [root-of-the-server]__17bz0jxsns742._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__1gl0-1oziw-g0._.js → [root-of-the-server]__17jjm80vttqmq._.js} +2 -2
  342. package/server/.next/server/chunks/{[root-of-the-server]__1pu84qy7loc8o._.js → [root-of-the-server]__18eqxi2vwpdjm._.js} +2 -2
  343. package/server/.next/server/chunks/[root-of-the-server]__194y_mcnn0zs3._.js +3 -0
  344. package/server/.next/server/chunks/[root-of-the-server]__1_iy7tzpesarf._.js +1 -1
  345. package/server/.next/server/chunks/[root-of-the-server]__1_vfu21n1zq17._.js +3 -0
  346. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
  347. package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
  348. package/server/.next/server/chunks/[root-of-the-server]__1cy1k8jbwoull._.js +3 -0
  349. package/server/.next/server/chunks/[root-of-the-server]__1d4wmw2wohveb._.js +3 -0
  350. package/server/.next/server/chunks/{[root-of-the-server]__02ctwy1u4z3fj._.js → [root-of-the-server]__1dp_mz2p02ze6._.js} +2 -2
  351. package/server/.next/server/chunks/{[root-of-the-server]__11yn1ky7yixd7._.js → [root-of-the-server]__1eng6c6q52y-6._.js} +2 -2
  352. package/server/.next/server/chunks/[root-of-the-server]__1etg41llk7f09._.js +3 -0
  353. package/server/.next/server/chunks/[root-of-the-server]__1f-rkijnm8me7._.js +3 -0
  354. package/server/.next/server/chunks/{[root-of-the-server]__0t6rge6laz89-._.js → [root-of-the-server]__1gfuhug61s-qy._.js} +2 -2
  355. package/server/.next/server/chunks/{[root-of-the-server]__1ywvdsk_bmws0._.js → [root-of-the-server]__1git7o20yf9nn._.js} +2 -2
  356. package/server/.next/server/chunks/[root-of-the-server]__1h496oc8wu4s6._.js +3 -0
  357. package/server/.next/server/chunks/[root-of-the-server]__1hertcbqi_w97._.js +3 -0
  358. package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
  359. package/server/.next/server/chunks/[root-of-the-server]__1j-nkcwy3w6sy._.js +3 -0
  360. package/server/.next/server/chunks/[root-of-the-server]__1jcr8cc_tlvfc._.js +1 -1
  361. package/server/.next/server/chunks/[root-of-the-server]__1l3uz57-1a35s._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__1l9pn8y-o6xyp._.js +3 -0
  363. package/server/.next/server/chunks/[root-of-the-server]__1lp_rypkkdjp9._.js +3 -0
  364. package/server/.next/server/chunks/[root-of-the-server]__1m-z1ne4p7pi5._.js +3 -0
  365. package/server/.next/server/chunks/{[root-of-the-server]__12w6gylk59cym._.js → [root-of-the-server]__1ma2tpf6wh9p6._.js} +2 -2
  366. package/server/.next/server/chunks/[root-of-the-server]__1nohrxjajgm5c._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__1o2km61kftkj1._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__1pn773t93gvn-._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1q0h-x-7ob6cu._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__1q2e13halne9s._.js +3 -0
  371. package/server/.next/server/chunks/[root-of-the-server]__1q7xy_u4inf4h._.js +3 -0
  372. package/server/.next/server/chunks/[root-of-the-server]__1qtorf4s2dfeg._.js +3 -0
  373. package/server/.next/server/chunks/[root-of-the-server]__1sm4p209f_yie._.js +3 -0
  374. package/server/.next/server/chunks/[root-of-the-server]__1uhgqik99k1y6._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__1uq4f0bdphqs2._.js +3 -0
  376. package/server/.next/server/chunks/{[root-of-the-server]__1gufo2kz88z04._.js → [root-of-the-server]__1usilhckla3wj._.js} +1 -1
  377. package/server/.next/server/chunks/[root-of-the-server]__1v_8mu8mt1n5i._.js +3 -0
  378. package/server/.next/server/chunks/{[root-of-the-server]__1yk1psrx0yy4n._.js → [root-of-the-server]__1vtlx_63lj4tg._.js} +2 -2
  379. package/server/.next/server/chunks/[root-of-the-server]__1wxj0f-l93gkh._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__1x4u0cdsl_81t._.js +1 -1
  381. package/server/.next/server/chunks/{[root-of-the-server]__1lvf4tk_1td0a._.js → [root-of-the-server]__1x7en4waq21dd._.js} +2 -2
  382. package/server/.next/server/chunks/[root-of-the-server]__1xzg_370-w-6t._.js +3 -0
  383. package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
  384. package/server/.next/server/chunks/_01epotkqa90nv._.js +1 -1
  385. package/server/.next/server/chunks/_03wces6vk33l0._.js +3 -0
  386. package/server/.next/server/chunks/_08q7x7rdbiaql._.js +9 -9
  387. package/server/.next/server/chunks/_09iin0yvuppj0._.js +3 -0
  388. package/server/.next/server/chunks/{_1w9di5m91vtjk._.js → _0buibatfr6-k_._.js} +3 -3
  389. package/server/.next/server/chunks/_0d29nzne5jrwy._.js +9 -9
  390. package/server/.next/server/chunks/{_1txqs5b7jg9so._.js → _0hekve2tk2eyv._.js} +3 -3
  391. package/server/.next/server/chunks/_0huryxihjw6tl._.js +9 -9
  392. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  393. package/server/.next/server/chunks/_0ou2tylxx1ltw._.js +2 -2
  394. package/server/.next/server/chunks/{_0lboyl6w4kfx4._.js → _0s_2fgaxby9fy._.js} +3 -3
  395. package/server/.next/server/chunks/_0z4b07-oa6ms9._.js +3 -0
  396. package/server/.next/server/chunks/_10mj3f1wis1ld._.js +1 -1
  397. package/server/.next/server/chunks/_139_9h76gakgh._.js +3 -0
  398. package/server/.next/server/chunks/_14jiq00zwwqdl._.js +3 -0
  399. package/server/.next/server/chunks/_15f0c7f46zkh3._.js +1 -1
  400. package/server/.next/server/chunks/_1e4rch26scbhq._.js +9 -9
  401. package/server/.next/server/chunks/_1iunyzyr-tfdj._.js +9 -9
  402. package/server/.next/server/chunks/_1jor4_sz1x8mt._.js +3 -0
  403. package/server/.next/server/chunks/_1m3zrm9-rc926._.js +3 -0
  404. package/server/.next/server/chunks/_1mwwg18ni-phb._.js +3 -0
  405. package/server/.next/server/chunks/_1ohb_bmawpjlz._.js +2 -2
  406. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  407. package/server/.next/server/chunks/src_0071b0w5aco6_._.js +3 -0
  408. package/server/.next/server/chunks/src_1-6a00bmwlymu._.js +3 -0
  409. package/server/.next/server/chunks/src_1-dy6ie3_ezvm._.js +3 -0
  410. package/server/.next/server/chunks/{src_1s913pql1_n-f._.js → src_13ij0feyzy7me._.js} +2 -2
  411. package/server/.next/server/chunks/{src_1_y0pxtbr6e04._.js → src_14vh1kj98t0xu._.js} +2 -2
  412. package/server/.next/server/chunks/src_1_s_jyur8tzy3._.js +3 -0
  413. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  414. package/server/.next/server/chunks/src_1dio7z4_so000._.js +3 -0
  415. package/server/.next/server/chunks/src_1hpbxjbqlnuob._.js +3 -0
  416. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  417. package/server/.next/server/chunks/{src_1mwttl5ainte0._.js → src_20eae99bkrgpt._.js} +2 -2
  418. package/server/.next/server/chunks/src_lib_0-fln6xaazo-9._.js +12 -0
  419. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  420. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  421. package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +1 -1
  422. package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +1 -1
  423. package/server/.next/server/chunks/src_lib_1jlvdx5ho171c._.js +12 -0
  424. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  425. package/server/.next/server/chunks/src_lib_branding_ts_03ns4y_8z0-6e._.js +1 -1
  426. package/server/.next/server/chunks/src_lib_branding_ts_0jfv9nur5alvy._.js +1 -1
  427. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
  428. package/server/.next/server/chunks/src_lib_data_report-db_ts_0b5f4dpxn08gk._.js +1 -1
  429. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +4 -4
  430. package/server/.next/server/chunks/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
  431. package/server/.next/server/chunks/src_lib_data_settings-db_ts_2060-w9nbvitr._.js +3 -0
  432. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +8 -8
  433. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +1 -1
  434. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +1 -1
  435. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +1 -1
  436. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  437. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  438. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  439. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  440. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  441. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  442. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  443. package/server/.next/server/chunks/ssr/{[externals]__0byytapt83qke._.js → [externals]__1299yq-rye4ww._.js} +1 -1
  444. package/server/.next/server/chunks/ssr/{[externals]__1baveo0r8_hf1._.js → [externals]__134px-n77ygse._.js} +1 -1
  445. package/server/.next/server/chunks/ssr/{[externals]__02peoq6kft9oz._.js → [externals]__1s9zy_6f7xfd5._.js} +1 -1
  446. package/server/.next/server/chunks/ssr/{[externals]__0gb_9a2m3eqk5._.js → [externals]__1t5grpj1lrsbr._.js} +1 -1
  447. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  448. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1pr-neo8jutji._.js → [root-of-the-server]__03iw2anbe7pxg._.js} +2 -2
  449. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_axyb404w3bf._.js → [root-of-the-server]__059q8f4tia03z._.js} +2 -2
  450. package/server/.next/server/chunks/ssr/{[root-of-the-server]__05uxv6qwfpp79._.js → [root-of-the-server]__05ot6j41b9i8j._.js} +2 -2
  451. package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
  452. package/server/.next/server/chunks/ssr/{[root-of-the-server]__12c2r19g75dyy._.js → [root-of-the-server]__0_wsm-adqpmgy._.js} +1 -1
  453. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_q3kww244pif._.js → [root-of-the-server]__0buxkrf7nrji8._.js} +2 -2
  454. package/server/.next/server/chunks/ssr/{[root-of-the-server]__041mpme_x36vq._.js → [root-of-the-server]__0f6ao2fs70kab._.js} +1 -1
  455. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0rrnk3_fb0l_9._.js → [root-of-the-server]__0f8ibnqfh_mp0._.js} +2 -2
  456. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h8-rlmhjyebb._.js +3 -0
  457. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
  458. package/server/.next/server/chunks/ssr/[root-of-the-server]__0kejvdc7h-pgz._.js +3 -0
  459. package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
  460. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ev5rocipbkjw._.js → [root-of-the-server]__0kjdpn_g9gvwr._.js} +2 -2
  461. package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
  462. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1z_pt3d8lty_n._.js → [root-of-the-server]__0msczl_qf2eml._.js} +2 -2
  463. package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +1 -1
  464. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
  465. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  466. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xkfr7qk7oxjf._.js → [root-of-the-server]__0s9z1kusbxvae._.js} +2 -2
  467. package/server/.next/server/chunks/ssr/{[root-of-the-server]__13x0qmv4fm_1p._.js → [root-of-the-server]__0wlctoz_-yuyh._.js} +1 -1
  468. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
  469. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1zsqu1mecqptt._.js → [root-of-the-server]__0yr0heg1b0y5t._.js} +2 -2
  470. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1z3vauqrf2l-_._.js → [root-of-the-server]__0yvm5q_auexh3._.js} +2 -2
  471. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0qhbs-or7q-om._.js → [root-of-the-server]__0zgo5h9mstjc8._.js} +1 -1
  472. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1mbb917mrz5c-._.js → [root-of-the-server]__107qfgl2c58q0._.js} +1 -1
  473. package/server/.next/server/chunks/ssr/[root-of-the-server]__10ahcnczmy5hx._.js +3 -0
  474. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1n-rcmbkk7duv._.js → [root-of-the-server]__12cdcpj45tu6j._.js} +2 -2
  475. package/server/.next/server/chunks/ssr/[root-of-the-server]__18dcfrlpoapw9._.js +1 -1
  476. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  477. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1k8mxdm-cxfg_._.js → [root-of-the-server]__1a3_aiqflmt4f._.js} +2 -2
  478. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0vqae5m2ntd34._.js → [root-of-the-server]__1brzt_134_2iy._.js} +2 -2
  479. package/server/.next/server/chunks/ssr/[root-of-the-server]__1g6kynby65m0v._.js +1 -1
  480. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  481. package/server/.next/server/chunks/ssr/[root-of-the-server]__1t9_ue4abugtn._.js +3 -0
  482. package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
  483. package/server/.next/server/chunks/ssr/[root-of-the-server]__1vgliw2256_6l._.js +1 -1
  484. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1gkcoq0cmmax1._.js → [root-of-the-server]__1zki66ic3cluq._.js} +2 -2
  485. package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +1 -1
  486. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  487. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  488. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  489. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  490. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  491. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  492. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  493. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  494. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  495. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  496. package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
  497. package/server/.next/server/chunks/ssr/_0hqya_yuov5jw._.js +1 -1
  498. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  499. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  500. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
  501. package/server/.next/server/chunks/ssr/{_0xkl4rb1wydtd._.js → _0k6kbi721s28p._.js} +2 -2
  502. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  503. package/server/.next/server/chunks/ssr/_0kk0of-t4vhyh._.js +1 -1
  504. package/server/.next/server/chunks/ssr/{_0lg6_we0pe3nk._.js → _0l0eho21fo-8l._.js} +2 -2
  505. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  506. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  507. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  508. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  509. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  510. package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +2 -2
  511. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  512. package/server/.next/server/chunks/ssr/{_1ge8mluhma23o._.js → _0x4ybc829r3ta._.js} +2 -2
  513. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
  514. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
  515. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  516. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  517. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  518. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  519. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  520. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  521. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  522. package/server/.next/server/chunks/ssr/{_0kq3wqx86yyhb._.js → _1cdlzhw6tkrhd._.js} +2 -2
  523. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  524. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  525. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  526. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  527. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  528. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  529. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  530. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  531. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  532. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  533. package/server/.next/server/chunks/ssr/_1ong0a252wcvc._.js +8 -8
  534. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  535. package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +1 -1
  536. package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +2 -2
  537. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  538. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  539. package/server/.next/server/chunks/ssr/{_170okt24rw1yx._.js → _1zsfeuyrhcwmh._.js} +2 -2
  540. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  541. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  542. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  543. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +2 -2
  544. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  545. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  546. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +1 -1
  547. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  548. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  549. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  550. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  551. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  552. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1363m-cfkgyvr.js +1 -1
  553. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  554. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  555. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  556. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  557. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1q6iypbn6yagc._.js → src_000iv6actp3t_._.js} +2 -2
  558. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  559. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  560. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  561. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  562. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
  563. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
  564. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  565. package/server/.next/server/chunks/ssr/{src_18ofj2_oxqb0g._.js → src_0torilf0s7p-e._.js} +2 -2
  566. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  567. package/server/.next/server/chunks/ssr/{src_1ldp01vcphvw5._.js → src_1_b884ul0envr._.js} +2 -2
  568. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  569. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  570. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  571. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  572. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  573. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  574. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  575. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  576. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  577. package/server/.next/server/chunks/ssr/{src_app_(console)_0eh38ymzn-s-m._.js → src_app_(console)_0e1l3e9r_60s4._.js} +2 -2
  578. package/server/.next/server/chunks/ssr/{src_app_(console)_03s-e0b0zsqqr._.js → src_app_(console)_124kgxvmqm7j4._.js} +2 -2
  579. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  580. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +1 -1
  581. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  582. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  583. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  584. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  585. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  586. package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +1 -1
  587. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  588. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  589. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  590. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  591. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  592. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  593. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  594. package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +1 -1
  595. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  596. package/server/.next/server/chunks/ssr/src_app_(console)_reports_reports-view_tsx_1l0apba6g810q._.js +1 -1
  597. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  598. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  599. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  600. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  601. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  602. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  603. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  604. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  605. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  606. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  607. package/server/.next/server/chunks/ssr/src_app_signin_1_sp0qx8_z7c9._.js +1 -1
  608. package/server/.next/server/chunks/ssr/{src_app_signin_1-h17es4-y1-k._.js → src_app_signin_1qq0_77_vdutm._.js} +2 -2
  609. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  610. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  611. package/server/.next/server/chunks/ssr/src_lib_0jnv54-8idu07._.js +1 -1
  612. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  613. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  614. package/server/.next/server/chunks/ssr/src_lib_branding_ts_03ns4y_8z0-6e._.js +1 -1
  615. package/server/.next/server/chunks/ssr/src_lib_branding_ts_1p22ju9pii41w._.js +3 -0
  616. package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +1 -1
  617. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +2 -2
  618. package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
  619. package/server/.next/server/chunks/ssr/{src_lib_demo_0r3c3k5102jja._.js → src_lib_demo_03sepqqjq9usk._.js} +2 -2
  620. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +5 -5
  621. package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
  622. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  623. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  624. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  625. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  626. package/server/.next/server/middleware-build-manifest.js +3 -3
  627. package/server/.next/server/pages/404.html +1 -1
  628. package/server/.next/server/pages/500.html +1 -1
  629. package/server/.next/server/preview-props.json +3 -3
  630. package/server/.next/server/server-reference-manifest.js +1 -1
  631. package/server/.next/server/server-reference-manifest.json +178 -158
  632. package/server/.next/static/chunks/{2co8kv2tj776w.js → 0-v128fmc05bf.js} +1 -1
  633. package/server/.next/static/chunks/{1416wraxs5p8g.js → 02db293pqegsb.js} +1 -1
  634. package/server/.next/static/chunks/{2i5_2zcei6rqr.js → 03t36gu4t__cw.js} +1 -1
  635. package/server/.next/static/chunks/{3bvj3-0xltkjo.js → 07p13q6tuqr2r.js} +1 -1
  636. package/server/.next/static/chunks/{3ic9vbadne9of.js → 09qtiybhnydd3.js} +1 -1
  637. package/server/.next/static/chunks/{2txgb9zusks-w.js → 0_5leiwhgv7d6.js} +1 -1
  638. package/server/.next/static/chunks/{1nv_9c1bate-f.js → 0_ebioh9utve_.js} +1 -1
  639. package/server/.next/static/chunks/{1_uuog1-u6y0t.js → 0_hd-kx6h59a8.js} +1 -1
  640. package/server/.next/static/chunks/{2azwg3my8wh40.js → 0if7r4ximmzwb.js} +1 -1
  641. package/server/.next/static/chunks/{2n198u7xx1koh.js → 0ohm_qoe5thrr.js} +1 -1
  642. package/server/.next/static/chunks/0ssmmtio659vh.js +1 -0
  643. package/server/.next/static/chunks/{07_cb192ydsaj.js → 0t0igs6uqhbf0.js} +1 -1
  644. package/server/.next/static/chunks/{0zwq-z8jt5hpz.js → 0ut06v9sng9g4.js} +1 -1
  645. package/server/.next/static/chunks/{0s00_-em3cj00.js → 0w--mj7tf-9f-.js} +1 -1
  646. package/server/.next/static/chunks/131egbz-4xsjl.js +1 -0
  647. package/server/.next/static/chunks/{3ic7ri5b4ifjp.js → 14dbn6_jif37v.js} +2 -2
  648. package/server/.next/static/chunks/{1vt_t7dg_-pyu.js → 15l58okvbrc4_.js} +1 -1
  649. package/server/.next/static/chunks/{378ttzg87hows.js → 1_nuygyg_kes5.js} +2 -2
  650. package/server/.next/static/chunks/{3-us-wg44ohoc.js → 1bsq3x1wh49bp.js} +1 -1
  651. package/server/.next/static/chunks/{3n98m8tj20wcf.js → 1esunqtpnjwkw.js} +1 -1
  652. package/server/.next/static/chunks/{1j_hduntj28ij.js → 1gizey8idqrkt.js} +1 -1
  653. package/server/.next/static/chunks/{0gxxyq5l_0rp2.js → 1itgjll79qm1l.js} +1 -1
  654. package/server/.next/static/chunks/{3dktq-qmj2q5b.js → 1o27sfcuph25w.js} +1 -1
  655. package/server/.next/static/chunks/{31fs88f_h861n.js → 1pz19kzjaj8uw.js} +1 -1
  656. package/server/.next/static/chunks/{0a9mqrzg8420n.js → 1qzun1-bna-sy.js} +1 -1
  657. package/server/.next/static/chunks/{3mgd5b39ghc-w.js → 1ugo5ye01racz.js} +1 -1
  658. package/server/.next/static/chunks/{2gk24b05q4q57.js → 1z5s55o29xqyu.js} +1 -1
  659. package/server/.next/static/chunks/21gu7xcv8ix3_.js +1 -0
  660. package/server/.next/static/chunks/{3aglnkhgcl_kq.js → 21p4xz6ysy8mv.js} +1 -1
  661. package/server/.next/static/chunks/{0ynyx3s7s4mv7.js → 22bdke6t-doqh.js} +1 -1
  662. package/server/.next/static/chunks/{1nqpnndfmw0tc.js → 28ljlwfuuz5a1.js} +1 -1
  663. package/server/.next/static/chunks/29lr_ae0uli9o.js +1 -0
  664. package/server/.next/static/chunks/{1yyigrxptb7jm.js → 2jkqfajf-i0r6.js} +2 -2
  665. package/server/.next/static/chunks/{2sr03gtef27q0.js → 2mhli3hpy5vr9.js} +1 -1
  666. package/server/.next/static/chunks/{3u1v2wpzthilq.js → 2ns8p-8ngmi9h.js} +1 -1
  667. package/server/.next/static/chunks/{0valedxcn7j8k.js → 2vdwhg5fnxmu-.js} +2 -2
  668. package/server/.next/static/chunks/{1azdri14ocjgg.js → 2xgya43mybqsr.js} +11 -11
  669. package/server/.next/static/chunks/{3cti7pgg_jjlx.js → 2yv02i0h6tppe.js} +1 -1
  670. package/server/.next/static/chunks/{3-789qaoce7ff.js → 31gsdl-_t96jr.js} +1 -1
  671. package/server/.next/static/chunks/{2db0smm21dva_.js → 3_lq_n61v4j3r.js} +1 -1
  672. package/server/.next/static/chunks/{0_xoojw9q_nof.js → 3a11wypkvc5ey.js} +1 -1
  673. package/server/.next/static/chunks/{0dn6fty1ilg-n.js → 3g0p8ugqre9ft.js} +1 -1
  674. package/server/.next/static/chunks/{28_88x_e_ynaj.js → 3jq1ae0_9wu-o.js} +1 -1
  675. package/server/.next/static/chunks/3o358k-0653gr.js +1 -0
  676. package/server/.next/static/chunks/{05c15dcfh7cxm.js → 3pnzdk7snuzti.js} +1 -1
  677. package/server/.next/static/chunks/4114b2ynqr24j.js +1 -0
  678. package/server/.next/static/chunks/{28qjoy38cp5by.js → 41r6z31pmixbr.js} +1 -1
  679. package/server/.next/static/chunks/{3lw5n6yzs0665.js → 43wc7pgukn2dp.js} +1 -1
  680. package/server/.next/static/chunks/{1cd-2y1kwqosv.js → 4451kr05p691g.js} +1 -1
  681. package/server/.next/static/chunks/{1w51uxl19faw3.js → 44t_7rpq23-bz.js} +1 -1
  682. package/server/server.js +1 -1
  683. package/server/.next/server/chunks/[root-of-the-server]__00s0famyfjv1y._.js +0 -3
  684. package/server/.next/server/chunks/[root-of-the-server]__03z520-siwkv_._.js +0 -3
  685. package/server/.next/server/chunks/[root-of-the-server]__06od3qx7q00rc._.js +0 -3
  686. package/server/.next/server/chunks/[root-of-the-server]__09bwtkv2iniyt._.js +0 -3
  687. package/server/.next/server/chunks/[root-of-the-server]__0bb8xnocnnbt8._.js +0 -3
  688. package/server/.next/server/chunks/[root-of-the-server]__0c0drtvym6hf4._.js +0 -3
  689. package/server/.next/server/chunks/[root-of-the-server]__0frz3wu-qcv-d._.js +0 -3
  690. package/server/.next/server/chunks/[root-of-the-server]__0hm-azhxs9ted._.js +0 -3
  691. package/server/.next/server/chunks/[root-of-the-server]__0n-u6p8-hd-89._.js +0 -3
  692. package/server/.next/server/chunks/[root-of-the-server]__0p2n1_qp53y51._.js +0 -3
  693. package/server/.next/server/chunks/[root-of-the-server]__0p8j8b2tg73dq._.js +0 -3
  694. package/server/.next/server/chunks/[root-of-the-server]__0q9s7rbt0e-cf._.js +0 -3
  695. package/server/.next/server/chunks/[root-of-the-server]__0ra3lgjt0yuyy._.js +0 -3
  696. package/server/.next/server/chunks/[root-of-the-server]__0sgumm0843o2j._.js +0 -3
  697. package/server/.next/server/chunks/[root-of-the-server]__0vjvvirn6-fx-._.js +0 -3
  698. package/server/.next/server/chunks/[root-of-the-server]__0welpj78704um._.js +0 -3
  699. package/server/.next/server/chunks/[root-of-the-server]__0ymf9ppvpsffe._.js +0 -3
  700. package/server/.next/server/chunks/[root-of-the-server]__0zxrhqtvpoio4._.js +0 -3
  701. package/server/.next/server/chunks/[root-of-the-server]__10-4cctiab73h._.js +0 -3
  702. package/server/.next/server/chunks/[root-of-the-server]__11300e77grhx6._.js +0 -3
  703. package/server/.next/server/chunks/[root-of-the-server]__11tzj3jzqzk6v._.js +0 -3
  704. package/server/.next/server/chunks/[root-of-the-server]__12m0p1vyef6d5._.js +0 -3
  705. package/server/.next/server/chunks/[root-of-the-server]__13i4zx_j8zugt._.js +0 -3
  706. package/server/.next/server/chunks/[root-of-the-server]__1420nm1i823v8._.js +0 -3
  707. package/server/.next/server/chunks/[root-of-the-server]__1cnmxehqzmqq_._.js +0 -3
  708. package/server/.next/server/chunks/[root-of-the-server]__1f84fftr_6_6n._.js +0 -3
  709. package/server/.next/server/chunks/[root-of-the-server]__1i_vd8w3df3i6._.js +0 -3
  710. package/server/.next/server/chunks/[root-of-the-server]__1igmx9-fdh2wd._.js +0 -3
  711. package/server/.next/server/chunks/[root-of-the-server]__1kp2wois-47bg._.js +0 -3
  712. package/server/.next/server/chunks/[root-of-the-server]__1lcszcm98v484._.js +0 -3
  713. package/server/.next/server/chunks/[root-of-the-server]__1mufebnwyxlwx._.js +0 -3
  714. package/server/.next/server/chunks/[root-of-the-server]__1o0lvy6ek0v5d._.js +0 -3
  715. package/server/.next/server/chunks/[root-of-the-server]__1qwy7s_95k9k-._.js +0 -3
  716. package/server/.next/server/chunks/[root-of-the-server]__1rxaooz-d8jfs._.js +0 -3
  717. package/server/.next/server/chunks/[root-of-the-server]__1s8f1ovcj5r99._.js +0 -3
  718. package/server/.next/server/chunks/[root-of-the-server]__1tdb11b6vn4qm._.js +0 -3
  719. package/server/.next/server/chunks/[root-of-the-server]__1ti5-6okt7fur._.js +0 -3
  720. package/server/.next/server/chunks/[root-of-the-server]__1w_ga9n2lj53n._.js +0 -3
  721. package/server/.next/server/chunks/[root-of-the-server]__1xe_98y-j38aq._.js +0 -3
  722. package/server/.next/server/chunks/[root-of-the-server]__1z9kl-irij2lu._.js +0 -3
  723. package/server/.next/server/chunks/[root-of-the-server]__1zmoy4u_xb_yi._.js +0 -3
  724. package/server/.next/server/chunks/[root-of-the-server]__1zq2zv2ogn3ot._.js +0 -3
  725. package/server/.next/server/chunks/[root-of-the-server]__202mmzv3u-hk1._.js +0 -3
  726. package/server/.next/server/chunks/[root-of-the-server]__20tvyorpg49kd._.js +0 -3
  727. package/server/.next/server/chunks/_04oi0m63biyjd._.js +0 -3
  728. package/server/.next/server/chunks/_0bki3kju_1u1f._.js +0 -3
  729. package/server/.next/server/chunks/_0djze-128wsu0._.js +0 -3
  730. package/server/.next/server/chunks/_0hm72d9am2vfs._.js +0 -3
  731. package/server/.next/server/chunks/_1nuny071s602h._.js +0 -3
  732. package/server/.next/server/chunks/_1sx70w_rurjin._.js +0 -3
  733. package/server/.next/server/chunks/_1tl0532dffdm-._.js +0 -3
  734. package/server/.next/server/chunks/src_0frmhaaejchbk._.js +0 -3
  735. package/server/.next/server/chunks/src_0kihmyo3yghxy._.js +0 -3
  736. package/server/.next/server/chunks/src_16t2uefmdlh8d._.js +0 -3
  737. package/server/.next/server/chunks/src_17j4dgvb7rx7k._.js +0 -3
  738. package/server/.next/server/chunks/src_20xyhmuf0y6_v._.js +0 -3
  739. package/server/.next/server/chunks/src_lib_0hw2g5g295xx0._.js +0 -12
  740. package/server/.next/server/chunks/src_lib_1hveabvnpk83x._.js +0 -12
  741. package/server/.next/server/chunks/src_lib_collector_deploy-days_ts_087kwe68m4i93._.js +0 -3
  742. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +0 -3
  743. package/server/.next/server/chunks/ssr/[root-of-the-server]__01o65-2jgmg9x._.js +0 -3
  744. package/server/.next/server/chunks/ssr/[root-of-the-server]__0q7rssq_3unbc._.js +0 -3
  745. package/server/.next/server/chunks/ssr/[root-of-the-server]__11yadiuejywcz._.js +0 -3
  746. package/server/.next/server/chunks/ssr/_0j_qqta7rirh5._.js +0 -3
  747. package/server/.next/server/chunks/ssr/src_09q8lx_19nta6._.js +0 -3
  748. package/server/.next/static/chunks/10y41_ed7ty6e.js +0 -1
  749. package/server/.next/static/chunks/16gt7hkgltvf7.js +0 -1
  750. package/server/.next/static/chunks/1sjgdu3r0baj-.js +0 -1
  751. package/server/.next/static/chunks/1velx-cd3d5y1.js +0 -1
  752. package/server/.next/static/chunks/1xydxxektmjgr.js +0 -1
  753. package/server/.next/static/chunks/2jflssspiz3-i.js +0 -1
  754. /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_buildManifest.js +0 -0
  755. /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_clientMiddlewareManifest.js +0 -0
  756. /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[390124,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)("40856a39284f325a4e11ba0be71fb64f5e75aad368",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
1
+ (()=>{"use strict";module.exports=[390124,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)("40106b2083ff5a0a9600063dd6c24d26972779d88c",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_1q-jgpnd3lbcu._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("401357e01640d8fb90a8b80cd251d7fe224372eda5",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("60c3438000f27d98ca4bb0f89dcff605d4f788581a",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(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:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
1
+ (()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("4064e5070c88b8e289b20e89ecdcf1099ad2a42286",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("605c5cfb27dd48174a42f3d6b852b8e43970d82aaa",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(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:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_agents_1fyhh1ldgm23z._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(995899),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
1
+ module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(420594),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("402462f158221271df42309f948cb966ee33798bc5",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
1
+ module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4099201406f2641554134181a92406c2109c907b4d",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_logs_export-button_tsx_1k-crb88n1za_._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("008f9b7e24ddcfb848ac76c4de0956649c384ab365",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("60b4bf4a3c169e1a3d3eb55da5b70600ed6a098eb4",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{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)("60b46a0952cd78fd9f9e4311a0f27687910cfda343",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("60409726098b88a7f7af3cf76b74d980d2a257ab7e",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("405b0102f649873328be3dff66152fbb6a8f1ec2b5",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("007e12d156cdfd783560034dd410c0e54d3dd0a484",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("40add9bc98d5dbeb5c52a303a199f058686734662f",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("002c3ef7e2dc741d0a266e9cc518c0586a235b1273",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("60e93c81f7649e510692b34c69eeac45a82b499c3d",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("701b8d3f118e2cb3f367239a1f54f3377167121889",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
1
+ (()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("00c485a4241711739a7ef137580c2f9f85dd237497",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("60aae3c3934682a93b9f74bbb54989d8cd384faaee",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{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)("60f8b6984561fc89dac92c1bf1aabc8975c51cc381",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("60b4f628183512729c9787eb4fd057f659189fbf84",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("40b3fab82b508993c0b9c1fab9c55cd45fcd4c57df",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("0044deb2724d955d42fb1f5463eb04252337f842d0",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("40c48689905952a18267fcec959e7b2143b49f7bdb",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("000418db4832b58948dd2f064d91e0b7aeda63c802",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("60b9c35404c4c405d2273e3080fe4bb6f0f1ca78d4",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("707d6ee8964ffcb092d62f80ae53b93e1c58cca73c",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_models_0ayzqn062pnv5._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(995899),j=a.i(405050);let k=(0,j.createServerReference)("407c41f28167c309c7c132cc92487e5965e3625453",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("40deb3c328d40129f674cc679b28c1210e15953393",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
1
+ module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(420594),j=a.i(405050);let k=(0,j.createServerReference)("40a3c9d4d51bd1002451f45c698581dff4b6abf680",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("4007f5d2ae2985a1c74d560f6e184061ddd27ec703",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
2
2
  A: ${n(a.a,600)}`);for(;e.length>0;){let a=`Earlier in this chat:
3
3
  ${e.join("\n")}
4
4
 
@@ -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)("40160fbc6bd28f85d8ad4db2a810d1f964296c10a8",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("40b2944b4469271bef926e2a21dda43b220853eeb5",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("608cf112a63de668514431e3b09311812f10d51778",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("408b5f766ceff761205ad89ed7d833445eacb61e6e",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)("607bafbb50d34a3362854efb28ebcc5c3411be0886",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("603dd4d46f3fc97d0ad033573b060151871354eff3",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)("40e5a22354666127135f04dc58c683b8ecff387bf6",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("4024458c85d6a8c2cdcf4540b2c69ca712b347e0ce",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("60e9051402a1065ed1ed82ed6eb813d60738c9bfbf",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("400a9644cc9417043ef40b44757ebef0b2e9cd51d2",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)("6076afb0d3f4febf498116329794e6a4ab25da8b9d",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("6006064d65025a540f4d57a7e33f8b6b5d152b1bdb",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)("60270e3fede88974f8798f0a61cb41fcb1c116236c",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)}];
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)("6053846e908ea75727c445abe2e664fc384de74c45",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)("40976fd0ad32eb5f975a119ccf4d38028b1329127f",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)}];
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)("40281fb1b32d84b2b8a4ad9666d27bf32c49b9e8ce",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
@@ -1,3 +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(519834),l=a.i(405050);let m=(0,l.createServerReference)("401a9f285e7423917501868650bd5dc963179d6e28",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)},519834,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60301b42cb24e0f3fb61fd34bc5b39a24d95b68f99",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],519834);var d=a.i(572131);a.s(["f",0,function(){let a=(0,d.useRef)(!1);return b=>!a.current&&(a.current=!0,b().catch(()=>void 0).finally(()=>{a.current=!1}),!0)}],752818)}]})();
1
+ (()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(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(922432),l=a.i(405050);let m=(0,l.createServerReference)("409dcef34d5f79d8171a4562a23470396612f2e851",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)},922432,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("6003085d6872ede55b3266b491875ca427250dc8b6",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],922432);var d=a.i(572131);a.s(["f",0,function(){let a=(0,d.useRef)(!1);return b=>!a.current&&(a.current=!0,b().catch(()=>void 0).finally(()=>{a.current=!1}),!0)}],752818)}]})();
2
2
 
3
- //# sourceMappingURL=src_app_%28console%29_0eh38ymzn-s-m._.js.map
3
+ //# sourceMappingURL=src_app_%28console%29_0e1l3e9r_60s4._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[655486,496804,852785,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60ff9b1575f1296edb05f83e2766844a12005e4f6f",b.callServer,void 0,b.findSourceMapURL,"promoteAction");a.s(["f",0,c],655486);let d=(0,b.createServerReference)("6039ee8f5be515b1c179704a7502bc1eb8427232e9",b.callServer,void 0,b.findSourceMapURL,"redeployAction");a.s(["f",0,d],496804);let e=(0,b.createServerReference)("604e9312735cbb643509f24bc94e1740bb2d2ae7ee",b.callServer,void 0,b.findSourceMapURL,"rollbackAction");a.s(["f",0,e],852785)},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)("60eb82fd1c21cc597a6f8d0eec97005a558265f158",j.callServer,void 0,j.findSourceMapURL,"cancelAction");var l=a.i(655486);let m=(0,j.createServerReference)("60086dc2c60f0d91334393d80f73b796ae9e95aeae",j.callServer,void 0,j.findSourceMapURL,"promotePreviewAction");var n=a.i(496804),o=a.i(852785),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)("601b652c632727432a23d7d87b2fad44676f76119c",j.callServer,void 0,j.findSourceMapURL,"buildLogsAction"),x=(0,j.createServerReference)("603a39ca361b891f07890fcc44aed4302cb46e488a",j.callServer,void 0,j.findSourceMapURL,"explainBuildAction"),y={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},z=a=>`build-line-${a}`;function A({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":z(c),className:"text-brand hover:underline",onClick:()=>document.getElementById(z(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:z(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":y[a.kind],"delimiter"===a.kind&&"mt-1.5 font-medium"),children:"command"===a.kind?`$ ${a.text}`:a.text||" "},c)})})]})}function B({answer:a}){return"asking"===a?(0,b.jsx)("p",{className:"px-[18px] pb-3 text-[13px] text-ink-soft",children:"Asking the AI provider…"}):"error"in a?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-3 text-[13px] text-err",children:a.error}):(0,b.jsxs)("section",{"aria-label":"Explanation",className:"mx-[18px] mb-3 rounded-lg border border-line px-3.5 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 text-[12.5px]",children:[(0,b.jsx)("b",{className:"font-medium",children:"Explanation"}),(0,b.jsx)("span",{className:"font-mono text-xs text-ink-faint",children:a.model})]}),(0,b.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-[13px] [overflow-wrap:anywhere]",children:a.text}),(0,b.jsx)("p",{className:"mt-1.5 text-xs text-ink-faint",children:"Written by a model from the log below. Check it against the log before you change code."})]})}function C({appId:a,deploymentId:d,title:f,open:g,onOpenChange:h,explain:i=!1,read:j=w,ask:k=x}){let[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null);(0,r.useHoldRefresh)(g),(0,c.useEffect)(()=>{if(!g)return;let b=!0;return j(a,d).then(a=>{b&&m(a.ok&&a.data?{log:a.data}:{error:a.ok?"No build log came back.":a.error})}).catch(()=>{b&&m({error:"Watchbell didn't answer. Check that it's still running, then try again."})}),()=>{b=!1,m(null),o(null)}},[g,a,d,j]);let s=i&&null!==l&&"log"in l&&"asking"!==n;return(0,b.jsx)(q.N,{open:g,onOpenChange:h,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 · ",f]}),(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"})]}),i&&(0,b.jsx)(e.K,{size:"sm",className:"mt-2",disabled:!s,onClick:()=>{o("asking"),k(a,d).then(a=>o(a.ok&&a.data?a.data:{error:a.ok?"No explanation came back.":a.error})).catch(()=>o({error:"Watchbell didn't answer. Check that it's still running, then try again."}))},children:!n||"asking"===n||"error"in n?"Explain with AI":"Explain again"})]}),n&&(0,b.jsx)(B,{answer:n}),null===l?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in l?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:l.error}):(0,b.jsx)(A,{log:l.log})]})})}var D=a.i(773998);let E=(0,j.createServerReference)("60ae0e10257929cf5ba61cb815591eee6059b20faf",j.callServer,void 0,j.findSourceMapURL,"releaseNotesAction"),F=/^(https:\/\/github\.com\/[^/]+\/[^/]+)\/commit\/[0-9a-f]+$/,G="text-brand underline-offset-2 hover:underline";function H({c:a,now:c}){var e;let f,g,h=(e=a.title,(f=/\(#(\d{1,7})\)\s*$/.exec(e)??/^Merge pull request #(\d{1,7})\b/.exec(e))?Number(f[1]):null),i=null===h?null:(g=a.url?F.exec(a.url):null)?`${g[1]}/pull/${h}`:null,j=a.sha.slice(0,7);return(0,b.jsxs)("li",{className:"border-b border-line px-[18px] py-2.5 last:border-b-0",children:[(0,b.jsxs)("div",{className:"text-[13px] [overflow-wrap:anywhere]",children:[(0,b.jsx)(d.MaskedText,{text:a.title}),i&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsxs)("a",{href:i,target:"_blank",rel:"noreferrer",className:G,children:["#",h]})]})]}),(0,b.jsxs)("div",{className:"mt-0.5 font-mono text-xs text-ink-faint",children:[a.url?(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer",className:G,children:j}):j,a.author&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)(d.MaskedText,{text:a.author})]}),a.at&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,D.J)(new Date(a.at),c)]})]})]})}function I({notes:a,now:c}){if(a.note)return(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:a.note});if(0===a.commits.length)return(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"GitHub found no commits between these deployments."});let d=a.total-a.commits.length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[a.total," commit",1===a.total?"":"s",a.from?(0,b.jsxs)(b.Fragment,{children:[" since ",(0,b.jsx)("span",{className:"font-mono",children:a.from.slice(0,7)})]}):null]}),(0,b.jsxs)("ul",{className:"min-h-0 flex-1 overflow-auto border-t border-line",children:[a.commits.map(a=>(0,b.jsx)(H,{c:a,now:c},a.sha)),a.cut&&d>0&&(0,b.jsxs)("li",{className:"px-[18px] py-2.5 text-[12.5px] text-ink-soft",children:["+",d," more, older, not shown"]})]})]})}function J({appId:a,deploymentId:d,title:e,open:f,onOpenChange:g,read:h=E}){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?{notes:a.data,at:new Date}:{error:a.ok?"Nothing 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-[620px]",children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,b.jsxs)(q.F,{className:"text-base",children:["What changed · ",e]}),(0,b.jsxs)(q.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Since the previous production deployment, compared on GitHub 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 commits…"}):"error"in i?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:i.error}):(0,b.jsx)(I,{notes:i.notes,now:i.at})]})})}let K={label:"View build logs",kind:"logs"},L={label:"What changed",kind:"changes"};a.s(["DeployRowActions",0,function({d:a,actions:j,logs:p,changes:q=!1,explain:r=!1}){var s;let t,u,v,w=(0,d.useMask)(),{open:x,dialog:y}=(0,f.W)(),[z,A]=(0,c.useState)(!1),[B,D]=(0,c.useState)(!1),E=a.sha?a.sha.slice(0,7):"",{visit:F,deployment:G}=(t=a.url?`https://${a.url}`:null,a.primaryDomain?{visit:`https://${a.primaryDomain}`,deployment:t}:{visit:t??"",deployment:null}),{buttons:H,menu:I}=(u=[...(s={actions:j,logs:p,changes:q,visit:!!F&&a.visit}).visit&&"button"!==s.logs?[{label:"Visit",kind:"visit"}]:[],...s.actions.map(a=>({label:a,kind:"action",action:a})),..."button"===s.logs?[K]:[]],v=[..."menu"===s.logs?[K]:[],...s.changes?[L]:[]],u.length>2?{buttons:[],menu:[...u,...v]}:{buttons:u,menu:v}),M=b=>x({...(0,h.f)(b,w("app",a.appName),E),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:[H.map(a=>"visit"===a.kind?(0,b.jsx)("a",{href:F,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:()=>A(!0),children:a.label},a.label):(0,b.jsx)(e.K,{size:"sm",onClick:()=>M(a.action),children:a.label},a.label)),G&&a.visit&&"button"!==p&&(0,b.jsx)("a",{href:G,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),I.length>0&&(0,b.jsx)(g.RowMenu,{label:(0,i.J)(w("app",a.appName),E||a.url||a.externalId),items:I.map(a=>"visit"===a.kind?{label:a.label,href:F}:"logs"===a.kind?{label:a.label,onSelect:()=>A(!0)}:"changes"===a.kind?{label:a.label,onSelect:()=>D(!0)}:{label:a.label,onSelect:()=>M(a.action)})}),y,p&&(0,b.jsx)(C,{appId:a.appId,deploymentId:a.externalId,title:`${w("app",a.appName)}${E?` ${E}`:""}`,open:z,onOpenChange:A,explain:r}),q&&(0,b.jsx)(J,{appId:a.appId,deploymentId:a.externalId,title:`${w("app",a.appName)}${E?` ${E}`:""}`,open:B,onOpenChange:D})]})}],762253)}]})();
1
+ (()=>{"use strict";module.exports=[425493,795605,243056,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60a58057b2a42eefc03e1c0603094c1306e022a436",b.callServer,void 0,b.findSourceMapURL,"promoteAction");a.s(["f",0,c],425493);let d=(0,b.createServerReference)("60d8252c7bc357fcb0d1cbea8fa8d285598fc34526",b.callServer,void 0,b.findSourceMapURL,"redeployAction");a.s(["f",0,d],795605);let e=(0,b.createServerReference)("60ba1d94aa50f84773a95238d64f62aca68f152f2a",b.callServer,void 0,b.findSourceMapURL,"rollbackAction");a.s(["f",0,e],243056)},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)("6051a6f8308ddb6a5d3bf227d295e318dc5b51fd87",j.callServer,void 0,j.findSourceMapURL,"cancelAction");var l=a.i(425493);let m=(0,j.createServerReference)("60009a2992545d28afbeaaff5212bb5a77843a9a5d",j.callServer,void 0,j.findSourceMapURL,"promotePreviewAction");var n=a.i(795605),o=a.i(243056),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)("608b66f45a41c041c04a0fb84a8df27b24fa929b85",j.callServer,void 0,j.findSourceMapURL,"buildLogsAction"),x=(0,j.createServerReference)("60ae39a73d91a8e143b6b8879748d95a20f2d82379",j.callServer,void 0,j.findSourceMapURL,"explainBuildAction"),y={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},z=a=>`build-line-${a}`;function A({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":z(c),className:"text-brand hover:underline",onClick:()=>document.getElementById(z(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:z(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":y[a.kind],"delimiter"===a.kind&&"mt-1.5 font-medium"),children:"command"===a.kind?`$ ${a.text}`:a.text||" "},c)})})]})}function B({answer:a}){return"asking"===a?(0,b.jsx)("p",{className:"px-[18px] pb-3 text-[13px] text-ink-soft",children:"Asking the AI provider…"}):"error"in a?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-3 text-[13px] text-err",children:a.error}):(0,b.jsxs)("section",{"aria-label":"Explanation",className:"mx-[18px] mb-3 rounded-lg border border-line px-3.5 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 text-[12.5px]",children:[(0,b.jsx)("b",{className:"font-medium",children:"Explanation"}),(0,b.jsx)("span",{className:"font-mono text-xs text-ink-faint",children:a.model})]}),(0,b.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-[13px] [overflow-wrap:anywhere]",children:a.text}),(0,b.jsx)("p",{className:"mt-1.5 text-xs text-ink-faint",children:"Written by a model from the log below. Check it against the log before you change code."})]})}function C({appId:a,deploymentId:d,title:f,open:g,onOpenChange:h,explain:i=!1,read:j=w,ask:k=x}){let[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null);(0,r.useHoldRefresh)(g),(0,c.useEffect)(()=>{if(!g)return;let b=!0;return j(a,d).then(a=>{b&&m(a.ok&&a.data?{log:a.data}:{error:a.ok?"No build log came back.":a.error})}).catch(()=>{b&&m({error:"Watchbell didn't answer. Check that it's still running, then try again."})}),()=>{b=!1,m(null),o(null)}},[g,a,d,j]);let s=i&&null!==l&&"log"in l&&"asking"!==n;return(0,b.jsx)(q.N,{open:g,onOpenChange:h,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 · ",f]}),(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"})]}),i&&(0,b.jsx)(e.K,{size:"sm",className:"mt-2",disabled:!s,onClick:()=>{o("asking"),k(a,d).then(a=>o(a.ok&&a.data?a.data:{error:a.ok?"No explanation came back.":a.error})).catch(()=>o({error:"Watchbell didn't answer. Check that it's still running, then try again."}))},children:!n||"asking"===n||"error"in n?"Explain with AI":"Explain again"})]}),n&&(0,b.jsx)(B,{answer:n}),null===l?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in l?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:l.error}):(0,b.jsx)(A,{log:l.log})]})})}var D=a.i(773998);let E=(0,j.createServerReference)("60eaea44582a1ddb6f88268d47f83052573c156b4e",j.callServer,void 0,j.findSourceMapURL,"releaseNotesAction"),F=/^(https:\/\/github\.com\/[^/]+\/[^/]+)\/commit\/[0-9a-f]+$/,G="text-brand underline-offset-2 hover:underline";function H({c:a,now:c}){var e;let f,g,h=(e=a.title,(f=/\(#(\d{1,7})\)\s*$/.exec(e)??/^Merge pull request #(\d{1,7})\b/.exec(e))?Number(f[1]):null),i=null===h?null:(g=a.url?F.exec(a.url):null)?`${g[1]}/pull/${h}`:null,j=a.sha.slice(0,7);return(0,b.jsxs)("li",{className:"border-b border-line px-[18px] py-2.5 last:border-b-0",children:[(0,b.jsxs)("div",{className:"text-[13px] [overflow-wrap:anywhere]",children:[(0,b.jsx)(d.MaskedText,{text:a.title}),i&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsxs)("a",{href:i,target:"_blank",rel:"noreferrer",className:G,children:["#",h]})]})]}),(0,b.jsxs)("div",{className:"mt-0.5 font-mono text-xs text-ink-faint",children:[a.url?(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer",className:G,children:j}):j,a.author&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)(d.MaskedText,{text:a.author})]}),a.at&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,D.J)(new Date(a.at),c)]})]})]})}function I({notes:a,now:c}){if(a.note)return(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:a.note});if(0===a.commits.length)return(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"GitHub found no commits between these deployments."});let d=a.total-a.commits.length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[a.total," commit",1===a.total?"":"s",a.from?(0,b.jsxs)(b.Fragment,{children:[" since ",(0,b.jsx)("span",{className:"font-mono",children:a.from.slice(0,7)})]}):null]}),(0,b.jsxs)("ul",{className:"min-h-0 flex-1 overflow-auto border-t border-line",children:[a.commits.map(a=>(0,b.jsx)(H,{c:a,now:c},a.sha)),a.cut&&d>0&&(0,b.jsxs)("li",{className:"px-[18px] py-2.5 text-[12.5px] text-ink-soft",children:["+",d," more, older, not shown"]})]})]})}function J({appId:a,deploymentId:d,title:e,open:f,onOpenChange:g,read:h=E}){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?{notes:a.data,at:new Date}:{error:a.ok?"Nothing 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-[620px]",children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,b.jsxs)(q.F,{className:"text-base",children:["What changed · ",e]}),(0,b.jsxs)(q.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Since the previous production deployment, compared on GitHub 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 commits…"}):"error"in i?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:i.error}):(0,b.jsx)(I,{notes:i.notes,now:i.at})]})})}let K={label:"View build logs",kind:"logs"},L={label:"What changed",kind:"changes"};a.s(["DeployRowActions",0,function({d:a,actions:j,logs:p,changes:q=!1,explain:r=!1}){var s;let t,u,v,w=(0,d.useMask)(),{open:x,dialog:y}=(0,f.W)(),[z,A]=(0,c.useState)(!1),[B,D]=(0,c.useState)(!1),E=a.sha?a.sha.slice(0,7):"",{visit:F,deployment:G}=(t=a.url?`https://${a.url}`:null,a.primaryDomain?{visit:`https://${a.primaryDomain}`,deployment:t}:{visit:t??"",deployment:null}),{buttons:H,menu:I}=(u=[...(s={actions:j,logs:p,changes:q,visit:!!F&&a.visit}).visit&&"button"!==s.logs?[{label:"Visit",kind:"visit"}]:[],...s.actions.map(a=>({label:a,kind:"action",action:a})),..."button"===s.logs?[K]:[]],v=[..."menu"===s.logs?[K]:[],...s.changes?[L]:[]],u.length>2?{buttons:[],menu:[...u,...v]}:{buttons:u,menu:v}),M=b=>x({...(0,h.f)(b,w("app",a.appName),E),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:[H.map(a=>"visit"===a.kind?(0,b.jsx)("a",{href:F,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:()=>A(!0),children:a.label},a.label):(0,b.jsx)(e.K,{size:"sm",onClick:()=>M(a.action),children:a.label},a.label)),G&&a.visit&&"button"!==p&&(0,b.jsx)("a",{href:G,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),I.length>0&&(0,b.jsx)(g.RowMenu,{label:(0,i.J)(w("app",a.appName),E||a.url||a.externalId),items:I.map(a=>"visit"===a.kind?{label:a.label,href:F}:"logs"===a.kind?{label:a.label,onSelect:()=>A(!0)}:"changes"===a.kind?{label:a.label,onSelect:()=>D(!0)}:{label:a.label,onSelect:()=>M(a.action)})}),y,p&&(0,b.jsx)(C,{appId:a.appId,deploymentId:a.externalId,title:`${w("app",a.appName)}${E?` ${E}`:""}`,open:z,onOpenChange:A,explain:r}),q&&(0,b.jsx)(J,{appId:a.appId,deploymentId:a.externalId,title:`${w("app",a.appName)}${E?` ${E}`:""}`,open:B,onOpenChange:D})]})}],762253)}]})();
2
2
 
3
- //# sourceMappingURL=src_app_%28console%29_03s-e0b0zsqqr._.js.map
3
+ //# sourceMappingURL=src_app_%28console%29_124kgxvmqm7j4._.js.map
@@ -1,4 +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)("602a14bc6a200a3108460ccd80b9431bf975a6d36b",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)("404e00bacb516a5f6ef5f7f7e7abfc087e4da55a99",p.callServer,void 0,p.findSourceMapURL,"saveDigest"),r=(0,p.createServerReference)("4033b843f1aa276945dea7f4eddc6be5da596f1245",p.callServer,void 0,p.findSourceMapURL,"saveDiscord"),s=(0,p.createServerReference)("40528c606f2322eb6f1acdc0cec11d13b60feec29b",p.callServer,void 0,p.findSourceMapURL,"saveSmtp"),t=(0,p.createServerReference)("6017f6ff729443bfcefcc84cff0c327308424cf385",p.callServer,void 0,p.findSourceMapURL,"saveTelegram"),u=(0,p.createServerReference)("60bc049e9ce957fe35fbb71e868564e80aef2c66b0",p.callServer,void 0,p.findSourceMapURL,"saveWebhook"),v=(0,p.createServerReference)("4090122d2fb416deabb2ad728c130fcefea70bfb5f",p.callServer,void 0,p.findSourceMapURL,"sendTest"),w=(0,p.createServerReference)("6075a0bf43a8a0e076530461a132cf7ecabbed342a",p.callServer,void 0,p.findSourceMapURL,"setChannelEnabled"),x=(0,p.createServerReference)("00fbf679efa5fc91505844949a3733c05b11fd7266",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)("60f4741147491c94cedb79bcb580521f4785d36151",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)"},CiFailing:{key:"CiFailing",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"The latest GitHub Actions run on the default branch failed"},OsSecurityUpdate:{key:"OsSecurityUpdate",severity:"warning",threshold:7,bounds:[0,10],source:"own",needs:null,sampled:!1,condition:a=>`A waiting security update fixes a CVE scored ${(a??7).toFixed(1)}+ (CVSS), or a new kernel waits for a reboot`},ReportSendFailed:{key:"ReportSendFailed",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"A monthly client report couldn't be emailed after 3 tries"},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)("60e7fe4e34c4f103d7c3dd6b400a830b278e5ea540",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=(0,l.createServerReference)("60eb5a520cf444af6b194af0e841b130ecd86cf89d",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)("0048ab075af2143b86634385dba833523ecc3d68bc",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("00c979bccccc577024717c71443df06656b8197bad",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("0032382d89718b90d6463db003d7ae5c4bf502bec7",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("00605c26b3c4d33f1942e7a9882654e41d359d5d40",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)}]})();
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)("608d4682bdbce2365987d61aa940e376528bdd2cf8",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)("40a4fb3ec04f122f810c7675e4fb740b4758efaa38",p.callServer,void 0,p.findSourceMapURL,"saveDigest"),r=(0,p.createServerReference)("40ced88210be7cf768af7228923fc098731f5e6e44",p.callServer,void 0,p.findSourceMapURL,"saveDiscord"),s=(0,p.createServerReference)("406b4ff4392f1793bf4c3c485a253bb3bc343eb727",p.callServer,void 0,p.findSourceMapURL,"saveSmtp"),t=(0,p.createServerReference)("60bfbda3253990a3eb126f5024ce50aade85e582f9",p.callServer,void 0,p.findSourceMapURL,"saveTelegram"),u=(0,p.createServerReference)("6044cefdc5ff2d305c6fb9d407066493c9cb0c5ed5",p.callServer,void 0,p.findSourceMapURL,"saveWebhook"),v=(0,p.createServerReference)("404ec4c0b56114459c888213350ecd92de37737437",p.callServer,void 0,p.findSourceMapURL,"sendTest"),w=(0,p.createServerReference)("60a0b6cf29d7eddadb887abbbca2cb7d4932481379",p.callServer,void 0,p.findSourceMapURL,"setChannelEnabled"),x=(0,p.createServerReference)("0021b04799b656b611379fb07c5a6fec113930cc43",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)("6081cb5db0411f7432737091f2bc2608e879d583e9",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)"},CiFailing:{key:"CiFailing",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"The latest GitHub Actions run on the default branch failed"},OsSecurityUpdate:{key:"OsSecurityUpdate",severity:"warning",threshold:7,bounds:[0,10],source:"own",needs:null,sampled:!1,condition:a=>`A waiting security update fixes a CVE scored ${(a??7).toFixed(1)}+ (CVSS), or a new kernel waits for a reboot`},ReportSendFailed:{key:"ReportSendFailed",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"A monthly client report couldn't be emailed after 3 tries"},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)("6085fd6ec6a9f73abd8ea468caa88cd8fe0be40a53",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=(0,l.createServerReference)("60731502a44ce2146d4c7ee7cfbcf49901f3d0035f",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)("00092402514136908b0d61da2f98990e2a9f083cd6",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("0016a8bae1dc07c65b59f3342bb3005412035d6137",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("009095c2cd201507c296f4ddb557eef929c6dc434f",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("007a1b95fc36056b0a7e5208cfeff15c3460993e11",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)}]})();
3
3
 
4
4
  //# sourceMappingURL=src_app_%28console%29_alerts_0j5xlt68kwg8x._.js.map