watchbell 1.3.0 → 1.3.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 (362) 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/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  8. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  9. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  11. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  12. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  15. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  18. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  21. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  22. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  23. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  24. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  26. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  27. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  30. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  31. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  32. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  33. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  36. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  38. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  39. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  40. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  41. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  42. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  43. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  44. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  45. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  46. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  47. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +31 -31
  48. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  51. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  52. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  53. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  54. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  55. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  56. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  57. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  58. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  59. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  60. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  61. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  62. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  63. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
  66. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  67. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  68. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  69. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  70. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  71. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  72. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  73. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  74. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  75. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  76. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  77. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  78. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  79. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  80. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  81. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  82. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  83. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  84. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  85. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  86. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  87. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  88. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  89. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  90. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  91. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  92. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  93. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  96. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  97. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  98. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +21 -21
  99. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  100. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  101. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  102. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  103. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  104. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  105. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  106. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  107. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  108. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  111. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  112. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  113. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  114. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  115. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  116. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  117. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  118. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  119. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  120. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  121. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  122. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  123. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  126. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  127. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  128. package/server/.next/server/app/_global-error.html +1 -1
  129. package/server/.next/server/app/_global-error.rsc +2 -2
  130. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  131. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  132. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  133. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  134. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  135. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  136. package/server/.next/server/app/_not-found.html +1 -1
  137. package/server/.next/server/app/_not-found.rsc +3 -3
  138. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  139. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  140. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  141. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  142. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  143. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  144. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  145. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  146. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  147. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  148. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  149. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  150. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  151. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  152. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  153. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  154. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  155. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  156. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  157. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  158. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  159. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  160. package/server/.next/server/app/page.js.nft.json +1 -1
  161. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  162. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  163. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  164. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  165. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  166. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  167. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  169. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  170. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  171. package/server/.next/server/chunks/_0-ub844lc_z_a._.js +1 -1
  172. package/server/.next/server/chunks/_05hhw0eql5-dv._.js +2 -2
  173. package/server/.next/server/chunks/_08z7lmk32r__5._.js +1 -1
  174. package/server/.next/server/chunks/_1-pv4d4qhe7to._.js +1 -1
  175. package/server/.next/server/chunks/_1l-68brbq289m._.js +2 -2
  176. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  177. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  178. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  179. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  180. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  181. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  182. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  183. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  184. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  185. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e9tlsk1gl8lw._.js +2 -2
  186. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  187. package/server/.next/server/chunks/ssr/[root-of-the-server]__1v3b498_j-68t._.js +2 -2
  188. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  189. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  190. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  191. package/server/.next/server/chunks/ssr/{_09arvqnznfrzl._.js → _0_yyszoyzyccn._.js} +2 -2
  192. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  193. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  194. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  195. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  196. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  197. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  198. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  199. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  200. package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
  201. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  202. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  203. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
  204. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  205. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  206. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  207. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  208. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  209. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  210. package/server/.next/server/chunks/ssr/{_1jl374mbl90fb._.js → _0tu64jsmbyx4_._.js} +2 -2
  211. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  212. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  213. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  214. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
  215. package/server/.next/server/chunks/ssr/{_0f11sdi6yislb._.js → _0y5ov4kk2q81r._.js} +2 -2
  216. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
  217. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  218. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  219. package/server/.next/server/chunks/ssr/{_1h7x73oxtp7h5._.js → _10oqiz6hmf92q._.js} +2 -2
  220. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  221. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  222. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  223. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  224. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  225. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  226. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  227. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  228. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  229. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  230. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  231. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  232. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  233. package/server/.next/server/chunks/ssr/_1ktvwngz0lzjr._.js +1 -1
  234. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  235. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  236. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  237. package/server/.next/server/chunks/ssr/{_1er-95g7emfdz._.js → _1vjm7-shohnh7._.js} +2 -2
  238. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  239. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  240. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  241. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  242. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  243. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1--1mjfnoprr2.js +1 -1
  244. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  245. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  246. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  247. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  248. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  249. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  250. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  251. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  252. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  253. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  254. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  255. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  256. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  257. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  258. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  259. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  260. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
  261. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  262. package/server/.next/server/chunks/ssr/src_1-k3gvxaqli74._.js +1 -1
  263. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  264. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  265. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  266. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  267. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  268. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  269. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  270. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  271. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  272. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  273. package/server/.next/server/chunks/ssr/{src_app_(console)_11o_ga_rurg55._.js → src_app_(console)_0-vcbt2icvguc._.js} +2 -2
  274. package/server/.next/server/chunks/ssr/{src_app_(console)_0u4_y9-b7g971._.js → src_app_(console)_05h6-wpd078oj._.js} +2 -2
  275. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  276. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_10xvt--29v-ed._.js +1 -1
  277. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  278. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  279. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  280. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  281. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  282. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  283. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  284. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  285. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  286. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  287. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  288. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  289. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  290. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  291. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  292. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  293. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  294. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  295. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  296. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  297. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  298. package/server/.next/server/chunks/ssr/{src_app_signin_0u6eoxbd8ttqy._.js → src_app_signin_0obhr-33tppu8._.js} +2 -2
  299. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  300. package/server/.next/server/chunks/ssr/src_lib_providers_github-browse_ts_1apskpn4fe9qr._.js +1 -1
  301. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  302. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  303. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  304. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  305. package/server/.next/server/middleware-build-manifest.js +3 -3
  306. package/server/.next/server/pages/404.html +1 -1
  307. package/server/.next/server/pages/500.html +1 -1
  308. package/server/.next/server/preview-props.json +3 -3
  309. package/server/.next/server/server-reference-manifest.js +1 -1
  310. package/server/.next/server/server-reference-manifest.json +145 -145
  311. package/server/.next/static/chunks/{0ghhg0xs85ipn.js → 08fdgz3f6aeh3.js} +1 -1
  312. package/server/.next/static/chunks/{2uu38i0lq_wlc.js → 0a77yea00jt0y.js} +1 -1
  313. package/server/.next/static/chunks/{0un8ttgrt0gtq.js → 0o53bcdd6gtyu.js} +1 -1
  314. package/server/.next/static/chunks/{3w26qimof6fnj.js → 0p5xwnif2xe2v.js} +1 -1
  315. package/server/.next/static/chunks/{3s3unktz7g7f0.js → 0p_qyask2har9.js} +1 -1
  316. package/server/.next/static/chunks/{1sds57ddvk_30.js → 0s44z2_pzghcu.js} +1 -1
  317. package/server/.next/static/chunks/{2ockms4mqiec_.js → 0tw_we2nleycj.js} +1 -1
  318. package/server/.next/static/chunks/{12vmyliqgjlbi.js → 0uom2d_-nh45g.js} +1 -1
  319. package/server/.next/static/chunks/{3cvrxnnojhvxz.js → 0vqfc5ez__g1s.js} +1 -1
  320. package/server/.next/static/chunks/{3z70obsntezy0.js → 0znki_inst5fe.js} +1 -1
  321. package/server/.next/static/chunks/{33z05hmv7hw1s.js → 11r3cljnu3lrb.js} +1 -1
  322. package/server/.next/static/chunks/{1h0025pjnwxmg.js → 12rf9fj_wat4k.js} +2 -2
  323. package/server/.next/static/chunks/{06o7zhf9tv649.js → 12ryyhs-tt27p.js} +1 -1
  324. package/server/.next/static/chunks/{2vxmvnntekclp.js → 12z4gcgh75y3h.js} +1 -1
  325. package/server/.next/static/chunks/{2tnbp3f6x0jv_.js → 13t0_-lm77ctu.js} +1 -1
  326. package/server/.next/static/chunks/{0inb7hk8o9yz-.js → 143_uak5v6uky.js} +1 -1
  327. package/server/.next/static/chunks/{2uufhbm18_cri.js → 16f-5rrbswao-.js} +1 -1
  328. package/server/.next/static/chunks/{0zzbinjpe41vj.js → 1andb44i5y-5c.js} +1 -1
  329. package/server/.next/static/chunks/{1crspgs6bd_rg.js → 1d5jx8nbj9hio.js} +1 -1
  330. package/server/.next/static/chunks/{3_5xff9sl-2e3.js → 1hzn5sr2wq7_6.js} +1 -1
  331. package/server/.next/static/chunks/{3-8by5unw1j-r.js → 1jfri9y7a54t3.js} +1 -1
  332. package/server/.next/static/chunks/1lq20aqwgdq8w.js +1 -0
  333. package/server/.next/static/chunks/{0lgt6mz4u8rzx.js → 1q0dfli6xlok0.js} +1 -1
  334. package/server/.next/static/chunks/{1ouf289jk00f3.js → 1xaww6l378y_h.js} +1 -1
  335. package/server/.next/static/chunks/{0bkm_mj9zqjdn.js → 1zid1do5vuxcq.js} +1 -1
  336. package/server/.next/static/chunks/{25erhrojc-1fi.js → 20u3tmdb-6drr.js} +1 -1
  337. package/server/.next/static/chunks/{1vuqw31-hmrxb.js → 20xid8njz36og.js} +1 -1
  338. package/server/.next/static/chunks/{3fais-5rzury8.js → 223rdnw2yty48.js} +2 -2
  339. package/server/.next/static/chunks/{29sduk6krs_b1.js → 27epf-aa_5m_r.js} +1 -1
  340. package/server/.next/static/chunks/2gnckmw5e2mfd.js +1 -0
  341. package/server/.next/static/chunks/{310xe703zu_qp.js → 2i629nz4h3fqg.js} +1 -1
  342. package/server/.next/static/chunks/{2fp4pmte8dtbb.js → 2jyi95ohxfybd.js} +1 -1
  343. package/server/.next/static/chunks/{2e195xkcjq72y.js → 2pjruch-2xss_.js} +1 -1
  344. package/server/.next/static/chunks/{2p-ty5g5uq133.js → 2plrf95jah9ew.js} +1 -1
  345. package/server/.next/static/chunks/{1u4r7ru8i619_.js → 2wmkryogm5g3y.js} +2 -2
  346. package/server/.next/static/chunks/{2dbx53nx6f-9f.js → 2y5zgpld68mbe.js} +1 -1
  347. package/server/.next/static/chunks/{1z85thzinc0kx.js → 2zudgr23_bvy5.js} +1 -1
  348. package/server/.next/static/chunks/{2gv1tg_m49u9m.js → 32sed3oqb5mgw.js} +1 -1
  349. package/server/.next/static/chunks/{3gj8dc0o09zl6.js → 3a55yojb_7drl.js} +1 -1
  350. package/server/.next/static/chunks/{2xhqwi0hiv_70.js → 3c79k7qsyelf1.js} +1 -1
  351. package/server/.next/static/chunks/{0v5xmga7srjvl.js → 3e8jbph5vbqrh.js} +1 -1
  352. package/server/.next/static/chunks/{131_xlsbuxnhr.js → 3ki7epe69d8mi.js} +1 -1
  353. package/server/.next/static/chunks/{146uoz7wc8q2y.js → 3tigi9c4vke8u.js} +1 -1
  354. package/server/.next/static/chunks/{29v9jg7vw7brb.js → 3tqlcut9yz40q.js} +1 -1
  355. package/server/.next/static/chunks/{36wyyf_gobe7n.js → 3y4vkm_orksj_.js} +1 -1
  356. package/server/.next/static/chunks/3zhb71t6q4f9k.js +1 -0
  357. package/server/.next/static/chunks/0d609c7qn6uke.js +0 -1
  358. package/server/.next/static/chunks/0r-etc_jv_08f.js +0 -1
  359. package/server/.next/static/chunks/1t9iq0wi3ykuc.js +0 -1
  360. /package/server/.next/static/{WqHYD3Noq8qkEPXvfVDGQ → VmJyuS9PCFUrRHa6THIcV}/_buildManifest.js +0 -0
  361. /package/server/.next/static/{WqHYD3Noq8qkEPXvfVDGQ → VmJyuS9PCFUrRHa6THIcV}/_clientMiddlewareManifest.js +0 -0
  362. /package/server/.next/static/{WqHYD3Noq8qkEPXvfVDGQ → VmJyuS9PCFUrRHa6THIcV}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518716,e=>{let t=(0,e.i(33550).f)("outline","refresh","Refresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);e.s(["f",0,t],518716)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:o,defaultVariants:s}=t,l=Object.keys(o).map(e=>{let t=null==a?void 0:a[e],r=null==s?void 0:s[e];if(null===t)return null;let i=n(t)||n(r);return o[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,l,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...d}[t]):({...s,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},475432,e=>{var t=e.i(843476),n=e.i(618566),r=e.i(271645),a=e.i(846696),i=e.i(54131),o=e.i(799589),s=e.i(177106),l=e.i(856033),d=e.i(452842),u=e.i(733855),c=e.i(95187);let p=(0,c.createServerReference)("40f2456c3c1d75a9b457bb44eac23f858c69a197bf",c.callServer,void 0,c.findSourceMapURL,"redeployCurrentAction");var f=e.i(651626);e.s(["AppMenu",0,function({app:e}){var c;let h,[,g]=(0,r.useTransition)(),m=(0,f.f)(),b=(0,n.useRouter)(),v=(0,i.useMask)(),x=(0,o.W)(),y=(h=[{label:"Redeploy",onSelect:(c={redeploy:()=>x.open({...(0,l.f)("Redeploy",v("app",e.name),""),run:()=>p(e.id)}),viewLogs:()=>{let t;return b.push((t=e.id,`/apps/${t}?tab=logs`))},togglePause:()=>m(()=>new Promise(t=>g(async()=>{try{let t=await (0,u.f)(e.id,!e.paused);t.ok?a.c.success(t.message??""):a.c.error(t.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{t()}})))}).redeploy},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[],{label:"View logs",onSelect:c.viewLogs}],e.monitorCount>0&&h.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:c.togglePause}),h);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.RowMenu,{items:y,label:(0,d.J)(e.name)}),x.dialog]})}],475432)},733855,651626,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60385dff5ad8b47048c8906fa3426fa6f0e4309c9a",t.callServer,void 0,t.findSourceMapURL,"pauseAppMonitors");e.s(["f",0,n],733855);var r=e.i(271645);e.s(["f",0,function(){let e=(0,r.useRef)(!1);return t=>!e.current&&(e.current=!0,t().catch(()=>void 0).finally(()=>{e.current=!1}),!0)}],651626)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),o=e.i(428325),s=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:u,title:c,body:p,cta:f,danger:h=!1,onConfirm:g}){let[m,b]=(0,a.useState)(!1),v=d??m,[x,y]=(0,a.useTransition)();function k(e){void 0===d&&b(e),u?.(e)}return(0,s.useHoldRefresh)(v),(0,t.jsxs)(l.N,{open:v,onOpenChange:e=>{x||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(l.a,{render:e}):(0,t.jsx)(l.a,{children:e})),(0,t.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${h?"text-err":"text-ink-soft"}`,children:h?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(l.F,{className:"text-base",children:c}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(o.K,{onClick:()=>k(!1),disabled:x,children:"Keep as is"}),(0,t.jsx)(o.K,{variant:h?"danger":"primary",onClick:function(){y(async()=>{try{let e=await g();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:x,children:x?"Working…":f})]})]})]})}])},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),o=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),s=(o-1)*n,l=e.slice(s,s+n);return{rows:l,page:o,pages:a,from:0===r?0:s+1,to:s+l.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:o,onPage:s,bleed:l=!1}){let d=(0,n.useRef)(null),u=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==u.current&&(d.current?.querySelectorAll("button")[u.current]?.focus(),u.current=null)},[e]),i<=1)return null;let c=(e,t)=>{(e<=1||e>=i)&&(u.current=t),s(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",l?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:o}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>c(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>c(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),o=i(e.slice(a),t,r);return 0===a||o.page>1?{...o,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function o(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function s(){let e=(0,r.useMask)();return t=>o(t,t=>e("text",t))}e.s(["f",0,o],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:o,danger:l=!1,run:d}){let u=s();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:l?"danger":"secondary",children:e}),title:n,body:r,cta:o,danger:l,onConfirm:async()=>u(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=s(),o=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:o}}],799589)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),o=e.i(428325),s=e.i(500443),l=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[u,c]=(0,i.useState)(!1);return(0,s.useHoldRefresh)(u),(0,t.jsxs)(l.G,{open:u,onOpenChange:c,children:[n?(0,t.jsxs)(l.X,{className:(0,o.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(l.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(l.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(l.U,{},`sep-${n}`):(0,t.jsxs)(l.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),o=e.i(141708),s=e.i(593480),l=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,u=e.i(975157),c=e.i(271645),p=e.i(540886),f=e.i(552245);let h=c.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:o=!0,style:s,...l}=e,{getButtonProps:d,buttonRef:u}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:o});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,u],props:[l,d]})}),g=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(h,{"data-slot":"button",className:(0,u.f)(g({variant:n,size:r,className:e})),...a})}var b=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let x=(0,b.f)(v);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(o.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,u.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(s.f.Popup,{"data-slot":"dialog-content",className:(0,u.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(x,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,u.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(l.f.Title,{"data-slot":"dialog-title",className:(0,u.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function o(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function s([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function l(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=o(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],s=8-a.length-i.length;if(1===n.length?0!==s:s<1)return null;let l=[...a,...Array(2===n.length?s:0).fill("0"),...i];return 8===l.length&&l.every(e=>/^[0-9a-f]{1,4}$/.test(e))?l.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return s([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=o(t);if(n)return s(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],u=/[\u0000-\u001f\u007f-\u009f]/,c=/[­؜᠎​-‏‪-‮⁠-⁤⁦-⁩]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||u.test(i)||c.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let o=Number(e?.periodS);r.includes(o)||(t.periodS="Pick how often the job runs.");let s=Number(e?.graceS);return(a.includes(s)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:o,graceS:s}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==l(i)?"blocked"===l(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let o=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(o)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let s=Number(e?.timeoutS);d.includes(s)||(r.timeoutS="Pick a timeout.");let u=String(e?.bodyContains??"").trim(),c=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(u.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!c&&p&&(r.jsonPath="Add a JSON path for the value."),c&&(c.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(c)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",u&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(o),timeoutMs:1e3*s,bodyContains:u||null,jsonPath:c||null,jsonEquals:c?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518716,e=>{let t=(0,e.i(33550).f)("outline","refresh","Refresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);e.s(["f",0,t],518716)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:o,defaultVariants:s}=t,l=Object.keys(o).map(e=>{let t=null==a?void 0:a[e],r=null==s?void 0:s[e];if(null===t)return null;let i=n(t)||n(r);return o[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,l,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...d}[t]):({...s,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},475432,e=>{var t=e.i(843476),n=e.i(618566),r=e.i(271645),a=e.i(846696),i=e.i(54131),o=e.i(799589),s=e.i(177106),l=e.i(856033),d=e.i(452842),u=e.i(181396),c=e.i(95187);let p=(0,c.createServerReference)("404f10905ca4011f9b06c5d1c4b602a0e9e1dda1a4",c.callServer,void 0,c.findSourceMapURL,"redeployCurrentAction");var f=e.i(651626);e.s(["AppMenu",0,function({app:e}){var c;let h,[,g]=(0,r.useTransition)(),m=(0,f.f)(),b=(0,n.useRouter)(),v=(0,i.useMask)(),x=(0,o.W)(),y=(h=[{label:"Redeploy",onSelect:(c={redeploy:()=>x.open({...(0,l.f)("Redeploy",v("app",e.name),""),run:()=>p(e.id)}),viewLogs:()=>{let t;return b.push((t=e.id,`/apps/${t}?tab=logs`))},togglePause:()=>m(()=>new Promise(t=>g(async()=>{try{let t=await (0,u.f)(e.id,!e.paused);t.ok?a.c.success(t.message??""):a.c.error(t.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{t()}})))}).redeploy},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[],{label:"View logs",onSelect:c.viewLogs}],e.monitorCount>0&&h.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:c.togglePause}),h);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.RowMenu,{items:y,label:(0,d.J)(e.name)}),x.dialog]})}],475432)},181396,651626,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60d7fc41706566b5167fc3dee5a7dd93cc7ae92b86",t.callServer,void 0,t.findSourceMapURL,"pauseAppMonitors");e.s(["f",0,n],181396);var r=e.i(271645);e.s(["f",0,function(){let e=(0,r.useRef)(!1);return t=>!e.current&&(e.current=!0,t().catch(()=>void 0).finally(()=>{e.current=!1}),!0)}],651626)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),o=e.i(428325),s=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:u,title:c,body:p,cta:f,danger:h=!1,onConfirm:g}){let[m,b]=(0,a.useState)(!1),v=d??m,[x,y]=(0,a.useTransition)();function k(e){void 0===d&&b(e),u?.(e)}return(0,s.useHoldRefresh)(v),(0,t.jsxs)(l.N,{open:v,onOpenChange:e=>{x||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(l.a,{render:e}):(0,t.jsx)(l.a,{children:e})),(0,t.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${h?"text-err":"text-ink-soft"}`,children:h?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(l.F,{className:"text-base",children:c}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(o.K,{onClick:()=>k(!1),disabled:x,children:"Keep as is"}),(0,t.jsx)(o.K,{variant:h?"danger":"primary",onClick:function(){y(async()=>{try{let e=await g();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:x,children:x?"Working…":f})]})]})]})}])},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),o=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),s=(o-1)*n,l=e.slice(s,s+n);return{rows:l,page:o,pages:a,from:0===r?0:s+1,to:s+l.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:o,onPage:s,bleed:l=!1}){let d=(0,n.useRef)(null),u=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==u.current&&(d.current?.querySelectorAll("button")[u.current]?.focus(),u.current=null)},[e]),i<=1)return null;let c=(e,t)=>{(e<=1||e>=i)&&(u.current=t),s(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",l?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:o}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>c(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>c(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),o=i(e.slice(a),t,r);return 0===a||o.page>1?{...o,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function o(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function s(){let e=(0,r.useMask)();return t=>o(t,t=>e("text",t))}e.s(["f",0,o],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:o,danger:l=!1,run:d}){let u=s();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:l?"danger":"secondary",children:e}),title:n,body:r,cta:o,danger:l,onConfirm:async()=>u(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=s(),o=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:o}}],799589)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),o=e.i(428325),s=e.i(500443),l=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[u,c]=(0,i.useState)(!1);return(0,s.useHoldRefresh)(u),(0,t.jsxs)(l.G,{open:u,onOpenChange:c,children:[n?(0,t.jsxs)(l.X,{className:(0,o.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(l.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(l.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(l.U,{},`sep-${n}`):(0,t.jsxs)(l.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),o=e.i(141708),s=e.i(593480),l=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,u=e.i(975157),c=e.i(271645),p=e.i(540886),f=e.i(552245);let h=c.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:o=!0,style:s,...l}=e,{getButtonProps:d,buttonRef:u}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:o});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,u],props:[l,d]})}),g=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(h,{"data-slot":"button",className:(0,u.f)(g({variant:n,size:r,className:e})),...a})}var b=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let x=(0,b.f)(v);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(o.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,u.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(s.f.Popup,{"data-slot":"dialog-content",className:(0,u.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(x,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,u.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(l.f.Title,{"data-slot":"dialog-title",className:(0,u.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function o(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function s([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function l(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=o(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],s=8-a.length-i.length;if(1===n.length?0!==s:s<1)return null;let l=[...a,...Array(2===n.length?s:0).fill("0"),...i];return 8===l.length&&l.every(e=>/^[0-9a-f]{1,4}$/.test(e))?l.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return s([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=o(t);if(n)return s(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],u=/[\u0000-\u001f\u007f-\u009f]/,c=/[­؜᠎​-‏‪-‮⁠-⁤⁦-⁩]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||u.test(i)||c.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let o=Number(e?.periodS);r.includes(o)||(t.periodS="Pick how often the job runs.");let s=Number(e?.graceS);return(a.includes(s)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:o,graceS:s}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==l(i)?"blocked"===l(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let o=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(o)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let s=Number(e?.timeoutS);d.includes(s)||(r.timeoutS="Pick a timeout.");let u=String(e?.bodyContains??"").trim(),c=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(u.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!c&&p&&(r.jsonPath="Add a JSON path for the value."),c&&(c.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(c)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",u&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(o),timeoutMs:1e3*s,bodyContains:u||null,jsonPath:c||null,jsonEquals:c?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,684133,e=>{"use strict";var i=e.i(843476),a=e.i(271645),l=e.i(846696),t=e.i(428325),n=e.i(975157);let s=[{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 c=e.i(95187);let r=(0,c.createServerReference)("409dc25d63f8906c46c39754263033ebf3f90aea3c",c.callServer,void 0,c.findSourceMapURL,"saveAgLimits");e.s(["LimitsForm",0,function({values:e}){let[c,d]=(0,a.useTransition)(),[o,m]=(0,a.useState)(!1);return o?(0,i.jsxs)("form",{className:"flex flex-col gap-2",action:e=>d(async()=>{try{let i=await r(e);i.ok?(l.c.success(i.message??"Saved."),m(!1)):l.c.error(i.error)}catch{l.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[s.map(a=>(0,i.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,i.jsx)("span",{className:"w-28 shrink-0 text-ink-soft",children:a.label}),(0,i.jsx)("input",{name:a.key,inputMode:"numeric",autoComplete:"off",placeholder:"No limit",defaultValue:e[a.key]??"",className:(0,n.f)(t.S,"min-w-0 flex-1 py-1 text-right font-mono text-[12.5px]"),"aria-label":`${a.label} limit in tokens`})]},a.key)),(0,i.jsx)("p",{className:"m-0 text-[12px] text-ink-faint",children:"Tokens per window: new input + output + thinking. Cached input isn't counted."}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(t.K,{size:"sm",variant:"primary",type:"submit",disabled:c,children:c?"Saving…":"Save"}),(0,i.jsx)(t.K,{size:"sm",type:"button",disabled:c,onClick:()=>m(!1),children:"Cancel"})]})]}):(0,i.jsx)(t.K,{size:"sm",onClick:()=>m(!0),children:"Edit limits"})}],684133)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,684133,e=>{"use strict";var i=e.i(843476),a=e.i(271645),l=e.i(846696),t=e.i(428325),n=e.i(975157);let s=[{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 c=e.i(95187);let r=(0,c.createServerReference)("40b5d5a4675e89c293da740ff3027420414e640eb1",c.callServer,void 0,c.findSourceMapURL,"saveAgLimits");e.s(["LimitsForm",0,function({values:e}){let[c,d]=(0,a.useTransition)(),[o,m]=(0,a.useState)(!1);return o?(0,i.jsxs)("form",{className:"flex flex-col gap-2",action:e=>d(async()=>{try{let i=await r(e);i.ok?(l.c.success(i.message??"Saved."),m(!1)):l.c.error(i.error)}catch{l.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[s.map(a=>(0,i.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,i.jsx)("span",{className:"w-28 shrink-0 text-ink-soft",children:a.label}),(0,i.jsx)("input",{name:a.key,inputMode:"numeric",autoComplete:"off",placeholder:"No limit",defaultValue:e[a.key]??"",className:(0,n.f)(t.S,"min-w-0 flex-1 py-1 text-right font-mono text-[12.5px]"),"aria-label":`${a.label} limit in tokens`})]},a.key)),(0,i.jsx)("p",{className:"m-0 text-[12px] text-ink-faint",children:"Tokens per window: new input + output + thinking. Cached input isn't counted."}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(t.K,{size:"sm",variant:"primary",type:"submit",disabled:c,children:c?"Saving…":"Save"}),(0,i.jsx)(t.K,{size:"sm",type:"button",disabled:c,onClick:()=>m(!1),children:"Cancel"})]})]}):(0,i.jsx)(t.K,{size:"sm",onClick:()=>m(!0),children:"Edit limits"})}],684133)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,39205,e=>{"use strict";var t=e.i(843476);let a=(0,e.i(33550).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 r=e.i(271645),o=e.i(846696),c=e.i(428325),i=e.i(95187);let n=(0,i.createServerReference)("402f7e84dbe96489a886528aca2bb89a18893a02f7",i.callServer,void 0,i.findSourceMapURL,"exportLogsCsv");e.s(["ExportButton",0,function({params:e}){let[i,s]=(0,r.useTransition)();return(0,t.jsxs)(c.K,{onClick:()=>s(async()=>{try{let t=await n(e);if(!t.ok||!t.data)return void o.c.error(t.ok?"Nothing to export.":t.error);let a=URL.createObjectURL(new Blob(["\uFEFF",t.data.csv],{type:"text/csv;charset=utf-8"})),r=document.createElement("a");r.href=a,r.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(r),r.click(),r.remove(),URL.revokeObjectURL(a),o.c.success(t.message??"Exported.")}catch{o.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:i,children:[(0,t.jsx)(a,{size:16,"aria-hidden":!0}),i?"Exporting...":"Export CSV"]})}],39205)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,39205,e=>{"use strict";var t=e.i(843476);let r=(0,e.i(33550).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 a=e.i(271645),o=e.i(846696),c=e.i(428325),i=e.i(95187);let n=(0,i.createServerReference)("4023a0c4bfbda2c391dc8cf4b699acd1438f9b323e",i.callServer,void 0,i.findSourceMapURL,"exportLogsCsv");e.s(["ExportButton",0,function({params:e}){let[i,s]=(0,a.useTransition)();return(0,t.jsxs)(c.K,{onClick:()=>s(async()=>{try{let t=await n(e);if(!t.ok||!t.data)return void o.c.error(t.ok?"Nothing to export.":t.error);let r=URL.createObjectURL(new Blob(["\uFEFF",t.data.csv],{type:"text/csv;charset=utf-8"})),a=document.createElement("a");a.href=r,a.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(a),a.click(),a.remove(),URL.revokeObjectURL(r),o.c.success(t.message??"Exported.")}catch{o.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:i,children:[(0,t.jsx)(r,{size:16,"aria-hidden":!0}),i?"Exporting...":"Export CSV"]})}],39205)}]);
@@ -1 +1 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let a=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,a],590246)},225913,e=>{var a=e.i(207670);let t=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=a.f;e.s(["f",0,(e,a)=>s=>{var n;if((null==a?void 0:a.variants)==null)return r(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:i,defaultVariants:l}=a,o=Object.keys(i).map(e=>{let a=null==s?void 0:s[e],r=null==l?void 0:l[e];if(null===a)return null;let n=t(a)||t(r);return i[e][n]}),d=s&&Object.entries(s).reduce((e,a)=>{let[t,r]=a;return void 0===r||(e[t]=r),e},{});return r(e,o,null==a||null==(n=a.compoundVariants)?void 0:n.reduce((e,a)=>{let{class:t,className:r,...s}=a;return Object.entries(s).every(e=>{let[a,t]=e;return Array.isArray(t)?t.includes({...l,...d}[a]):({...l,...d})[a]===t})?[...e,t,r]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}])},26681,e=>{var a=e.i(843476),t=e.i(11409),r=e.i(271645),s=e.i(846696),n=e.i(46200),i=e.i(428325),l=e.i(177106),o=e.i(95187);let d=(0,o.createServerReference)("40194e988d8cacd45da47b6142de60e88129dd50a3",o.callServer,void 0,o.findSourceMapURL,"makeDefaultProvider"),c=(0,o.createServerReference)("40b942a2d4e5ebef3620dcb3984842c399d2e2396e",o.callServer,void 0,o.findSourceMapURL,"removeProvider"),u=(0,o.createServerReference)("605a553edcf8d3eca83d67db3202aa9bf912c35074",o.callServer,void 0,o.findSourceMapURL,"setProviderEnabled"),p=(0,o.createServerReference)("407a2e8fc7f99bbc4fdaad227a7cf1e5ce322d6dcc",o.callServer,void 0,o.findSourceMapURL,"testProvider");function m(e){e.ok?s.c.success(e.message??"Done."):s.c.error(e.error??"Something went wrong.")}e.s(["DefaultProviderSelect",0,function({options:e,current:t}){let[s,n]=(0,r.useTransition)(),[l,o]=(0,r.useState)(t??"");return 0===e.length?(0,a.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,a.jsxs)("select",{"aria-label":"Default provider",className:`${i.S} w-auto`,value:l,disabled:s,onChange:e=>{let a=e.target.value;o(a),a&&n(async()=>m(await d(a)))},children:[!t&&(0,a.jsx)("option",{value:"",children:"None yet"}),e.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})},"EnabledSwitch",0,function({id:e,on:t,name:s}){let[n,i]=(0,r.useTransition)(),[l,o]=(0,r.useState)(t);return(0,a.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${s}: ${l?"on":"off"}`,children:[(0,a.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:l,disabled:n,"aria-label":`${s} enabled`,onChange:a=>{let t=a.target.checked;o(t),i(async()=>{let a=await u(e,t);a.ok||o(!t),m(a)})}}),(0,a.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,a.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:e,name:t,isDefault:s}){let[i,o]=(0,r.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.RowMenu,{label:`Actions for ${t}`,items:[...s?[]:[{label:"Make default",onSelect:async()=>m(await d(e))},"---"],{label:"Remove",danger:!0,onSelect:()=>o(!0)}]}),(0,a.jsx)(n.f,{open:i,onOpenChange:o,title:`Remove ${t}?`,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 a=await c(e);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})},"TestProviderButton",0,function({id:e}){let[s,n]=(0,r.useTransition)();return(0,a.jsxs)(i.K,{size:"sm",disabled:s,onClick:()=>n(async()=>m(await p(e))),children:[(0,a.jsx)(t.f,{size:15,"aria-hidden":!0}),s?"Testing…":"Test"]})}],26681)},362512,e=>{var a=e.i(843476),t=e.i(590246),r=e.i(271645),s=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("601c525ca0ba907d6b0763ba87513273eb696a4145",l.callServer,void 0,l.findSourceMapURL,"connectProvider"),d=(0,l.createServerReference)("6056d6d528aa6e24b4bbfd460da4bda69a1f26dbb8",l.callServer,void 0,l.findSourceMapURL,"replaceProviderKey");var c=e.i(944971);e.i(300975);let u={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:e=>`https://api.cloudflare.com/client/v4/accounts/${e.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:e=>(e.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."}}};c.X.localUrl;var p=e.i(33550);let m=(0,p.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 f=e.i(38156);let x=(0,p.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"}]]),h={gemini:m,cloudflare:f.f,custom:x},g={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};e.s(["ProviderDialog",0,function({kind:e,replace:l,primary:p,label:m,selfhost:f=!1}){let x=u[e],v=h[e],[b,k]=(0,r.useState)(!1),[y,j]=(0,r.useTransition)(),[N,w]=(0,r.useState)(""),[S,C]=(0,r.useState)(""),[z,R]=(0,r.useState)(""),[M,U]=(0,r.useState)(l?.baseUrl??""),[P,A]=(0,r.useState)(!1),[I,T]=(0,r.useState)({}),[O,$]=(0,r.useState)(null),[K,L]=(0,r.useState)(null);function _(e){k(e),e||(L(null),w(""),C(""),R(""),U(l?.baseUrl??""),A(!1),T({}),$(null))}let F=l?`Replace key \xb7 ${l.name}`:`Connect ${x.name}`;return(0,a.jsxs)(i.N,{open:b,onOpenChange:_,children:[(0,a.jsx)(i.a,{className:(0,n.R)({size:"sm",variant:p?"primary":"secondary"}),children:m??(l?"Replace":"Connect")}),(0,a.jsxs)(i.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(v,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:F}),(0,a.jsxs)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[x.keyLabel,"cloudflare"===e?" and account ID":""]})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[x.where.url&&(0,a.jsxs)(a.Fragment,{children:["Open ",(0,a.jsxs)("a",{href:x.where.url,target:"_blank",rel:"noopener noreferrer",children:[x.where.url.replace("https://","")," ",(0,a.jsx)(t.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),x.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===e&&!l&&(0,a.jsx)(n.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:I.name,children:(0,a.jsx)("input",{id:"p-name",value:z,onChange:e=>R(e.target.value),placeholder:"my-llm",className:n.S,autoComplete:"off"})}),"custom"===e?(0,a.jsx)(n.O,{id:"p-base",label:"Base URL",help:f?c.X.baseUrlHelp.selfhost:c.X.baseUrlHelp.cloud,error:I.baseUrl,children:(0,a.jsx)("input",{id:"p-base",value:M,onChange:e=>U(e.target.value),placeholder:"https://example.com/v1",className:`${n.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,a.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,a.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===e?x.baseUrl({apiKey:"",accountId:"{account_id}"}):x.baseUrl({apiKey:""})})]}),"cloudflare"===e&&(0,a.jsx)(n.O,{id:"p-acct",label:"Account ID",error:I.accountId,children:(0,a.jsx)("input",{id:"p-acct",value:S,onChange:e=>C(e.target.value),placeholder:"32 hex characters",className:`${n.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,a.jsx)(n.O,{id:"p-key",label:x.keyLabel,help:"custom"===e&&f?c.X.keyHelp.selfhostCustom:c.X.keyHelp.cloud,error:I.apiKey,children:(0,a.jsx)("input",{id:"p-key",type:"password",value:N,onChange:e=>w(e.target.value),placeholder:g[e],className:`${n.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!l&&(0,a.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,a.jsx)("input",{type:"checkbox",checked:P,onChange:e=>A(e.target.checked)})," Make this the default provider"]}),O&&(0,a.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:O}),K&&(0,a.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,a.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",K.length," model",1===K.length?"":"s",":"]}),(0,a.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:K.map(e=>(0,a.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:e},e))}),(0,a.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,a.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:K?(0,a.jsx)(n.K,{variant:"primary",onClick:()=>_(!1),children:"Done"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.K,{onClick:()=>_(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(n.K,{variant:"primary",onClick:function(){j(async()=>{let a={apiKey:N,..."cloudflare"===e?{accountId:S}:{},..."custom"===e?{baseUrl:M,...l?{}:{name:z}}:{},makeDefault:P},t=l?await d(l.id,a):await o(e,a);if(T(t.ok?{}:t.fieldErrors??{}),$(t.ok||t.fieldErrors?null:t.error),t.ok){s.c.success(t.message??`${x.name} connected.`);let a=t.data?.models??[];"custom"===e&&a.length?L(a):_(!1)}})},disabled:y,children:y?"Testing…":l?"Test and replace":"Test and connect"})]})})]})]})}],362512)},46200,e=>{var a=e.i(843476),t=e.i(146874),r=e.i(239692),s=e.i(271645),n=e.i(846696),i=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:m,danger:f=!1,onConfirm:x}){let[h,g]=(0,s.useState)(!1),v=d??h,[b,k]=(0,s.useTransition)();function y(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(v),(0,a.jsxs)(o.N,{open:v,onOpenChange:e=>{b||y(e)},children:[void 0!==e&&((0,s.isValidElement)(e)?(0,a.jsx)(o.a,{render:e}):(0,a.jsx)(o.a,{children:e})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${f?"text-err":"text-ink-soft"}`,children:f?(0,a.jsx)(t.f,{size:19}):(0,a.jsx)(r.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:u}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(i.K,{onClick:()=>y(!1),disabled:b,children:"Keep as is"}),(0,a.jsx)(i.K,{variant:f?"danger":"primary",onClick:function(){k(async()=>{try{let e=await x();e.ok?(n.c.success(e.message),y(!1)):n.c.error(e.message)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:b,children:b?"Working…":m})]})]})]})}])},177106,e=>{var a=e.i(843476),t=e.i(33550);let r=(0,t.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),s=(0,t.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var n=e.i(271645),i=e.i(428325),l=e.i(500443),o=e.i(755146);e.s(["RowMenu",0,function({items:e,button:t=!1,label:d="Actions"}){let[c,u]=(0,n.useState)(!1);return(0,l.useHoldRefresh)(c),(0,a.jsxs)(o.G,{open:c,onOpenChange:u,children:[t?(0,a.jsxs)(o.X,{className:(0,i.R)(),children:[d," ",(0,a.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,a.jsx)(o.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,a.jsx)(s,{size:17})}),(0,a.jsx)(o.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,t)=>"---"===e?(0,a.jsx)(o.U,{},`sep-${t}`):(0,a.jsxs)(o.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,a.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var a=e.i(843476),t=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,s=e.i(209977),n=e.i(921637),i=e.i(141708),l=e.i(593480),o=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),m=e.i(552245);let f=u.forwardRef(function(e,a){let{render:t,className:r,disabled:s=!1,focusableWhenDisabled:n=!1,nativeButton:i=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:s,focusableWhenDisabled:n,native:i});return(0,m.a)("button",e,{state:{disabled:s},ref:[a,c],props:[o,d]})}),x=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:t="default",size:r="default",...s}){return(0,a.jsx)(f,{"data-slot":"button",className:(0,c.f)(x({variant:t,size:r,className:e})),...s})}var g=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let b=(0,g.f)(v);function k({...e}){return(0,a.jsx)(s.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...t}){return(0,a.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}e.s(["N",0,function({...e}){return(0,a.jsx)(t.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:t,showCloseButton:r=!0,...s}){return(0,a.jsxs)(k,{children:[(0,a.jsx)(y,{}),(0,a.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...s,children:[t,r&&(0,a.jsxs)(n.f.Close,{"data-slot":"dialog-close",render:(0,a.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,a.jsx)(b,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...t}){return(0,a.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...t})},"F",0,function({className:e,...t}){return(0,a.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...t})},"a",0,function({...e}){return(0,a.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let a=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,a],590246)},225913,e=>{var a=e.i(207670);let t=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=a.f;e.s(["f",0,(e,a)=>s=>{var n;if((null==a?void 0:a.variants)==null)return r(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:i,defaultVariants:l}=a,o=Object.keys(i).map(e=>{let a=null==s?void 0:s[e],r=null==l?void 0:l[e];if(null===a)return null;let n=t(a)||t(r);return i[e][n]}),d=s&&Object.entries(s).reduce((e,a)=>{let[t,r]=a;return void 0===r||(e[t]=r),e},{});return r(e,o,null==a||null==(n=a.compoundVariants)?void 0:n.reduce((e,a)=>{let{class:t,className:r,...s}=a;return Object.entries(s).every(e=>{let[a,t]=e;return Array.isArray(t)?t.includes({...l,...d}[a]):({...l,...d})[a]===t})?[...e,t,r]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}])},26681,e=>{var a=e.i(843476),t=e.i(11409),r=e.i(271645),s=e.i(846696),n=e.i(46200),i=e.i(428325),l=e.i(177106),o=e.i(95187);let d=(0,o.createServerReference)("40b0f721499cddb941e7f2cf5448790b418440b95d",o.callServer,void 0,o.findSourceMapURL,"makeDefaultProvider"),c=(0,o.createServerReference)("40b666f1ce4ef0768739ec647e0ffafe9e7b87d61b",o.callServer,void 0,o.findSourceMapURL,"removeProvider"),u=(0,o.createServerReference)("604c4a0b0928a8995fb2157404fe5cfe2a14db7720",o.callServer,void 0,o.findSourceMapURL,"setProviderEnabled"),p=(0,o.createServerReference)("4095365cbd51f66d070952e80c7bd88c3cb715c399",o.callServer,void 0,o.findSourceMapURL,"testProvider");function f(e){e.ok?s.c.success(e.message??"Done."):s.c.error(e.error??"Something went wrong.")}e.s(["DefaultProviderSelect",0,function({options:e,current:t}){let[s,n]=(0,r.useTransition)(),[l,o]=(0,r.useState)(t??"");return 0===e.length?(0,a.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,a.jsxs)("select",{"aria-label":"Default provider",className:`${i.S} w-auto`,value:l,disabled:s,onChange:e=>{let a=e.target.value;o(a),a&&n(async()=>f(await d(a)))},children:[!t&&(0,a.jsx)("option",{value:"",children:"None yet"}),e.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})},"EnabledSwitch",0,function({id:e,on:t,name:s}){let[n,i]=(0,r.useTransition)(),[l,o]=(0,r.useState)(t);return(0,a.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${s}: ${l?"on":"off"}`,children:[(0,a.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:l,disabled:n,"aria-label":`${s} enabled`,onChange:a=>{let t=a.target.checked;o(t),i(async()=>{let a=await u(e,t);a.ok||o(!t),f(a)})}}),(0,a.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,a.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:e,name:t,isDefault:s}){let[i,o]=(0,r.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.RowMenu,{label:`Actions for ${t}`,items:[...s?[]:[{label:"Make default",onSelect:async()=>f(await d(e))},"---"],{label:"Remove",danger:!0,onSelect:()=>o(!0)}]}),(0,a.jsx)(n.f,{open:i,onOpenChange:o,title:`Remove ${t}?`,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 a=await c(e);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})},"TestProviderButton",0,function({id:e}){let[s,n]=(0,r.useTransition)();return(0,a.jsxs)(i.K,{size:"sm",disabled:s,onClick:()=>n(async()=>f(await p(e))),children:[(0,a.jsx)(t.f,{size:15,"aria-hidden":!0}),s?"Testing…":"Test"]})}],26681)},362512,e=>{var a=e.i(843476),t=e.i(590246),r=e.i(271645),s=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("60d6e13cffd0541d8962e8172ca5a43ad22d640ded",l.callServer,void 0,l.findSourceMapURL,"connectProvider"),d=(0,l.createServerReference)("6041eed31e883b0c67d200e8fcdd39f9a6d516106c",l.callServer,void 0,l.findSourceMapURL,"replaceProviderKey");var c=e.i(944971);e.i(300975);let u={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:e=>`https://api.cloudflare.com/client/v4/accounts/${e.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:e=>(e.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."}}};c.X.localUrl;var p=e.i(33550);let f=(0,p.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 m=e.i(38156);let x=(0,p.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"}]]),h={gemini:f,cloudflare:m.f,custom:x},g={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};e.s(["ProviderDialog",0,function({kind:e,replace:l,primary:p,label:f,selfhost:m=!1}){let x=u[e],v=h[e],[b,k]=(0,r.useState)(!1),[y,j]=(0,r.useTransition)(),[N,w]=(0,r.useState)(""),[S,C]=(0,r.useState)(""),[z,R]=(0,r.useState)(""),[M,U]=(0,r.useState)(l?.baseUrl??""),[P,A]=(0,r.useState)(!1),[I,T]=(0,r.useState)({}),[O,$]=(0,r.useState)(null),[K,L]=(0,r.useState)(null);function _(e){k(e),e||(L(null),w(""),C(""),R(""),U(l?.baseUrl??""),A(!1),T({}),$(null))}let F=l?`Replace key \xb7 ${l.name}`:`Connect ${x.name}`;return(0,a.jsxs)(i.N,{open:b,onOpenChange:_,children:[(0,a.jsx)(i.a,{className:(0,n.R)({size:"sm",variant:p?"primary":"secondary"}),children:f??(l?"Replace":"Connect")}),(0,a.jsxs)(i.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(v,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:F}),(0,a.jsxs)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[x.keyLabel,"cloudflare"===e?" and account ID":""]})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[x.where.url&&(0,a.jsxs)(a.Fragment,{children:["Open ",(0,a.jsxs)("a",{href:x.where.url,target:"_blank",rel:"noopener noreferrer",children:[x.where.url.replace("https://","")," ",(0,a.jsx)(t.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),x.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===e&&!l&&(0,a.jsx)(n.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:I.name,children:(0,a.jsx)("input",{id:"p-name",value:z,onChange:e=>R(e.target.value),placeholder:"my-llm",className:n.S,autoComplete:"off"})}),"custom"===e?(0,a.jsx)(n.O,{id:"p-base",label:"Base URL",help:m?c.X.baseUrlHelp.selfhost:c.X.baseUrlHelp.cloud,error:I.baseUrl,children:(0,a.jsx)("input",{id:"p-base",value:M,onChange:e=>U(e.target.value),placeholder:"https://example.com/v1",className:`${n.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,a.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,a.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===e?x.baseUrl({apiKey:"",accountId:"{account_id}"}):x.baseUrl({apiKey:""})})]}),"cloudflare"===e&&(0,a.jsx)(n.O,{id:"p-acct",label:"Account ID",error:I.accountId,children:(0,a.jsx)("input",{id:"p-acct",value:S,onChange:e=>C(e.target.value),placeholder:"32 hex characters",className:`${n.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,a.jsx)(n.O,{id:"p-key",label:x.keyLabel,help:"custom"===e&&m?c.X.keyHelp.selfhostCustom:c.X.keyHelp.cloud,error:I.apiKey,children:(0,a.jsx)("input",{id:"p-key",type:"password",value:N,onChange:e=>w(e.target.value),placeholder:g[e],className:`${n.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!l&&(0,a.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,a.jsx)("input",{type:"checkbox",checked:P,onChange:e=>A(e.target.checked)})," Make this the default provider"]}),O&&(0,a.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:O}),K&&(0,a.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,a.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",K.length," model",1===K.length?"":"s",":"]}),(0,a.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:K.map(e=>(0,a.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:e},e))}),(0,a.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,a.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:K?(0,a.jsx)(n.K,{variant:"primary",onClick:()=>_(!1),children:"Done"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.K,{onClick:()=>_(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(n.K,{variant:"primary",onClick:function(){j(async()=>{let a={apiKey:N,..."cloudflare"===e?{accountId:S}:{},..."custom"===e?{baseUrl:M,...l?{}:{name:z}}:{},makeDefault:P},t=l?await d(l.id,a):await o(e,a);if(T(t.ok?{}:t.fieldErrors??{}),$(t.ok||t.fieldErrors?null:t.error),t.ok){s.c.success(t.message??`${x.name} connected.`);let a=t.data?.models??[];"custom"===e&&a.length?L(a):_(!1)}})},disabled:y,children:y?"Testing…":l?"Test and replace":"Test and connect"})]})})]})]})}],362512)},46200,e=>{var a=e.i(843476),t=e.i(146874),r=e.i(239692),s=e.i(271645),n=e.i(846696),i=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:f,danger:m=!1,onConfirm:x}){let[h,g]=(0,s.useState)(!1),v=d??h,[b,k]=(0,s.useTransition)();function y(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(v),(0,a.jsxs)(o.N,{open:v,onOpenChange:e=>{b||y(e)},children:[void 0!==e&&((0,s.isValidElement)(e)?(0,a.jsx)(o.a,{render:e}):(0,a.jsx)(o.a,{children:e})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${m?"text-err":"text-ink-soft"}`,children:m?(0,a.jsx)(t.f,{size:19}):(0,a.jsx)(r.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:u}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(i.K,{onClick:()=>y(!1),disabled:b,children:"Keep as is"}),(0,a.jsx)(i.K,{variant:m?"danger":"primary",onClick:function(){k(async()=>{try{let e=await x();e.ok?(n.c.success(e.message),y(!1)):n.c.error(e.message)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:b,children:b?"Working…":f})]})]})]})}])},177106,e=>{var a=e.i(843476),t=e.i(33550);let r=(0,t.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),s=(0,t.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var n=e.i(271645),i=e.i(428325),l=e.i(500443),o=e.i(755146);e.s(["RowMenu",0,function({items:e,button:t=!1,label:d="Actions"}){let[c,u]=(0,n.useState)(!1);return(0,l.useHoldRefresh)(c),(0,a.jsxs)(o.G,{open:c,onOpenChange:u,children:[t?(0,a.jsxs)(o.X,{className:(0,i.R)(),children:[d," ",(0,a.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,a.jsx)(o.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,a.jsx)(s,{size:17})}),(0,a.jsx)(o.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,t)=>"---"===e?(0,a.jsx)(o.U,{},`sep-${t}`):(0,a.jsxs)(o.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,a.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var a=e.i(843476),t=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,s=e.i(209977),n=e.i(921637),i=e.i(141708),l=e.i(593480),o=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),f=e.i(552245);let m=u.forwardRef(function(e,a){let{render:t,className:r,disabled:s=!1,focusableWhenDisabled:n=!1,nativeButton:i=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:s,focusableWhenDisabled:n,native:i});return(0,f.a)("button",e,{state:{disabled:s},ref:[a,c],props:[o,d]})}),x=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:t="default",size:r="default",...s}){return(0,a.jsx)(m,{"data-slot":"button",className:(0,c.f)(x({variant:t,size:r,className:e})),...s})}var g=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let b=(0,g.f)(v);function k({...e}){return(0,a.jsx)(s.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...t}){return(0,a.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}e.s(["N",0,function({...e}){return(0,a.jsx)(t.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:t,showCloseButton:r=!0,...s}){return(0,a.jsxs)(k,{children:[(0,a.jsx)(y,{}),(0,a.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...s,children:[t,r&&(0,a.jsxs)(n.f.Close,{"data-slot":"dialog-close",render:(0,a.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,a.jsx)(b,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...t}){return(0,a.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...t})},"F",0,function({className:e,...t}){return(0,a.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...t})},"a",0,function({...e}){return(0,a.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)}])})();
@@ -1 +1 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518869,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(54131),r=e.i(428325),s=e.i(95187);let o=(0,s.createServerReference)("40e14a179cb595dfdd46585c733b4898cc7757fdc9",s.callServer,void 0,s.findSourceMapURL,"updateMonitorDomain");e.s(["DomainMoved",0,function({monitorId:e,from:s,to:l,canAct:d}){let[c,p]=(0,t.useTransition)();return(0,a.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,a.jsxs)("span",{children:["Domain changed: ",(0,a.jsx)(i.MaskedText,{text:s})," → ",(0,a.jsx)(i.MaskedText,{text:l}),d?", update monitor?":""]}),d&&(0,a.jsx)(r.K,{size:"sm",disabled:c,onClick:()=>p(async()=>{try{let a=await o(e);a.ok?n.c.success(a.message??"Monitor updated."):n.c.error(a.error)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:c?"Updating…":"Update monitor"})]})}],518869)},525252,e=>{var a=e.i(843476),t=e.i(615884),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(789279),d=e.i(684496);let c=[30,60,90,180,360];function p(e){return"all"===e.scope?"all":"app"===e.scope?`app:${e.appId}`:`monitor:${e.monitorId}`}var m=e.i(95187);let u=(0,m.createServerReference)("40336f3a8137fa5893d161de74c83006a26d7c72a4",m.callServer,void 0,m.findSourceMapURL,"addWindow"),h=(0,m.createServerReference)("60206595113600c2360ce2f8e6ba346c563f87018b",m.callServer,void 0,m.findSourceMapURL,"editWindow");function x(e){if("edit"===e.mode){let a=e.win;return{target:p(a),weekly:a.weekly,start:(0,d.S)(a.startsAt),durationMin:String(a.durationMin),note:a.note??""}}return{target:"all",weekly:!1,start:(0,d.S)(new Date(36e5*Math.ceil(Date.now()/36e5))),durationMin:"90",note:""}}e.s(["MaintenanceDialog",0,function(e){let[m,g]=(0,n.useState)(!1),f="edit"===e.mode?e.open:m,[j,b]=(0,n.useState)(()=>x(e)),[v,S]=(0,n.useState)({}),[k,w]=(0,n.useTransition)();function y(a){a&&(b(x(e)),S({})),"edit"===e.mode?e.onOpenChange(a):g(a)}(0,s.useHoldRefresh)(f);let{apps:N,monitors:C}=e.options,M="edit"===e.mode?p(e.win):null,R="all"===M||N.some(e=>`app:${e.id}`===M)||C.some(e=>`monitor:${e.id}`===M),U=v.scope??v.targetId;return(0,a.jsxs)(o.N,{open:f,onOpenChange:e=>{k||y(e)},children:["add"===e.mode&&(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{children:"Add maintenance window"})}),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add maintenance window":"Edit maintenance window"}),(0,a.jsxs)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Checks keep running, but they are left out of uptime % and open no alerts. ",(0,d.n)()]})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{a.preventDefault(),function(){var a,t;let n={...function(e){if("all"===e)return{scope:"all",targetId:""};let a=/^(app|monitor):(.+)$/.exec(e);return a?{scope:a[1],targetId:a[2]}:{scope:"",targetId:""}}(j.target),start:j.start,durationMin:j.durationMin,weekly:j.weekly,note:j.note},r=function(e){let a={},t="all"===e.scope||"app"===e.scope||"monitor"===e.scope?e.scope:null;t||(a.scope="Pick what it applies to.");let n="string"==typeof e.start?e.start:"",i=(0,d.a)(n);i||(a.start="Pick a start time.");let r=Number(e.durationMin);c.includes(r)||(a.durationMin="Pick how long it lasts.");let s="string"==typeof e.targetId?e.targetId:"";if(t&&"all"!==t&&!(0,l.f)(s)&&(a.targetId="app"===t?"Pick an application.":"Pick a monitor."),Object.keys(a).length||!t||!i)return{ok:!1,fieldErrors:a};let o=("string"==typeof e.note?e.note:"").trim().slice(0,120)||null;return{ok:!0,value:{scope:t,appId:"app"===t?s:null,monitorId:"monitor"===t?s:null,startsAt:i,durationMin:r,weekly:!0===e.weekly,note:o}}}(n);if(!r.ok)return S(r.fieldErrors);(a=r.value,t=new Date,!a.weekly&&a.startsAt.getTime()+6e4*a.durationMin<=t.getTime())?S({start:"That window has already ended."}):(S({}),w(async()=>{let a="add"===e.mode?await u(n):await h(e.win.id,n);if(!a.ok){S(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("Window saved",{description:a.message}),y(!1)}))}()},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsx)(r.O,{id:"mw-scope",label:"Applies to",error:U,children:(0,a.jsxs)("select",{id:"mw-scope",className:r.S,value:j.target,onChange:e=>b({...j,target:e.target.value}),children:[(0,a.jsx)("option",{value:"all",children:"All monitors"}),"edit"===e.mode&&!R&&M&&(0,a.jsx)("option",{value:M,children:e.win.target}),N.length>0&&(0,a.jsx)("optgroup",{label:"Application",children:N.map(e=>(0,a.jsx)("option",{value:`app:${e.id}`,children:e.name},e.id))}),C.length>0&&(0,a.jsx)("optgroup",{label:"One monitor",children:C.map(e=>(0,a.jsx)("option",{value:`monitor:${e.id}`,children:e.label},e.id))})]})}),(0,a.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Repeat"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:[[!1,"Once"],[!0,"Every week"]].map(([e,t])=>(0,a.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,a.jsx)("input",{type:"radio",name:"mw-rep",className:"size-4 accent-brand",checked:j.weekly===e,onChange:()=>b({...j,weekly:e})}),t]},t))})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mw-start",label:"Starts",error:v.start,children:(0,a.jsx)("input",{id:"mw-start",type:"datetime-local",className:r.S,value:j.start,onChange:e=>b({...j,start:e.target.value})})}),(0,a.jsx)(r.O,{id:"mw-len",label:"Lasts",error:v.durationMin,children:(0,a.jsx)("select",{id:"mw-len",className:r.S,value:j.durationMin,onChange:e=>b({...j,durationMin:e.target.value}),children:c.map(e=>{let t,n;return(0,a.jsx)("option",{value:String(e),children:[(t=Math.floor(e/60))?`${t} h`:"",(n=e%60)?`${n} min`:""].filter(Boolean).join(" ")},e)})})})]}),(0,a.jsx)(r.O,{id:"mw-note",label:"Note (optional)",help:"Shown on the public status page if a monitor there is affected.",children:(0,a.jsx)("input",{id:"mw-note",className:r.S,value:j.note,maxLength:120,placeholder:"Moving DNS to Cloudflare",autoComplete:"off",onChange:e=>b({...j,note:e.target.value})})})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>y(!1),disabled:k,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:k,children:k?"Saving…":"add"===e.mode?"Add window":"Save"})]})]})]})]})}],525252)},388594,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(46200),i=e.i(177106),r=e.i(452842),s=e.i(95187);let o=(0,s.createServerReference)("40293d9b7462a416d55bad3ee3a50e646f1b68cf3c",s.callServer,void 0,s.findSourceMapURL,"removeWindow");var l=e.i(525252);e.s(["MaintenanceMenu",0,function({win:e,options:s}){let[d,c]=(0,t.useState)(!1),[p,m]=(0,t.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.RowMenu,{label:(0,r.J)(e.target,"window"),items:[{label:"Edit window",onSelect:()=>c(!0)},"---",{label:"Delete",danger:!0,onSelect:()=>m(!0)}]}),d&&(0,a.jsx)(l.MaintenanceDialog,{mode:"edit",win:e,options:s,open:!0,onOpenChange:c}),(0,a.jsx)(n.f,{open:p,onOpenChange:m,title:"Delete this maintenance window?",body:"Checks count toward uptime % and open alerts again outside any other window.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await o(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})}],388594)},380030,637598,e=>{var a=e.i(843476),t=e.i(359133),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(876195),d=e.i(70528),c=e.i(95187);let p=(0,c.createServerReference)("60d2c45c8f1ecc20423cb804b4472717627a2542b6",c.callServer,void 0,c.findSourceMapURL,"addHeartbeat"),m=(0,c.createServerReference)("60b9b6202e2d555bb73cf93b961c4628a431c4a0a4",c.callServer,void 0,c.findSourceMapURL,"addMonitor"),u=(0,c.createServerReference)("60c3b77821a3da0eb91282537ee95b906ea51b9e4c",c.callServer,void 0,c.findSourceMapURL,"editHeartbeat"),h=(0,c.createServerReference)("602b1033ce06279e463653e27d8bd45f0934f68b58",c.callServer,void 0,c.findSourceMapURL,"editMonitor");var x=e.i(54131);function g(e){return null===e?{ok:!1,text:"Couldn't reach the console"}:e>=200&&e<300?{ok:!0,text:`OK \xb7 ${e}`}:404===e?{ok:!1,text:"Not found · 404"}:429===e?{ok:!1,text:"Too many pings · 429"}:{ok:!1,text:`Failed \xb7 ${e}`}}function f({name:e,url:l,onClose:d}){let c=null!==l,[p,m]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null);async function j(){if(l)try{await navigator.clipboard.writeText(l),i.c.success("Copied.")}catch{i.c.error("Couldn't copy. Select the URL and copy it yourself.")}}async function b(e){let a,t=l?(a=/\/api\/ping\/(hb_[0-9a-f]{32})\/?$/.exec(l))?`/api/ping/${a[1]}${"fail"===e?"/fail":""}`:null:null;if(t&&!p){m(!0),h(null);try{let e=await fetch(t,{method:"GET",cache:"no-store"});h(g(e.status))}catch{h(g(null))}finally{m(!1)}}}function v(){h(null),d()}return(0,s.useHoldRefresh)(c),(0,a.jsx)(o.N,{open:c,onOpenChange:e=>{e||v()},children:(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)(o.F,{className:"text-base",children:["Ping URL for ",(0,a.jsx)(x.Masked,{kind:"text",real:e})]}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Copy it now. It is shown once; the console keeps only a hash. Lost it? Make a new one from the monitor's menu."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]",children:l&&(0,a.jsx)(x.Masked,{kind:"text",real:l,masked:l.replace(/(\/api\/ping\/).*/,"$1••••••")})}),(0,a.jsx)(r.K,{size:"sm",onClick:j,children:"Copy"})]}),(0,a.jsxs)("div",{className:"mb-3.5 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("ok"),children:"Send test ping"}),(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("fail"),children:"Test fail"}),(0,a.jsx)("span",{role:"status","aria-live":"polite",className:`text-[13px] ${u?u.ok?"text-ok":"text-err":"text-ink-soft"}`,children:p?"Sending…":u?.text??""})]}),(0,a.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,a.jsx)("b",{className:"font-medium",children:"From your job"}),(0,a.jsxs)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:[(0,a.jsxs)("li",{children:["When it succeeds: ",(0,a.jsx)("span",{className:"font-mono",children:"curl -fsS -m 10 <url>"})]}),(0,a.jsxs)("li",{children:["When it fails: add ",(0,a.jsx)("span",{className:"font-mono",children:"/fail"})," to the URL"]}),(0,a.jsxs)("li",{children:["When it starts (optional): add ",(0,a.jsx)("span",{className:"font-mono",children:"/start"})]})]})]})]}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(r.K,{variant:"primary",onClick:v,children:"Done"})})]})})}e.s(["f",0,f],637598);let j={name:"",periodS:"86400",graceS:"3600"},b=[["http","HTTP check","The collector opens a URL every minute"],["heartbeat","Heartbeat","Your cron job or backup script pings a secret URL when it runs"]];function v(e){if("edit"===e.mode){let a=e.monitor;return{appId:"",kind:a.kind,url:"http"===a.kind?a.url:"",expectedStatus:String(a.expectedStatus),timeoutS:String(Math.round(a.timeoutMs/1e3)),bodyContains:a.bodyContains??"",jsonPath:a.jsonPath??"",jsonEquals:a.jsonEquals??"",name:a.name??"",periodS:String(a.periodS??j.periodS),graceS:String(a.graceS??j.graceS)}}let a=e.apps[0];return{appId:a?.id??"",kind:"http",url:a?`https://${a.domain}/api/health`:"",expectedStatus:"200",timeoutS:"5",bodyContains:"",jsonPath:"",jsonEquals:"",...j}}e.s(["MonitorDialog",0,function(e){let[c,x]=(0,n.useState)(!1),g="edit"===e.mode?e.open:c,[j,S]=(0,n.useState)(()=>v(e)),[k,w]=(0,n.useState)({}),[y,N]=(0,n.useTransition)(),[C,M]=(0,n.useState)(null);function R(a){a&&(S(v(e)),w({})),"edit"===e.mode?e.onOpenChange(a):x(a)}(0,s.useHoldRefresh)(g);let U="add"===e.mode?e.apps:[],O="add"===e.mode&&0===U.length,L="heartbeat"===j.kind,T="add"===e.mode?"HTTP checks run every minute from the collector. Heartbeats wait for your job to ping the console.":L?"Your job pings the console; nothing is fetched.":"Checked every minute from the collector.";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(o.N,{open:g,onOpenChange:e=>{y||R(e)},children:["add"===e.mode&&(O?(0,a.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,a.jsx)(r.K,{variant:"primary",disabled:!0,children:"Add monitor"}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-faint",children:"Watch an app first: Connections, then Sync."})]}):(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{variant:"primary",children:"Add monitor"})})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add monitor":"Edit monitor"}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:T})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{let t,n;a.preventDefault(),(n=(t="heartbeat"===j.kind)?(0,d.a)(j):(0,d.X)(j)).ok?(w({}),N(async()=>{let a=t?"add"===e.mode?await p(j.appId,j):await u(e.monitor.id,j):"add"===e.mode?await m(j.appId,j):await h(e.monitor.id,j);if(!a.ok){w(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("add"===e.mode?"Monitor added":"Monitor saved",{description:a.message}),R(!1);let n=a.data&&"pingUrl"in a.data?a.data.pingUrl:null;n&&M({name:j.name.trim(),url:n})})):w(n.fieldErrors)},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:["add"===e.mode&&(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Type"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:b.map(([e,t,n])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"mon-kind",value:e,checked:j.kind===e,className:"mt-[3px] accent-brand",onChange:()=>{S({...j,kind:e}),w({})}}),(0,a.jsxs)("span",{children:[t,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:n})]})]},e))})]}),(0,a.jsx)(r.O,{id:"mon-app",label:"Application",children:"add"===e.mode?(0,a.jsx)("select",{id:"mon-app",className:r.S,value:j.appId,onChange:e=>{let a=U.find(a=>a.id===e.target.value);S({...j,appId:e.target.value,url:a?`https://${a.domain}/`:j.url})},children:U.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))}):(0,a.jsx)("input",{id:"mon-app",className:r.S,value:e.monitor.appName,disabled:!0})}),L?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"hb-name",label:"Name",error:k.name,children:(0,a.jsx)("input",{id:"hb-name",className:r.S,value:j.name,placeholder:"backup job",maxLength:80,autoComplete:"off",onChange:e=>S({...j,name:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"hb-every",label:"Expected every",error:k.periodS,children:(0,a.jsx)("select",{id:"hb-every",className:r.S,value:j.periodS,onChange:e=>S({...j,periodS:e.target.value}),children:l.Q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})}),(0,a.jsx)(r.O,{id:"hb-grace",label:"Grace time",error:k.graceS,children:(0,a.jsx)("select",{id:"hb-grace",className:r.S,value:j.graceS,onChange:e=>S({...j,graceS:e.target.value}),children:l.q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})})]}),(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["Late once the period passes, down after the grace time too.","add"===e.mode?" The ping URL is shown once after you add it.":""]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"mon-url",label:"URL",help:"Must start with https://. A health route that touches nothing heavy works best.",error:k.url,children:(0,a.jsx)("input",{id:"mon-url",className:r.S,value:j.url,autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,url:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-code",label:"Expected status",error:k.expectedStatus,children:(0,a.jsx)("input",{id:"mon-code",className:r.S,inputMode:"numeric",value:j.expectedStatus,onChange:e=>S({...j,expectedStatus:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-timeout",label:"Timeout",error:k.timeoutS,children:(0,a.jsx)("select",{id:"mon-timeout",className:r.S,value:j.timeoutS,onChange:e=>S({...j,timeoutS:e.target.value}),children:d.L.map(e=>(0,a.jsxs)("option",{value:String(e),children:[e," s"]},e))})})]}),(0,a.jsx)(r.O,{id:"mon-match",label:"Response must contain (optional)",help:"Plain text, case-sensitive. The first 256 KB of the response is searched and never stored.",error:k.bodyContains,children:(0,a.jsx)("input",{id:"mon-match",className:r.S,value:j.bodyContains??"",placeholder:'e.g. "status":"ok"',autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,bodyContains:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-jpath",label:"Or JSON field (optional)",error:k.jsonPath,children:(0,a.jsx)("input",{id:"mon-jpath",className:`${r.S} font-mono`,value:j.jsonPath??"",placeholder:"status or checks.db",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonPath:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-jeq",label:"Equals",error:k.jsonEquals,children:(0,a.jsx)("input",{id:"mon-jeq",className:`${r.S} font-mono`,value:j.jsonEquals??"",placeholder:"ok",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonEquals:e.target.value})})})]}),(0,a.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Marked down after 3 failed checks in a row. A missing keyword counts as a failed check."})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>R(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"add"===e.mode?"Add monitor":"Save"})]})]})]})]}),(0,a.jsx)(f,{name:C?.name??"",url:C?.url??null,onClose:()=>M(null)})]})}],380030)},595349,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(46200),r=e.i(177106),s=e.i(452842),o=e.i(95187);let l=(0,o.createServerReference)("407b93fc8620471b18b3169bf2bbf571a9f3383056",o.callServer,void 0,o.findSourceMapURL,"checkNow"),d=(0,o.createServerReference)("400eaf276fd6481101d5682063d3228156a076557e",o.callServer,void 0,o.findSourceMapURL,"newPingUrl"),c=(0,o.createServerReference)("602e48f75a6fbd34dc20e4b506dc4177026f300277",o.callServer,void 0,o.findSourceMapURL,"pauseMonitor"),p=(0,o.createServerReference)("60b42cec97a63fe3d4451cf42b7b0f541a11c98a33",o.callServer,void 0,o.findSourceMapURL,"recordTestPingAction"),m=(0,o.createServerReference)("406e54c5799b77ae14a4d958521660bb07c914a450",o.callServer,void 0,o.findSourceMapURL,"removeMonitor");var u=e.i(380030),h=e.i(637598);e.s(["MonitorMenu",0,function({monitor:e}){let[o,x]=(0,t.useState)(!1),[g,f]=(0,t.useState)(!1),[j,b]=(0,t.useState)(!1),[v,S]=(0,t.useState)(null),[,k]=(0,t.useTransition)(),w=(0,t.useRef)(!1),y="heartbeat"===e.kind,N=y?`${e.appName} \xb7 ${e.path}`:`${e.appName}${e.path}`,C=(e,a)=>{if(w.current)return;w.current=!0;let t=a?n.c.loading(a):void 0;k(async()=>{try{let a=await e();a.ok?a.data?.passed===!1?n.c.warning(a.message??"",{id:t}):n.c.success(a.message??"",{id:t}):n.c.error(a.error,{id:t})}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:t})}finally{w.current=!1}})},M={label:e.ownerPaused?"Resume":"Pause",onSelect:()=>C(()=>c(e.id,!e.ownerPaused))},R=y?{label:"Show ping URL",onSelect:()=>b(!0)}:{label:"Check now",onSelect:()=>C(()=>l(e.id),`Checking ${N}…`)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.RowMenu,{label:(0,s.J)(e.appName,e.path),items:[R,...y?[{label:"Record a test ping: OK",onSelect:()=>C(()=>p(e.id,"ok"))},{label:"Record a test ping: Fail",onSelect:()=>C(()=>p(e.id,"fail"))}]:[],{label:"Edit monitor",onSelect:()=>x(!0)},M,"---",{label:"Delete",danger:!0,onSelect:()=>f(!0)}]}),o&&(0,a.jsx)(u.MonitorDialog,{mode:"edit",monitor:e,open:!0,onOpenChange:x}),(0,a.jsx)(i.f,{open:g,onOpenChange:f,title:`Delete ${N}?`,body:y?"Its ping URL stops working. This can't be undone.":"This can't be undone.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await m(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.f,{open:j,onOpenChange:b,title:`New ping URL for ${e.path}?`,body:"Make a new ping URL? The old one stops working, so update your job.",cta:"Make a new URL",onConfirm:async()=>{let a=await d(e.id);return a.ok&&a.data?.pingUrl&&S(a.data.pingUrl),{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),(0,a.jsx)(h.f,{name:e.path,url:v,onClose:()=>S(null)})]})]})}],595349)},346072,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(541299),i=e.i(691106),r=e.i(495784);e.s(["PlainTable",0,function({head:e,rows:s}){let[o,l]=(0,t.useState)(1),d=(0,r.$)(s,o);return d.page!==o&&l(d.page),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:i.o,children:[(0,a.jsx)(i.U,{head:e}),(0,a.jsx)("tbody",{children:d.rows.map(e=>(0,a.jsx)(t.Fragment,{children:e.row},e.key))})]})}),(0,a.jsx)(n.f,{page:d.page,pages:d.pages,text:(0,r.z)(d),onPage:l})]})}])},789279,e=>{let a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&a.test(e)])}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518869,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(54131),r=e.i(428325),s=e.i(95187);let o=(0,s.createServerReference)("409f31aa2fe8cfaaf21464be28da91f6ce36900530",s.callServer,void 0,s.findSourceMapURL,"updateMonitorDomain");e.s(["DomainMoved",0,function({monitorId:e,from:s,to:l,canAct:d}){let[c,p]=(0,t.useTransition)();return(0,a.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,a.jsxs)("span",{children:["Domain changed: ",(0,a.jsx)(i.MaskedText,{text:s})," → ",(0,a.jsx)(i.MaskedText,{text:l}),d?", update monitor?":""]}),d&&(0,a.jsx)(r.K,{size:"sm",disabled:c,onClick:()=>p(async()=>{try{let a=await o(e);a.ok?n.c.success(a.message??"Monitor updated."):n.c.error(a.error)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:c?"Updating…":"Update monitor"})]})}],518869)},525252,e=>{var a=e.i(843476),t=e.i(615884),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(789279),d=e.i(684496);let c=[30,60,90,180,360];function p(e){return"all"===e.scope?"all":"app"===e.scope?`app:${e.appId}`:`monitor:${e.monitorId}`}var m=e.i(95187);let u=(0,m.createServerReference)("40e6a720627e2fe9de59ede06d1bba9e61cc65943a",m.callServer,void 0,m.findSourceMapURL,"addWindow"),h=(0,m.createServerReference)("6078f35d54bbe6a142e99aa64ad7d5b9b0ba84e6f5",m.callServer,void 0,m.findSourceMapURL,"editWindow");function x(e){if("edit"===e.mode){let a=e.win;return{target:p(a),weekly:a.weekly,start:(0,d.S)(a.startsAt),durationMin:String(a.durationMin),note:a.note??""}}return{target:"all",weekly:!1,start:(0,d.S)(new Date(36e5*Math.ceil(Date.now()/36e5))),durationMin:"90",note:""}}e.s(["MaintenanceDialog",0,function(e){let[m,f]=(0,n.useState)(!1),g="edit"===e.mode?e.open:m,[j,b]=(0,n.useState)(()=>x(e)),[v,S]=(0,n.useState)({}),[k,w]=(0,n.useTransition)();function y(a){a&&(b(x(e)),S({})),"edit"===e.mode?e.onOpenChange(a):f(a)}(0,s.useHoldRefresh)(g);let{apps:N,monitors:C}=e.options,M="edit"===e.mode?p(e.win):null,R="all"===M||N.some(e=>`app:${e.id}`===M)||C.some(e=>`monitor:${e.id}`===M),U=v.scope??v.targetId;return(0,a.jsxs)(o.N,{open:g,onOpenChange:e=>{k||y(e)},children:["add"===e.mode&&(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{children:"Add maintenance window"})}),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add maintenance window":"Edit maintenance window"}),(0,a.jsxs)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Checks keep running, but they are left out of uptime % and open no alerts. ",(0,d.n)()]})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{a.preventDefault(),function(){var a,t;let n={...function(e){if("all"===e)return{scope:"all",targetId:""};let a=/^(app|monitor):(.+)$/.exec(e);return a?{scope:a[1],targetId:a[2]}:{scope:"",targetId:""}}(j.target),start:j.start,durationMin:j.durationMin,weekly:j.weekly,note:j.note},r=function(e){let a={},t="all"===e.scope||"app"===e.scope||"monitor"===e.scope?e.scope:null;t||(a.scope="Pick what it applies to.");let n="string"==typeof e.start?e.start:"",i=(0,d.a)(n);i||(a.start="Pick a start time.");let r=Number(e.durationMin);c.includes(r)||(a.durationMin="Pick how long it lasts.");let s="string"==typeof e.targetId?e.targetId:"";if(t&&"all"!==t&&!(0,l.f)(s)&&(a.targetId="app"===t?"Pick an application.":"Pick a monitor."),Object.keys(a).length||!t||!i)return{ok:!1,fieldErrors:a};let o=("string"==typeof e.note?e.note:"").trim().slice(0,120)||null;return{ok:!0,value:{scope:t,appId:"app"===t?s:null,monitorId:"monitor"===t?s:null,startsAt:i,durationMin:r,weekly:!0===e.weekly,note:o}}}(n);if(!r.ok)return S(r.fieldErrors);(a=r.value,t=new Date,!a.weekly&&a.startsAt.getTime()+6e4*a.durationMin<=t.getTime())?S({start:"That window has already ended."}):(S({}),w(async()=>{let a="add"===e.mode?await u(n):await h(e.win.id,n);if(!a.ok){S(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("Window saved",{description:a.message}),y(!1)}))}()},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsx)(r.O,{id:"mw-scope",label:"Applies to",error:U,children:(0,a.jsxs)("select",{id:"mw-scope",className:r.S,value:j.target,onChange:e=>b({...j,target:e.target.value}),children:[(0,a.jsx)("option",{value:"all",children:"All monitors"}),"edit"===e.mode&&!R&&M&&(0,a.jsx)("option",{value:M,children:e.win.target}),N.length>0&&(0,a.jsx)("optgroup",{label:"Application",children:N.map(e=>(0,a.jsx)("option",{value:`app:${e.id}`,children:e.name},e.id))}),C.length>0&&(0,a.jsx)("optgroup",{label:"One monitor",children:C.map(e=>(0,a.jsx)("option",{value:`monitor:${e.id}`,children:e.label},e.id))})]})}),(0,a.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Repeat"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:[[!1,"Once"],[!0,"Every week"]].map(([e,t])=>(0,a.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,a.jsx)("input",{type:"radio",name:"mw-rep",className:"size-4 accent-brand",checked:j.weekly===e,onChange:()=>b({...j,weekly:e})}),t]},t))})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mw-start",label:"Starts",error:v.start,children:(0,a.jsx)("input",{id:"mw-start",type:"datetime-local",className:r.S,value:j.start,onChange:e=>b({...j,start:e.target.value})})}),(0,a.jsx)(r.O,{id:"mw-len",label:"Lasts",error:v.durationMin,children:(0,a.jsx)("select",{id:"mw-len",className:r.S,value:j.durationMin,onChange:e=>b({...j,durationMin:e.target.value}),children:c.map(e=>{let t,n;return(0,a.jsx)("option",{value:String(e),children:[(t=Math.floor(e/60))?`${t} h`:"",(n=e%60)?`${n} min`:""].filter(Boolean).join(" ")},e)})})})]}),(0,a.jsx)(r.O,{id:"mw-note",label:"Note (optional)",help:"Shown on the public status page if a monitor there is affected.",children:(0,a.jsx)("input",{id:"mw-note",className:r.S,value:j.note,maxLength:120,placeholder:"Moving DNS to Cloudflare",autoComplete:"off",onChange:e=>b({...j,note:e.target.value})})})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>y(!1),disabled:k,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:k,children:k?"Saving…":"add"===e.mode?"Add window":"Save"})]})]})]})]})}],525252)},388594,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(46200),i=e.i(177106),r=e.i(452842),s=e.i(95187);let o=(0,s.createServerReference)("40467869518f3916d257cab7400e9f6d875f4550f8",s.callServer,void 0,s.findSourceMapURL,"removeWindow");var l=e.i(525252);e.s(["MaintenanceMenu",0,function({win:e,options:s}){let[d,c]=(0,t.useState)(!1),[p,m]=(0,t.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.RowMenu,{label:(0,r.J)(e.target,"window"),items:[{label:"Edit window",onSelect:()=>c(!0)},"---",{label:"Delete",danger:!0,onSelect:()=>m(!0)}]}),d&&(0,a.jsx)(l.MaintenanceDialog,{mode:"edit",win:e,options:s,open:!0,onOpenChange:c}),(0,a.jsx)(n.f,{open:p,onOpenChange:m,title:"Delete this maintenance window?",body:"Checks count toward uptime % and open alerts again outside any other window.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await o(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})}],388594)},380030,637598,e=>{var a=e.i(843476),t=e.i(359133),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(876195),d=e.i(70528),c=e.i(95187);let p=(0,c.createServerReference)("60effd59704da108e9fba0641b9fb99b45f852e7db",c.callServer,void 0,c.findSourceMapURL,"addHeartbeat"),m=(0,c.createServerReference)("600a4bf7c7377a90c099cc0f403cd92eefbd778b62",c.callServer,void 0,c.findSourceMapURL,"addMonitor"),u=(0,c.createServerReference)("60c70746fc327137a03759c66fea5ba8ae91bdd247",c.callServer,void 0,c.findSourceMapURL,"editHeartbeat"),h=(0,c.createServerReference)("60cf069c05c2301900cfca636a48130ae38214223f",c.callServer,void 0,c.findSourceMapURL,"editMonitor");var x=e.i(54131);function f(e){return null===e?{ok:!1,text:"Couldn't reach the console"}:e>=200&&e<300?{ok:!0,text:`OK \xb7 ${e}`}:404===e?{ok:!1,text:"Not found · 404"}:429===e?{ok:!1,text:"Too many pings · 429"}:{ok:!1,text:`Failed \xb7 ${e}`}}function g({name:e,url:l,onClose:d}){let c=null!==l,[p,m]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null);async function j(){if(l)try{await navigator.clipboard.writeText(l),i.c.success("Copied.")}catch{i.c.error("Couldn't copy. Select the URL and copy it yourself.")}}async function b(e){let a,t=l?(a=/\/api\/ping\/(hb_[0-9a-f]{32})\/?$/.exec(l))?`/api/ping/${a[1]}${"fail"===e?"/fail":""}`:null:null;if(t&&!p){m(!0),h(null);try{let e=await fetch(t,{method:"GET",cache:"no-store"});h(f(e.status))}catch{h(f(null))}finally{m(!1)}}}function v(){h(null),d()}return(0,s.useHoldRefresh)(c),(0,a.jsx)(o.N,{open:c,onOpenChange:e=>{e||v()},children:(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)(o.F,{className:"text-base",children:["Ping URL for ",(0,a.jsx)(x.Masked,{kind:"text",real:e})]}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Copy it now. It is shown once; the console keeps only a hash. Lost it? Make a new one from the monitor's menu."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]",children:l&&(0,a.jsx)(x.Masked,{kind:"text",real:l,masked:l.replace(/(\/api\/ping\/).*/,"$1••••••")})}),(0,a.jsx)(r.K,{size:"sm",onClick:j,children:"Copy"})]}),(0,a.jsxs)("div",{className:"mb-3.5 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("ok"),children:"Send test ping"}),(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("fail"),children:"Test fail"}),(0,a.jsx)("span",{role:"status","aria-live":"polite",className:`text-[13px] ${u?u.ok?"text-ok":"text-err":"text-ink-soft"}`,children:p?"Sending…":u?.text??""})]}),(0,a.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,a.jsx)("b",{className:"font-medium",children:"From your job"}),(0,a.jsxs)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:[(0,a.jsxs)("li",{children:["When it succeeds: ",(0,a.jsx)("span",{className:"font-mono",children:"curl -fsS -m 10 <url>"})]}),(0,a.jsxs)("li",{children:["When it fails: add ",(0,a.jsx)("span",{className:"font-mono",children:"/fail"})," to the URL"]}),(0,a.jsxs)("li",{children:["When it starts (optional): add ",(0,a.jsx)("span",{className:"font-mono",children:"/start"})]})]})]})]}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(r.K,{variant:"primary",onClick:v,children:"Done"})})]})})}e.s(["f",0,g],637598);let j={name:"",periodS:"86400",graceS:"3600"},b=[["http","HTTP check","The collector opens a URL every minute"],["heartbeat","Heartbeat","Your cron job or backup script pings a secret URL when it runs"]];function v(e){if("edit"===e.mode){let a=e.monitor;return{appId:"",kind:a.kind,url:"http"===a.kind?a.url:"",expectedStatus:String(a.expectedStatus),timeoutS:String(Math.round(a.timeoutMs/1e3)),bodyContains:a.bodyContains??"",jsonPath:a.jsonPath??"",jsonEquals:a.jsonEquals??"",name:a.name??"",periodS:String(a.periodS??j.periodS),graceS:String(a.graceS??j.graceS)}}let a=e.apps[0];return{appId:a?.id??"",kind:"http",url:a?`https://${a.domain}/api/health`:"",expectedStatus:"200",timeoutS:"5",bodyContains:"",jsonPath:"",jsonEquals:"",...j}}e.s(["MonitorDialog",0,function(e){let[c,x]=(0,n.useState)(!1),f="edit"===e.mode?e.open:c,[j,S]=(0,n.useState)(()=>v(e)),[k,w]=(0,n.useState)({}),[y,N]=(0,n.useTransition)(),[C,M]=(0,n.useState)(null);function R(a){a&&(S(v(e)),w({})),"edit"===e.mode?e.onOpenChange(a):x(a)}(0,s.useHoldRefresh)(f);let U="add"===e.mode?e.apps:[],O="add"===e.mode&&0===U.length,L="heartbeat"===j.kind,T="add"===e.mode?"HTTP checks run every minute from the collector. Heartbeats wait for your job to ping the console.":L?"Your job pings the console; nothing is fetched.":"Checked every minute from the collector.";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(o.N,{open:f,onOpenChange:e=>{y||R(e)},children:["add"===e.mode&&(O?(0,a.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,a.jsx)(r.K,{variant:"primary",disabled:!0,children:"Add monitor"}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-faint",children:"Watch an app first: Connections, then Sync."})]}):(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{variant:"primary",children:"Add monitor"})})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add monitor":"Edit monitor"}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:T})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{let t,n;a.preventDefault(),(n=(t="heartbeat"===j.kind)?(0,d.a)(j):(0,d.X)(j)).ok?(w({}),N(async()=>{let a=t?"add"===e.mode?await p(j.appId,j):await u(e.monitor.id,j):"add"===e.mode?await m(j.appId,j):await h(e.monitor.id,j);if(!a.ok){w(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("add"===e.mode?"Monitor added":"Monitor saved",{description:a.message}),R(!1);let n=a.data&&"pingUrl"in a.data?a.data.pingUrl:null;n&&M({name:j.name.trim(),url:n})})):w(n.fieldErrors)},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:["add"===e.mode&&(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Type"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:b.map(([e,t,n])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"mon-kind",value:e,checked:j.kind===e,className:"mt-[3px] accent-brand",onChange:()=>{S({...j,kind:e}),w({})}}),(0,a.jsxs)("span",{children:[t,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:n})]})]},e))})]}),(0,a.jsx)(r.O,{id:"mon-app",label:"Application",children:"add"===e.mode?(0,a.jsx)("select",{id:"mon-app",className:r.S,value:j.appId,onChange:e=>{let a=U.find(a=>a.id===e.target.value);S({...j,appId:e.target.value,url:a?`https://${a.domain}/`:j.url})},children:U.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))}):(0,a.jsx)("input",{id:"mon-app",className:r.S,value:e.monitor.appName,disabled:!0})}),L?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"hb-name",label:"Name",error:k.name,children:(0,a.jsx)("input",{id:"hb-name",className:r.S,value:j.name,placeholder:"backup job",maxLength:80,autoComplete:"off",onChange:e=>S({...j,name:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"hb-every",label:"Expected every",error:k.periodS,children:(0,a.jsx)("select",{id:"hb-every",className:r.S,value:j.periodS,onChange:e=>S({...j,periodS:e.target.value}),children:l.Q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})}),(0,a.jsx)(r.O,{id:"hb-grace",label:"Grace time",error:k.graceS,children:(0,a.jsx)("select",{id:"hb-grace",className:r.S,value:j.graceS,onChange:e=>S({...j,graceS:e.target.value}),children:l.q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})})]}),(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["Late once the period passes, down after the grace time too.","add"===e.mode?" The ping URL is shown once after you add it.":""]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"mon-url",label:"URL",help:"Must start with https://. A health route that touches nothing heavy works best.",error:k.url,children:(0,a.jsx)("input",{id:"mon-url",className:r.S,value:j.url,autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,url:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-code",label:"Expected status",error:k.expectedStatus,children:(0,a.jsx)("input",{id:"mon-code",className:r.S,inputMode:"numeric",value:j.expectedStatus,onChange:e=>S({...j,expectedStatus:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-timeout",label:"Timeout",error:k.timeoutS,children:(0,a.jsx)("select",{id:"mon-timeout",className:r.S,value:j.timeoutS,onChange:e=>S({...j,timeoutS:e.target.value}),children:d.L.map(e=>(0,a.jsxs)("option",{value:String(e),children:[e," s"]},e))})})]}),(0,a.jsx)(r.O,{id:"mon-match",label:"Response must contain (optional)",help:"Plain text, case-sensitive. The first 256 KB of the response is searched and never stored.",error:k.bodyContains,children:(0,a.jsx)("input",{id:"mon-match",className:r.S,value:j.bodyContains??"",placeholder:'e.g. "status":"ok"',autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,bodyContains:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-jpath",label:"Or JSON field (optional)",error:k.jsonPath,children:(0,a.jsx)("input",{id:"mon-jpath",className:`${r.S} font-mono`,value:j.jsonPath??"",placeholder:"status or checks.db",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonPath:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-jeq",label:"Equals",error:k.jsonEquals,children:(0,a.jsx)("input",{id:"mon-jeq",className:`${r.S} font-mono`,value:j.jsonEquals??"",placeholder:"ok",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonEquals:e.target.value})})})]}),(0,a.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Marked down after 3 failed checks in a row. A missing keyword counts as a failed check."})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>R(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"add"===e.mode?"Add monitor":"Save"})]})]})]})]}),(0,a.jsx)(g,{name:C?.name??"",url:C?.url??null,onClose:()=>M(null)})]})}],380030)},595349,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(46200),r=e.i(177106),s=e.i(452842),o=e.i(95187);let l=(0,o.createServerReference)("406983219353dc0212e8ceccfbecc3ce8439d0954c",o.callServer,void 0,o.findSourceMapURL,"checkNow"),d=(0,o.createServerReference)("40b1607690e581f1def1d8c5cbb85c8d2eb20aef63",o.callServer,void 0,o.findSourceMapURL,"newPingUrl"),c=(0,o.createServerReference)("606dbf506a43afad26f0579278aa9ad6a8be64d20f",o.callServer,void 0,o.findSourceMapURL,"pauseMonitor"),p=(0,o.createServerReference)("60a38d48ab8ae62d255c51b11da2c19d07dc739017",o.callServer,void 0,o.findSourceMapURL,"recordTestPingAction"),m=(0,o.createServerReference)("4049639cd74448e966e136e1ea54bf577955ba84f5",o.callServer,void 0,o.findSourceMapURL,"removeMonitor");var u=e.i(380030),h=e.i(637598);e.s(["MonitorMenu",0,function({monitor:e}){let[o,x]=(0,t.useState)(!1),[f,g]=(0,t.useState)(!1),[j,b]=(0,t.useState)(!1),[v,S]=(0,t.useState)(null),[,k]=(0,t.useTransition)(),w=(0,t.useRef)(!1),y="heartbeat"===e.kind,N=y?`${e.appName} \xb7 ${e.path}`:`${e.appName}${e.path}`,C=(e,a)=>{if(w.current)return;w.current=!0;let t=a?n.c.loading(a):void 0;k(async()=>{try{let a=await e();a.ok?a.data?.passed===!1?n.c.warning(a.message??"",{id:t}):n.c.success(a.message??"",{id:t}):n.c.error(a.error,{id:t})}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:t})}finally{w.current=!1}})},M={label:e.ownerPaused?"Resume":"Pause",onSelect:()=>C(()=>c(e.id,!e.ownerPaused))},R=y?{label:"Show ping URL",onSelect:()=>b(!0)}:{label:"Check now",onSelect:()=>C(()=>l(e.id),`Checking ${N}…`)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.RowMenu,{label:(0,s.J)(e.appName,e.path),items:[R,...y?[{label:"Record a test ping: OK",onSelect:()=>C(()=>p(e.id,"ok"))},{label:"Record a test ping: Fail",onSelect:()=>C(()=>p(e.id,"fail"))}]:[],{label:"Edit monitor",onSelect:()=>x(!0)},M,"---",{label:"Delete",danger:!0,onSelect:()=>g(!0)}]}),o&&(0,a.jsx)(u.MonitorDialog,{mode:"edit",monitor:e,open:!0,onOpenChange:x}),(0,a.jsx)(i.f,{open:f,onOpenChange:g,title:`Delete ${N}?`,body:y?"Its ping URL stops working. This can't be undone.":"This can't be undone.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await m(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.f,{open:j,onOpenChange:b,title:`New ping URL for ${e.path}?`,body:"Make a new ping URL? The old one stops working, so update your job.",cta:"Make a new URL",onConfirm:async()=>{let a=await d(e.id);return a.ok&&a.data?.pingUrl&&S(a.data.pingUrl),{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),(0,a.jsx)(h.f,{name:e.path,url:v,onClose:()=>S(null)})]})]})}],595349)},346072,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(541299),i=e.i(691106),r=e.i(495784);e.s(["PlainTable",0,function({head:e,rows:s}){let[o,l]=(0,t.useState)(1),d=(0,r.$)(s,o);return d.page!==o&&l(d.page),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:i.o,children:[(0,a.jsx)(i.U,{head:e}),(0,a.jsx)("tbody",{children:d.rows.map(e=>(0,a.jsx)(t.Fragment,{children:e.row},e.key))})]})}),(0,a.jsx)(n.f,{page:d.page,pages:d.pages,text:(0,r.z)(d),onPage:l})]})}])},789279,e=>{let a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&a.test(e)])}])})();
@@ -1 +1 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let t=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,t],531219)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=t.f;e.s(["f",0,(e,t)=>r=>{var s;if((null==t?void 0:t.variants)==null)return a(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:i,defaultVariants:l}=t,o=Object.keys(i).map(e=>{let t=null==r?void 0:r[e],a=null==l?void 0:l[e];if(null===t)return null;let s=n(t)||n(a);return i[e][s]}),d=r&&Object.entries(r).reduce((e,t)=>{let[n,a]=t;return void 0===a||(e[n]=a),e},{});return a(e,o,null==t||null==(s=t.compoundVariants)?void 0:s.reduce((e,t)=>{let{class:n,className:a,...r}=t;return Object.entries(r).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...l,...d}[t]):({...l,...d})[t]===n})?[...e,n,a]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}])},293654,e=>{var t=e.i(843476),n=e.i(763995),a=e.i(271645),r=e.i(846696),s=e.i(54131),i=e.i(428325),l=e.i(500443),o=e.i(799589),d=e.i(776639),c=e.i(450547);let u=["76.76.21.21"],x=/(^|\.)vercel-dns(-\d+)?\.com$/;function p(e,t=[]){return"CNAME"===e.type?x.test(e.content.toLowerCase().replace(/\.$/,"")):"A"===e.type&&[...u,...t].includes(e.content.trim())}var f=e.i(225794),h=e.i(212253),m=e.i(95187);let g=(0,m.createServerReference)("78c218d2fbbc6a83f8d4cfa7765bc31807052c210f",m.callServer,void 0,m.findSourceMapURL,"editDnsRecordAction"),b="Owner only";function v({label:e,why:n}){return(0,t.jsx)("span",{title:n,className:"inline-flex",children:(0,t.jsx)(i.K,{size:"sm",disabled:!0,"aria-label":`${e}: ${n}`,children:e})})}function j({rows:e}){return(0,t.jsx)("span",{className:"mt-2 grid grid-cols-[auto_minmax(0,1fr)_auto_minmax(0,1fr)] items-baseline gap-x-2.5 gap-y-1.5 text-ink",children:e.map(e=>(0,t.jsxs)("span",{className:"contents",children:[(0,t.jsx)("span",{className:"text-ink-soft",children:e.label}),(0,t.jsx)("span",{className:"font-mono text-[12.5px] [overflow-wrap:anywhere]",children:e.before}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-ink-faint",children:"→"}),(0,t.jsx)("span",{className:"font-mono text-[12.5px] [overflow-wrap:anywhere]",children:e.after})]},e.label))})}let y=e=>({content:e.content,ttl:e.ttl,proxied:e.proxied});function k({zoneId:e,r:n}){let a=(0,s.useMask)(),r=p(n);return(0,t.jsx)(o.p,{label:"Set DNS only",title:a("text",`Set ${n.name} to DNS only?`),body:(0,t.jsx)(j,{rows:[{label:"Proxy",before:"Proxied through Cloudflare",after:r?"DNS only, straight to Vercel":"DNS only, straight to the origin"}]}),cta:"Set DNS only",run:()=>g(e,n.id,y(n),{...y(n),proxied:!1})})}let N={content:"Content",ttl:"TTL",proxied:"Proxy"};function w({zoneId:e,r:n,mask:r}){let[s,o]=(0,a.useState)(!1);return(0,l.useHoldRefresh)(s),(0,t.jsxs)(d.N,{open:s,onOpenChange:o,children:[(0,t.jsx)(d.a,{render:(0,t.jsx)(i.K,{size:"sm"}),children:"Edit"}),(0,t.jsx)(d.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:s&&(0,t.jsx)(S,{zoneId:e,r:n,mask:r,onDone:()=>o(!1)})})]})}function S({zoneId:e,r:s,mask:l,onDone:o}){let[u,x]=(0,a.useState)(s.content),[m,b]=(0,a.useState)(s.ttl),[v,k]=(0,a.useState)(s.proxied),[w,C]=(0,a.useState)(null),[$,z]=(0,a.useState)(null),[A,O]=(0,a.useTransition)(),M={content:u,ttl:m,proxied:v},T=(0,c.z)(s.type),E=c.i.includes(s.ttl)?c.i:[...c.i,s.ttl].sort((e,t)=>e-t),P=v&&p({type:s.type,content:u}),_=e=>$?.field===e?$.text:void 0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(n.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(d.F,{className:"text-base",children:l("text",w?`Save ${s.type} record ${s.name}?`:`Edit ${s.type} record ${s.name}`)}),(0,t.jsx)(d.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:w?(0,t.jsxs)(t.Fragment,{children:["Cloudflare changes this record now. Nothing else in the zone changes, and nothing is deleted.",(0,t.jsx)(j,{rows:w.map(e=>({label:N[e.field],before:l("text",e.before),after:l("text",e.after)}))})]}):"Type and name stay as they are. Watchbell never creates or deletes records here."})]})]}),!w&&(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,t.jsx)(i.O,{id:"dns-type",label:"Type",children:(0,t.jsx)("input",{id:"dns-type",className:i.S,value:s.type,readOnly:!0,disabled:!0})}),(0,t.jsx)(i.O,{id:"dns-name",label:"Name",children:(0,t.jsx)("input",{id:"dns-name",className:i.S,value:l("text",s.name),readOnly:!0,disabled:!0})})]}),(0,t.jsx)(i.O,{id:"dns-content",label:"Content",error:_("content"),help:"CNAME"===s.type||"A"===s.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,t.jsx)("input",{id:"dns-content",className:i.S,value:u,spellCheck:!1,autoComplete:"off",maxLength:2048,"aria-invalid":!!_("content"),onChange:e=>x(e.target.value)})}),(0,t.jsx)(i.O,{id:"dns-ttl",label:"TTL",error:_("ttl"),help:v?"A proxied record always uses Auto.":void 0,children:(0,t.jsx)("select",{id:"dns-ttl",className:i.S,value:v?1:m,disabled:v,onChange:e=>b(Number(e.target.value)),children:E.map(e=>(0,t.jsx)("option",{value:e,children:(0,h.f)(e)},e))})}),T&&(0,t.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"accent-brand",checked:v,onChange:e=>k(e.target.checked)}),"Proxied through Cloudflare (orange cloud)"]}),_("proxied")&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:_("proxied")})]}),P&&(0,t.jsx)("div",{className:"mb-3.5",children:(0,t.jsx)(i.M,{tone:"warning",title:"Vercel recommends DNS only here",children:"Proxying a record that points to Vercel can stop its certificate from renewing."})}),$?.field==="form"&&(0,t.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:$.text})]}),(0,t.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:w?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.K,{onClick:()=>C(null),disabled:A,children:"Back"}),(0,t.jsx)(i.K,{variant:"primary",onClick:function(){O(async()=>{try{let t=(0,f.f)(await g(e,s.id,y(s),M),e=>l("text",e));t.ok?(r.c.success(t.message),o()):r.c.error(t.message)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:A,children:A?"Saving…":"Save record"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.K,{onClick:o,children:"Keep as is"}),(0,t.jsx)(i.K,{variant:"primary",onClick:function(){let e=(0,c.V)(s,M);if(!e.ok)return z({field:e.field,text:e.error});let t=(0,c.t)(s,M);if(!t.ok)return z({field:"form",text:t.error});z(null),C(t.changes)},children:"Review"})]})})]})}e.s(["DnsRecordActions",0,function({zoneId:e,r:n,owner:a,vercel:r}){let i=(0,s.useMask)(),l=n.proxied&&r;return a?(0,t.jsxs)("div",{className:"flex gap-1.5",children:[l&&(0,t.jsx)(k,{zoneId:e,r:n}),(0,c.O)(n.type)?(0,t.jsx)(w,{zoneId:e,r:n,mask:i}):(0,t.jsx)(v,{label:"Edit",why:"Only A, AAAA, CNAME and TXT records can be edited here."})]}):(0,t.jsxs)("div",{className:"flex gap-1.5",children:[l&&(0,t.jsx)(v,{label:"Set DNS only",why:b}),(0,t.jsx)(v,{label:"Edit",why:b})]})},"SetDnsOnlyButton",0,k],293654)},46200,e=>{var t=e.i(843476),n=e.i(146874),a=e.i(239692),r=e.i(271645),s=e.i(846696),i=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:x,cta:p,danger:f=!1,onConfirm:h}){let[m,g]=(0,r.useState)(!1),b=d??m,[v,j]=(0,r.useTransition)();function y(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(b),(0,t.jsxs)(o.N,{open:b,onOpenChange:e=>{v||y(e)},children:[void 0!==e&&((0,r.isValidElement)(e)?(0,t.jsx)(o.a,{render:e}):(0,t.jsx)(o.a,{children:e})),(0,t.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${f?"text-err":"text-ink-soft"}`,children:f?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.F,{className:"text-base",children:u}),(0,t.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:x})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(i.K,{onClick:()=>y(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(i.K,{variant:f?"danger":"primary",onClick:function(){j(async()=>{try{let e=await h();e.ok?(s.c.success(e.message),y(!1)):s.c.error(e.message)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:v,children:v?"Working…":p})]})]})]})}])},374931,e=>{var t=e.i(843476),n=e.i(531219),a=e.i(357772),r=e.i(271645),s=e.i(54131),i=e.i(428325),l=e.i(541299),o=e.i(691106),d=e.i(975157),c=e.i(322534),u=e.i(495784);e.s(["ListFilter",0,function({placeholder:e,states:x,groups:p,head:f,rows:h,chips:m}){var g,b;let v,[j,y]=(0,r.useState)(""),[k,N]=(0,r.useState)(""),[w,S]=(0,r.useState)(""),[C,$]=(0,r.useState)(""),[z,A]=(0,r.useState)(1),O=(0,s.useMask)(),M=(g=h.map(e=>({...e,text:`${e.text} ${O("text",e.text)}`})),v=(b={text:j,state:k,group:C,tag:w}).text.trim().toLowerCase(),g.filter(e=>(!b.state||e.state===b.state)&&(!b.group||e.group===b.group)&&(!b.tag||(e.tags??[]).includes(b.tag))&&(!v||e.text.toLowerCase().includes(v)))),T=(0,u.$)(M,z),E=T.rows;T.page!==z&&A(T.page);let P=x?.find(([e])=>e===k)?.[1];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[(0,t.jsx)("input",{className:(0,d.f)(i.S,"w-[240px] max-[720px]:w-full"),placeholder:e,"aria-label":e,value:j,onChange:e=>{y(e.target.value),A(1)}}),x&&(0,t.jsxs)("select",{className:(0,d.f)(i.S,"w-auto"),"aria-label":"State",value:k,onChange:e=>{N(e.target.value),A(1)},children:[(0,t.jsx)("option",{value:"",children:"All states"}),x.map(([e,n])=>(0,t.jsx)("option",{value:e,children:n},e))]}),p&&p.length>1&&(0,t.jsxs)("select",{className:(0,d.f)(i.S,"w-auto"),"aria-label":"Account",value:C,onChange:e=>{$(e.target.value),A(1)},children:[(0,t.jsx)("option",{value:"",children:"All accounts"}),p.map(e=>(0,t.jsx)("option",{value:e,children:O("account",e)},e))]}),m?.map(([e,n])=>(0,t.jsx)("button",{type:"button","aria-pressed":w===e,onClick:()=>{S(w===e?"":e),A(1)},className:(0,d.f)("rounded-[5px] border px-2 py-0.5 text-[12.5px]",w===e?"border-brand bg-brand-soft text-brand":"border-line text-ink-soft hover:bg-hover"),children:n},e)),P&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["State: ",P,(0,t.jsx)("button",{type:"button","aria-label":"Remove filter",className:"px-0.5",onClick:()=>{N(""),A(1)},children:(0,t.jsx)(a.f,{size:13})})]}),C&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["Account: ",(0,t.jsx)(s.Masked,{kind:"account",real:C}),(0,t.jsx)("button",{type:"button","aria-label":"Remove account filter",className:"px-0.5",onClick:()=>{$(""),A(1)},children:(0,t.jsx)(a.f,{size:13})})]}),(0,t.jsx)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:(0,c.O)(M.length)})]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:o.o,children:[(0,t.jsx)(o.U,{head:f}),(0,t.jsx)("tbody",{children:E.map(e=>(0,t.jsx)(r.Fragment,{children:e.row},e.key))})]})}),0===M.length&&h.length>0&&(0,t.jsxs)(i.k,{icon:n.f,title:"No results",children:["Nothing matches these filters."," ",(0,t.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{y(""),N(""),$(""),S(""),A(1)},children:"Clear filters"})]}),(0,t.jsx)(l.f,{page:T.page,pages:T.pages,text:(0,u.z)(T),onPage:A})]})}],374931)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),a=e.i(428325),r=e.i(975157);function s(e,t,n=25){let a=e.length,r=Math.max(1,Math.ceil(a/n)),i=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),r),l=(i-1)*n,o=e.slice(l,l+n);return{rows:o,page:i,pages:r,from:0===a?0:l+1,to:l+o.length,total:a}}e.s(["f",0,function({page:e,pages:s,text:i,onPage:l,bleed:o=!1}){let d=(0,n.useRef)(null),c=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==c.current&&(d.current?.querySelectorAll("button")[c.current]?.focus(),c.current=null)},[e]),s<=1)return null;let u=(e,t)=>{(e<=1||e>=s)&&(c.current=t),l(e)};return(0,t.jsxs)("div",{className:(0,r.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",o?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:i}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(a.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>u(e-1,1),children:"‹ Previous"}),(0,t.jsx)(a.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=s,onClick:()=>u(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,a){return a<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,s,"f",0,function(e,t,n,a=25){let r=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),i=s(e.slice(r),t,a);return 0===r||i.page>1?{...i,shift:r}:{...s(e,1,a),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),a=e.i(54131),r=e.i(46200),s=e.i(428325);function i(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function l(){let e=(0,a.useMask)();return t=>i(t,t=>e("text",t))}e.s(["f",0,i],225794),e.s(["p",0,function({label:e,title:n,body:a,cta:i,danger:o=!1,run:d}){let c=l();return(0,t.jsx)(r.f,{trigger:(0,t.jsx)(s.K,{variant:o?"danger":"secondary",children:e}),title:n,body:a,cta:i,danger:o,onConfirm:async()=>c(await d())})},"W",0,function(){let[e,a]=(0,n.useState)(null),s=l(),i=e?(0,t.jsx)(r.f,{open:!0,onOpenChange:e=>{e||a(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>s(await e.run())}):null;return{open:a,dialog:i}}],799589)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),a=e.i(828376);e.s(["f",0,a],998218);var a=a,r=e.i(209977),s=e.i(921637),i=e.i(141708),l=e.i(593480),o=e.i(309169),d=a;e.s(["f",0,d],152744);var d=a,c=e.i(975157),u=e.i(271645),x=e.i(540886),p=e.i(552245);let f=u.forwardRef(function(e,t){let{render:n,className:a,disabled:r=!1,focusableWhenDisabled:s=!1,nativeButton:i=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,x.f)({disabled:r,focusableWhenDisabled:s,native:i});return(0,p.a)("button",e,{state:{disabled:r},ref:[t,c],props:[o,d]})}),h=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:a="default",...r}){return(0,t.jsx)(f,{"data-slot":"button",className:(0,c.f)(h({variant:n,size:a,className:e})),...r})}var g=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,g.f)(b);function j({...e}){return(0,t.jsx)(r.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...n}){return(0,t.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:a=!0,...r}){return(0,t.jsxs)(j,{children:[(0,t.jsx)(y,{}),(0,t.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...r,children:[n,a&&(0,t.jsxs)(s.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(a.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),a=[300,3600,86400,604800],r=[300,3600,21600];e.s(["q",0,r,"Q",0,a,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let s=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function i(e){let t=s.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function l([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function o(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=i(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let a=e=>""===e?[]:e.split(":"),r=a(n[0]),s=2===n.length?a(n[1]):[],l=8-r.length-s.length;if(1===n.length?0!==l:l<1)return null;let o=[...r,...Array(2===n.length?l:0).fill("0"),...s];return 8===o.length&&o.every(e=>/^[0-9a-f]{1,4}$/.test(e))?o.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return l([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=i(t);if(n)return l(n);let a=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(a)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],c=/[\u0000-\u001f\u007f-\u009f]/,u=/[­؜᠎​-‏‪-‮⁠-⁤⁦-⁩]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),s=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(s)||c.test(s)||u.test(n)?t.name="Name the job, like backup job.":s.length>60&&(t.name="Keep the name to 60 characters.");let i=Number(e?.periodS);a.includes(i)||(t.periodS="Pick how often the job runs.");let l=Number(e?.graceS);return(r.includes(l)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:s,periodS:i,graceS:l}}},"X",0,function(e){let a={},r=String(e?.url??"").trim(),s=null;try{s=new URL(r)}catch{s=null}s&&s.hostname&&!(r.length>2048)&&"scheme"!==o(s)?"blocked"===o(s)&&(a.url="Use a public https address."):a.url="Enter a full https:// address.";let i=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(i)||(a.expectedStatus="Enter an HTTP status between 100 and 599.");let l=Number(e?.timeoutS);d.includes(l)||(a.timeoutS="Pick a timeout.");let c=String(e?.bodyContains??"").trim(),u=String(e?.jsonPath??"").trim(),x=String(e?.jsonEquals??"").trim();return(c.length>200&&(a.bodyContains="Keep the keyword under 200 characters."),!u&&x&&(a.jsonPath="Add a JSON path for the value."),u&&(u.length>100||!function(e){if(!t.test(e))return null;let a=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))a.push(void 0!==t[1]?t[1]:Number(t[2]));return a.some(e=>"string"==typeof e&&n.has(e))?null:a}(u)?a.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":x?x.length>200&&(a.jsonEquals="Keep the value under 200 characters."):a.jsonEquals="Enter the value it must equal.",c&&!a.bodyContains&&(a.bodyContains="Use either a keyword or a JSON field.")),Object.keys(a).length||!s)?{ok:!1,fieldErrors:a}:(s.hash="",{ok:!0,value:{url:s.toString(),expectedStatus:Number(i),timeoutMs:1e3*l,bodyContains:c||null,jsonPath:u||null,jsonEquals:u?x:null}})}],70528)},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let t=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,t],531219)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=t.f;e.s(["f",0,(e,t)=>r=>{var s;if((null==t?void 0:t.variants)==null)return a(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:i,defaultVariants:l}=t,o=Object.keys(i).map(e=>{let t=null==r?void 0:r[e],a=null==l?void 0:l[e];if(null===t)return null;let s=n(t)||n(a);return i[e][s]}),d=r&&Object.entries(r).reduce((e,t)=>{let[n,a]=t;return void 0===a||(e[n]=a),e},{});return a(e,o,null==t||null==(s=t.compoundVariants)?void 0:s.reduce((e,t)=>{let{class:n,className:a,...r}=t;return Object.entries(r).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...l,...d}[t]):({...l,...d})[t]===n})?[...e,n,a]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}])},293654,e=>{var t=e.i(843476),n=e.i(763995),a=e.i(271645),r=e.i(846696),s=e.i(54131),i=e.i(428325),l=e.i(500443),o=e.i(799589),d=e.i(776639),c=e.i(450547);let u=["76.76.21.21"],x=/(^|\.)vercel-dns(-\d+)?\.com$/;function p(e,t=[]){return"CNAME"===e.type?x.test(e.content.toLowerCase().replace(/\.$/,"")):"A"===e.type&&[...u,...t].includes(e.content.trim())}var f=e.i(225794),h=e.i(212253),m=e.i(95187);let g=(0,m.createServerReference)("78982a0630e3474b37efeb137680df629a4909920c",m.callServer,void 0,m.findSourceMapURL,"editDnsRecordAction"),b="Owner only";function v({label:e,why:n}){return(0,t.jsx)("span",{title:n,className:"inline-flex",children:(0,t.jsx)(i.K,{size:"sm",disabled:!0,"aria-label":`${e}: ${n}`,children:e})})}function j({rows:e}){return(0,t.jsx)("span",{className:"mt-2 grid grid-cols-[auto_minmax(0,1fr)_auto_minmax(0,1fr)] items-baseline gap-x-2.5 gap-y-1.5 text-ink",children:e.map(e=>(0,t.jsxs)("span",{className:"contents",children:[(0,t.jsx)("span",{className:"text-ink-soft",children:e.label}),(0,t.jsx)("span",{className:"font-mono text-[12.5px] [overflow-wrap:anywhere]",children:e.before}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-ink-faint",children:"→"}),(0,t.jsx)("span",{className:"font-mono text-[12.5px] [overflow-wrap:anywhere]",children:e.after})]},e.label))})}let y=e=>({content:e.content,ttl:e.ttl,proxied:e.proxied});function k({zoneId:e,r:n}){let a=(0,s.useMask)(),r=p(n);return(0,t.jsx)(o.p,{label:"Set DNS only",title:a("text",`Set ${n.name} to DNS only?`),body:(0,t.jsx)(j,{rows:[{label:"Proxy",before:"Proxied through Cloudflare",after:r?"DNS only, straight to Vercel":"DNS only, straight to the origin"}]}),cta:"Set DNS only",run:()=>g(e,n.id,y(n),{...y(n),proxied:!1})})}let N={content:"Content",ttl:"TTL",proxied:"Proxy"};function w({zoneId:e,r:n,mask:r}){let[s,o]=(0,a.useState)(!1);return(0,l.useHoldRefresh)(s),(0,t.jsxs)(d.N,{open:s,onOpenChange:o,children:[(0,t.jsx)(d.a,{render:(0,t.jsx)(i.K,{size:"sm"}),children:"Edit"}),(0,t.jsx)(d.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:s&&(0,t.jsx)(S,{zoneId:e,r:n,mask:r,onDone:()=>o(!1)})})]})}function S({zoneId:e,r:s,mask:l,onDone:o}){let[u,x]=(0,a.useState)(s.content),[m,b]=(0,a.useState)(s.ttl),[v,k]=(0,a.useState)(s.proxied),[w,C]=(0,a.useState)(null),[$,z]=(0,a.useState)(null),[A,O]=(0,a.useTransition)(),M={content:u,ttl:m,proxied:v},T=(0,c.z)(s.type),E=c.i.includes(s.ttl)?c.i:[...c.i,s.ttl].sort((e,t)=>e-t),P=v&&p({type:s.type,content:u}),_=e=>$?.field===e?$.text:void 0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(n.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(d.F,{className:"text-base",children:l("text",w?`Save ${s.type} record ${s.name}?`:`Edit ${s.type} record ${s.name}`)}),(0,t.jsx)(d.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:w?(0,t.jsxs)(t.Fragment,{children:["Cloudflare changes this record now. Nothing else in the zone changes, and nothing is deleted.",(0,t.jsx)(j,{rows:w.map(e=>({label:N[e.field],before:l("text",e.before),after:l("text",e.after)}))})]}):"Type and name stay as they are. Watchbell never creates or deletes records here."})]})]}),!w&&(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,t.jsx)(i.O,{id:"dns-type",label:"Type",children:(0,t.jsx)("input",{id:"dns-type",className:i.S,value:s.type,readOnly:!0,disabled:!0})}),(0,t.jsx)(i.O,{id:"dns-name",label:"Name",children:(0,t.jsx)("input",{id:"dns-name",className:i.S,value:l("text",s.name),readOnly:!0,disabled:!0})})]}),(0,t.jsx)(i.O,{id:"dns-content",label:"Content",error:_("content"),help:"CNAME"===s.type||"A"===s.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,t.jsx)("input",{id:"dns-content",className:i.S,value:u,spellCheck:!1,autoComplete:"off",maxLength:2048,"aria-invalid":!!_("content"),onChange:e=>x(e.target.value)})}),(0,t.jsx)(i.O,{id:"dns-ttl",label:"TTL",error:_("ttl"),help:v?"A proxied record always uses Auto.":void 0,children:(0,t.jsx)("select",{id:"dns-ttl",className:i.S,value:v?1:m,disabled:v,onChange:e=>b(Number(e.target.value)),children:E.map(e=>(0,t.jsx)("option",{value:e,children:(0,h.f)(e)},e))})}),T&&(0,t.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"accent-brand",checked:v,onChange:e=>k(e.target.checked)}),"Proxied through Cloudflare (orange cloud)"]}),_("proxied")&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:_("proxied")})]}),P&&(0,t.jsx)("div",{className:"mb-3.5",children:(0,t.jsx)(i.M,{tone:"warning",title:"Vercel recommends DNS only here",children:"Proxying a record that points to Vercel can stop its certificate from renewing."})}),$?.field==="form"&&(0,t.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:$.text})]}),(0,t.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:w?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.K,{onClick:()=>C(null),disabled:A,children:"Back"}),(0,t.jsx)(i.K,{variant:"primary",onClick:function(){O(async()=>{try{let t=(0,f.f)(await g(e,s.id,y(s),M),e=>l("text",e));t.ok?(r.c.success(t.message),o()):r.c.error(t.message)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:A,children:A?"Saving…":"Save record"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.K,{onClick:o,children:"Keep as is"}),(0,t.jsx)(i.K,{variant:"primary",onClick:function(){let e=(0,c.V)(s,M);if(!e.ok)return z({field:e.field,text:e.error});let t=(0,c.t)(s,M);if(!t.ok)return z({field:"form",text:t.error});z(null),C(t.changes)},children:"Review"})]})})]})}e.s(["DnsRecordActions",0,function({zoneId:e,r:n,owner:a,vercel:r}){let i=(0,s.useMask)(),l=n.proxied&&r;return a?(0,t.jsxs)("div",{className:"flex gap-1.5",children:[l&&(0,t.jsx)(k,{zoneId:e,r:n}),(0,c.O)(n.type)?(0,t.jsx)(w,{zoneId:e,r:n,mask:i}):(0,t.jsx)(v,{label:"Edit",why:"Only A, AAAA, CNAME and TXT records can be edited here."})]}):(0,t.jsxs)("div",{className:"flex gap-1.5",children:[l&&(0,t.jsx)(v,{label:"Set DNS only",why:b}),(0,t.jsx)(v,{label:"Edit",why:b})]})},"SetDnsOnlyButton",0,k],293654)},46200,e=>{var t=e.i(843476),n=e.i(146874),a=e.i(239692),r=e.i(271645),s=e.i(846696),i=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:x,cta:p,danger:f=!1,onConfirm:h}){let[m,g]=(0,r.useState)(!1),b=d??m,[v,j]=(0,r.useTransition)();function y(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(b),(0,t.jsxs)(o.N,{open:b,onOpenChange:e=>{v||y(e)},children:[void 0!==e&&((0,r.isValidElement)(e)?(0,t.jsx)(o.a,{render:e}):(0,t.jsx)(o.a,{children:e})),(0,t.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${f?"text-err":"text-ink-soft"}`,children:f?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.F,{className:"text-base",children:u}),(0,t.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:x})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(i.K,{onClick:()=>y(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(i.K,{variant:f?"danger":"primary",onClick:function(){j(async()=>{try{let e=await h();e.ok?(s.c.success(e.message),y(!1)):s.c.error(e.message)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:v,children:v?"Working…":p})]})]})]})}])},374931,e=>{var t=e.i(843476),n=e.i(531219),a=e.i(357772),r=e.i(271645),s=e.i(54131),i=e.i(428325),l=e.i(541299),o=e.i(691106),d=e.i(975157),c=e.i(322534),u=e.i(495784);e.s(["ListFilter",0,function({placeholder:e,states:x,groups:p,head:f,rows:h,chips:m}){var g,b;let v,[j,y]=(0,r.useState)(""),[k,N]=(0,r.useState)(""),[w,S]=(0,r.useState)(""),[C,$]=(0,r.useState)(""),[z,A]=(0,r.useState)(1),O=(0,s.useMask)(),M=(g=h.map(e=>({...e,text:`${e.text} ${O("text",e.text)}`})),v=(b={text:j,state:k,group:C,tag:w}).text.trim().toLowerCase(),g.filter(e=>(!b.state||e.state===b.state)&&(!b.group||e.group===b.group)&&(!b.tag||(e.tags??[]).includes(b.tag))&&(!v||e.text.toLowerCase().includes(v)))),T=(0,u.$)(M,z),E=T.rows;T.page!==z&&A(T.page);let P=x?.find(([e])=>e===k)?.[1];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[(0,t.jsx)("input",{className:(0,d.f)(i.S,"w-[240px] max-[720px]:w-full"),placeholder:e,"aria-label":e,value:j,onChange:e=>{y(e.target.value),A(1)}}),x&&(0,t.jsxs)("select",{className:(0,d.f)(i.S,"w-auto"),"aria-label":"State",value:k,onChange:e=>{N(e.target.value),A(1)},children:[(0,t.jsx)("option",{value:"",children:"All states"}),x.map(([e,n])=>(0,t.jsx)("option",{value:e,children:n},e))]}),p&&p.length>1&&(0,t.jsxs)("select",{className:(0,d.f)(i.S,"w-auto"),"aria-label":"Account",value:C,onChange:e=>{$(e.target.value),A(1)},children:[(0,t.jsx)("option",{value:"",children:"All accounts"}),p.map(e=>(0,t.jsx)("option",{value:e,children:O("account",e)},e))]}),m?.map(([e,n])=>(0,t.jsx)("button",{type:"button","aria-pressed":w===e,onClick:()=>{S(w===e?"":e),A(1)},className:(0,d.f)("rounded-[5px] border px-2 py-0.5 text-[12.5px]",w===e?"border-brand bg-brand-soft text-brand":"border-line text-ink-soft hover:bg-hover"),children:n},e)),P&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["State: ",P,(0,t.jsx)("button",{type:"button","aria-label":"Remove filter",className:"px-0.5",onClick:()=>{N(""),A(1)},children:(0,t.jsx)(a.f,{size:13})})]}),C&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["Account: ",(0,t.jsx)(s.Masked,{kind:"account",real:C}),(0,t.jsx)("button",{type:"button","aria-label":"Remove account filter",className:"px-0.5",onClick:()=>{$(""),A(1)},children:(0,t.jsx)(a.f,{size:13})})]}),(0,t.jsx)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:(0,c.O)(M.length)})]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:o.o,children:[(0,t.jsx)(o.U,{head:f}),(0,t.jsx)("tbody",{children:E.map(e=>(0,t.jsx)(r.Fragment,{children:e.row},e.key))})]})}),0===M.length&&h.length>0&&(0,t.jsxs)(i.k,{icon:n.f,title:"No results",children:["Nothing matches these filters."," ",(0,t.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{y(""),N(""),$(""),S(""),A(1)},children:"Clear filters"})]}),(0,t.jsx)(l.f,{page:T.page,pages:T.pages,text:(0,u.z)(T),onPage:A})]})}],374931)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),a=e.i(428325),r=e.i(975157);function s(e,t,n=25){let a=e.length,r=Math.max(1,Math.ceil(a/n)),i=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),r),l=(i-1)*n,o=e.slice(l,l+n);return{rows:o,page:i,pages:r,from:0===a?0:l+1,to:l+o.length,total:a}}e.s(["f",0,function({page:e,pages:s,text:i,onPage:l,bleed:o=!1}){let d=(0,n.useRef)(null),c=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==c.current&&(d.current?.querySelectorAll("button")[c.current]?.focus(),c.current=null)},[e]),s<=1)return null;let u=(e,t)=>{(e<=1||e>=s)&&(c.current=t),l(e)};return(0,t.jsxs)("div",{className:(0,r.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",o?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:i}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(a.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>u(e-1,1),children:"‹ Previous"}),(0,t.jsx)(a.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=s,onClick:()=>u(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,a){return a<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,s,"f",0,function(e,t,n,a=25){let r=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),i=s(e.slice(r),t,a);return 0===r||i.page>1?{...i,shift:r}:{...s(e,1,a),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),a=e.i(54131),r=e.i(46200),s=e.i(428325);function i(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function l(){let e=(0,a.useMask)();return t=>i(t,t=>e("text",t))}e.s(["f",0,i],225794),e.s(["p",0,function({label:e,title:n,body:a,cta:i,danger:o=!1,run:d}){let c=l();return(0,t.jsx)(r.f,{trigger:(0,t.jsx)(s.K,{variant:o?"danger":"secondary",children:e}),title:n,body:a,cta:i,danger:o,onConfirm:async()=>c(await d())})},"W",0,function(){let[e,a]=(0,n.useState)(null),s=l(),i=e?(0,t.jsx)(r.f,{open:!0,onOpenChange:e=>{e||a(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>s(await e.run())}):null;return{open:a,dialog:i}}],799589)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),a=e.i(828376);e.s(["f",0,a],998218);var a=a,r=e.i(209977),s=e.i(921637),i=e.i(141708),l=e.i(593480),o=e.i(309169),d=a;e.s(["f",0,d],152744);var d=a,c=e.i(975157),u=e.i(271645),x=e.i(540886),p=e.i(552245);let f=u.forwardRef(function(e,t){let{render:n,className:a,disabled:r=!1,focusableWhenDisabled:s=!1,nativeButton:i=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,x.f)({disabled:r,focusableWhenDisabled:s,native:i});return(0,p.a)("button",e,{state:{disabled:r},ref:[t,c],props:[o,d]})}),h=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:a="default",...r}){return(0,t.jsx)(f,{"data-slot":"button",className:(0,c.f)(h({variant:n,size:a,className:e})),...r})}var g=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,g.f)(b);function j({...e}){return(0,t.jsx)(r.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...n}){return(0,t.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:a=!0,...r}){return(0,t.jsxs)(j,{children:[(0,t.jsx)(y,{}),(0,t.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...r,children:[n,a&&(0,t.jsxs)(s.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(a.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),a=[300,3600,86400,604800],r=[300,3600,21600];e.s(["q",0,r,"Q",0,a,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let s=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function i(e){let t=s.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function l([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function o(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=i(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let a=e=>""===e?[]:e.split(":"),r=a(n[0]),s=2===n.length?a(n[1]):[],l=8-r.length-s.length;if(1===n.length?0!==l:l<1)return null;let o=[...r,...Array(2===n.length?l:0).fill("0"),...s];return 8===o.length&&o.every(e=>/^[0-9a-f]{1,4}$/.test(e))?o.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return l([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=i(t);if(n)return l(n);let a=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(a)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],c=/[\u0000-\u001f\u007f-\u009f]/,u=/[­؜᠎​-‏‪-‮⁠-⁤⁦-⁩]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),s=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(s)||c.test(s)||u.test(n)?t.name="Name the job, like backup job.":s.length>60&&(t.name="Keep the name to 60 characters.");let i=Number(e?.periodS);a.includes(i)||(t.periodS="Pick how often the job runs.");let l=Number(e?.graceS);return(r.includes(l)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:s,periodS:i,graceS:l}}},"X",0,function(e){let a={},r=String(e?.url??"").trim(),s=null;try{s=new URL(r)}catch{s=null}s&&s.hostname&&!(r.length>2048)&&"scheme"!==o(s)?"blocked"===o(s)&&(a.url="Use a public https address."):a.url="Enter a full https:// address.";let i=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(i)||(a.expectedStatus="Enter an HTTP status between 100 and 599.");let l=Number(e?.timeoutS);d.includes(l)||(a.timeoutS="Pick a timeout.");let c=String(e?.bodyContains??"").trim(),u=String(e?.jsonPath??"").trim(),x=String(e?.jsonEquals??"").trim();return(c.length>200&&(a.bodyContains="Keep the keyword under 200 characters."),!u&&x&&(a.jsonPath="Add a JSON path for the value."),u&&(u.length>100||!function(e){if(!t.test(e))return null;let a=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))a.push(void 0!==t[1]?t[1]:Number(t[2]));return a.some(e=>"string"==typeof e&&n.has(e))?null:a}(u)?a.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":x?x.length>200&&(a.jsonEquals="Keep the value under 200 characters."):a.jsonEquals="Enter the value it must equal.",c&&!a.bodyContains&&(a.bodyContains="Use either a keyword or a JSON field.")),Object.keys(a).length||!s)?{ok:!1,fieldErrors:a}:(s.hash="",{ok:!0,value:{url:s.toString(),expectedStatus:Number(i),timeoutMs:1e3*l,bodyContains:c||null,jsonPath:u||null,jsonEquals:u?x:null}})}],70528)},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
@@ -1 +1 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23990,e=>{let s=(0,e.i(33550).f)("outline","key","Key",[["path",{d:"M16.555 3.843l3.602 3.602a2.877 2.877 0 0 1 0 4.069l-2.643 2.643a2.877 2.877 0 0 1 -4.069 0l-.301 -.301l-6.558 6.558a2 2 0 0 1 -1.239 .578l-.175 .008h-1.172a1 1 0 0 1 -.993 -.883l-.007 -.117v-1.172a2 2 0 0 1 .467 -1.284l.119 -.13l.414 -.414h2v-2h2v-2l2.144 -2.144l-.301 -.301a2.877 2.877 0 0 1 0 -4.069l2.643 -2.643a2.877 2.877 0 0 1 4.069 0",key:"svg-0"}],["path",{d:"M15 9h.01",key:"svg-1"}]]);e.s(["f",0,s],23990)},844582,e=>{let s=(0,e.i(33550).f)("outline","player-play","PlayerPlay",[["path",{d:"M7 4v16l13 -8l-13 -8",key:"svg-0"}]]);e.s(["f",0,s],844582)},495211,e=>{var s=e.i(843476),t=e.i(23990),a=e.i(271645),r=e.i(846696),i=e.i(46200),n=e.i(428325),c=e.i(500443),o=e.i(776639),l=e.i(95187);let d=(0,l.createServerReference)("4020d9e51e91b707d0f6cc0f3f4c70c14f4c7ef549",l.callServer,void 0,l.findSourceMapURL,"deleteMetricsKey"),p=(0,l.createServerReference)("70714df40d9ecc48b8d1df670690dd337e61204552",l.callServer,void 0,l.findSourceMapURL,"setMetricsKey");function h({id:e,projectRef:i,alias:l,hasKey:d,open:u,onOpenChange:x,trigger:f}){let[m,b]=(0,a.useState)(!1),y=u??m,[k,v]=(0,a.useState)(""),[j,g]=(0,a.useState)(),[S,R]=(0,a.useTransition)();function w(e){S||(v(""),g(void 0),void 0===u&&b(e),x?.(e))}return(0,c.useHoldRefresh)(y),(0,s.jsxs)(o.N,{open:y,onOpenChange:w,children:[f&&(0,s.jsx)(o.a,{render:f}),(0,s.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t.f,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(o.F,{className:"text-base",children:[d?"Replace":"Add"," metrics key for ",l]}),(0,s.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"CPU, RAM, disk and connections come from Supabase's Metrics API (beta), which needs a Secret API key of this project."})]})]}),(0,s.jsxs)("form",{onSubmit:s=>{s.preventDefault(),R(async()=>{try{let s=await p(e,i,k);if(!s.ok){g(s.fieldErrors?.key??s.error),r.c.error(s.error);return}let t=s.message?.includes("test call failed");r.c.success(`Metrics key saved for ${l}`,{description:t?"The test call failed; the Compute panel shows why.":"CPU shows after the next scrape, in about 5 minutes."}),v(""),w(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,s.jsxs)("div",{className:"px-[18px] pt-2 text-[13px] text-ink-soft",children:[(0,s.jsxs)("ol",{className:"mb-3 list-decimal space-y-1 pl-5",children:[(0,s.jsxs)("li",{children:["In Supabase, open ",(0,s.jsx)("b",{className:"font-medium text-ink",children:"Project Settings → API Keys"})," for this project and create a new Secret API key named ",(0,s.jsx)("span",{className:"font-mono text-ink",children:"watchbell-metrics"}),"."]}),(0,s.jsx)("li",{children:"Paste it below. A secret key has full database power, so the console stores it encrypted, never shows it again and only sends it to this project's metrics endpoint."}),(0,s.jsx)("li",{children:"You can revoke it in Supabase at any time; the panel then shows the error and you can add a new one."})]}),(0,s.jsx)(n.O,{id:`mk-${e}`,label:"Secret API key",error:j,help:"Starts with sb_secret_. Saving makes one test call to the metrics endpoint.",children:(0,s.jsx)("input",{id:`mk-${e}`,type:"password",className:`${n.S} font-mono`,autoComplete:"off",spellCheck:!1,placeholder:"sb_secret_…",value:k,onChange:e=>{v(e.target.value),g(void 0)}})})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(n.K,{type:"button",onClick:()=>w(!1),disabled:S,children:"Cancel"}),(0,s.jsx)(n.K,{type:"submit",variant:"primary",disabled:S||!k.trim(),children:S?"Testing…":d?"Replace key":"Save key"})]})]})]})]})}e.s(["MetricsKeyButtons",0,function({id:e,projectRef:t,alias:a,hasKey:r}){return(0,s.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,s.jsx)(h,{id:e,projectRef:t,alias:a,hasKey:r,trigger:(0,s.jsx)(n.K,{size:"sm",children:r?"Replace key":"Add metrics key"})}),r&&(0,s.jsx)(i.f,{trigger:(0,s.jsx)(n.K,{size:"sm",variant:"ghost",children:"Remove"}),danger:!0,title:`Remove the metrics key of ${a}?`,cta:"Remove key",body:"The console deletes the stored key and this project's compute history. Revoke the key in Supabase (Project Settings → API Keys) too.",onConfirm:async()=>{let s=await d(e);return s.ok?{ok:!0,message:`Metrics key removed for ${a}.`}:{ok:!1,message:s.error}}})]})},"MetricsKeyDialog",0,h],495211)},56992,e=>{var s=e.i(843476),t=e.i(844582),a=e.i(271645),r=e.i(846696),i=e.i(54131),n=e.i(46200),c=e.i(428325),o=e.i(500443),l=e.i(799589),d=e.i(177106),p=e.i(776639),h=e.i(95187);let u=(0,h.createServerReference)("604d38ffc1771d40a17f6d7e5176cce91f66d5c24f",h.callServer,void 0,h.findSourceMapURL,"checkServicesAction"),x=(0,h.createServerReference)("603b5bc02e3d3686a3e50f54d18ff09b37f48d4303",h.callServer,void 0,h.findSourceMapURL,"pauseAction"),f=(0,h.createServerReference)("6050bc986ffc4c16b62d6da5186b1a86d3aa93e144",h.callServer,void 0,h.findSourceMapURL,"restoreAction"),m=(0,h.createServerReference)("6014cd96890e8778ab373c038a3e9f091c69ae37be",h.callServer,void 0,h.findSourceMapURL,"setAutoRestore"),b=(0,h.createServerReference)("6097b44728963bb7f29514f2834f41bbbdd07c4bd5",h.callServer,void 0,h.findSourceMapURL,"setKeepActive");var y=e.i(495211);function k({alias:e,account:n,choices:l}){let[d,h]=(0,a.useState)(!1),[u,f]=(0,a.useState)(l.at(-1)?.id??""),[m,b]=(0,a.useTransition)(),y=(0,i.useMask)();(0,o.useHoldRefresh)(d);let v=l.find(e=>e.id===u);return(0,s.jsxs)(p.N,{open:d,onOpenChange:e=>{!m&&(h(e),e&&f(l.at(-1)?.id??""))},children:[(0,s.jsx)(p.a,{render:(0,s.jsx)(c.K,{size:"sm",children:"Restore"})}),(0,s.jsxs)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t.f,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(p.F,{className:"text-base",children:["Restore ",e,"?"]}),(0,s.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Account ",(0,s.jsx)(i.Masked,{kind:"account",real:n})," already uses both free slots. Pick a project to pause first."]})]})]}),(0,s.jsxs)("div",{className:"px-[18px] pb-2",children:[l.length?(0,s.jsx)("div",{className:"max-h-[260px] overflow-y-auto",children:l.map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,s.jsx)("input",{type:"radio",name:"pause-first",className:"size-4 accent-brand",checked:u===e.id,onChange:()=>f(e.id)}),(0,s.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("span",{className:"block truncate",children:["Pause ",e.alias]}),(0,s.jsxs)("span",{className:"block truncate text-[12px] text-ink-faint",children:["Last API traffic ",e.traffic,e.usedBy.length?` \xb7 used by ${e.usedBy.map(e=>y("app",e)).join(", ")}`:""]})]})]},e.id))}):(0,s.jsx)("p",{className:"my-2 text-[13px] text-ink-soft",children:"The console doesn't watch this account's active projects, so pause one in Supabase first."}),(0,s.jsxs)("p",{className:"mb-2 mt-3 text-[13px] text-ink-soft",children:["Apps that use the paused project get errors until you restore it. You can also move ",e," to another account with a free slot instead."]}),(0,s.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Restore stays blocked until the project you pause shows Paused (about 2 minutes). Then press Restore again."})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(c.K,{onClick:()=>h(!1),disabled:m,children:"Cancel"}),(0,s.jsx)(c.K,{variant:"danger",disabled:m||!v,onClick:function(){v&&b(async()=>{try{let s=await x(v.id,v.ref);if(!s.ok)return void r.c.error(s.error);r.c.success("Pause started",{description:`Pausing ${v.alias}. Restore ${e} once ${v.alias} shows Paused, about 2 minutes.`}),h(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:m?"Working…":"Pause selected"})]})]})]})}let v={keep:(e,s)=>s?`${e}: warning from day 5 without API traffic, and one keep-alive query a day.`:`${e} may pause after 7 idle days.`,autoRestore:(e,s)=>s?`${e} is restored automatically when its account has a free slot.`:`${e} is no longer restored automatically.`};e.s(["ActiveRowMenu",0,function({id:e,projectRef:t,alias:i,label:n,metrics:c,dashboard:o=!0}){let{open:p,dialog:h}=(0,l.W)(),[f,m]=(0,a.useState)(!1);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.RowMenu,{label:n,items:[...o?[{label:"Open in Supabase",href:`https://supabase.com/dashboard/project/${encodeURIComponent(t)}`}]:[],{label:"Check services",onSelect:()=>{let s;return s=r.c.loading(`Checking ${i}'s services…`),void u(e,t).then(e=>e.ok?r.c.success(`${i}: services healthy`,{id:s,description:e.message}):r.c.error(`${i}: services`,{id:s,description:e.error})).catch(()=>r.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:s}))}},...c?[{label:c.hasKey?"Replace metrics key":"Add metrics key",onSelect:()=>m(!0)}]:[],"---",{label:"Pause project",danger:!0,onSelect:()=>p({title:`Pause ${i}?`,body:"Supabase stops the project in about 2 minutes. Apps that use this database get errors until it's restored (possible for 1 year). Pausing frees one of this account's 2 free slots. Nothing is deleted.",cta:"Pause project",danger:!0,run:async()=>{let s;return(s=`Pausing ${i}. It takes about 2 minutes.`,e=>e.ok?{ok:!0,message:s}:e)(await x(e,t))}})}]}),h,c&&(0,s.jsx)(y.MetricsKeyDialog,{id:e,projectRef:t,alias:i,hasKey:c.hasKey,open:f,onOpenChange:m})]})},"KeepActiveBoxes",0,function({id:e,alias:t,keep:i,autoRestore:n,owner:c,sent:o}){let[l,d]=(0,a.useState)({keep:i,autoRestore:n}),[p,h]=(0,a.useTransition)(),u=(a,i)=>(0,s.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",title:c?void 0:"Owner only",children:[(0,s.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:l[a],disabled:!c||p,onChange:s=>{var i;return i=s.target.checked,void(d({...l,[a]:i}),h(async()=>{try{let s=await ("keep"===a?b:m)(e,i);if(!s.ok){d(l),r.c.error(s.error);return}r.c.success("Keep active saved",{description:v[a](t,i)})}catch{d(l),r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}))}}),i]});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex flex-col items-start gap-0.5",children:[u("keep","Keep active"),u("autoRestore","Auto-restore")]}),o&&(0,s.jsxs)("div",{className:"text-[12px] text-ink-faint",children:["Keep-alive sent ",o]})]})},"RestoreButton",0,function({id:e,projectRef:t,alias:a,account:r,slotsLeft:i,choices:o}){return i>0?(0,s.jsx)(n.f,{trigger:(0,s.jsx)(c.K,{size:"sm",children:"Restore"}),title:`Restore ${a}?`,body:"Supabase brings the project back in about 2 minutes. Apps that use it start working again after that.",cta:"Restore",onConfirm:async()=>{let s=await f(e,t);return s.ok?{ok:!0,message:`Restoring ${a}. It takes about 2 minutes.`}:{ok:!1,message:s.error}}}):(0,s.jsx)(k,{alias:a,account:r,choices:o})}],56992)}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23990,e=>{let s=(0,e.i(33550).f)("outline","key","Key",[["path",{d:"M16.555 3.843l3.602 3.602a2.877 2.877 0 0 1 0 4.069l-2.643 2.643a2.877 2.877 0 0 1 -4.069 0l-.301 -.301l-6.558 6.558a2 2 0 0 1 -1.239 .578l-.175 .008h-1.172a1 1 0 0 1 -.993 -.883l-.007 -.117v-1.172a2 2 0 0 1 .467 -1.284l.119 -.13l.414 -.414h2v-2h2v-2l2.144 -2.144l-.301 -.301a2.877 2.877 0 0 1 0 -4.069l2.643 -2.643a2.877 2.877 0 0 1 4.069 0",key:"svg-0"}],["path",{d:"M15 9h.01",key:"svg-1"}]]);e.s(["f",0,s],23990)},844582,e=>{let s=(0,e.i(33550).f)("outline","player-play","PlayerPlay",[["path",{d:"M7 4v16l13 -8l-13 -8",key:"svg-0"}]]);e.s(["f",0,s],844582)},495211,e=>{var s=e.i(843476),t=e.i(23990),a=e.i(271645),r=e.i(846696),i=e.i(46200),n=e.i(428325),c=e.i(500443),o=e.i(776639),l=e.i(95187);let d=(0,l.createServerReference)("4014af47c419ac14cdc33148f64789740059653d94",l.callServer,void 0,l.findSourceMapURL,"deleteMetricsKey"),p=(0,l.createServerReference)("7037f3ef30c1c4a25e6c14869b4995a7a5a6d57f75",l.callServer,void 0,l.findSourceMapURL,"setMetricsKey");function h({id:e,projectRef:i,alias:l,hasKey:d,open:u,onOpenChange:x,trigger:f}){let[m,b]=(0,a.useState)(!1),y=u??m,[k,v]=(0,a.useState)(""),[j,g]=(0,a.useState)(),[S,R]=(0,a.useTransition)();function w(e){S||(v(""),g(void 0),void 0===u&&b(e),x?.(e))}return(0,c.useHoldRefresh)(y),(0,s.jsxs)(o.N,{open:y,onOpenChange:w,children:[f&&(0,s.jsx)(o.a,{render:f}),(0,s.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t.f,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(o.F,{className:"text-base",children:[d?"Replace":"Add"," metrics key for ",l]}),(0,s.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"CPU, RAM, disk and connections come from Supabase's Metrics API (beta), which needs a Secret API key of this project."})]})]}),(0,s.jsxs)("form",{onSubmit:s=>{s.preventDefault(),R(async()=>{try{let s=await p(e,i,k);if(!s.ok){g(s.fieldErrors?.key??s.error),r.c.error(s.error);return}let t=s.message?.includes("test call failed");r.c.success(`Metrics key saved for ${l}`,{description:t?"The test call failed; the Compute panel shows why.":"CPU shows after the next scrape, in about 5 minutes."}),v(""),w(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,s.jsxs)("div",{className:"px-[18px] pt-2 text-[13px] text-ink-soft",children:[(0,s.jsxs)("ol",{className:"mb-3 list-decimal space-y-1 pl-5",children:[(0,s.jsxs)("li",{children:["In Supabase, open ",(0,s.jsx)("b",{className:"font-medium text-ink",children:"Project Settings → API Keys"})," for this project and create a new Secret API key named ",(0,s.jsx)("span",{className:"font-mono text-ink",children:"watchbell-metrics"}),"."]}),(0,s.jsx)("li",{children:"Paste it below. A secret key has full database power, so the console stores it encrypted, never shows it again and only sends it to this project's metrics endpoint."}),(0,s.jsx)("li",{children:"You can revoke it in Supabase at any time; the panel then shows the error and you can add a new one."})]}),(0,s.jsx)(n.O,{id:`mk-${e}`,label:"Secret API key",error:j,help:"Starts with sb_secret_. Saving makes one test call to the metrics endpoint.",children:(0,s.jsx)("input",{id:`mk-${e}`,type:"password",className:`${n.S} font-mono`,autoComplete:"off",spellCheck:!1,placeholder:"sb_secret_…",value:k,onChange:e=>{v(e.target.value),g(void 0)}})})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(n.K,{type:"button",onClick:()=>w(!1),disabled:S,children:"Cancel"}),(0,s.jsx)(n.K,{type:"submit",variant:"primary",disabled:S||!k.trim(),children:S?"Testing…":d?"Replace key":"Save key"})]})]})]})]})}e.s(["MetricsKeyButtons",0,function({id:e,projectRef:t,alias:a,hasKey:r}){return(0,s.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,s.jsx)(h,{id:e,projectRef:t,alias:a,hasKey:r,trigger:(0,s.jsx)(n.K,{size:"sm",children:r?"Replace key":"Add metrics key"})}),r&&(0,s.jsx)(i.f,{trigger:(0,s.jsx)(n.K,{size:"sm",variant:"ghost",children:"Remove"}),danger:!0,title:`Remove the metrics key of ${a}?`,cta:"Remove key",body:"The console deletes the stored key and this project's compute history. Revoke the key in Supabase (Project Settings → API Keys) too.",onConfirm:async()=>{let s=await d(e);return s.ok?{ok:!0,message:`Metrics key removed for ${a}.`}:{ok:!1,message:s.error}}})]})},"MetricsKeyDialog",0,h],495211)},56992,e=>{var s=e.i(843476),t=e.i(844582),a=e.i(271645),r=e.i(846696),i=e.i(54131),n=e.i(46200),c=e.i(428325),o=e.i(500443),l=e.i(799589),d=e.i(177106),p=e.i(776639),h=e.i(95187);let u=(0,h.createServerReference)("604f645b71cc99297d3eec94071852184575e61bb4",h.callServer,void 0,h.findSourceMapURL,"checkServicesAction"),x=(0,h.createServerReference)("605777cd5f5ae136ef3ea02ff0f796742e617d458c",h.callServer,void 0,h.findSourceMapURL,"pauseAction"),f=(0,h.createServerReference)("60fca0b41987286faa915d3721e93d57f40df8f4cb",h.callServer,void 0,h.findSourceMapURL,"restoreAction"),m=(0,h.createServerReference)("60d70e13c8dae281d86bef709bc46226448a402ea1",h.callServer,void 0,h.findSourceMapURL,"setAutoRestore"),b=(0,h.createServerReference)("60f9ea98b29be2731c81079f64b3c18571f91693f1",h.callServer,void 0,h.findSourceMapURL,"setKeepActive");var y=e.i(495211);function k({alias:e,account:n,choices:l}){let[d,h]=(0,a.useState)(!1),[u,f]=(0,a.useState)(l.at(-1)?.id??""),[m,b]=(0,a.useTransition)(),y=(0,i.useMask)();(0,o.useHoldRefresh)(d);let v=l.find(e=>e.id===u);return(0,s.jsxs)(p.N,{open:d,onOpenChange:e=>{!m&&(h(e),e&&f(l.at(-1)?.id??""))},children:[(0,s.jsx)(p.a,{render:(0,s.jsx)(c.K,{size:"sm",children:"Restore"})}),(0,s.jsxs)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t.f,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(p.F,{className:"text-base",children:["Restore ",e,"?"]}),(0,s.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Account ",(0,s.jsx)(i.Masked,{kind:"account",real:n})," already uses both free slots. Pick a project to pause first."]})]})]}),(0,s.jsxs)("div",{className:"px-[18px] pb-2",children:[l.length?(0,s.jsx)("div",{className:"max-h-[260px] overflow-y-auto",children:l.map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,s.jsx)("input",{type:"radio",name:"pause-first",className:"size-4 accent-brand",checked:u===e.id,onChange:()=>f(e.id)}),(0,s.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("span",{className:"block truncate",children:["Pause ",e.alias]}),(0,s.jsxs)("span",{className:"block truncate text-[12px] text-ink-faint",children:["Last API traffic ",e.traffic,e.usedBy.length?` \xb7 used by ${e.usedBy.map(e=>y("app",e)).join(", ")}`:""]})]})]},e.id))}):(0,s.jsx)("p",{className:"my-2 text-[13px] text-ink-soft",children:"The console doesn't watch this account's active projects, so pause one in Supabase first."}),(0,s.jsxs)("p",{className:"mb-2 mt-3 text-[13px] text-ink-soft",children:["Apps that use the paused project get errors until you restore it. You can also move ",e," to another account with a free slot instead."]}),(0,s.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Restore stays blocked until the project you pause shows Paused (about 2 minutes). Then press Restore again."})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(c.K,{onClick:()=>h(!1),disabled:m,children:"Cancel"}),(0,s.jsx)(c.K,{variant:"danger",disabled:m||!v,onClick:function(){v&&b(async()=>{try{let s=await x(v.id,v.ref);if(!s.ok)return void r.c.error(s.error);r.c.success("Pause started",{description:`Pausing ${v.alias}. Restore ${e} once ${v.alias} shows Paused, about 2 minutes.`}),h(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:m?"Working…":"Pause selected"})]})]})]})}let v={keep:(e,s)=>s?`${e}: warning from day 5 without API traffic, and one keep-alive query a day.`:`${e} may pause after 7 idle days.`,autoRestore:(e,s)=>s?`${e} is restored automatically when its account has a free slot.`:`${e} is no longer restored automatically.`};e.s(["ActiveRowMenu",0,function({id:e,projectRef:t,alias:i,label:n,metrics:c,dashboard:o=!0}){let{open:p,dialog:h}=(0,l.W)(),[f,m]=(0,a.useState)(!1);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.RowMenu,{label:n,items:[...o?[{label:"Open in Supabase",href:`https://supabase.com/dashboard/project/${encodeURIComponent(t)}`}]:[],{label:"Check services",onSelect:()=>{let s;return s=r.c.loading(`Checking ${i}'s services…`),void u(e,t).then(e=>e.ok?r.c.success(`${i}: services healthy`,{id:s,description:e.message}):r.c.error(`${i}: services`,{id:s,description:e.error})).catch(()=>r.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:s}))}},...c?[{label:c.hasKey?"Replace metrics key":"Add metrics key",onSelect:()=>m(!0)}]:[],"---",{label:"Pause project",danger:!0,onSelect:()=>p({title:`Pause ${i}?`,body:"Supabase stops the project in about 2 minutes. Apps that use this database get errors until it's restored (possible for 1 year). Pausing frees one of this account's 2 free slots. Nothing is deleted.",cta:"Pause project",danger:!0,run:async()=>{let s;return(s=`Pausing ${i}. It takes about 2 minutes.`,e=>e.ok?{ok:!0,message:s}:e)(await x(e,t))}})}]}),h,c&&(0,s.jsx)(y.MetricsKeyDialog,{id:e,projectRef:t,alias:i,hasKey:c.hasKey,open:f,onOpenChange:m})]})},"KeepActiveBoxes",0,function({id:e,alias:t,keep:i,autoRestore:n,owner:c,sent:o}){let[l,d]=(0,a.useState)({keep:i,autoRestore:n}),[p,h]=(0,a.useTransition)(),u=(a,i)=>(0,s.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",title:c?void 0:"Owner only",children:[(0,s.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:l[a],disabled:!c||p,onChange:s=>{var i;return i=s.target.checked,void(d({...l,[a]:i}),h(async()=>{try{let s=await ("keep"===a?b:m)(e,i);if(!s.ok){d(l),r.c.error(s.error);return}r.c.success("Keep active saved",{description:v[a](t,i)})}catch{d(l),r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}))}}),i]});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex flex-col items-start gap-0.5",children:[u("keep","Keep active"),u("autoRestore","Auto-restore")]}),o&&(0,s.jsxs)("div",{className:"text-[12px] text-ink-faint",children:["Keep-alive sent ",o]})]})},"RestoreButton",0,function({id:e,projectRef:t,alias:a,account:r,slotsLeft:i,choices:o}){return i>0?(0,s.jsx)(n.f,{trigger:(0,s.jsx)(c.K,{size:"sm",children:"Restore"}),title:`Restore ${a}?`,body:"Supabase brings the project back in about 2 minutes. Apps that use it start working again after that.",cta:"Restore",onConfirm:async()=>{let s=await f(e,t);return s.ok?{ok:!0,message:`Restoring ${a}. It takes about 2 minutes.`}:{ok:!1,message:s.error}}}):(0,s.jsx)(k,{alias:a,account:r,choices:o})}],56992)}])})();