watchbell 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (643) 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 +12 -12
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +57 -56
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  9. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +11 -11
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +57 -56
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +10 -10
  14. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +57 -56
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +13 -13
  18. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +57 -56
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +11 -11
  22. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +57 -56
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +20 -20
  26. package/server/.next/server/app/(console)/(private)/ai/models/page.js +57 -56
  27. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +10 -10
  30. package/server/.next/server/app/(console)/(private)/ai/page.js +57 -56
  31. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  32. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +13 -13
  34. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +57 -56
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +16 -16
  38. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +57 -56
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +11 -11
  42. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +57 -56
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +11 -11
  46. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +57 -56
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  49. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +10 -10
  50. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +57 -56
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  53. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +11 -11
  54. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +57 -56
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  57. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +35 -25
  58. package/server/.next/server/app/(console)/alerts/page.js +57 -56
  59. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  60. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  61. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +27 -27
  62. package/server/.next/server/app/(console)/apps/[id]/page.js +57 -56
  63. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +13 -13
  66. package/server/.next/server/app/(console)/apps/page.js +57 -56
  67. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  68. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  69. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +13 -13
  70. package/server/.next/server/app/(console)/backups/page.js +57 -56
  71. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  72. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  73. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +10 -10
  74. package/server/.next/server/app/(console)/catalog/page.js +57 -56
  75. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  76. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  77. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +21 -21
  78. package/server/.next/server/app/(console)/connections/page.js +57 -56
  79. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  80. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  81. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +10 -10
  82. package/server/.next/server/app/(console)/d1/page.js +57 -56
  83. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +16 -16
  86. package/server/.next/server/app/(console)/deployments/page.js +57 -56
  87. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  88. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  89. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +17 -17
  90. package/server/.next/server/app/(console)/dns/page.js +57 -56
  91. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  92. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  93. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +12 -12
  94. package/server/.next/server/app/(console)/domains/page.js +57 -56
  95. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  96. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  97. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +10 -10
  98. package/server/.next/server/app/(console)/events/page.js +57 -56
  99. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  100. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  101. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +17 -17
  102. package/server/.next/server/app/(console)/firebase/page.js +57 -56
  103. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +11 -11
  106. package/server/.next/server/app/(console)/logs/page.js +57 -56
  107. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  108. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  109. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +11 -11
  110. package/server/.next/server/app/(console)/manage/sections/page.js +57 -56
  111. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  112. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  113. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +21 -21
  114. package/server/.next/server/app/(console)/neon/page.js +57 -56
  115. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  116. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  117. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +18 -18
  118. package/server/.next/server/app/(console)/overview/page.js +57 -56
  119. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  120. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  121. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +11 -11
  122. package/server/.next/server/app/(console)/repos/[id]/page.js +57 -56
  123. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +10 -10
  126. package/server/.next/server/app/(console)/repos/page.js +57 -56
  127. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  128. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  129. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +20 -20
  130. package/server/.next/server/app/(console)/settings/page.js +57 -56
  131. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  132. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  133. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +17 -17
  134. package/server/.next/server/app/(console)/sql/page.js +57 -56
  135. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  136. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  137. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +10 -10
  138. package/server/.next/server/app/(console)/status/page.js +57 -56
  139. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  140. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  141. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +29 -29
  142. package/server/.next/server/app/(console)/supabase/page.js +57 -56
  143. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +10 -10
  146. package/server/.next/server/app/(console)/topology/page.js +57 -56
  147. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  148. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  149. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +10 -10
  150. package/server/.next/server/app/(console)/turso/page.js +57 -56
  151. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  152. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  153. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +10 -10
  154. package/server/.next/server/app/(console)/upstash/page.js +57 -56
  155. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  156. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  157. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +24 -24
  158. package/server/.next/server/app/(console)/uptime/page.js +57 -56
  159. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  160. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  161. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +15 -15
  162. package/server/.next/server/app/(console)/welcome/page.js +57 -56
  163. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  164. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  165. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  166. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  167. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/_global-error.html +1 -1
  169. package/server/.next/server/app/_global-error.rsc +3 -3
  170. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  171. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  172. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  173. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  174. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  175. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/_not-found.html +1 -1
  177. package/server/.next/server/app/_not-found.rsc +4 -4
  178. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  179. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  180. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  181. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  182. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  183. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  184. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  185. package/server/.next/server/app/api/collect/route.js +38 -37
  186. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  187. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  188. package/server/.next/server/app/api/daily/route.js +38 -37
  189. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  190. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  191. package/server/.next/server/app/api/telegram/webhook/route.js +63 -62
  192. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  193. package/server/.next/server/app/api/v1/advice/route.js +2 -2
  194. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  195. package/server/.next/server/app/api/v1/ai/questions/route.js +2 -2
  196. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  197. package/server/.next/server/app/api/v1/mcp/route.js +2 -2
  198. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  199. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +2 -2
  200. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  201. package/server/.next/server/app/api/v1/status/route.js +2 -2
  202. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  203. package/server/.next/server/app/api/watchdog/route.js +2 -2
  204. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  205. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  206. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  207. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  208. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  209. package/server/.next/server/app/mfa/page.js +33 -21
  210. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  211. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  212. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  213. package/server/.next/server/app/mfa/setup/page.js +33 -21
  214. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  215. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  216. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  217. package/server/.next/server/app/page.js.nft.json +1 -1
  218. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  219. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  220. package/server/.next/server/app/s/[slug]/page.js +8 -7
  221. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  222. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  223. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  224. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  225. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  226. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  227. package/server/.next/server/app/signin/page.js +35 -21
  228. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  229. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  230. package/server/.next/server/chunks/{[externals]__0y_x27mdj85p4._.js → [externals]__0ia-wyj5qrosx._.js} +1 -1
  231. package/server/.next/server/chunks/{[externals]__1fzfzd0ia0sk6._.js → [externals]__0igl_rsv6z3fr._.js} +1 -1
  232. package/server/.next/server/chunks/{[externals]__1qqyrxnupegg3._.js → [externals]__0mh8e6gkgfswq._.js} +1 -1
  233. package/server/.next/server/chunks/{[root-of-the-server]__0hblpf7wqke-j._.js → [root-of-the-server]__0-ftc1hhcjcl2._.js} +2 -2
  234. package/server/.next/server/chunks/{[root-of-the-server]__0l9ja3579qrju._.js → [root-of-the-server]__0-st5xltl53h9._.js} +2 -2
  235. package/server/.next/server/chunks/{[root-of-the-server]__03i6yscmtbhhg._.js → [root-of-the-server]__0-u9oeob2sa7f._.js} +2 -2
  236. package/server/.next/server/chunks/{[root-of-the-server]__0bmyll20mg_gf._.js → [root-of-the-server]__0070gc9ml0mf7._.js} +1 -1
  237. package/server/.next/server/chunks/{[root-of-the-server]__07bw6o0jc31yr._.js → [root-of-the-server]__0185dne3slx7e._.js} +2 -2
  238. package/server/.next/server/chunks/{[root-of-the-server]__0v-gc-c_e8pwl._.js → [root-of-the-server]__040ix5fqb_zb-._.js} +2 -2
  239. package/server/.next/server/chunks/{[root-of-the-server]__1zvoez8iapsem._.js → [root-of-the-server]__05jzua9637vlo._.js} +2 -2
  240. package/server/.next/server/chunks/{[root-of-the-server]__1_or7dycvkseg._.js → [root-of-the-server]__06uaa_2zbg57p._.js} +1 -1
  241. package/server/.next/server/chunks/{[root-of-the-server]__1y2qf8ltxhk0o._.js → [root-of-the-server]__07byme21uj5ln._.js} +2 -2
  242. package/server/.next/server/chunks/{[root-of-the-server]__1lerees-l5-6c._.js → [root-of-the-server]__07g16s_wi2sai._.js} +2 -2
  243. package/server/.next/server/chunks/{[root-of-the-server]__1s4bwjevs4hd-._.js → [root-of-the-server]__08-puk3_gawjd._.js} +2 -2
  244. package/server/.next/server/chunks/{[root-of-the-server]__0gox66sv0bx47._.js → [root-of-the-server]__0_e2eoq7w3ff_._.js} +2 -2
  245. package/server/.next/server/chunks/{[root-of-the-server]__0zni_2pv2fdgb._.js → [root-of-the-server]__0cc32xnniktg9._.js} +2 -2
  246. package/server/.next/server/chunks/{[root-of-the-server]__213bsllf-9ztc._.js → [root-of-the-server]__0cz3da2wx3_wd._.js} +2 -2
  247. package/server/.next/server/chunks/{[root-of-the-server]__0noc6l63d3l9w._.js → [root-of-the-server]__0dvuy3ibsyiik._.js} +2 -2
  248. package/server/.next/server/chunks/{[root-of-the-server]__02n6y6aa6qp1b._.js → [root-of-the-server]__0e2utnqdim70d._.js} +2 -2
  249. package/server/.next/server/chunks/{[root-of-the-server]__0hnljrh9qi9t-._.js → [root-of-the-server]__0exicuoq6gmph._.js} +2 -2
  250. package/server/.next/server/chunks/{[root-of-the-server]__0nqbue6i0l3qs._.js → [root-of-the-server]__0ezd1s2862iob._.js} +2 -2
  251. package/server/.next/server/chunks/[root-of-the-server]__0gmn5s40au84-._.js +3 -0
  252. package/server/.next/server/chunks/[root-of-the-server]__0i75m0es1m3hf._.js +3 -0
  253. package/server/.next/server/chunks/{[root-of-the-server]__0btybbrsr4abf._.js → [root-of-the-server]__0ikiyg3u02ofv._.js} +1 -1
  254. package/server/.next/server/chunks/{[root-of-the-server]__16waq6rapvngp._.js → [root-of-the-server]__0ms1uw85c5wg2._.js} +2 -2
  255. package/server/.next/server/chunks/[root-of-the-server]__0o0z59_jylzvy._.js +3 -0
  256. package/server/.next/server/chunks/{[root-of-the-server]__07mzeijv31avl._.js → [root-of-the-server]__0oqltt9cni6m0._.js} +2 -2
  257. package/server/.next/server/chunks/{[root-of-the-server]__1lj1f2w2-w8nw._.js → [root-of-the-server]__0quiawzx_nww0._.js} +2 -2
  258. package/server/.next/server/chunks/{[root-of-the-server]__0wp6j3irilu76._.js → [root-of-the-server]__0r88w3qhrtzz_._.js} +1 -1
  259. package/server/.next/server/chunks/{[root-of-the-server]__0kp0yx909wtab._.js → [root-of-the-server]__0rb1-3538-pq9._.js} +1 -1
  260. package/server/.next/server/chunks/{[root-of-the-server]__0c-33noc8yn1-._.js → [root-of-the-server]__0sabwm3w1rm0q._.js} +1 -1
  261. package/server/.next/server/chunks/{[root-of-the-server]__0nrg8zzqizk69._.js → [root-of-the-server]__0tykhzqhwdx_k._.js} +2 -2
  262. package/server/.next/server/chunks/{[root-of-the-server]__0yuyew8m9dc6-._.js → [root-of-the-server]__0w_og0zl6hqzj._.js} +1 -1
  263. package/server/.next/server/chunks/[root-of-the-server]__0wdxw44t9l9o_._.js +3 -0
  264. package/server/.next/server/chunks/{[root-of-the-server]__1xl6_spngp6k3._.js → [root-of-the-server]__0x47i6wm-cd1z._.js} +2 -2
  265. package/server/.next/server/chunks/{[root-of-the-server]__0g1cifa7hd790._.js → [root-of-the-server]__0x6qqr79pq_j9._.js} +1 -1
  266. package/server/.next/server/chunks/{[root-of-the-server]__0hlyn_aj72sn5._.js → [root-of-the-server]__0xqgsjnebebv8._.js} +2 -2
  267. package/server/.next/server/chunks/{[root-of-the-server]__0r1men25anfgb._.js → [root-of-the-server]__0y99cuuxm0xs3._.js} +1 -1
  268. package/server/.next/server/chunks/[root-of-the-server]__0zflnh-2nol66._.js +3 -0
  269. package/server/.next/server/chunks/{[root-of-the-server]__0l6_iao04u72h._.js → [root-of-the-server]__0znmcklxfccvk._.js} +2 -2
  270. package/server/.next/server/chunks/[root-of-the-server]__10dp33pb5e0ml._.js +3 -0
  271. package/server/.next/server/chunks/[root-of-the-server]__12xl6ax-q8s93._.js +3 -0
  272. package/server/.next/server/chunks/{[root-of-the-server]__090in165mp6av._.js → [root-of-the-server]__14sac3h4sfhh7._.js} +1 -1
  273. package/server/.next/server/chunks/{[root-of-the-server]__0oy0hcm48kl-q._.js → [root-of-the-server]__16md_196q9s8a._.js} +2 -2
  274. package/server/.next/server/chunks/[root-of-the-server]__17xbg7cngebwp._.js +3 -0
  275. package/server/.next/server/chunks/{[root-of-the-server]__0hrtz5c_46jkw._.js → [root-of-the-server]__186-sa38csgot._.js} +1 -1
  276. package/server/.next/server/chunks/[root-of-the-server]__18lfi0w0e_h0k._.js +3 -0
  277. package/server/.next/server/chunks/{[root-of-the-server]__0ku7nva3gxa9p._.js → [root-of-the-server]__1a7_3nq1jjab-._.js} +2 -2
  278. package/server/.next/server/chunks/{[root-of-the-server]__16lfk1wg0ejaa._.js → [root-of-the-server]__1bce11artflky._.js} +2 -2
  279. package/server/.next/server/chunks/[root-of-the-server]__1c1wqmzm65xo8._.js +3 -0
  280. package/server/.next/server/chunks/{[root-of-the-server]__1adw_bv2u89kc._.js → [root-of-the-server]__1g4iy2tasmn0f._.js} +1 -1
  281. package/server/.next/server/chunks/[root-of-the-server]__1gry2nrq5xhxl._.js +3 -0
  282. package/server/.next/server/chunks/{[root-of-the-server]__0d99wclm2suox._.js → [root-of-the-server]__1gt_-h9n48pwi._.js} +2 -2
  283. package/server/.next/server/chunks/{[root-of-the-server]__0s5b-tdq7rndj._.js → [root-of-the-server]__1hl9k6e1o7xh2._.js} +2 -2
  284. package/server/.next/server/chunks/[root-of-the-server]__1kk_s-q90445m._.js +3 -0
  285. package/server/.next/server/chunks/{[root-of-the-server]__02ldm_7l9zld8._.js → [root-of-the-server]__1lfsf7un8kdbr._.js} +1 -1
  286. package/server/.next/server/chunks/[root-of-the-server]__1nusfevn1z4nm._.js +3 -0
  287. package/server/.next/server/chunks/{[root-of-the-server]__0x487cn6dsn12._.js → [root-of-the-server]__1ny8nr52qvr4i._.js} +2 -2
  288. package/server/.next/server/chunks/{[root-of-the-server]__125fkw52kl2ty._.js → [root-of-the-server]__1o9v_499yd5k8._.js} +2 -2
  289. package/server/.next/server/chunks/[root-of-the-server]__1oc55uo0ax787._.js +3 -0
  290. package/server/.next/server/chunks/{[root-of-the-server]__09odxyho_9vk_._.js → [root-of-the-server]__1qdbn4gdg7ndr._.js} +2 -2
  291. package/server/.next/server/chunks/[root-of-the-server]__1uqxnb7qfqcms._.js +3 -0
  292. package/server/.next/server/chunks/{[root-of-the-server]__1wpdlr4uh1un4._.js → [root-of-the-server]__1vqs8o9bv1wbk._.js} +2 -2
  293. package/server/.next/server/chunks/[root-of-the-server]__1vxtt1favjdfr._.js +3 -0
  294. package/server/.next/server/chunks/[root-of-the-server]__1xwgj26z5f7ih._.js +3 -0
  295. package/server/.next/server/chunks/{[root-of-the-server]__1ooxluowhatjt._.js → [root-of-the-server]__20ng0hgzxagf_._.js} +2 -2
  296. package/server/.next/server/chunks/{[root-of-the-server]__0032rbj2s87zo._.js → [root-of-the-server]__20r_62r36t28o._.js} +2 -2
  297. package/server/.next/server/chunks/[root-of-the-server]__20sv90-2ei08l._.js +3 -0
  298. package/server/.next/server/chunks/_01x32f51v50y7._.js +3 -0
  299. package/server/.next/server/chunks/{_1-pw7jw52sbti._.js → _06gv0srpbf_lk._.js} +1 -1
  300. package/server/.next/server/chunks/_0ffsv993spriq._.js +3 -0
  301. package/server/.next/server/chunks/_0hsj1tx2ynla-._.js +3 -0
  302. package/server/.next/server/chunks/{_1-pcsy2hkg0il._.js → _0ljdeybzgdyai._.js} +1 -1
  303. package/server/.next/server/chunks/_0ls7sornjrg95._.js +5 -0
  304. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  305. package/server/.next/server/chunks/{_0duxuj4kmjibl._.js → _0nt4ifc48vl34._.js} +24 -22
  306. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
  307. package/server/.next/server/chunks/{_113ebzq_9i756._.js → _0rkn5gstaj2d0._.js} +24 -22
  308. package/server/.next/server/chunks/_0zj10_al6r59j._.js +1 -1
  309. package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
  310. package/server/.next/server/chunks/{_1ihndlef8r00f._.js → _1_4jb754aeifp._.js} +24 -22
  311. package/server/.next/server/chunks/{_0q9a3ettj_h2s._.js → _1_9n8x5ncta29._.js} +2 -2
  312. package/server/.next/server/chunks/{_0ry4553j-m5fp._.js → _1cq1vvbp6pglr._.js} +3 -3
  313. package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +1 -1
  314. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
  315. package/server/.next/server/chunks/{_1g8r-7wcf8sy3._.js → _1myv9csc_in08._.js} +3 -3
  316. package/server/.next/server/chunks/{_16urxazbgm48y._.js → _1n-fm2bdo9t2m._.js} +3 -3
  317. package/server/.next/server/chunks/{_1mwb214-ablfo._.js → _1qsryafbujfwn._.js} +24 -22
  318. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  319. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  320. package/server/.next/server/chunks/{src_00ixvrjrk_2h4._.js → src_0_l3dzp06o4x5._.js} +2 -2
  321. package/server/.next/server/chunks/{src_0tdn7mun5rvc6._.js → src_0m6xxpw2u-xv_._.js} +2 -2
  322. package/server/.next/server/chunks/{src_20ilndq84j3b3._.js → src_15fupbs9-n8q9._.js} +2 -2
  323. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  324. package/server/.next/server/chunks/src_1p24c-nz35cov._.js +3 -0
  325. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  326. package/server/.next/server/chunks/src_lib_001zhbfd1zeuk._.js +3 -0
  327. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +3 -0
  328. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  329. package/server/.next/server/chunks/{src_lib_206j7lyff31-g._.js → src_lib_0k_aposzvy1c8._.js} +2 -2
  330. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +20 -18
  331. package/server/.next/server/chunks/{src_lib_1-u7dbsavbtb0._.js → src_lib_0vjapfdxkooq5._.js} +2 -2
  332. package/server/.next/server/chunks/{src_lib_0krdzz8eu9xh3._.js → src_lib_0yn0bj14ih0id._.js} +2 -2
  333. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +20 -18
  334. package/server/.next/server/chunks/{src_lib_0ayxuk4ftzf2f._.js → src_lib_1qbgm0zu8q1rr._.js} +2 -2
  335. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +20 -18
  336. package/server/.next/server/chunks/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +3 -0
  337. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  338. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  339. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  340. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  341. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  342. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  343. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  344. package/server/.next/server/chunks/ssr/{[externals]__078uqm46tk5mo._.js → [externals]__0irbihjwcc9is._.js} +1 -1
  345. package/server/.next/server/chunks/ssr/{[externals]__1_ttbfsdm3x1-._.js → [externals]__0vlxry7jq5j1j._.js} +1 -1
  346. package/server/.next/server/chunks/ssr/{[externals]__1devsqn7ez77y._.js → [externals]__0yyslm1ka5px3._.js} +1 -1
  347. package/server/.next/server/chunks/ssr/{[externals]__00tbi838eotwu._.js → [externals]__1mol6ksxmtkv6._.js} +1 -1
  348. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  349. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1a7x--bos5pv8._.js → [root-of-the-server]__056nm27ib-x1m._.js} +2 -2
  350. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0xpkzaqer75i-._.js → [root-of-the-server]__06b1pw15-_hv5._.js} +2 -2
  351. package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
  352. package/server/.next/server/chunks/ssr/{[root-of-the-server]__107gjehjdhw8p._.js → [root-of-the-server]__0eaqsql69fhf8._.js} +2 -2
  353. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ek1-s5z9ggq2._.js +3 -0
  354. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0jn0o2e32mwcp._.js → [root-of-the-server]__0hzlz_t5eect2._.js} +2 -2
  355. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
  356. package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
  357. package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
  358. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ronqmm1xpldk._.js → [root-of-the-server]__0l_cl2qk_xmmr._.js} +2 -2
  359. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1adcmllk9wt5l._.js → [root-of-the-server]__0n-sc7pzu7fpz._.js} +1 -1
  360. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nxyo70ahj7tk._.js +3 -0
  361. package/server/.next/server/chunks/ssr/[root-of-the-server]__0oon1p2_04l7s._.js +3 -0
  362. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
  363. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  364. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0an0wsglj2bhh._.js → [root-of-the-server]__0sj92w6mg92ds._.js} +2 -2
  365. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1uojs0x42k86p._.js → [root-of-the-server]__0wi2grctadbk8._.js} +1 -1
  366. package/server/.next/server/chunks/ssr/{[root-of-the-server]__19l_r5vy3kxo1._.js → [root-of-the-server]__0xjg51t1__v-s._.js} +1 -1
  367. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0d2ry7-u1cv8c._.js → [root-of-the-server]__0z_1k5876-_wx._.js} +2 -2
  368. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1mumjk3h0om80._.js → [root-of-the-server]__1-d88ogkwql_b._.js} +2 -2
  369. package/server/.next/server/chunks/ssr/{[root-of-the-server]__191t_hhtr-k27._.js → [root-of-the-server]__110158s15r7mi._.js} +2 -2
  370. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0qwds8dkahd2_._.js → [root-of-the-server]__193nmh09rrpbx._.js} +1 -1
  371. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  372. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0x7w-5h8or6qr._.js → [root-of-the-server]__1_h_ya1h8efdj._.js} +2 -2
  373. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0paolyy3xkow9._.js → [root-of-the-server]__1a0b_dbx4uans._.js} +2 -2
  374. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ctkj-25wt37o._.js +4 -0
  375. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e0l6kek0ufui._.js +3 -0
  376. package/server/.next/server/chunks/ssr/[root-of-the-server]__1hek7tjixcjch._.js +3 -0
  377. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0i0_6dnnf0hov._.js → [root-of-the-server]__1ijizmc3ga_6o._.js} +2 -2
  378. package/server/.next/server/chunks/ssr/[root-of-the-server]__1kfivch_kfesn._.js +4 -0
  379. package/server/.next/server/chunks/ssr/[root-of-the-server]__1o63-3k1wez40._.js +3 -0
  380. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ogwz1buruc_x._.js +3 -0
  381. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  382. package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
  383. package/server/.next/server/chunks/ssr/[root-of-the-server]__1wr4__6rvsb3b._.js +3 -0
  384. package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +1 -1
  385. package/server/.next/server/chunks/ssr/_01x32f51v50y7._.js +3 -0
  386. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  387. package/server/.next/server/chunks/ssr/{_0kxkg0dbp42ai._.js → _08d4hz_ddxc02._.js} +2 -2
  388. package/server/.next/server/chunks/ssr/_08e6i1zuyz-ns._.js +3 -0
  389. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  390. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  391. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  392. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  393. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  394. package/server/.next/server/chunks/ssr/_0c7stbntpuyt_._.js +3 -0
  395. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  396. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  397. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  398. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  399. package/server/.next/server/chunks/ssr/{_1e47r3tlad52r._.js → _0e4xfzm8oecc-._.js} +2 -2
  400. package/server/.next/server/chunks/ssr/_0ffsv993spriq._.js +3 -0
  401. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  402. package/server/.next/server/chunks/ssr/_0hsj1tx2ynla-._.js +3 -0
  403. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  404. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  405. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  406. package/server/.next/server/chunks/ssr/{src_lib_0-nc33gvdtkg5._.js → _0ls7sornjrg95._.js} +2 -2
  407. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  408. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  409. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  410. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  411. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  412. package/server/.next/server/chunks/ssr/_0uvkx5n0kf7r2._.js +3 -0
  413. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  414. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  415. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  416. package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +2 -2
  417. package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +3 -0
  418. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  419. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  420. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  421. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  422. package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
  423. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  424. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  425. package/server/.next/server/chunks/ssr/{src_lib_1zgor_vrwl5kt._.js → _1b1t9p1xljuql._.js} +2 -2
  426. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  427. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  428. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  429. package/server/.next/server/chunks/ssr/{_0mp5aext18ijx._.js → _1e5kqt081d8yt._.js} +2 -2
  430. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  431. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  432. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  433. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  434. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  435. package/server/.next/server/chunks/ssr/{_0wb79bnj96x0g._.js → _1jclq5d7tposb._.js} +2 -2
  436. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  437. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  438. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  439. package/server/.next/server/chunks/ssr/_1o94cw0ml7xu7._.js +3 -0
  440. package/server/.next/server/chunks/ssr/_1ok868mr1th-7._.js +3 -0
  441. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  442. package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
  443. package/server/.next/server/chunks/ssr/{_0fq8thje0tuch._.js → _1rinsar6bp6ul._.js} +2 -2
  444. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  445. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  446. package/server/.next/server/chunks/ssr/_218164gkxgum_._.js +1 -1
  447. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  448. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  449. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  450. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +1 -1
  451. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  452. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  453. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  454. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  455. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  456. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  457. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  458. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  459. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  460. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  461. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  462. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  463. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  464. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  465. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  466. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  467. package/server/.next/server/chunks/ssr/{src_1xjlp4oxlprxb._.js → src_0jxjbvkvg0bjg._.js} +2 -2
  468. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  469. package/server/.next/server/chunks/ssr/src_0txyv7r1zns16._.js +3 -0
  470. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  471. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  472. package/server/.next/server/chunks/ssr/{src_097wa6oc_utgr._.js → src_186l56gdeizg8._.js} +2 -2
  473. package/server/.next/server/chunks/ssr/{src_0i-1ohush6mui._.js → src_1p24c-nz35cov._.js} +2 -2
  474. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  475. package/server/.next/server/chunks/ssr/src_1xoua7wkmyfkn._.js +3 -0
  476. package/server/.next/server/chunks/ssr/src_1y827m5-ojdib._.js +6 -0
  477. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  478. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  479. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  480. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  481. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  482. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  483. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  484. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  485. package/server/.next/server/chunks/ssr/{src_app_(console)_0p2-zm5eewkqo._.js → src_app_(console)_1co5pna1vfflj._.js} +2 -2
  486. package/server/.next/server/chunks/ssr/src_app_(console)_1shtcv6hidi4-._.js +3 -0
  487. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -1
  488. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  489. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  490. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  491. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  492. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  493. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  494. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  495. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  496. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  497. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  498. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  499. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  500. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  501. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  502. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  503. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  504. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  505. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  506. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  507. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  508. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  509. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  510. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  511. package/server/.next/server/chunks/ssr/{src_app_signin_11vigmz4xm91m._.js → src_app_signin_0ko968fxahf6u._.js} +2 -2
  512. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
  513. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  514. package/server/.next/server/chunks/ssr/src_lib_001zhbfd1zeuk._.js +3 -0
  515. package/server/.next/server/chunks/ssr/src_lib_04orn7u7ufxp1._.js +3 -0
  516. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +3 -0
  517. package/server/.next/server/chunks/ssr/src_lib_0nbad7vu413-f._.js +23 -0
  518. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +3 -0
  519. package/server/.next/server/chunks/ssr/src_lib_1l8ej-zoyyegd._.js +3 -0
  520. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +3 -0
  521. package/server/.next/server/chunks/ssr/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +3 -0
  522. package/server/.next/server/chunks/ssr/{src_lib_demo_07uq47fhms-3d._.js → src_lib_demo_0ftmf3wmtezvl._.js} +2 -2
  523. package/server/.next/server/chunks/ssr/src_lib_view_14iq8onyfo7nd._.js +3 -0
  524. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  525. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  526. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  527. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  528. package/server/.next/server/middleware-build-manifest.js +3 -3
  529. package/server/.next/server/pages/404.html +1 -1
  530. package/server/.next/server/pages/500.html +1 -1
  531. package/server/.next/server/preview-props.json +3 -3
  532. package/server/.next/server/server-reference-manifest.js +1 -1
  533. package/server/.next/server/server-reference-manifest.json +150 -140
  534. package/server/.next/static/chunks/{0dmql-jz-o69o.js → 0-6om8-d7itz8.js} +1 -1
  535. package/server/.next/static/chunks/{292uz-rsh422k.js → 00oeu_tbjky7m.js} +1 -1
  536. package/server/.next/static/chunks/{08f1euchlacye.js → 0181phyuecg9b.js} +1 -1
  537. package/server/.next/static/chunks/{1_93oj1b-nrla.js → 01u9q07wu6-x1.js} +1 -1
  538. package/server/.next/static/chunks/{2szc6dvuj3gxy.js → 0_5_9w6m-xwd0.js} +1 -1
  539. package/server/.next/static/chunks/{38conxv_f-pgo.js → 0hj1-5zruyih6.js} +1 -1
  540. package/server/.next/static/chunks/0krhehmzgigx5.js +1 -0
  541. package/server/.next/static/chunks/{0p6hja9octhrd.js → 0md0jy9rztofl.js} +1 -1
  542. package/server/.next/static/chunks/{1g_kip3m3h9q6.js → 0mp6prf1hx5mx.js} +1 -1
  543. package/server/.next/static/chunks/{2fze_cnwk8j76.js → 0t66sf4vvalei.js} +1 -1
  544. package/server/.next/static/chunks/{3xxcpv79l5tnh.js → 0v_-lu_cx7f91.js} +1 -1
  545. package/server/.next/static/chunks/{2z21xxtcmsmhe.js → 0xcpi35p5fa83.js} +1 -1
  546. package/server/.next/static/chunks/{2u3iceaxpiiws.js → 0z0may9twpt-j.js} +1 -1
  547. package/server/.next/static/chunks/{2l4upq4bwgvvu.js → 16yvy9zkjac5c.js} +1 -1
  548. package/server/.next/static/chunks/{1ss-6-h8nloc9.js → 18johpgap0xmw.js} +1 -1
  549. package/server/.next/static/chunks/{35to2q1uretcv.js → 18mkhwl0zlvnp.js} +1 -1
  550. package/server/.next/static/chunks/{315s21b2dd7lg.js → 1_8g4usrgjnnu.js} +1 -1
  551. package/server/.next/static/chunks/{12bbufru1ui37.js → 1gt3cagsbgx4w.js} +1 -1
  552. package/server/.next/static/chunks/{06a83nde7riq-.js → 1q-m7qgrvvzwb.js} +1 -1
  553. package/server/.next/static/chunks/{3efi_dyz4y0lj.js → 1rkrtrvwbbnjf.js} +1 -1
  554. package/server/.next/static/chunks/{29xg947lkf4-x.js → 1sc1vz_ygak9u.js} +1 -1
  555. package/server/.next/static/chunks/1tg1mstvws8rj.css +3 -0
  556. package/server/.next/static/chunks/{1t9f2pdc3crnr.js → 1ukyjy13dwy_z.js} +1 -1
  557. package/server/.next/static/chunks/{38-ay595f3xie.js → 1xm6ay06cjchs.js} +1 -1
  558. package/server/.next/static/chunks/{0qoql97izcn4l.js → 1y_6crandf_3f.js} +1 -1
  559. package/server/.next/static/chunks/{3cyesi3hi6l1g.js → 1ys80h6x541kn.js} +2 -2
  560. package/server/.next/static/chunks/{1i8i1ieoh738i.js → 2-m982u6v7z8m.js} +1 -1
  561. package/server/.next/static/chunks/{2rpa_j81h_45y.js → 2a3tky__z9q4j.js} +1 -1
  562. package/server/.next/static/chunks/{0x41o1ud_ksl1.js → 2cipdjdkoq312.js} +1 -1
  563. package/server/.next/static/chunks/{0wkv5e-c430ea.js → 2ect0ww0gtoad.js} +2 -2
  564. package/server/.next/static/chunks/{1bt81ubbahkh6.js → 2s-_9p0-395sm.js} +1 -1
  565. package/server/.next/static/chunks/{2pi0r5spn0slc.js → 2ue_c6tww95_c.js} +1 -1
  566. package/server/.next/static/chunks/{0buwzrf7dpagn.js → 2xio-kspedw69.js} +1 -1
  567. package/server/.next/static/chunks/{09e-vdlax9bp6.js → 2z6gojfx3lqvt.js} +1 -1
  568. package/server/.next/static/chunks/{3qjirj3rjf5mu.js → 31v3igne_z-0k.js} +1 -1
  569. package/server/.next/static/chunks/{088c6cw88jmlb.js → 33ddsp07_9o1d.js} +2 -2
  570. package/server/.next/static/chunks/340qccog2_uge.js +2 -0
  571. package/server/.next/static/chunks/35ua22np4u9jr.js +1 -0
  572. package/server/.next/static/chunks/{0jf5lpzwq4vh1.js → 38g-5wiggu6__.js} +1 -1
  573. package/server/.next/static/chunks/{23b9tctw1mn5a.js → 3a5a2iizetq9b.js} +1 -1
  574. package/server/.next/static/chunks/{2ac9gyn8mzqp4.js → 3f1td0b-oy-sr.js} +1 -1
  575. package/server/.next/static/chunks/{12zasgv1xisb5.js → 3imk3dh9_4wd5.js} +1 -1
  576. package/server/.next/static/chunks/{1s0s32oqy-54t.js → 3jhh47vezwohc.js} +1 -1
  577. package/server/.next/static/chunks/{1t8fe3w70uapo.js → 3letbzhf_1srv.js} +1 -1
  578. package/server/.next/static/chunks/{0a4b85ckxbprh.js → 3qedt96akbcad.js} +1 -1
  579. package/server/.next/static/chunks/{1wh-ps6a57yj1.js → 3wi930ujb_5_z.js} +1 -1
  580. package/server/.next/static/chunks/{04ospu_w--6p9.js → 40n6mtthd3_sh.js} +1 -1
  581. package/server/.next/server/chunks/[root-of-the-server]__0f5bt0o1k41ft._.js +0 -3
  582. package/server/.next/server/chunks/[root-of-the-server]__1-9hjrgvj0fpb._.js +0 -3
  583. package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +0 -3
  584. package/server/.next/server/chunks/[root-of-the-server]__14eyo4i2tm93k._.js +0 -3
  585. package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +0 -3
  586. package/server/.next/server/chunks/[root-of-the-server]__1c653f_8qzrpd._.js +0 -3
  587. package/server/.next/server/chunks/[root-of-the-server]__1dyith2r4bacm._.js +0 -3
  588. package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +0 -3
  589. package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +0 -3
  590. package/server/.next/server/chunks/[root-of-the-server]__1hv3hk5182t-o._.js +0 -3
  591. package/server/.next/server/chunks/[root-of-the-server]__1j6xniw630fg0._.js +0 -3
  592. package/server/.next/server/chunks/[root-of-the-server]__1nu5isiy7d832._.js +0 -3
  593. package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +0 -3
  594. package/server/.next/server/chunks/[root-of-the-server]__1uox9a0td-o0-._.js +0 -3
  595. package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +0 -3
  596. package/server/.next/server/chunks/[root-of-the-server]__1z_0gt-w6bx9v._.js +0 -3
  597. package/server/.next/server/chunks/[root-of-the-server]__1zrqz88a2lkx5._.js +0 -3
  598. package/server/.next/server/chunks/[root-of-the-server]__1zwi7po5_xe8-._.js +0 -3
  599. package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +0 -3
  600. package/server/.next/server/chunks/_1-ior_ot6mgxg._.js +0 -3
  601. package/server/.next/server/chunks/src_0i-1ohush6mui._.js +0 -3
  602. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +0 -3
  603. package/server/.next/server/chunks/src_lib_0-nc33gvdtkg5._.js +0 -5
  604. package/server/.next/server/chunks/src_lib_0-xd6p5793qdu._.js +0 -3
  605. package/server/.next/server/chunks/src_lib_0qbcg988i_-ee._.js +0 -3
  606. package/server/.next/server/chunks/ssr/[root-of-the-server]__04nc91kiy757l._.js +0 -3
  607. package/server/.next/server/chunks/ssr/[root-of-the-server]__04zgt2t-w6-75._.js +0 -3
  608. package/server/.next/server/chunks/ssr/[root-of-the-server]__0a3n6wzq8xui9._.js +0 -3
  609. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ban7lwqlko9y._.js +0 -3
  610. package/server/.next/server/chunks/ssr/[root-of-the-server]__0klc2dyzyjeba._.js +0 -3
  611. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +0 -4
  612. package/server/.next/server/chunks/ssr/[root-of-the-server]__0vnfx03nb5vku._.js +0 -3
  613. package/server/.next/server/chunks/ssr/[root-of-the-server]__13fabu66slkfb._.js +0 -3
  614. package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +0 -4
  615. package/server/.next/server/chunks/ssr/[root-of-the-server]__1p2oghl9lfgmk._.js +0 -3
  616. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pwd99rch8xyl._.js +0 -3
  617. package/server/.next/server/chunks/ssr/[root-of-the-server]__2195hg4329yfp._.js +0 -3
  618. package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +0 -3
  619. package/server/.next/server/chunks/ssr/_0ad3y3l77xkxe._.js +0 -3
  620. package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +0 -3
  621. package/server/.next/server/chunks/ssr/_0ufjz7kfd4jbd._.js +0 -3
  622. package/server/.next/server/chunks/ssr/_1-ior_ot6mgxg._.js +0 -3
  623. package/server/.next/server/chunks/ssr/_1uae0vl2c6fz7._.js +0 -3
  624. package/server/.next/server/chunks/ssr/_1y8wer5tpgiqw._.js +0 -3
  625. package/server/.next/server/chunks/ssr/_217qa04yo70zg._.js +0 -3
  626. package/server/.next/server/chunks/ssr/src_05kvmrkq5nfyh._.js +0 -3
  627. package/server/.next/server/chunks/ssr/src_0ixeyy74fe5jy._.js +0 -3
  628. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +0 -3
  629. package/server/.next/server/chunks/ssr/src_1fomo1_as1-ea._.js +0 -3
  630. package/server/.next/server/chunks/ssr/src_1sv5tf2pk5-pn._.js +0 -3
  631. package/server/.next/server/chunks/ssr/src_app_(console)_1za4o0--zhso5._.js +0 -3
  632. package/server/.next/server/chunks/ssr/src_lib_0-xd6p5793qdu._.js +0 -3
  633. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +0 -21
  634. package/server/.next/server/chunks/ssr/src_lib_0qbcg988i_-ee._.js +0 -3
  635. package/server/.next/server/chunks/ssr/src_lib_18e550s395xn5._.js +0 -3
  636. package/server/.next/server/chunks/ssr/src_lib_1_5ea0kxdn6zt._.js +0 -3
  637. package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +0 -6
  638. package/server/.next/static/chunks/0qsk0bb1x81nc.js +0 -1
  639. package/server/.next/static/chunks/2g9dossbqnlr7.js +0 -1
  640. package/server/.next/static/chunks/3ybb15n1q3f-o.css +0 -3
  641. /package/server/.next/static/{rBXBlxKpaOHcc5KZDIhAL → 2_t4xVgbum1rtVSQxAYYV}/_buildManifest.js +0 -0
  642. /package/server/.next/static/{rBXBlxKpaOHcc5KZDIhAL → 2_t4xVgbum1rtVSQxAYYV}/_clientMiddlewareManifest.js +0 -0
  643. /package/server/.next/static/{rBXBlxKpaOHcc5KZDIhAL → 2_t4xVgbum1rtVSQxAYYV}/_ssgManifest.js +0 -0
@@ -1,21 +0,0 @@
1
- (()=>{"use strict";module.exports=[192738,67890,a=>{var b=a.i(245710);let c=a=>`${a} hari`,d=(a,b)=>0>Number(a)?`${b} udah habis.`:`${b} habis dalam ${c(a)}.`,e={"the job reported a failure":"job-nya lapor gagal","started but didn't finish":"udah mulai tapi nggak selesai","never pinged":"belum pernah ping","no ping in time":"nggak ada ping tepat waktu"},f={critical:"kritis",high:"tinggi",moderate:"sedang",low:"rendah",unknown:"nggak diketahui"},g={MonitorDown:[[/^(.+): no ping for (\d+ (?:min|h|days?))\.$/,(a,b,c)=>`${b}: nggak ada ping selama ${c.replace(/^(\d+) min$/,"$1 menit").replace(/^(\d+) h$/,"$1 jam").replace(/^(\d+) days?$/,"$1 hari")}.`],[/^(.+): (the job reported a failure|started but didn't finish|never pinged|no ping in time)\.$/,(a,b,c)=>`${b}: ${e[c]}.`],[/^(.+) failed its check \((.*)\) on (\d+) consecutive checks\.$/,(a,b,c,d)=>`${b}: ${d} cek gagal berturut-turut (${c}).`],[/^(.+) returned no answer on (\d+) consecutive checks\.$/,(a,b,c)=>`${b}: ${c} cek gagal berturut-turut (nggak ada jawaban).`],[/^(.+) returned (HTTP \d+) on (\d+) consecutive checks\.$/,(a,b,c,d)=>`${b}: ${d} cek gagal berturut-turut (${c}).`],[/^(.+) answers again\.$/,(a,b)=>`${b} udah jawab lagi.`],[/^(\S+) moved to (\S+); MonitorDomainMoved takes over\.$/,(a,b,c)=>`${b} pindah ke ${c}; MonitorDomainMoved yang ambil alih.`]],MonitorDomainMoved:[[/^(\S+) is no longer a domain of (.+); production is on (\S+)\.$/,(a,b,c,d)=>`${b} udah bukan domain ${c}; production sekarang di ${d}.`],[/^The monitor checks (\S+), a domain of (.+)\.$/,(a,b,c)=>`Monitor ngecek ${b}, domain ${c}.`]],CollectorStale:[[/^The collector hasn't finished a run yet\.$/,()=>"Collector belum pernah selesai jalan."],[/^The last minute run finished ([\d,]+) min ago\.$/,(a,b)=>`Collector terakhir selesai jalan ${b} menit lalu.`]],HighLatency:[[/^p95 ([\d,]+) ms over the last 10 minutes \(limit ([\d,]+) ms\)\.$/,(a,b,c)=>`p95 ${b} ms selama 10 menit terakhir (batas ${c} ms).`]],DeploymentFailed:[[/^Production deployment \(no commit\) failed\.$/,()=>"Deploy production (tanpa commit) gagal."],[/^Production deployment (\S+) failed\.$/,(a,b)=>`Deploy production ${b} gagal.`]],DatabasePaused:[[/^Supabase project (.+) is paused\.$/,(a,b)=>`Project Supabase ${b} lagi di-pause.`]],CertExpiringSoon:[[/^The TLS certificate of (.+) expires in (-?\d+) days?\.$/,(a,b,c)=>d(c,`Sertifikat TLS ${b}`)]],DomainExpiringSoon:[[/^(.+) expires in (-?\d+) days?\.$/,(a,b,c)=>d(c,b)]],StorageAlmostFull:[[/^(.+) uses ([\d,]+) MB of ([\d,]+) MB \(([\d,]+)%\)\.$/,(a,b,c,d,e)=>`${b} pakai ${c} MB dari ${d} MB (${e}%).`]],NeonComputeHigh:[[/^(.+) used ([\d,]+) of ([\d,]+) CU-hours this month\.$/,(a,b,c,d)=>`${b} udah pakai ${c} dari ${d} CU-hours bulan ini.`]],FirestoreQuotaHigh:[[/^(.+) hit a Firestore quota \(RESOURCE_EXHAUSTED\)\.$/,(a,b)=>`${b} kena kuota Firestore (RESOURCE_EXHAUSTED).`],[/^(.+) read ([\d,]+) of ([\d,]+) documents today \(([\d,]+)%\)\.$/,(a,b,c,d,e)=>`${b} udah baca ${c} dari ${d} dokumen hari ini (${e}%).`]],AutoPauseRisk:[[/^No API traffic for (\d+) days?\. Supabase pauses free projects after about 7 days\.$/,(a,b)=>`Nggak ada traffic API selama ${c(b)}. Supabase nge-pause project free setelah sekitar 7 hari.`]],DnsProxiedToVercel:[[/^(.+) points to Vercel through the Cloudflare proxy\. Vercel recommends DNS only\.$/,(a,b)=>`${b} ngarah ke Vercel lewat proxy Cloudflare. Vercel nyaranin DNS only.`]],DbQuotaHigh:[[/^(.+): (.+) at ([\d,]+)% of the free plan\.$/,(a,b,c,d)=>`${b}: ${c.replace(/^Rows read/,"baris dibaca").replace(/^Rows written/,"baris ditulis").replace(/^Commands/,"command").replace(/^usage$/,"pemakaian").replace(/ today\b/," hari ini").replace(/\bof ([^ ]+(?: [A-Z]+)?)\b/,"dari $1").replace(/ this month\b/," bulan ini").replace(/\(account\)/,"(akun)")} udah ${d}% dari kuota gratis.`]],ComputeHigh:[[/^(.+) compute is back under the limits\.$/,(a,b)=>`Compute ${b} udah balik di bawah batas.`],[/^(.+): ((?:CPU|RAM|disk|connections) .+)\.$/,(a,b,c)=>`${b}: ${c.replace(/ for (\d+) min/g," selama $1 menit").replace(/\(limit /g,"(batas ").replace(/\bconnections (\d+) of (\d+)/g,"koneksi $1 dari $2")}.`]],CredentialExpiring:[[/^Google Drive access was removed \(invalid_grant\)\. Reconnect it\.$/,()=>"Akses Google Drive dicabut (invalid_grant). Sambungin lagi ya."],[/^The (\S+) credential (.+) has expired\.$/,(a,b,c)=>`Credential ${b} ${c} udah kedaluwarsa.`],[/^The (\S+) credential (.+) expires in (-?\d+) days?\.$/,(a,b,c,e)=>d(e,`Credential ${b} ${c}`)]],VulnerableDependency:[[/^(.+) has no moderate, high or critical dependency advisories\.$/,(a,b)=>`${b} nggak punya advisory dependency sedang, tinggi atau kritis.`],[/^(.+) has no high or critical dependency advisories\.$/,(a,b)=>`${b} nggak punya advisory dependency tinggi atau kritis.`],[/^(\d+) vulnerable packages? \(([^)]*)\): (.*)$/,(a,b,c,d)=>`${b} paket rentan (${c.replace(/\b(critical|high|moderate|low|unknown)\b/g,a=>f[a])}): ${d.replace(/ \(no fix yet\)/g," (belum ada fix)").replace(/, \+(\d+) more\.$/,", +$1 lagi.")}`]],FrameworkVulnerable:[[/^(.+) runs Next\.js (.+) with no known advisories\.$/,(a,b,c)=>`${b} pakai Next.js ${c} tanpa advisory yang diketahui.`],[/^Next\.js (.+) has (\d+) known vulnerabilit(?:y|ies) \((critical|high|moderate|low|unknown)\), (?:fixed in (\S+)(?: \((one fix needs|some fixes need) Next\.js (\d+)\))?|no fix yet)\.$/,(a,b,c,d,e,g,h)=>`Next.js ${b} punya ${c} kerentanan yang diketahui (${f[d]}), ${e?`udah di-fix di ${e}${g?` (${"one fix needs"===g?"satu fix":"sebagian fix"} butuh Next.js ${h})`:""}`:"belum ada fix"}.`]]};function h(a,b){for(let[c,d]of Object.hasOwn(g,a)?g[a]:[]){let a=c.exec(b);if(a)return d(...a)}return b}a.s(["f",0,h],67890);let i={en:{open:"FIRING",repeat:"REPEAT",resolve:"RESOLVED"},id:{open:"MUNCUL",repeat:"ULANG",resolve:"PULIH"}},j={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},k={en:{firing:"firing",resolved:"resolved",since:"since",open:"Open alerts",more:"more on the Alerts page",causedBy:"caused by",incident:"reports an incident",step:"Next step"},id:{firing:"aktif",resolved:"pulih",since:"sejak",open:"Buka Alerts",more:"lagi di halaman Alerts",causedBy:"gara-gara",incident:"lagi ada insiden",step:"Langkah"}},l=a=>a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),m={critical:0,warning:1,info:2};function n(a,b){let c=a.filter(a=>"resolve"!==a.kind).length,d=a.length-c;return[c?`${c} ${k[b].firing}`:"",d?`${d} ${k[b].resolved}`:""].filter(Boolean).join(", ")}function o(a,b,c,d,e,f){let g=[...a].sort((a,b)=>("resolve"===a.kind)-("resolve"===b.kind)||m[a.severity]-m[b.severity]),h=[d],i=d.length+e.length+40;for(let a=0;a<g.length;a++){let d=c(g[a]);if(i+d.length+1>b){h.push(f(g.length-a));break}h.push(d),i+=d.length+1}return h.push(e),h.join("\n").slice(0,b)}let p={en:{CollectorStale:"the watchdog already runs the collector itself every 5 minutes. Check the job on cron-job.org and the latest Vercel deploy.",DomainExpiringSoon:"renew the domain at its registrar; Watchbell can't pay for it.",StorageAlmostFull:"delete old data or shorten retention in that database; the free tier can't add storage.",NeonComputeHigh:"cut queries or make Neon auto-suspend sooner; the quota resets at the start of the month.",FirestoreQuotaHigh:"cut Firestore reads (cache in the app); the quota resets daily.",DbQuotaHigh:"cut queries to that database until its quota resets.",ComputeHigh:"check the Pool card on the Supabase page (idle connections close automatically at 10 of 15); for CPU or disk, look for heavy queries.",DnsProxiedToVercel:"turn off the proxy (orange cloud) for that record in Cloudflare; Vercel needs DNS only.",CredentialExpiring:"create a new token and replace it in Settings → Connections before it expires.",FrameworkVulnerable:"if the app's GitHub repository isn't linked yet, link it on the app page to get an update PR from the office; or update next yourself.",MonitorDomainMoved:"press Update monitor on the Uptime page (or approve the proposal) so the monitor checks the new domain; the app itself is fine."},id:{CollectorStale:"watchdog udah jalanin collector sendiri tiap 5 menit. Cek job di cron-job.org dan deploy terakhir di Vercel.",DomainExpiringSoon:"perpanjang domain di registrar-nya, Watchbell nggak bisa bayar.",StorageAlmostFull:"hapus data lama atau pendekin retensi di database itu, free tier nggak bisa nambah storage.",NeonComputeHigh:"kurangin query atau percepat auto-suspend Neon, kuota reset awal bulan.",FirestoreQuotaHigh:"kurangin read Firestore (cache di app), kuota reset tiap hari.",DbQuotaHigh:"kurangin query ke database itu sampai kuotanya reset.",ComputeHigh:"cek kartu Pool di halaman Supabase (koneksi nganggur ditutup otomatis di 10 dari 15), kalau CPU/disk cari query yang berat.",DnsProxiedToVercel:"matiin proxy (awan oranye) record itu di Cloudflare, Vercel butuh DNS only.",CredentialExpiring:"bikin token baru dan ganti di Settings → Connections sebelum habis.",FrameworkVulnerable:"kalau repo GitHub app-nya belum di-link, link di halaman app biar office bikinin PR update; atau update next sendiri.",MonitorDomainMoved:"pencet Update monitor di halaman Uptime (atau approve usulannya) biar monitor ngecek domain baru; app-nya sendiri aman."}};a.s(["Z",0,j,"l",0,function(a,c,d,e="en"){let f=`${d.replace(/\/+$/,"")}/alerts`,g=k[e],m=a=>`${i[e][a.kind]} \xb7 ${j[e][a.severity]} \xb7 `,q=a=>"id"===e?h(a.ruleKey,a.message):a.message,r=a=>"resolve"===a.kind?null:((a,b="en")=>{let c=Object.hasOwn(p[b],a)?p[b][a]:void 0;return c?`${k[b].step}: ${c}`:null})(a.ruleKey,e),s=a=>[a.causedBy?`${g.causedBy} ${a.causedBy}`:"",a.provider?`${a.provider} ${g.incident}`:""].filter(Boolean).join(" · "),t=a=>`
2
- +${a} ${g.more}`;return{telegram:o(a,4096,a=>`
3
- <b>${m(a)}${l(a.ruleKey)} \xb7 ${l(a.title)}</b>
4
- ${l(q(a))}${s(a)?`
5
- <i>${l(s(a))}</i>`:""}${r(a)?`
6
- 👉 ${l(r(a))}`:""}
7
- ${g.since} ${(0,b.U)(a.startedAt)} ${(0,b.J)(a.startedAt)}`,`<b>Watchbell</b>: ${n(a,e)} \xb7 ${(0,b.U)(c)} ${(0,b.J)(c)}`,`
8
- <a href="${l(f)}">${g.open}</a>`,t),discord:o(a,2e3,a=>`
9
- **${m(a)}${a.ruleKey} \xb7 ${a.title.replace(/[*_`~|\[\]<>]/g,"")}**
10
- ${q(a).replace(/[*_`~|\[\]<>]/g,"")}${s(a)?`
11
- _${s(a)}_`:""}${r(a)?`
12
- 👉 ${r(a)}`:""}`,`**Watchbell**: ${n(a,e)} \xb7 ${(0,b.U)(c)} ${(0,b.J)(c)}`,`
13
- ${f}`,t)}},"H",0,l],192738)},49146,a=>{var b=a.i(462820),c=a.i(93321),d=a.i(530385),e=a.i(351674),f=a.i(548734),g=a.i(837137),h=a.i(192738),i=a.i(358179),j=a.i(601219),k=a.i(247730),l=a.i(396667),m=a.i(46396),n=a.i(492665),o=a.i(390626),p=a.i(755453),q=a.i(352595),r=a.i(80997),s=a.i(718025),t=a.i(552543),u=a.i(288879),v=a.i(204784),w=a.i(446914),x=a.i(71575),y=a.i(556987),z=a.i(245710),A=a.i(910697);let B="digest.lastSentDay",C="digest.state";async function D(a){let[b]=await (0,f.f)().select().from(g.channels).where((0,c.u)(g.channels.kind,a)).limit(1);if(!b)return null;try{return{row:b,config:JSON.parse((0,i.K)({ciphertext:b.configCiphertext,iv:b.configIv},(0,n.f)().OPS_ENCRYPTION_KEY))}}catch{return null}}async function E(a,b){let c=(0,i.l)(JSON.stringify(b),(0,n.f)().OPS_ENCRYPTION_KEY),d={configCiphertext:c.ciphertext,configIv:c.iv,keyVersion:c.keyVersion,enabled:!0,lastError:null,updatedAt:new Date};await (0,f.f)().insert(g.channels).values({kind:a,...d}).onConflictDoUpdate({target:g.channels.kind,set:d})}async function F(a,b){return(await (0,f.f)().update(g.channels).set({enabled:b,updatedAt:new Date}).where((0,c.u)(g.channels.kind,a)).returning({kind:g.channels.kind})).length>0}async function G(){let a=(0,s.f)(),[b,c,d,e]=await Promise.all([D("telegram"),D("discord"),D("webhook"),D("smtp")]),f=new Set;a.telegramToken&&b?.row.enabled&&b.config?.chatId&&f.add("telegram"),c?.row.enabled&&c.config?.url&&f.add("discord"),d?.row.enabled&&d.config?.url&&f.add("webhook"),e?.row.enabled&&e.config?.host&&f.add("smtp");let g=`${(0,n.f)().SITE_URL.replace(/\/+$/,"")}/alerts`;return{send:(f,h,i)=>"telegram"===f?(0,w.I)(a.telegramToken,b.config.chatId,h):"webhook"===f?(0,p.E)(d.config,(0,p.J)(h,i??[],new Date,g)):"smtp"===f?(0,q.r)(e.config,(h.split("\n")[0]??"").replace(/[*_`~]/g,"").slice(0,150)||"Watchbell alert",`${h}
14
-
15
- ${g}`):(0,o.$)(c.config.url,h),configured:f}}async function H(){let a=(0,s.f)().telegramToken;if(!a)return null;let b=await D("telegram");return b?.row.enabled&&b.config?.chatId?{token:a,chatId:b.config.chatId}:null}async function I(){let a=await D("discord");return a?.row.enabled&&a.config?.url?{url:a.config.url}:null}let J="notify.telegramThreads",K=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function L(a,b,c){let d=a.filter(a=>K.test(a));if(!d.length||!Number.isSafeInteger(b)||b<=0)return;let h=Object.fromEntries(d.map(a=>[a,{m:b,at:c.getTime()}])),i=c.getTime()-6048e5,j=e.B`case when jsonb_typeof(${g.settings.value}) = 'object' then ${g.settings.value} else '{}'::jsonb end`;await (0,f.f)().insert(g.settings).values({key:J,value:h}).onConflictDoUpdate({target:g.settings.key,set:{value:e.B`(select coalesce(jsonb_object_agg(e.key, e.value), '{}'::jsonb) from jsonb_each(${JSON.stringify(h)}::jsonb || ${j}) as e
16
- where jsonb_typeof(e.value) = 'object' and (e.value->>'at') ~ '^[0-9]{1,15}$' and (e.value->>'at')::bigint > ${i})`,updatedAt:c}})}async function M(a){if(!a||!K.test(a))return null;try{let[b]=await (0,f.f)().select({value:g.settings.value}).from(g.settings).where((0,c.u)(g.settings.key,J)).limit(1),d=b?.value&&"object"==typeof b.value?b.value[a]:null;return"number"==typeof d?.m&&Number.isSafeInteger(d.m)&&d.m>0?d.m:null}catch{return null}}let N=()=>(0,k.f)().catch(()=>y.a);async function O(a,b,i={}){var j;if(b-Date.now()<6e3)return{sent:0,dropped:0};let k=await (0,l.I)(),m=await (0,f.f)().select({a:g.alerts,channels:g.alertRules.channels}).from(g.alerts).innerJoin(g.alertRules,(0,c.u)(g.alertRules.key,g.alerts.ruleKey)).where((0,c.b)((0,c.E)(g.alerts.pending),e.B`(${g.alerts.pending} = 'resolve') = (${g.alerts.resolvedAt} is not null)`,(0,l.s)(k))).orderBy((0,d.M)(g.alerts.pendingSince)).limit(50);if(!m.length)return{sent:0,dropped:0};let o=new Set((await (0,f.f)().update(g.alerts).set({claimedAt:a}).where((j=m.map(a=>a.a.id),(0,c.b)((0,c.y)(g.alerts.id,j),(0,c.E)(g.alerts.pending),(0,c.F)((0,c.M)(g.alerts.claimedAt),(0,c.S)(g.alerts.claimedAt,new Date(a.getTime()-12e4)))))).returning({id:g.alerts.id})).map(a=>a.id)),p=m.filter(a=>o.has(a.a.id));if(!p.length)return{sent:0,dropped:0};let{send:q,configured:r}=i.sender??await G(),s=new Set(p.filter(({a:b})=>"resolve"!==b.pending&&(b.silencedUntilResolved||null!==b.silencedUntil&&b.silencedUntil.getTime()>a.getTime())).map(({a})=>a.id)),[u,v]=await Promise.all([N(),(0,t.B)()]),w=new Set;for(let b of["telegram","discord","webhook","smtp"]){if(!r.has(b))continue;let d=p.filter(a=>a.channels.includes(b)&&!s.has(a.a.id));if(!d.length)continue;let e=d.map(({a})=>{let c="telegram"===b?a:(0,y.o)(a,u);return{kind:a.pending,ruleKey:a.ruleKey,severity:a.severity,title:c.title,message:c.message,startedAt:a.startedAt,causedBy:c.causedBy,provider:a.providerIncident}}),i=(0,h.l)(e,a,(0,n.f)().SITE_URL,"webhook"===b?"en":"smtp"===b?v.email:v[b]),j=await q(b,(0,y.G)("telegram"===b?i.telegram:i.discord),"webhook"===b?e.map(a=>({...a,title:(0,y.G)(a.title),message:(0,y.G)(a.message)})):void 0);await (0,f.f)().update(g.channels).set(j.ok?{lastSentAt:a,lastError:null}:{lastError:j.error}).where((0,c.u)(g.channels.kind,b)),j.ok&&d.forEach(({a})=>w.add(a.id)),j.ok&&"telegram"===b&&j.messageId&&await L(d.filter(({a})=>"open"===a.pending).map(({a})=>a.id),j.messageId,a).catch(()=>console.warn("notify: remembering the Telegram message failed"))}let x=0,z=0,A=[];for(let{a:b,channels:d}of p){let e=d.some(a=>r.has(a)),h=null!==b.pendingSince&&a.getTime()-b.pendingSince.getTime()>18e5;w.has(b.id)?(x++,await (0,f.f)().update(g.alerts).set({pending:null,pendingSince:null,lastNotifiedAt:a,claimedAt:null,..."open"===b.pending?{notifiedOpen:!0}:{}}).where((0,c.u)(g.alerts.id,b.id))):s.has(b.id)||!e||h?(z++,await (0,f.f)().update(g.alerts).set({pending:null,claimedAt:null}).where((0,c.u)(g.alerts.id,b.id))):A.push(b.id)}return A.length&&await (0,f.f)().update(g.alerts).set({claimedAt:null}).where((0,c.y)(g.alerts.id,A)),{sent:x,dropped:z}}async function P(a){let b=new Date(a.getTime()-864e5),h=await (0,l.I)(),i=e.B`case ${g.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`,[j,k,n,o,p]=await Promise.all([(0,f.f)().select({ruleKey:g.alerts.ruleKey,severity:g.alerts.severity,title:g.alerts.title,message:g.alerts.message,resourceId:g.alerts.resourceId,startedAt:g.alerts.startedAt}).from(g.alerts).where((0,c.b)((0,c.M)(g.alerts.resolvedAt),(0,l.s)(h))).orderBy(i,(0,d.A)(g.alerts.startedAt)).limit(50),(0,f.f)().select({n:e.B`count(*)::int`}).from(g.alerts).where((0,c.B)(g.alerts.startedAt,b)),(0,f.f)().select({ruleKey:g.alerts.ruleKey,title:g.alerts.title,resourceId:g.alerts.resourceId,startedAt:g.alerts.startedAt,resolvedAt:g.alerts.resolvedAt}).from(g.alerts).where((0,c.b)((0,c.E)(g.alerts.resolvedAt),(0,c.B)(g.alerts.resolvedAt,b))).orderBy((0,d.A)(g.alerts.resolvedAt)).limit(20),(0,f.f)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,c.b)((0,c.u)(g.resources.kind,"app"),(0,c.u)(g.resources.monitored,!0),(0,c.M)(g.resources.goneAt))).orderBy(g.resources.name).limit(A.O.apps),(0,m.h)(a)]),q=o.map(a=>a.id),[r,s]=q.length?await Promise.all([(0,f.f)().select({id:g.monitors.resourceId,total:e.B`count(*)::int`,bad:e.B`(count(*) filter (where not ${g.checks.ok}))::int`}).from(g.checks).innerJoin(g.monitors,(0,c.u)(g.monitors.id,g.checks.monitorId)).where((0,c.b)((0,c.y)(g.monitors.resourceId,q),(0,c.B)(g.checks.at,b),(0,c.u)(g.checks.inMaintenance,!1))).groupBy(g.monitors.resourceId),(0,f.f)().select({id:g.storedLogs.resourceId,n:e.B`count(*)::int`}).from(g.storedLogs).where((0,c.b)((0,c.y)(g.storedLogs.resourceId,q),(0,c.B)(g.storedLogs.at,b))).groupBy(g.storedLogs.resourceId)]):[[],[]],t=new Map(r.map(a=>[a.id,a])),u=new Map(s.map(a=>[a.id,a.n])),v=await N();return{now:a,opened:k[0]?.n??0,firing:j.map(({resourceId:a,...b})=>{let c=(0,y.o)({...b,resourceId:a,causedBy:null},v);return{...b,title:c.title,message:c.message}}),resolved:n.flatMap(a=>a.resolvedAt?[{ruleKey:a.ruleKey,title:(0,y.o)({title:a.title,message:"",causedBy:null,resourceId:a.resourceId},v).title,took:(0,x.M)(a.startedAt,a.resolvedAt)}]:[]),apps:o.map(a=>{let b=t.get(a.id);return{name:a.name,uptime:b&&b.total>0?(b.total-b.bad)/b.total*100:null,errors:u.get(a.id)??0}}),providers:p.filter(a=>"ok"!==a.state).map(a=>({label:a.label,text:a.text}))}}async function Q(a,b,d){await (0,f.f)().update(g.channels).set(b.ok?{lastSentAt:d,lastError:null}:{lastError:b.error}).where((0,c.u)(g.channels.kind,a))}async function R(a){let[b,c]=await Promise.all([P(a),(0,t.I)("email")]);return(0,r.J)({...b,siteUrl:(0,n.f)().SITE_URL},c)}async function S(a,c){let d=(0,s.f)();if(!d.resendKey||!d.digestFrom)return{ok:!1,kind:"config",error:b.n.notSet("RESEND_API_KEY or DIGEST_FROM")};let e=await D("email_digest");if(!e?.config?.to)return{ok:!1,kind:"config",error:"The daily email digest isn't connected."};let f=await R(a),g=await (0,v.f)(d.resendKey,{from:d.digestFrom,to:e.config.to,subject:f.subject,html:f.html,text:f.text,idempotencyKey:c});return await Q("email_digest",g,a),g}async function T(a,b={}){let d=await (0,f.f)().select().from(g.settings).where((0,c.y)(g.settings.key,[B,C])),e=d.find(a=>a.key===B)?.value,h="string"==typeof e?e:null;if(!(0,r.A)(a,h))return;let i=(0,s.f)(),k=await D("email_digest");if(!i.resendKey||!i.digestFrom||!k?.row.enabled||!k.config?.to)return;let{resendKey:l,digestFrom:m}=i,n=k.config.to,o=(0,z.x)(a),p=await (0,r.K)(a,{lastSentDay:h,state:d.find(a=>a.key===C)?.value??null,build:b.build??(()=>R(a)),send:b.send??(a=>(0,v.f)(l,{from:m,to:n,...a,idempotencyKey:`digest-${o}`}))});p.acted&&(p.result&&await Q("email_digest",p.result,a),p.state?await (0,f.f)().insert(g.settings).values({key:C,value:p.state}).onConflictDoUpdate({target:g.settings.key,set:{value:p.state,updatedAt:a}}):await (0,f.f)().delete(g.settings).where((0,c.u)(g.settings.key,C)),p.sentDay&&await (0,f.f)().insert(g.settings).values({key:B,value:p.sentDay}).onConflictDoUpdate({target:g.settings.key,set:{value:p.sentDay,updatedAt:a}}),p.event&&await (0,j.f)([{type:"system",kind:"warn",message:p.event.message,detail:p.event.detail,resourceId:null,reason:"DigestFailed",at:a}]))}let U={en:{title:"Test message",message:"If you can read this, alerts reach you here."},id:{title:"Pesan tes",message:"Kalau pesan ini kebaca, alert udah nyampe ke sini."}};async function V(a,c,d={}){if("email_digest"===a)return S(c,`test-${c.getTime()}`);let{send:e,configured:f}=d.sender??await G();if(!f.has(a))return{ok:!1,kind:"config",error:"telegram"===a?`Telegram isn't connected, or ${b.n.notSet("TELEGRAM_BOT_TOKEN")}`:"webhook"===a?"The webhook isn't connected.":"smtp"===a?"Email (SMTP) isn't connected.":"Discord isn't connected."};let g="webhook"===a?"en":await (0,t.I)("smtp"===a?"email":a),i=(0,h.l)([{kind:"open",ruleKey:"Test",severity:"info",...U[g],startedAt:c,causedBy:null,provider:null}],c,(0,n.f)().SITE_URL,g),j=await e(a,"telegram"===a?i.telegram:i.discord);return await Q(a,j,c),j}async function W(){let a=(0,s.f)(),c={telegram:a.telegramToken?null:b.n.notSet("TELEGRAM_BOT_TOKEN"),discord:null,webhook:null,smtp:null,email_digest:a.resendKey&&a.digestFrom?null:b.n.notSet("RESEND_API_KEY or DIGEST_FROM")},[d,e,f,g,h]=await Promise.all([D("telegram"),D("discord"),D("webhook"),D("smtp"),D("email_digest")]),i=(a,b)=>({kind:a,connected:null!==b,enabled:b?.row.enabled??!1,hint:b?(0,u.f)(a,b.config):null,lastSentAt:b?.row.lastSentAt??null,lastError:b?.row.lastError??null,envMissing:c[a]});return[i("telegram",d),i("discord",e),i("webhook",f),i("smtp",g),i("email_digest",h)]}a.s(["k",0,W,"q",0,O,"G",0,I,"u",0,D,"P",0,Q,"L",0,V,"y",0,F,"J",0,T,"Q",0,H,"M",0,M,"Y",0,E])},390626,755453,352595,80997,718025,a=>{var b=a.i(19809),c=a.i(371289);let d=/^https:\/\/(?:(?:canary|ptb)\.)?discord(?:app)?\.com\/api\/webhooks\/\d{5,25}\/[\w-]{20,}$/;function e(a){return d.test(a.trim())?null:"Paste the whole webhook URL from Discord."}async function f(a,d,g={}){let h;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};if(e(a))return{ok:!1,kind:"config",error:"The saved Discord webhook URL isn't valid."};try{h=await (g.fetch??fetch)(a,{method:"POST",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(g.timeoutMs??5e3),cache:"no-store",body:JSON.stringify({content:d.slice(0,2e3),username:"Watchbell",allowed_mentions:{parse:[]}})})}catch{return{ok:!1,kind:"transient",error:"Discord didn't answer."}}if(204===h.status||h.ok)return{ok:!0};if(429===h.status){let a=await h.json().catch(()=>null),b=Math.ceil(a?.retry_after??5);return{ok:!1,kind:"transient",retryAfterS:b,error:`Discord asked us to wait ${b} s.`}}return 404===h.status||401===h.status?{ok:!1,kind:"config",error:"Discord says this webhook no longer exists."}:{ok:!1,kind:h.status>=500?"transient":"config",error:`Discord returned an error (${h.status}).`}}a.s(["$",0,f,"e",0,e],390626);var g=a.i(666680),h=a.i(300794),i=a.i(261283);function j(a){let b;try{b=new URL(a.trim())}catch{return"Paste the whole address, starting with https://."}let c=(0,i._)(b);return"scheme"===c?"Use an https:// address without a user name or password in it.":"blocked"===c?"Use an address on the public internet, on port 443. Watchbell doesn't post into private networks.":null}let k={open:"firing",repeat:"repeat",resolve:"resolved"};async function l(a){return(await (0,h.lookup)(a,{all:!0})).map(a=>a.address)}async function m(a,d,e={}){let f,h;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};if(j(a.url))return{ok:!1,kind:"config",error:"The saved webhook address isn't allowed any more."};let k=new URL(a.url.trim());try{let a=await (e.lookup??l)(k.hostname);if(!a.length||a.some(i.W))return{ok:!1,kind:"config",error:"The webhook host resolves to a private address; Watchbell won't post there."}}catch{return{ok:!1,kind:"transient",error:"The webhook host didn't resolve."}}let n=JSON.stringify(d),o=String(Math.floor(Date.parse(d.sentAt)/1e3)),p={"Content-Type":"application/json","User-Agent":"Watchbell-Webhook/1.0","X-Watchbell-Timestamp":o};a.secret&&(p["X-Watchbell-Signature"]=(h=a.secret,`sha256=${(0,g.createHmac)("sha256",h).update(`${o}.${n}`).digest("hex")}`));try{f=await (e.fetch??fetch)(k.toString(),{method:"POST",headers:p,body:n,redirect:"manual",cache:"no-store",signal:AbortSignal.timeout(e.timeoutMs??5e3)})}catch{return{ok:!1,kind:"transient",error:"The webhook didn't answer."}}if(await f.body?.cancel().catch(()=>void 0),f.ok)return{ok:!0};if(f.status>=300&&f.status<400)return{ok:!1,kind:"config",error:"The webhook answered with a redirect; Watchbell doesn't follow them. Use the final address."};if(429===f.status){let a=Math.min(600,Math.max(1,Number(f.headers.get("retry-after"))||30));return{ok:!1,kind:"transient",retryAfterS:a,error:`The webhook asked to wait ${a} s.`}}return{ok:!1,kind:f.status>=500?"transient":"config",error:`The webhook returned an error (${f.status}).`}}a.s(["k",0,function(a){return""===a||a.length>=16&&a.length<=200?null:"Use a secret of 16 to 200 characters, or leave it empty."},"E",0,m,"J",0,function(a,b,c,d){return{source:"watchbell",event:b.length?"alerts":"test",sentAt:c.toISOString(),text:a.slice(0,4e3),link:d,alerts:b.slice(0,20).map(a=>({status:k[a.kind],rule:a.ruleKey,severity:a.severity,title:a.title,message:a.message,startedAt:a.startedAt.toISOString(),causedBy:a.causedBy,provider:a.provider}))}},"I",0,j],755453);var n=a.i(761095),o=a.i(685560),p=a.i(61675);let q=[465,587,2525],r=p.z.email();function s(a){let b={},c=a.host.trim().toLowerCase();return/^[a-z0-9.-]{3,253}$/.test(c)&&c.includes(".")?(0,i.N)(c)&&(b.host="Use a mail server on the public internet. Watchbell doesn't connect into private networks."):b.host="Enter the server name, for example smtp.office365.com.",q.includes(a.port)||(b.port="Use port 587 (STARTTLS), 465 (TLS) or 2525."),(!a.user.trim()||a.user.length>200)&&(b.user="Enter the user name the server expects (often the whole address)."),(!a.pass||a.pass.length>500)&&(b.pass="Enter the password or app password."),r.safeParse(a.from.trim()).success||(b.from="Enter the address the mail comes from."),r.safeParse(a.to.trim()).success||(b.to="Enter the address that gets the alerts."),b}class t{socket;buf;lines;ready;waiters;onData;constructor(a){this.socket=a,this.buf="",this.lines=[],this.ready=[],this.waiters=[],this.onData=a=>this.read(a),a.on("data",this.onData)}attach(a){this.socket.off("data",this.onData),this.socket=a,a.on("data",this.onData)}read(a){let b;for(this.buf+=a.toString("utf8");(b=this.buf.indexOf("\n"))>=0;){let a=this.buf.slice(0,b).replace(/\r$/,"");if(this.buf=this.buf.slice(b+1),this.lines.push(a),/^\d{3}( |$)/.test(a)){let b={code:Number(a.slice(0,3)),text:this.lines.join("\n")};this.lines=[];let c=this.waiters.shift();c?c(b):this.ready.push(b)}}}next(){let a=this.ready.shift();return a?Promise.resolve(a):new Promise(a=>this.waiters.push(a))}send(a){this.socket.write(`${a}\r
17
- `)}}class u extends Error{kind;constructor(a,b){super(a),this.kind=b}}async function v(a,d,e,f={}){let j;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};if(Object.keys(s(a)).length)return{ok:!1,kind:"config",error:"The saved mail server settings aren't valid any more."};let k=a.host.trim().toLowerCase();try{let a=await (f.lookup??(async a=>(await (0,h.lookup)(a,{all:!0})).map(a=>a.address)))(k);if(!a.length||a.some(i.W))return{ok:!1,kind:"config",error:"The mail server resolves to a private address; Watchbell won't connect there."};j=a[0]}catch{return{ok:!1,kind:"transient",error:"The mail server's name didn't resolve."}}let l=465===a.port,m=null,p=new Promise((a,b)=>setTimeout(()=>b(new u("The mail server took too long to answer.","transient")),f.timeoutMs??15e3).unref?.()),q=async()=>{var b,c,h,i;let p,q;try{m=await (f.connect??((a,b,c,d)=>new Promise((e,f)=>{let g=d?o.default.connect({host:a,port:b,servername:c}):n.default.connect({host:a,port:b});g.once(d?"secureConnect":"connect",()=>e(g)),g.once("error",f)})))(j,a.port,k,l)}catch{throw new u(`Couldn't connect to ${k}:${a.port}.`,"transient")}let r=new t(m),s=async(a,b,c="config")=>{let d=await r.next();if(!a.includes(d.code))throw new u(`The mail server refused ${b} (${d.code}).`,d.code>=400&&d.code<500?"transient":c);return d};await s([220],"the connection","transient"),r.send("EHLO watchbell");let v=await s([250],"EHLO");if(!l){if(!/^250[- ]STARTTLS\b/im.test(v.text))throw new u("The mail server doesn't offer STARTTLS on this port, so the password would go in clear. Use port 465 or a server with STARTTLS.","config");r.send("STARTTLS"),await s([220],"STARTTLS"),m=await (f.upgrade??((a,b)=>new Promise((c,d)=>{let e=o.default.connect({socket:a,servername:b});e.once("secureConnect",()=>c(e)),e.once("error",d)})))(m,k),r.attach(m),r.send("EHLO watchbell"),v=await s([250],"EHLO after STARTTLS")}r.send(`AUTH PLAIN ${Buffer.from(`\0${a.user}\0${a.pass}`,"utf8").toString("base64")}`),await s([235],"the user name or password"),r.send(`MAIL FROM:<${a.from.trim()}>`),await s([250],"the sender address"),r.send(`RCPT TO:<${a.to.trim()}>`),await s([250,251],"the recipient address"),r.send("DATA"),await s([354],"the message"),m.write(`${(b=a,c=d,h=e,i=new Date,q=Buffer.from(h.replace(/\r?\n/g,"\r\n"),"utf8").toString("base64").replace(/.{1,76}/g,"$&\r\n"),[`From: Watchbell <${b.from.trim()}>`,`To: <${b.to.trim()}>`,`Subject: ${(p=c.replace(/[\r\n]+/g," ").slice(0,200),/^[\x20-\x7e]*$/.test(p)?p:`=?UTF-8?B?${Buffer.from(p,"utf8").toString("base64")}?=`)}`,`Date: ${i.toUTCString()}`,`Message-ID: <${(0,g.randomUUID)()}@watchbell>`,"MIME-Version: 1.0","Content-Type: text/plain; charset=utf-8","Content-Transfer-Encoding: base64","",q].join("\r\n"))}\r
18
- .\r
19
- `),await s([250],"the message"),r.send("QUIT"),await Promise.race([r.next(),new Promise(a=>setTimeout(a,2e3))])};try{return await Promise.race([q(),p]),{ok:!0}}catch(a){return a instanceof u?{ok:!1,kind:a.kind,error:a.message}:{ok:!1,kind:"transient",error:"The mail server closed the connection."}}finally{m?.destroy()}}a.s(["r",0,v,"t",0,s],352595);var w=a.i(192738),x=a.i(67890),y=a.i(245710),z=a.i(469762),A=a.i(556987);function B(a,b){return(0,y.M)(a,b)&&(0,y.z)(a).hour>=7}let C={en:{firing:"firing",opened:"opened",resolved:"resolved",last24:"in the last 24 hours.",stillHead:"Still firing",noFiring:"Nothing is firing.",resolvedHead:"Resolved",noResolved:"Nothing resolved.",appsHead:"Applications (24 h)",providersHead:"Providers",open:"Open alerts",after:"after",up:"up",took:a=>a,noChecks:"no checks",errors:a=>`${a} stored error${1===a?"":"s"}`},id:{firing:"aktif",opened:"baru",resolved:"pulih",last24:"dalam 24 jam terakhir.",stillHead:"Masih aktif",noFiring:"Nggak ada yang aktif.",resolvedHead:"Pulih",noResolved:"Nggak ada yang pulih.",appsHead:"Aplikasi (24 jam)",providersHead:"Provider",open:"Buka Alerts",after:"setelah",up:"aktif",took:a=>a.replace(/\b(\d+) min\b/g,"$1 menit").replace(/\b(\d+) h\b/g,"$1 jam").replace(/\b(\d+) d\b/g,"$1 hari"),noChecks:"belum ada cek",errors:a=>`${a} error tersimpan`}},D={May:"Mei",Aug:"Agu",Oct:"Okt",Dec:"Des"},E=[5,15,30,60];async function F(a,b){let c={acted:!1,state:b.state,sentDay:null,event:null,result:null};if(!B(a,b.lastSentDay))return c;let d=(0,y.x)(a),e=b.state&&b.state.day===d?b.state:null;if(e?.stopped)return{...c,state:e};if(e&&e.attempts>0){let b=(E[e.attempts-1]??E[E.length-1])*6e4;if(e.lastAttemptAt&&a.getTime()-new Date(e.lastAttemptAt).getTime()<b)return{...c,state:e}}e??={day:d,...await b.build(),attempts:0,lastAttemptAt:null,stopped:!1,lastError:null};let f=await b.send({subject:e.subject,html:e.html,text:e.text});if(f.ok)return{acted:!0,state:null,sentDay:d,event:null,result:f};let g=e.attempts+1,h="config"===f.kind||g>=5,i="config"===f.kind?`${f.error}. Fix it and the next digest goes out tomorrow.`:`${f.error} Gave up after ${g} attempts today.`;return{acted:!0,sentDay:null,result:f,state:{...e,attempts:g,lastAttemptAt:a.toISOString(),stopped:h,lastError:f.error},event:h?{message:"Daily digest not sent",detail:i}:null}}a.s(["J",0,function(a,b="en"){let c=C[b],d=`${a.siteUrl.replace(/\/+$/,"")}/alerts`,e=((a,b)=>{let{day:c,month:d}=(0,y.e)(a);return`${c} ${"id"===b?D[d]??d:d}`})(a.now,b),f=`${a.firing.length} ${c.firing}, ${a.opened} ${c.opened}, ${a.resolved.length} ${c.resolved}`,g=`Watchbell \xb7 ${e} \xb7 ${f}`,h=[...a.apps].sort((a,b)=>(a.uptime??101)-(b.uptime??101)||b.errors-a.errors||a.name.localeCompare(b.name)),i=a.firing.map(a=>`${w.Z[b][a.severity]} \xb7 ${a.ruleKey} \xb7 ${a.title}: ${"id"===b?(0,x.f)(a.ruleKey,a.message):a.message}`),j=a.resolved.map(a=>`${a.ruleKey} \xb7 ${a.title} (${c.after} ${c.took(a.took)})`),k=h.map(a=>`${a.name}: ${null===a.uptime?c.noChecks:`${(0,z.C)(a.uptime)} ${c.up}`}, ${c.errors(a.errors)}`),l=a.providers.map(a=>`${a.label}: ${a.text}`),m=[`Watchbell \xb7 ${e}`,`${f} ${c.last24}`,"",c.stillHead,...i.length?i.map(a=>`- ${a}`):[c.noFiring],"",c.resolvedHead,...j.length?j.map(a=>`- ${a}`):[c.noResolved],...k.length?["",c.appsHead,...k.map(a=>`- ${a}`)]:[],...l.length?["",c.providersHead,...l.map(a=>`- ${a}`)]:[],"",`${c.open}: ${d}`].join("\n"),n=a=>`<h3 style="font:600 14px system-ui,sans-serif;margin:18px 0 6px">${(0,w.H)(a)}</h3>`,o=(a,b)=>a.length?`<ul style="margin:0;padding-left:18px">${a.map(a=>`<li style="margin:2px 0">${(0,w.H)(a)}</li>`).join("")}</ul>`:`<p style="margin:0;color:#596170">${(0,w.H)(b)}</p>`,p=['<div style="font:14px/1.5 system-ui,sans-serif;color:#14171f;max-width:560px">',`<h2 style="font:600 16px system-ui,sans-serif;margin:0 0 4px">Watchbell \xb7 ${(0,w.H)(e)}</h2>`,`<p style="margin:0;color:#596170">${(0,w.H)(`${f} ${c.last24}`)}</p>`,n(c.stillHead),o(i,c.noFiring),n(c.resolvedHead),o(j,c.noResolved),...k.length?[n(c.appsHead),o(k,"")]:[],...l.length?[n(c.providersHead),o(l,"")]:[],`<p style="margin:18px 0 0"><a href="${(0,w.H)(d).replace(/"/g,"&quot;")}" style="color:#2f4372">${(0,w.H)(c.open)}</a></p>`,"</div>"].join("");return{subject:(0,A.G)(g),html:(0,A.G)(p),text:(0,A.G)(m)}},"A",0,B,"K",0,F],80997),a.s(["f",0,function(a=process.env){let b=a.TELEGRAM_BOT_TOKEN?.trim()??"",c=a.RESEND_API_KEY?.trim()??"",d=a.DIGEST_FROM?.trim()??"";return{telegramToken:/^\d+:[\w-]{20,}$/.test(b)?b:null,resendKey:c.startsWith("re_")?c:null,digestFrom:/<?[^\s<>@]+@[^\s<>@]+\.[^\s<>@]+>?$/.test(d)?d:null}}],718025)},288879,204784,a=>{a.s(["f",0,function(a,b){if("telegram"===a)return`${b.chatLabel||"Chat"} \xb7 …${b.chatId.slice(-4)}`;if("discord"===a){let a=/\/webhooks\/(\d+)\//.exec(b.url)?.[1]??"";return`webhook …${a.slice(-4)}`}if("webhook"===a){let a="";try{a=new URL(b.url).hostname}catch{a="?"}return`${a}/…${b.secret?" · signed":""}`}return"smtp"===a?`${b.host}:${b.port} \xb7 to ${b.to.slice(0,2)}…@…`:`${b.to.slice(0,2)}…@…`}],288879);var b=a.i(19809),c=a.i(371289);async function d(a,e,f={}){let g;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};try{g=await (f.fetch??fetch)("https://api.resend.com/emails",{method:"POST",signal:AbortSignal.timeout(5e3),cache:"no-store",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","User-Agent":"OpsConsole/1.0","Idempotency-Key":e.idempotencyKey},body:JSON.stringify({from:e.from,to:[e.to],subject:e.subject,html:e.html,text:e.text})})}catch{return{ok:!1,kind:"transient",error:"Resend didn't answer."}}if(g.ok)return{ok:!0};let h=await g.json().catch(()=>null);return 429===g.status||g.status>=500?{ok:!1,kind:"transient",error:`Resend returned an error (${g.status}).`}:{ok:!1,kind:"config",error:`Resend: ${String(h?.message??g.status).slice(0,200)}`}}a.s(["f",0,d],204784)},552543,a=>{var b=a.i(186133);function c(a){let b=a&&"object"==typeof a?a:null,c=b?b.lang:a,d=a=>{var d;return"string"==typeof(d=b&&a in b?b[a]:c)&&"id"===d.trim().toLowerCase()?"id":"en"};return{telegram:d("telegram"),discord:d("discord"),email:d("email")}}async function d(){try{return c(await (0,b.l)())}catch{return c(null)}}async function e(a="telegram"){return(await d())[a]}a.s(["c",0,["telegram","discord","email"],"H",0,c,"I",0,e,"B",0,d,"t",0,function(a,b,c){return a[b][c]}])},446914,a=>{var b=a.i(19809),c=a.i(462820),d=a.i(371289);async function e(a,c,f,g,h=5e3){let i;if((0,d.W)())return{ok:!1,code:null,description:b.Y,retryAfter:null};try{i=await g(`https://api.telegram.org/bot${a}/${c}`,{...f,signal:AbortSignal.timeout(h),cache:"no-store"})}catch{return{ok:!1,code:null,description:"Telegram didn't answer.",retryAfter:null}}let j=await i.json().catch(()=>null);return j?.ok?{ok:!0,result:j.result}:{ok:!1,code:j?.error_code??i.status,description:String(j?.description??`HTTP ${i.status}`).slice(0,200),retryAfter:j?.parameters?.retry_after??null}}async function f(a,b,c,d={}){let g="number"==typeof d.replyTo&&Number.isSafeInteger(d.replyTo)&&d.replyTo>0?{reply_parameters:{message_id:d.replyTo,allow_sending_without_reply:!0}}:{},h=await e(a,"sendMessage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:b,text:c,parse_mode:"HTML",link_preview_options:{is_disabled:!0},...d.replyMarkup?{reply_markup:d.replyMarkup}:{},...g})},d.fetch??fetch);if(h.ok){let a=h.result?.message_id;return"number"==typeof a&&Number.isSafeInteger(a)&&a>0?{ok:!0,messageId:a}:{ok:!0}}return 429===h.code?{ok:!1,kind:"transient",retryAfterS:h.retryAfter??30,error:`Telegram asked us to wait ${h.retryAfter??30} s.`}:null===h.code||h.code>=500?{ok:!1,kind:"transient",error:null===h.code?h.description:`Telegram returned an error (${h.code}).`}:{ok:!1,kind:"config",error:`Telegram: ${h.description}`}}async function g(a,b={}){let d=await e(a,"getUpdates?limit=20&timeout=0",{method:"GET"},b.fetch??fetch);if(!d.ok)return 409===d.code?{ok:!1,error:"This bot has a webhook set, so the console can't list chats. Remove the webhook or paste the chat id."}:401===d.code||404===d.code?{ok:!1,error:`Telegram rejected TELEGRAM_BOT_TOKEN. Check the value ${c.n.checkWhere}.`}:{ok:!1,error:"Couldn't reach Telegram. Try again."};let f=new Map;for(let a of Array.isArray(d.result)?d.result:[]){let b=a.message?.chat??a.my_chat_member?.chat??a.channel_post?.chat;b&&"number"==typeof b.id&&f.set(String(b.id),`${b.title??b.first_name??b.username??"Chat"} (${b.type??"chat"})`)}return{ok:!0,chats:[...f].map(([a,b])=>({id:a,label:b}))}}a.s(["N",0,g,"I",0,f,"z",0,e])}]})();
20
-
21
- //# sourceMappingURL=src_lib_005l0kcpyu43o._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[646324,a=>{let b=a=>a?a.getTime():null;function c(a,b){return!a||"object"!=typeof a||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(a=>"string"==typeof a[1]&&new Date(a[1]).getTime()>b.getTime()))}a.s(["Q",0,function(a,b,c,d=new Set){let e=new Set(c.map(a=>`${a.resourceId}/${a.id}`));return a.flatMap(a=>{let c=b.get(a.externalId);return!c||d.has(c)||e.has(`${a.id}/${c}`)?[]:[{appId:a.id,deploymentId:c}]})},"E",0,function(a,c){return!a||a.state!==c.state||a.target!==c.target||a.branch!==c.branch||a.commitSha!==c.commitSha||a.commitMessage!==c.commitMessage||a.source!==c.source||a.url!==c.url||b(a.buildingAt)!==b(c.buildingAt)||b(a.readyAt)!==b(c.readyAt)},"Y",0,function(a,b,d){let e=new Date(d.getTime()+216e5).toISOString();return{...c(a,d),...Object.fromEntries(b.map(a=>[a,e]))}},"K",0,function(a){try{return new URL(a).pathname}catch{return"/"}},"a",0,function(a,b){let c=[...new Map(a.map(a=>[a.id,a])).values()].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),d=b??c[0]?.id??null,e=c.findIndex(a=>a.id===d);return{currentId:d,previousId:e>=0?c[e+1]?.id??null:null}},"S",0,(a,b)=>new Set(Object.keys(c(a,b)))])},683439,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])},968715,a=>{var b=a.i(245710);function c(a,c){let[d,e,f]=(0,b.x)(a).split("-").map(Number);return Array.from({length:c},(a,b)=>new Date(Date.UTC(d,e-1,f-(c-1-b))).toISOString().slice(0,10))}let d=Date.UTC(2e3,0,1);a.s(["F",0,90,"I",0,30,"W",0,c,"D",0,function(a,b,c){return d+Math.floor((a.getTime()-d)/b)*b-(c-1)*b},"w",0,function(a,b,d){return c(b,d).map(b=>a?.get(b))},"C",0,function(a){let b=new Map;for(let c of a){let a=b.get(c.monitorId);a||(a=new Map,b.set(c.monitorId,a));let d=a.get(c.day);a.set(c.day,{day:c.day,checks:(d?.checks??0)+c.checks,failures:(d?.failures??0)+c.failures,maint:(d?.maint??0)+(c.maint??0)})}return b},"f",0,function(a,b,c,d,e=null){let f=Array.from({length:d},()=>e);for(let e of a){let a=Math.round((e.t-b)/c);a>=0&&a<d&&(f[a]=e.v)}return f},"j",0,function(a){let b={ok:0,warn:0,err:0,maint:0,paused:0};for(let c of a)!c.appGone&&("ok"===c.state||"warn"===c.state||"err"===c.state||"maint"===c.state?b[c.state]++:("paused"===c.state||"off"===c.state)&&b.paused++);return b},"h",0,function(a,b,d=90,e){return c(b,d).map((b,c)=>{let f,g=a?.get(b),h=g&&(0!==g.checks||g.maint)?0===g.checks?"maint":0===g.failures?"ok":g.failures<3?"warn":"err":"none",i=0==(f=d-1-c)?"Today":1===f?"1 day ago":`${f} days ago`,j=e?.get(b),k=g&&"none"!==h?"maint"===h?`${i} \xb7 maintenance, not counted`:`${i} \xb7 ${g.failures} failed of ${g.checks}`:`${i} \xb7 no data`;return{day:b,tone:h,title:j?`${k} \xb7 deployed ${j}`:k,deploy:j}})},"Y",0,function(a){let b=0,c=0;for(let d of a)d&&(b+=d.checks,c+=d.failures);return b?(b-c)/b*100:null}])}]})();
2
-
3
- //# sourceMappingURL=src_lib_0qbcg988i_-ee._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[646324,a=>{let b=a=>a?a.getTime():null;function c(a,b){return!a||"object"!=typeof a||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(a=>"string"==typeof a[1]&&new Date(a[1]).getTime()>b.getTime()))}a.s(["Q",0,function(a,b,c,d=new Set){let e=new Set(c.map(a=>`${a.resourceId}/${a.id}`));return a.flatMap(a=>{let c=b.get(a.externalId);return!c||d.has(c)||e.has(`${a.id}/${c}`)?[]:[{appId:a.id,deploymentId:c}]})},"E",0,function(a,c){return!a||a.state!==c.state||a.target!==c.target||a.branch!==c.branch||a.commitSha!==c.commitSha||a.commitMessage!==c.commitMessage||a.source!==c.source||a.url!==c.url||b(a.buildingAt)!==b(c.buildingAt)||b(a.readyAt)!==b(c.readyAt)},"Y",0,function(a,b,d){let e=new Date(d.getTime()+216e5).toISOString();return{...c(a,d),...Object.fromEntries(b.map(a=>[a,e]))}},"K",0,function(a){try{return new URL(a).pathname}catch{return"/"}},"a",0,function(a,b){let c=[...new Map(a.map(a=>[a.id,a])).values()].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),d=b??c[0]?.id??null,e=c.findIndex(a=>a.id===d);return{currentId:d,previousId:e>=0?c[e+1]?.id??null:null}},"S",0,(a,b)=>new Set(Object.keys(c(a,b)))])},683439,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])},968715,a=>{var b=a.i(245710);function c(a,c){let[d,e,f]=(0,b.x)(a).split("-").map(Number);return Array.from({length:c},(a,b)=>new Date(Date.UTC(d,e-1,f-(c-1-b))).toISOString().slice(0,10))}let d=Date.UTC(2e3,0,1);a.s(["F",0,90,"I",0,30,"W",0,c,"D",0,function(a,b,c){return d+Math.floor((a.getTime()-d)/b)*b-(c-1)*b},"w",0,function(a,b,d){return c(b,d).map(b=>a?.get(b))},"C",0,function(a){let b=new Map;for(let c of a){let a=b.get(c.monitorId);a||(a=new Map,b.set(c.monitorId,a));let d=a.get(c.day);a.set(c.day,{day:c.day,checks:(d?.checks??0)+c.checks,failures:(d?.failures??0)+c.failures,maint:(d?.maint??0)+(c.maint??0)})}return b},"f",0,function(a,b,c,d,e=null){let f=Array.from({length:d},()=>e);for(let e of a){let a=Math.round((e.t-b)/c);a>=0&&a<d&&(f[a]=e.v)}return f},"j",0,function(a){let b={ok:0,warn:0,err:0,maint:0,paused:0};for(let c of a)!c.appGone&&("ok"===c.state||"warn"===c.state||"err"===c.state||"maint"===c.state?b[c.state]++:("paused"===c.state||"off"===c.state)&&b.paused++);return b},"h",0,function(a,b,d=90,e){return c(b,d).map((b,c)=>{let f,g=a?.get(b),h=g&&(0!==g.checks||g.maint)?0===g.checks?"maint":0===g.failures?"ok":g.failures<3?"warn":"err":"none",i=0==(f=d-1-c)?"Today":1===f?"1 day ago":`${f} days ago`,j=e?.get(b),k=g&&"none"!==h?"maint"===h?`${i} \xb7 maintenance, not counted`:`${i} \xb7 ${g.failures} failed of ${g.checks}`:`${i} \xb7 no data`;return{day:b,tone:h,title:j?`${k} \xb7 deployed ${j}`:k,deploy:j}})},"Y",0,function(a){let b=0,c=0;for(let d of a)d&&(b+=d.checks,c+=d.failures);return b?(b-c)/b*100:null}])}]})();
2
-
3
- //# sourceMappingURL=src_lib_18e550s395xn5._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[903816,a=>{let b=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,c=new Set(["__proto__","prototype","constructor"]);function d(a){if(!b.test(a))return null;let d=[];for(let b of a.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))d.push(void 0!==b[1]?b[1]:Number(b[2]));return d.some(a=>"string"==typeof a&&c.has(a))?null:d}let e=a=>a.length>40?`${a.slice(0,39)}…`:a;a.s(["Q",0,262144,"$",0,function(a,b,c){let f;if("contains"===a.kind)return b.includes(a.text)?null:c?"Keyword not found in the first 256 KB":"Keyword not found";try{f=JSON.parse(b)}catch{return c?"Response is larger than 256 KB":"Response isn't JSON"}let g=d(a.path);if(!g)return`JSON ${a.path} is missing`;let h=function(a,b){let c=a;for(let a of b)if("number"==typeof a){if(!Array.isArray(c)||a>=c.length)return{found:!1};c=c[a]}else{if(!c||"object"!=typeof c||Array.isArray(c)||!Object.hasOwn(c,a))return{found:!1};c=c[a]}return{found:!0,value:c}}(f,g);return h.found?("string"==typeof h.value?h.value:JSON.stringify(h.value))===a.equals?null:`JSON ${a.path} is ${e(JSON.stringify(h.value)??"undefined")}, expected "${e(a.equals)}"`:`JSON ${a.path} is missing`},"t",0,d,"C",0,function(a){return a.bodyContains?{kind:"contains",text:a.bodyContains}:a.jsonPath&&null!==a.jsonEquals?{kind:"json",path:a.jsonPath,equals:a.jsonEquals}:null}])},469762,a=>{var b=a.i(245710);function c(a,b){let c=Math.max(0,b.getTime()-a.getTime());return c<6e4?"now":c<36e5?`${Math.floor(c/6e4)} min ago`:c<864e5?`${Math.floor(c/36e5)} h ago`:`${Math.floor(c/864e5)} d ago`}function d(a){let b=Math.max(0,Math.round(a/1e3));if(b<60)return`${b}s`;let c=Math.floor(b/60);return c<60?`${c}m ${String(b%60).padStart(2,"0")}s`:`${Math.floor(c/60)}h ${String(c%60).padStart(2,"0")}m`}a.s(["m",0,function(a,b){for(let a of b)try{let b=new URL(a);if("https:"!==b.protocol&&"http:"!==b.protocol||!b.host)continue;return b.host}catch{}return`${a}.vercel.app`},"W",0,function(a){return a?a.split(/\r?\n|\r/).map(a=>a.trim()).find(a=>""!==a)??"":""},"h",0,function(a,d){let e=d.getTime()-a.getTime();return e<36e5?c(a,d):(0,b.m)(a,d)?(0,b.U)(a):`${Math.max(1,Math.floor(e/864e5))} d ago`},"A",0,function(a,b){return"building"===a.state?`${d(b.getTime()-(a.buildingAt??a.createdAt).getTime())} elapsed`:a.readyAt&&a.buildingAt?d(a.readyAt.getTime()-a.buildingAt.getTime()):"—"},"v",0,function(a,c){return(0,b.m)(a,c)?(0,b.U)(a):`${(0,b.L)(a)} ${(0,b.U)(a)}`},"o",0,function(a,b){let c=Math.max(0,b.getTime()-a.getTime()),d=(a,b)=>`${a} ${b}${1===a?"":"s"}`;return c<36e5?d(Math.max(1,Math.floor(c/6e4)),"minute"):c<864e5?d(Math.floor(c/36e5),"hour"):d(Math.floor(c/864e5),"day")},"F",0,function(a){try{let b=new URL(a);return`${b.host}${b.pathname}`}catch{return a}},"$",0,function(a,e){if(!a)return"—";if("building"===a.state)return`building ${d(e.getTime()-(a.buildingAt??a.createdAt).getTime())}`;let f=a.readyAt??a.createdAt;return"error"===a.state?`failed ${(0,b.m)(f,e)?(0,b.U)(f):c(f,e)}`:"canceled"===a.state?`canceled ${c(f,e)}`:c(f,e)},"H",0,function(a){let{day:c,month:d,year:e}=(0,b.e)(a);return`${c} ${d} ${e}`},"p",0,a=>null===a?"—":`${Math.round(a)} ms`,"C",0,a=>null===a?"—":`${(Math.floor(100*a+1e-6)/100).toFixed(2)}%`,"J",0,c,"_",0,a=>a?a.slice(0,7):"—"])}]})();
2
-
3
- //# sourceMappingURL=src_lib_1_5ea0kxdn6zt._.js.map
@@ -1,6 +0,0 @@
1
- (()=>{"use strict";module.exports=[484458,a=>{var b=a.i(708636),c=a.i(434711);let d=async()=>({report:null,prefs:{disabled:[],defaultModel:null},allowed:c._}),e=async()=>null,f=async()=>(0,b.C)(null),g=async()=>({conns:[],summary:{listed:0,added:0,removed:0,returned:0,tested:0,ready:0},pending:!1});a.s(["T",0,"ag/","S",0,{modelSync:!1},"d",0,()=>null,"_",0,()=>[],"U",0,()=>!1,"y",0,d,"b",0,f,"V",0,e,"X",0,g])},434711,a=>{let b=["gemini","antigravity","@cf/google/gemma","claude"];function c(a,d=b){if(!a)return!1;let e=a.toLowerCase();return d.some(a=>a.length>0&&e.startsWith(a.toLowerCase()))}let d=/^[A-Za-z0-9@._:/+ ()[\]-]{1,120}$/,e=/^[a-z0-9@._:/+-]{1,120}$/;function f(a){if("string"!=typeof a)return null;let b=a.trim();if(!d.test(b))return null;let c=b.toLowerCase().replace(/[\s()[\]]+/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return e.test(c)?c:null}function g(a){let b=a.trim();if(b.startsWith("@"))return b;let c=b.indexOf("/");return c<0?b:b.slice(c+1)}a.s(["_",0,b,"L",0,"ai.defaultModel","I",0,/^[a-z0-9@/._-]{1,80}$/,"e",0,e,"h",0,function(a,d=b){let e=f(a);return e&&c(g(e),d)?e:null},"S",0,c,"R",0,f,"M",0,g])},86657,a=>{var b=a.i(371289),c=a.i(363652),d=a.i(501634);let e={provider:async()=>{if((0,b.W)())return{name:"Demo",model:"demo"};try{let a=await (0,c.M)();return{name:a.conn.name,model:a.publicId}}catch{return null}},appSnapshot:d.w,advice:d.y,complete:c.X};a.s(["f",0,e])},502330,a=>{let b="You are the assistant inside Watchbell, a console that monitors the owner's web apps. Answer only from the data in the user's message. Say so plainly when the data does not cover the question. Never invent names, numbers, dates or causes. Names such as db-a or account-1 are aliases of private names: use them as written and do not guess what they stand for. Be brief and concrete. Short markdown is fine; no HTML.";function c(a,b=300){let d=String(a??"").replace(/[a-z][a-z0-9+.-]*:\/\/\S*/gi,"[url]").replace(/\b(?:wp|hb)_[A-Za-z0-9]{6,}/g,"[secret]").replace(/\b(?:sk-|gsk_|AIza|AQ\.)[A-Za-z0-9_.-]{6,}/g,"[secret]").replace(/postgres(?:ql)?/gi,"[db]").replace(/@/g,"(at)").replace(/\s+/g," ").trim();return d.length>b?`${d.slice(0,b-1)}…`:d}function d(a){let b=[`App: ${c(a.id,80)}`,`State: ${c(a.state,20)}`,`Uptime, last 30 days: ${null===a.uptime30d?"unknown":`${Math.round(100*a.uptime30d)/100}%`}`,`Database: ${a.database?c(a.database,40):"none"}`,`Last deploy: ${a.lastDeploy?c(a.lastDeploy,40):"unknown"}`];return a.problems.length?(b.push("Problems:"),a.problems.slice(0,10).forEach((a,d)=>{b.push(`${d+1}. [${c(a.kind,30)}] ${c(a.where,120)}: ${c(a.what)}${a.fix?` What the console suggests: ${c(a.fix)}`:""}`)})):b.push("Problems: none reported."),b}a.s(["o",0,b,"R",0,function(a){let b=[`Why is the app "${c(a.id,80)}" ${c(a.state,20)}, and what should the owner do first? Answer in short markdown (under 1,500 characters), only from this data; say so if it does not cover the cause.`,"",...d(a)].join("\n");return b.length>2e3?`${b.slice(0,1999)}…`:b},"u",0,function(a,d){let e=JSON.stringify(function a(b,d=0){return"string"==typeof b?c(b):d>4?null:Array.isArray(b)?b.slice(0,50).map(b=>a(b,d+1)):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).slice(0,30).map(([b,e])=>[c(b,40),a(e,d+1)])):"number"==typeof b||"boolean"==typeof b||null===b?b:null}(a),null,1);return[{role:"system",content:b},{role:"user",content:`Console data (scrubbed, generated ${c(a.generatedAt,40)}):
2
- ${e}
3
-
4
- Question: ${c(d,2e3)}`}]},"O",0,c,"N",0,function(a){let d=a.slice(0,40).map(a=>`- [${c(a.severity,20)}] ${c(a.title)} (app: ${c(a.app,80)})`);return[{role:"system",content:b},{role:"user",content:[`Summarise these ${a.length} recommendations in two or three sentences, most urgent first. Name each app once.`,"",...d].join("\n")}]},"r",0,function(a){return[{role:"system",content:b},{role:"user",content:["Explain in at most five sentences what is likely going on with this app and what to do first.","",...d(a)].join("\n")}]}])}]})();
5
-
6
- //# sourceMappingURL=src_private_1yzfhupl3rlpx._.js.map
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,435005,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(846696),n=e.i(428325),l=e.i(95187);let i=(0,l.createServerReference)("00d06dd7779b9e623fb67cb0fa162b25f18acfc504",l.callServer,void 0,l.findSourceMapURL,"dismissWhatsNew");e.s(["WhatsNewDismiss",0,function(){let[e,l]=(0,a.useTransition)();return(0,t.jsx)(n.K,{size:"sm",onClick:()=>l(async()=>{try{let e=await i();e.ok||s.c.error(e.error)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:e,children:e?"Saving…":"Got it"})}],435005)},360261,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(54131),n=e.i(39626),l=e.i(975157),i=e.i(618566),r=e.i(95187);let o=(0,r.createServerReference)("00454ce8b57217731b11af6b6b8b340299a57ee868",r.callServer,void 0,r.findSourceMapURL,"loadPaletteSource"),c={home:{label:"Home",holds:"Overview, Topology, Events and Provider status.",appears:"Always on."},hosting:{label:"Hosting",holds:"Applications, Deployments, Domains, DNS records, Uptime and Logs.",appears:"On from the start, so Uptime is always in the menu."},database:{label:"Database",holds:"Supabase, Neon, Firebase, Turso, Upstash Redis, Cloudflare D1, the SQL console and Free databases.",appears:"Appears when you connect Supabase, Neon, Firebase, Turso or Upstash, or once a database is watched.",keeps:"Keep active and Auto-restore keep running while it is off, so your free Supabase projects aren't paused."},devops:{label:"DevOps",holds:"Automation: GitHub repositories, their Actions runs and dependency advisories.",appears:"Appears when you connect GitHub."},manage:{label:"Manage",holds:"Connections, Alerts, Auto-actions, Sections, Settings, AI gateway, API explorer, Status page and Backups.",appears:"Always on."}},d={home:[{key:"overview",label:"Overview",href:"/overview",icon:"dashboard",stage:2},{key:"topology",label:"Topology",href:"/topology",icon:"topology",stage:4},{key:"events",label:"Events",href:"/events",icon:"activity",stage:2},{key:"status",label:"Provider status",href:"/status",icon:"broadcast",stage:5}],hosting:[{key:"apps",label:"Applications",href:"/apps",icon:"apps",stage:2},{key:"deployments",label:"Deployments",href:"/deployments",icon:"rocket",stage:2},{key:"domains",label:"Domains",href:"/domains",icon:"world",stage:4},{key:"dns",label:"DNS records",href:"/dns",icon:"sitemap",stage:4},{key:"uptime",label:"Uptime",href:"/uptime",icon:"heartbeat",stage:2},{key:"logs",label:"Logs",href:"/logs",icon:"file",stage:5,hideForViewer:!0}],database:[{key:"supabase",label:"Supabase",href:"/supabase",icon:"bolt",stage:3},{key:"neon",label:"Neon",href:"/neon",icon:"database",stage:3},{key:"firebase",label:"Firebase",href:"/firebase",icon:"flame",stage:3},{key:"turso",label:"Turso",href:"/turso",icon:"database",stage:8},{key:"upstash",label:"Upstash Redis",href:"/upstash",icon:"bolt",stage:8},{key:"d1",label:"Cloudflare D1",href:"/d1",icon:"cloud",stage:8},{key:"sql",label:"SQL console",href:"/sql",icon:"terminal",stage:9,ownerOnly:!0},{key:"catalog",label:"Free databases",href:"/catalog",icon:"books",stage:7}],devops:[{key:"repos",label:"Repositories",href:"/repos",icon:"github",stage:9,sub:"Automation"}],manage:[{key:"connections",label:"Connections",href:"/connections",icon:"plug",stage:1,ownerOnly:!0},{key:"alerts",label:"Alerts",href:"/alerts",icon:"bell",stage:5},{key:"sections",label:"Sections",href:"/manage/sections",icon:"layout",stage:12,ownerOnly:!0},{key:"settings",label:"Settings",href:"/settings",icon:"settings",stage:1,ownerOnly:!0},{key:"backups",label:"Backups",href:"/backups",icon:"cloud-upload",stage:7,ownerOnly:!0},{key:"status-page",label:"Status page",href:"/settings?tab=status-page",icon:"page",stage:7,ownerOnly:!0}]},h=["home","hosting","database","devops","manage"].map(e=>({section:e,group:c[e].label,items:d[e]})),p={nav:[]};function u(e=p){let t=h.map(e=>({...e,items:[...e.items]}));for(let a of e.nav){let e=t.find(e=>e.section===a.section)??t.find(e=>"manage"===e.section),s=a.after?e.items.findIndex(e=>e.key===a.after):-1;s<0?e.items.push(...a.items):e.items.splice(s+1,0,...a.items)}return t}function f(e,t=p,a){let s=a?new Set(a):null;return u(t).filter(e=>!s||s.has(e.section)).map(t=>({...t,items:t.items.filter(t=>t.ownerOnly?"owner"===e:!t.hideForViewer||"viewer"!==e)})).filter(e=>e.items.length>0)}let m=e=>e.split("?")[0];function x(e,t){let a=t.trim().toLowerCase(),s=e.toLowerCase(),n=s.indexOf(a);if(n<0)return null;if(0===n)return 0;for(let e=s.indexOf(a);e>=0;e=s.indexOf(a,e+1))if(!/[a-z0-9]/.test(s[e-1]??" "))return 1;return 2}var g=e.i(484337),v=e.i(847379),b=e.i(33550);let k=(0,b.f)("outline","apps","Apps",[["path",{d:"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-0"}],["path",{d:"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-1"}],["path",{d:"M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-2"}],["path",{d:"M14 7l6 0",key:"svg-3"}],["path",{d:"M17 4l0 6",key:"svg-4"}]]);var y=e.i(668029),w=e.i(49601);let j=(0,b.f)("outline","books","Books",[["path",{d:"M5 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -14",key:"svg-0"}],["path",{d:"M9 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -14",key:"svg-1"}],["path",{d:"M5 8h4",key:"svg-2"}],["path",{d:"M9 16h4",key:"svg-3"}],["path",{d:"M13.803 4.56l2.184 -.53c.562 -.135 1.133 .19 1.282 .732l3.695 13.418a1.02 1.02 0 0 1 -.634 1.219l-.133 .041l-2.184 .53c-.562 .135 -1.133 -.19 -1.282 -.732l-3.695 -13.418a1.02 1.02 0 0 1 .634 -1.219l.133 -.041",key:"svg-4"}],["path",{d:"M14 9l4 -1",key:"svg-5"}],["path",{d:"M16 16l3.923 -.98",key:"svg-6"}]]);var M=e.i(386770);let N=(0,b.f)("outline","broadcast","Broadcast",[["path",{d:"M18.364 19.364a9 9 0 1 0 -12.728 0",key:"svg-0"}],["path",{d:"M15.536 16.536a5 5 0 1 0 -7.072 0",key:"svg-1"}],["path",{d:"M11 13a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),S=(0,b.f)("outline","browser","Browser",[["path",{d:"M4 8h16",key:"svg-0"}],["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-1"}],["path",{d:"M8 4v4",key:"svg-2"}]]);var C=e.i(38156);let E=(0,b.f)("outline","cloud-upload","CloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var R=e.i(213756);let L=(0,b.f)("outline","file-text","FileText",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",key:"svg-1"}],["path",{d:"M9 9l1 0",key:"svg-2"}],["path",{d:"M9 13l6 0",key:"svg-3"}],["path",{d:"M9 17l6 0",key:"svg-4"}]]);var z=e.i(504962),A=e.i(359133);let D=(0,b.f)("outline","hierarchy-3","Hierarchy3",[["path",{d:"M10 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M10 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-2"}],["path",{d:"M18 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M2 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-4"}],["path",{d:"M14 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-5"}],["path",{d:"M5 17l2 -3",key:"svg-6"}],["path",{d:"M9 10l2 -3",key:"svg-7"}],["path",{d:"M13 7l2 3",key:"svg-8"}],["path",{d:"M17 14l2 3",key:"svg-9"}],["path",{d:"M15 14l-2 3",key:"svg-10"}],["path",{d:"M9 14l2 3",key:"svg-11"}]]);var T=e.i(627406);let O=(0,b.f)("outline","layout-list","LayoutList",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -2",key:"svg-0"}],["path",{d:"M4 16a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -2",key:"svg-1"}]]);var P=e.i(11409);let $=(0,b.f)("outline","rocket","Rocket",[["path",{d:"M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3",key:"svg-0"}],["path",{d:"M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3",key:"svg-1"}],["path",{d:"M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),U=(0,b.f)("outline","route-2","Route2",[["path",{d:"M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4",key:"svg-1"}],["path",{d:"M14 5a2 2 0 0 0 -2 2v10a2 2 0 0 1 -2 2",key:"svg-2"}]]),I=(0,b.f)("outline","settings","Settings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var B=e.i(763995);let K=(0,b.f)("outline","terminal-2","Terminal2",[["path",{d:"M8 9l3 3l-3 3",key:"svg-0"}],["path",{d:"M13 15l3 0",key:"svg-1"}],["path",{d:"M3 6a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -12",key:"svg-2"}]]),F=(0,b.f)("outline","world","World",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M3.6 9h16.8",key:"svg-1"}],["path",{d:"M3.6 15h16.8",key:"svg-2"}],["path",{d:"M11.5 3a17 17 0 0 0 0 18",key:"svg-3"}],["path",{d:"M12.5 3a17 17 0 0 1 0 18",key:"svg-4"}]]),W={dashboard:T.f,topology:D,activity:g.f,apps:k,rocket:$,world:F,sitemap:B.f,bolt:w.f,database:R.f,flame:z.f,books:j,heartbeat:A.f,bell:y.f,file:L,broadcast:N,plug:P.f,"cloud-upload":E,cloud:C.f,settings:I,route:U,api:v.f,github:M.f,terminal:K,layout:O,page:S};function _({role:e,ext:s,sections:n,open:l,opener:i,onOpen:r,onClose:d}){let[h,p]=(0,a.useState)(null),[u,m]=(0,a.useState)(!1),x=(0,a.useRef)(!1);(0,a.useEffect)(()=>{function e(e){"k"!==e.key.toLowerCase()||!(e.ctrlKey||e.metaKey)||e.shiftKey||e.altKey||(e.preventDefault(),e.repeat||(l?d():r(document.activeElement)))}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l,r,d]),(0,a.useEffect)(()=>{l&&!x.current&&(x.current=!0,o().then(e=>{e.ok&&e.data?(p(e.data),m(!1)):m(!0)}).catch(()=>m(!0)).finally(()=>{x.current=!1}))},[l]);let g=(0,a.useMemo)(()=>(function(e,t,a={nav:[],palette:[]},s){let n=f(e,a,s).flatMap(e=>e.items.map(t=>({id:`page:${t.key}`,label:t.label,hint:e.group,href:t.href,icon:t.icon}))),l="owner"!==e?[]:a.palette.filter(e=>!n.some(t=>t.href===e.href)).map(e=>{let t=a.nav.flatMap(e=>e.items.map(t=>({g:e,i:t}))).find(({i:t})=>e.href===t.href||e.href.startsWith(`${t.href}/`));return{id:`ext:${e.href}`,label:e.label,hint:t?`${c[t.g.section].label} \xb7 ${t.i.label}`:"Page",href:e.href,icon:t?.i.icon??"dashboard",keywords:e.keywords}}),i=[...n,...l];if(!t)return i;let r=t.apps.map(e=>({id:`app:${e.id}`,label:e.name,hint:e.domain,href:`/apps/${e.id}`,icon:"apps"})),o=t.monitors.map(e=>({id:`monitor:${e.id}`,label:`${e.appName}${e.path}`,hint:"Monitor",href:`/apps/${e.appId}`,icon:"heartbeat"}));return[...i,...r,...(t.domains??[]).map(e=>({id:`domain:${e.id}`,label:e.name,hint:"Domain",href:"/domains",icon:"world"})),...o]})(e,h,s,n),[e,h,s,n]);return l?(0,t.jsx)(H,{items:g,loading:null===h&&!u,opener:i,onClose:d}):null}function H({items:e,loading:n,opener:r=null,onClose:o}){let c=(0,i.useRouter)(),d=(0,a.useId)(),h=(0,a.useRef)(null),[p,u]=(0,a.useState)(""),[f,m]=(0,a.useState)(0),{shot:g}=(0,s.usePrivacy)(),v=(0,s.useMask)(),b=(0,a.useMemo)(()=>e.map(e=>e.id.startsWith("page:")?e:{...e,label:v("text",e.label),hint:v("text",e.hint)}),[e,v]),k=(0,a.useMemo)(()=>(function(e,t,a,s=20){if(!a.trim())return t.slice(0,s);let n=e=>(function(e,t){let a=x(e.label,t);if(null!==a)return a;let s=x(e.hint,t);if(null!==s)return s+3;let n=(e.keywords??[]).map(e=>x(e,t)).filter(e=>null!==e);return n.length?Math.min(...n)+6:null})(e,a),l=[];return e.forEach((e,a)=>{let s=n(e),i=n(t[a]),r=null===s?i:null===i?s:Math.min(s,i);null!==r&&l.push({item:t[a],score:r})}),l.sort((e,t)=>e.score-t.score).slice(0,s).map(e=>e.item)})(e,g?b:e,p),[e,b,g,p]),y=Math.min(f,Math.max(0,k.length-1)),w=e=>`${d}-opt-${e}`;function j(e){e&&(o(),c.push(e.href))}return(0,a.useEffect)(()=>{h.current?.focus()},[]),(0,a.useEffect)(()=>()=>{r instanceof HTMLElement&&r.isConnected&&r.focus()},[r]),(0,a.useEffect)(()=>{document.getElementById(`${d}-opt-${y}`)?.scrollIntoView?.({block:"nearest"})},[d,y,k]),(0,a.useEffect)(()=>{function e(e){"Escape"===e.key&&o(),"Tab"===e.key&&e.preventDefault()}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]),(0,t.jsx)("div",{className:"fixed inset-0 z-[80] flex items-start justify-center bg-black/45 pt-[12vh]",onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Search",onMouseDown:e=>{e.target!==h.current&&e.preventDefault()},className:"w-[560px] max-w-[calc(100vw-32px)] overflow-hidden rounded-[10px] border border-line-strong bg-surface shadow-[0_16px_48px_rgba(0,0,0,.25)]",children:[(0,t.jsx)("input",{ref:h,role:"combobox","aria-expanded":k.length>0,"aria-controls":k.length>0?`${d}-list`:void 0,"aria-activedescendant":k.length>0?w(y):void 0,"aria-autocomplete":"list","aria-label":"Search",autoComplete:"off",placeholder:"Jump to a page, app, database, or domain",value:p,onChange:e=>{u(e.target.value),m(0)},onKeyDown:function(e){e.nativeEvent.isComposing||("ArrowDown"===e.key&&(m(Math.min(y+1,k.length-1)),e.preventDefault()),"ArrowUp"===e.key&&(m(Math.max(y-1,0)),e.preventDefault()),"Enter"===e.key&&(j(k[y]),e.preventDefault()))},className:"w-full border-0 border-b border-line bg-transparent px-4 py-3.5 text-[15px] text-ink outline-none placeholder:text-ink-faint"}),k.length>0?(0,t.jsx)("ul",{id:`${d}-list`,role:"listbox","aria-label":"Results",className:"m-0 max-h-[360px] list-none overflow-y-auto p-1.5",children:k.map((e,a)=>{let s=W[e.icon];return(0,t.jsxs)("li",{id:w(a),role:"option","aria-selected":a===y,onMouseMove:()=>{a!==y&&m(a)},onClick:()=>j(e),className:(0,l.f)("flex cursor-pointer items-center gap-2.5 rounded-md px-2.5 py-2",a===y&&"bg-brand-soft"),children:[(0,t.jsx)(s,{size:17,className:"shrink-0 text-ink-faint"}),(0,t.jsx)("span",{className:"min-w-0 truncate",children:e.label}),(0,t.jsx)("small",{className:"ml-auto shrink-0 pl-3 text-[12.5px] text-ink-faint",children:e.hint})]},e.id)})}):(0,t.jsx)("p",{role:"status",className:"m-0 p-4 text-ink-soft",children:n&&p.trim()?"Loading apps…":"No matches"})]})})}function G(){return(0,t.jsx)("div",{role:"note",className:"border-b border-line bg-brand-soft px-6 py-1.5 text-[12.5px] text-nav-active-text max-[720px]:px-3.5",children:"Demo — data is made up and resets. Results of your actions can disappear when the demo restarts."})}function V({size:e=28,title:a,className:s}){return(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",width:e,height:e,className:(0,l.f)("shrink-0",s),role:a?"img":void 0,"aria-hidden":!a||void 0,focusable:"false",children:[a?(0,t.jsx)("title",{children:a}):null,(0,t.jsx)("rect",{x:"0.5",y:"0.5",width:"31",height:"31",rx:"7",fill:"#14213d",strokeWidth:"1",className:"stroke-transparent dark:stroke-[#2f4372]"}),(0,t.jsxs)("g",{transform:"rotate(-14 15 16)",fill:"#fcc419",children:[(0,t.jsx)("rect",{x:"13.7",y:"5.4",width:"2.6",height:"2.4",rx:"1.1"}),(0,t.jsx)("path",{d:"M15 7.2c-4.3 0-6.8 3.1-6.8 7.3v4.1l-2.4 3.3h18.4l-2.4-3.3v-4.1c0-4.2-2.5-7.3-6.8-7.3z"}),(0,t.jsx)("circle",{cx:"15",cy:"24.3",r:"2.3"})]}),(0,t.jsxs)("g",{fill:"none",stroke:"#fcc419",strokeWidth:"2.2",strokeLinecap:"round",children:[(0,t.jsx)("path",{d:"M24.4 9.2c1.4 1.4 2.2 3.2 2.2 5.2"}),(0,t.jsx)("path",{d:"M22.8 11.1c.8.8 1.2 1.8 1.2 2.9"})]})]})}let q=(0,b.f)("outline","chevron-right","ChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]);var Q=e.i(522016),J=e.i(500443),X=e.i(203709);let Z={ok:"bg-ok",warn:"bg-warn-icon",err:"bg-err",idle:"bg-idle"};function Y({initialLastRunAt:e,initialNow:s,demo:n=!1}){let[i,r]=(0,a.useState)(e),[o,c]=(0,a.useState)(s);(0,a.useEffect)(()=>{(0,J.markCollectorRun)(n||!i?null:Date.parse(i))},[i,n]),(0,a.useEffect)(()=>{if(n)return;let e=()=>{fetch("/api/status",{cache:"no-store"}).then(e=>e.ok&&!e.redirected&&(e.headers.get("content-type")??"").includes("application/json")?e.json():null).then(e=>{e&&"object"==typeof e&&"lastRunAt"in e&&(r(e.lastRunAt??null),c(Date.now()))}).catch(()=>void 0)},t=()=>{"visible"===document.visibilityState&&e()},a=()=>{"visible"===document.visibilityState&&e()};t();let s=setInterval(()=>c(Date.now()),5e3),l=setInterval(t,3e4);return document.addEventListener("visibilitychange",a),()=>{clearInterval(s),clearInterval(l),document.removeEventListener("visibilitychange",a)}},[n]);let d=n?{state:"ok",text:X.e}:(0,X.m)(i?new Date(i):null,new Date(o));return(0,t.jsxs)("div",{className:"flex items-center gap-2 border-t border-line px-4 py-3 text-xs text-ink-soft","aria-live":"off",children:[(0,t.jsx)("span",{className:(0,l.f)("size-2 shrink-0 rounded-full",Z[d.state]),"aria-hidden":!0}),d.text]})}function ee({role:e,ext:s,sections:n,collector:r,alerts:o,mobileOpen:c,onNavigate:d,navRef:h}){let x=function(e,t=p,a){return function(e,t=p,a){let[s,n]=e.split("?"),l=s.replace(/\/+$/,"")||"/",i=null!=a?new URLSearchParams(a):void 0!==n?new URLSearchParams(n):null,r=null;for(let e of u(t).flatMap(e=>e.items)){let t=m(e.href);if(l!==t&&!l.startsWith(`${t}/`))continue;let a=e.href.includes("?");if(a&&(l!==t||!function(e,t){let a=e.split("?")[1];return!a||!!t&&[...new URLSearchParams(a)].every(([e,a])=>t.get(e)===a)}(e.href,i)))continue;let s=r?m(r.href).length:-1;(!r||t.length>s||t.length===s&&a&&!r.href.includes("?"))&&(r=e)}return r}(e,t,a)?.key??null}((0,i.usePathname)(),s,(0,i.useSearchParams)()),[g,v]=(0,a.useState)({});return(0,t.jsxs)("nav",{ref:h,tabIndex:-1,"aria-label":"Main navigation",className:(0,l.f)("sticky top-0 flex h-screen flex-col overflow-y-auto border-r border-line bg-nav focus:outline-none","max-[1000px]:fixed max-[1000px]:inset-y-0 max-[1000px]:left-0 max-[1000px]:z-50 max-[1000px]:w-[264px]",!c&&"max-[1000px]:invisible max-[1000px]:-translate-x-full"),children:[(0,t.jsxs)(Q.default,{href:"/",className:"flex items-center gap-2.5 border-b border-line px-4 py-3.5 text-ink hover:no-underline",children:[(0,t.jsx)(V,{}),(0,t.jsxs)("span",{children:[(0,t.jsx)("b",{className:"font-semibold",children:"Watchbell"}),(0,t.jsx)("small",{className:"block text-xs text-ink-faint",children:"Personal"})]})]}),(0,t.jsx)("div",{className:"flex-1 px-2 pb-4 pt-2",children:f(e,s,n).map(e=>{let s=!g[e.section];return(0,t.jsxs)("div",{className:"mt-1.5",children:[(0,t.jsxs)("button",{type:"button","aria-expanded":s,onClick:()=>v(t=>({...t,[e.section]:s})),className:"flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-ink-faint hover:text-ink",children:[e.group,(0,t.jsx)(q,{size:14,className:(0,l.f)("ml-auto transition-transform",s&&"rotate-90")})]}),s&&(0,t.jsx)("ul",{children:e.items.map((s,n)=>{let i=W[s.icon],r=s.key===x,c=s.sub&&s.sub!==e.items[n-1]?.sub?s.sub:null;return(0,t.jsxs)(a.Fragment,{children:[c&&(0,t.jsx)("li",{"aria-hidden":!0,className:"px-2.5 pb-0.5 pt-1.5 text-[11px] uppercase tracking-[0.06em] text-ink-faint",children:c}),(0,t.jsx)("li",{children:(0,t.jsxs)(Q.default,{href:s.href,onClick:d,"aria-current":r?"page":void 0,className:(0,l.f)("flex items-center gap-2.5 rounded-md px-2.5 py-[7px] text-nav-text hover:bg-hover hover:no-underline",r&&"bg-nav-active font-medium text-nav-active-text"),children:[(0,t.jsx)(i,{size:17,className:r?"text-nav-active-text":"text-ink-faint"}),s.label,"alerts"===s.key&&o>0&&(0,t.jsxs)("span",{className:"ml-auto rounded-[10px] bg-err-soft px-1.5 font-mono text-[11px] font-medium text-err",children:[o,(0,t.jsx)("span",{className:"sr-only",children:" firing"})]})]})})]},s.key)})})]},e.section)})}),(0,t.jsx)(Y,{initialLastRunAt:r.lastRunAt,initialNow:r.now,demo:r.demo})]})}let et=(0,b.f)("outline","eye","Eye",[["path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6",key:"svg-1"}]]),ea=(0,b.f)("outline","eye-off","EyeOff",[["path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828",key:"svg-0"}],["path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]),es=(0,b.f)("outline","layout-sidebar","LayoutSidebar",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M9 4l0 16",key:"svg-1"}]]),en=(0,b.f)("outline","search","Search",[["path",{d:"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),el=(0,b.f)("outline","tag","Tag",[["path",{d:"M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3",key:"svg-1"}]]);var ei=e.i(428325),er=e.i(914552);let eo=(0,b.f)("outline","sun","Sun",[["path",{d:"M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7",key:"svg-1"}]]);var ec=e.i(301844);function ed(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>t.disconnect()}function eh(){return"dark"===document.documentElement.dataset.theme?"dark":"light"}function ep(){return"light"}function eu(){let e=(0,a.useSyncExternalStore)(ed,eh,ep);return(0,t.jsx)("button",{type:"button",onClick:function(){let t=(0,ec.w)(e);document.documentElement.dataset.theme=t;try{localStorage.setItem(ec.K,t)}catch{}},"aria-label":"Toggle theme",title:"Toggle theme",className:"relative inline-grid size-[34px] place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:"dark"===e?(0,t.jsx)(eo,{size:18}):(0,t.jsx)(er.f,{size:18})})}var ef=e.i(526323),em=e.i(209977),ex=e.i(141708),eg=e.i(593480),ev=e.i(309169),eb=e.i(921637);let ek=(0,b.f)("outline","building-skyscraper","BuildingSkyscraper",[["path",{d:"M3 21l18 0",key:"svg-0"}],["path",{d:"M5 21v-14l8 -4v18",key:"svg-1"}],["path",{d:"M19 21v-10l-6 -4",key:"svg-2"}],["path",{d:"M9 9l0 .01",key:"svg-3"}],["path",{d:"M9 12l0 .01",key:"svg-4"}],["path",{d:"M9 15l0 .01",key:"svg-5"}],["path",{d:"M9 18l0 .01",key:"svg-6"}]]);var ey=e.i(357772);function ew({link:e}){let[s,n]=(0,a.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ei._,{label:e.label,pressed:s,onClick:()=>n(!0),children:(0,t.jsx)(ek,{size:18})}),(0,t.jsx)(ef.f.Root,{open:s,onOpenChange:n,children:(0,t.jsxs)(em.f.Portal,{children:[(0,t.jsx)(ex.f.Backdrop,{className:"fixed inset-0 z-50 bg-black/10"}),(0,t.jsxs)(eg.f.Popup,{"aria-describedby":void 0,className:"fixed inset-y-0 right-0 z-50 flex w-1/2 min-w-[560px] flex-col border-l border-line bg-surface text-ink shadow-lg outline-none max-[900px]:w-full max-[900px]:min-w-0",children:[(0,t.jsxs)("div",{className:"flex h-[52px] shrink-0 items-center gap-3 border-b border-line px-4",children:[(0,t.jsx)(ev.f.Title,{className:"text-[15px] font-semibold",children:e.title}),(0,t.jsx)(Q.default,{href:e.href,onClick:()=>n(!1),className:"ml-auto text-[13px] font-medium text-brand hover:underline",children:e.openLabel}),(0,t.jsx)(eb.f.Close,{"aria-label":"Close",title:"Close",className:"inline-grid size-[34px] place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(ey.f,{size:18})})]}),(0,t.jsx)("iframe",{src:e.frame,title:e.title,className:"min-h-0 w-full flex-1 border-0"})]})]})})]})}var ej=e.i(746373),eM=e.i(755146);let eN={owner:"Owner",operator:"Operator",viewer:"Viewer"};function eS({email:e,role:n,hasPassword:l=!1}){let[i,r]=(0,a.useTransition)(),o=(0,s.useMask)()("email",e),c=o!==e;return(0,t.jsxs)(eM.G,{children:[(0,t.jsx)(eM.X,{"aria-label":"Account menu",className:"ml-1 grid size-[30px] place-items-center rounded-full border border-line bg-sunken font-mono text-[11px] font-medium uppercase focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:c?"··":e.slice(0,2)}),(0,t.jsxs)(eM.L,{align:"end",className:"min-w-[200px]",children:[(0,t.jsx)(eM.P,{children:(0,t.jsxs)(eM.B,{children:[(0,t.jsx)("span",{className:"block truncate",children:o}),(0,t.jsx)("span",{className:"block text-xs font-normal text-ink-faint",children:eN[n]})]})}),(0,t.jsx)(eM.U,{}),l&&(0,t.jsx)(eM.r,{render:(0,t.jsx)(Q.default,{href:"/account/password"}),children:"Change password"}),(0,t.jsx)(eM.r,{className:"text-err",disabled:i,onClick:()=>r(()=>(0,ej.f)()),children:"Sign out"})]})]})}function eC({user:e,office:a,alerts:l,onToggleNav:i,onOpenPalette:r,navButtonRef:o}){let{show:c,toggle:d}=(0,n.useSources)(),{shot:h,setShot:p}=(0,s.usePrivacy)();return(0,t.jsxs)("header",{className:"sticky top-0 z-20 flex h-[52px] items-center gap-2 border-b border-line bg-surface px-4",children:[(0,t.jsx)(ei._,{ref:o,label:"Toggle navigation",onClick:i,children:(0,t.jsx)(es,{size:18})}),(0,t.jsxs)("button",{type:"button",onClick:e=>r(e.currentTarget),"aria-label":"Search","aria-keyshortcuts":"Control+K Meta+K",className:"ml-2 flex w-[280px] items-center gap-2 whitespace-nowrap rounded-[7px] border border-line bg-surface-2 px-2.5 py-1.5 text-ink-faint max-[720px]:w-auto",children:[(0,t.jsx)(en,{size:16}),(0,t.jsx)("span",{className:"max-[720px]:hidden",children:"Search apps, databases, pages"}),(0,t.jsx)("kbd",{className:"ml-auto rounded border border-line-strong px-[5px] font-mono text-[11px] text-ink-soft max-[720px]:hidden",children:"Ctrl K"})]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-0.5",children:[h&&(0,t.jsxs)("button",{type:"button",onClick:()=>p(!1),title:"Screenshot mode is on. Click to turn it off.","aria-label":"Screenshot mode is on. Turn it off",className:"mr-1.5 inline-flex items-center gap-1 whitespace-nowrap rounded-full border border-warn/40 bg-warn-soft px-2.5 py-0.5 text-[12.5px] font-medium text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:[(0,t.jsx)(ea,{size:14,"aria-hidden":!0,className:"text-warn-icon"}),(0,t.jsx)("span",{className:"max-[480px]:hidden",children:"Screenshot mode"})]}),(0,t.jsx)(J.LiveIndicator,{}),(0,t.jsx)(ei._,{label:"Show data sources",pressed:c,onClick:d,children:(0,t.jsx)(el,{size:18})}),a&&"owner"===e.role&&(0,t.jsx)(ew,{link:a}),(0,t.jsx)(ei._,{label:"Screenshot mode",pressed:h,onClick:()=>p(!h),children:h?(0,t.jsx)(ea,{size:18}):(0,t.jsx)(et,{size:18})}),(0,t.jsx)(eu,{}),(0,t.jsxs)(Q.default,{href:"/alerts","aria-label":l?`Alerts, ${l} firing`:"Alerts",className:"relative inline-grid size-[34px] place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink",children:[(0,t.jsx)(y.f,{size:18}),l>0&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute right-0.5 top-[3px] rounded-[9px] bg-err px-1 font-mono text-[10px] font-medium leading-[15px] text-white",children:l})]}),(0,t.jsx)(eS,{email:e.email,role:e.role,hasPassword:e.hasPassword})]})]})}let eE={nav:[],palette:[]};e.s(["Shell",0,function({user:e,collector:i,alerts:r,book:o,shot:c,ext:d=eE,sections:h,children:p}){let[u,f]=(0,a.useState)(!1),[m,x]=(0,a.useState)(!1),[g,v]=(0,a.useState)(!1),[b,k]=(0,a.useState)(null),y=(0,a.useRef)(null),w=(0,a.useRef)(null),j=(0,a.useRef)(!1);function M(e){k(e),v(!0)}return(0,a.useEffect)(()=>{u?(j.current=!0,y.current?.focus()):j.current&&(j.current=!1,w.current?.focus())},[u]),(0,a.useEffect)(()=>{if(u)return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e);function e(e){"Escape"===e.key&&f(!1)}},[u]),(0,t.jsx)(s.AliasProvider,{book:o,shot:c,children:(0,t.jsxs)(n.SourcesProvider,{children:[(0,t.jsxs)("div",{className:(0,l.f)("grid min-h-screen grid-cols-1",!m&&"min-[1001px]:grid-cols-[248px_minmax(0,1fr)]"),children:[(!m||u)&&(0,t.jsx)(ee,{role:e.role,ext:d,sections:h,collector:i,alerts:r,mobileOpen:u,onNavigate:()=>f(!1),navRef:y}),u&&(0,t.jsx)("button",{type:"button","aria-label":"Close navigation",className:"fixed inset-0 z-40 bg-black/45 min-[1001px]:hidden",onClick:()=>f(!1)}),(0,t.jsxs)("main",{className:"min-w-0",children:[i.demo&&(0,t.jsx)(G,{}),(0,t.jsx)(eC,{user:e,office:d.office,alerts:r,onToggleNav:function(){window.matchMedia("(max-width: 1000px)").matches?f(e=>!e):x(e=>!e)},onOpenPalette:M,navButtonRef:w}),(0,t.jsx)("div",{className:"flex max-w-[1480px] flex-col gap-4 px-6 pb-10 pt-5 max-[720px]:px-3.5",children:p})]})]}),(0,t.jsx)(_,{role:e.role,ext:d,sections:h,open:g,opener:b,onOpen:M,onClose:()=>v(!1)})]})})}],360261)},140173,e=>{var t=e.i(684496);e.s(["TimeZoneSync",0,function({zone:e}){return(0,t.k)(e),null}])}])})();
@@ -1 +0,0 @@
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 a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,n=t.f;e.s(["f",0,(e,t)=>r=>{var i;if((null==t?void 0:t.variants)==null)return n(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:s,defaultVariants:l}=t,o=Object.keys(s).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let i=a(t)||a(n);return s[e][i]}),d=r&&Object.entries(r).reduce((e,t)=>{let[a,n]=t;return void 0===n||(e[a]=n),e},{});return n(e,o,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:a,className:n,...r}=t;return Object.entries(r).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...l,...d}[t]):({...l,...d})[t]===a})?[...e,a,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}])},239647,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(846696),r=e.i(177106),i=e.i(95187);let s=(0,i.createServerReference)("601902f25debb8a708c2fa8c8317c73f15ec87d472",i.callServer,void 0,i.findSourceMapURL,"silence");e.s(["AlertMenu",0,function({id:e,label:i,silenced:l,resourceHref:o}){let[,d]=(0,a.useTransition)(),c=(0,a.useRef)(!1),u=t=>{c.current||(c.current=!0,d(async()=>{try{let a=await s(e,t);a.ok?n.c.success(a.message??""):n.c.error(a.error)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{c.current=!1}}))},p=o?[{label:"View resource",href:o}]:[];return(0,t.jsx)(r.RowMenu,{label:`Actions for ${i}`,items:l?[{label:"Unsilence",onSelect:()=>u("off")},...p]:[{label:"Silence 1 hour",onSelect:()=>u("1h")},{label:"Silence until resolved",onSelect:()=>u("resolved")},...p]})}],239647)},108608,e=>{var t=e.i(843476),a=e.i(33550);let n=(0,a.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),r=(0,a.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),i=(0,a.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]),s=(0,a.f)("outline","webhook","Webhook",[["path",{d:"M4.876 13.61a4 4 0 1 0 6.124 3.39h6",key:"svg-0"}],["path",{d:"M15.066 20.502a4 4 0 1 0 1.934 -7.502c-.706 0 -1.424 .179 -2 .5l-3 -5.5",key:"svg-1"}],["path",{d:"M16 8a4 4 0 1 0 -8 0c0 1.506 .77 2.818 2 3.5l-3 5.5",key:"svg-2"}]]);var l=e.i(944971),o=e.i(271645),d=e.i(846696),c=e.i(428325),u=e.i(500443),p=e.i(776639),h=e.i(95187);let f=(0,h.createServerReference)("40fe908b350b110b483019fe33a00f9303e85974d4",h.callServer,void 0,h.findSourceMapURL,"saveDigest"),g=(0,h.createServerReference)("4086584d696583414d2ced3312ddec81b2def08120",h.callServer,void 0,h.findSourceMapURL,"saveDiscord"),v=(0,h.createServerReference)("4017bacde06ab76d1f986c1fabd79105dd123bc67c",h.callServer,void 0,h.findSourceMapURL,"saveSmtp"),b=(0,h.createServerReference)("60e28b60231a9919b7eb1ef3f20a3f81aa2629a8e8",h.callServer,void 0,h.findSourceMapURL,"saveTelegram"),m=(0,h.createServerReference)("60b05f38a12ddd45f56bed7293dea4a5c3ebafe46b",h.callServer,void 0,h.findSourceMapURL,"saveWebhook"),x=(0,h.createServerReference)("401964bddb2f881a09b166e66935bdf79169a53d5e",h.callServer,void 0,h.findSourceMapURL,"sendTest"),y=(0,h.createServerReference)("6062aba588e5bd25f2400768ec4ba1e5e7fdcbd328",h.callServer,void 0,h.findSourceMapURL,"setChannelEnabled"),k=(0,h.createServerReference)("00b6b39b60e81546e4c7b6dee02503d3027ae99f13",h.callServer,void 0,h.findSourceMapURL,"telegramChats"),j={telegram:{icon:r,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${l.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:n,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},webhook:{icon:s,title:"Connect a webhook",name:"Webhook",about:"Watchbell POSTs JSON to this address for every alert message. It must be https on a public host (port 443); Watchbell doesn't post into private networks or follow redirects."},smtp:{icon:i,title:"Email through your mail server",name:"Email (SMTP)",about:"Port 587 or 2525 with STARTTLS, or 465 with TLS; the password only ever goes over TLS. The server must be on the public internet. Office 365: smtp.office365.com, 587, and an app password if your account has MFA."},email_digest:{icon:i,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${l.n.setting} (RESEND_API_KEY).`}},S={telegram:"Telegram",discord:"Discord",webhook:"Webhook",smtp:"Email (SMTP)",email_digest:"Daily email digest"};e.s(["ChannelControls",0,function({kind:e,connected:a,enabled:n,envMissing:r}){let[i,s]=(0,o.useState)(!1),[l,h]=(0,o.useState)([]),[w,C]=(0,o.useState)(""),[N,R]=(0,o.useState)(""),[M,T]=(0,o.useState)(""),[z,D]=(0,o.useState)(""),[A,L]=(0,o.useState)({host:"",port:"587",user:"",pass:"",from:"",to:""}),[E,$]=(0,o.useState)({}),[O,P]=(0,o.useTransition)(),[U,F]=(0,o.useTransition)(),[_,K]=(0,o.useTransition)();(0,u.useHoldRefresh)(i);let W=j[e],I=W.icon;function V(e){e&&(h([]),C(""),R(""),T(""),D(""),L({host:"",port:"587",user:"",pass:"",from:"",to:""}),$({})),s(e)}function H(e,t){K(async()=>{try{let a=await e();a.ok?d.c.success(t,{description:a.message}):d.c.error(a.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,t.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(p.N,{open:i,onOpenChange:e=>{O||V(e)},children:[(0,t.jsx)(p.a,{render:(0,t.jsx)(c.K,{size:"sm",disabled:null!==r,children:a?"Change":"Connect"})}),(0,t.jsxs)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",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 text-ink-soft",children:(0,t.jsx)(I,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(p.F,{className:"text-base",children:W.title}),(0,t.jsx)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:W.about})]})]}),(0,t.jsxs)("form",{onSubmit:t=>{let a;t.preventDefault(),a={},"telegram"!==e||w||(a.chat="Press Find chats, then pick one."),"discord"!==e||N.trim()||(a.url="Paste the whole webhook URL from Discord."),"webhook"!==e||N.trim()||(a.url="Paste the whole address, starting with https://."),"smtp"!==e||A.host.trim()||(a.host="Enter the server name, for example smtp.office365.com."),"smtp"!==e||A.to.trim()||(a.to="Enter the address that gets the alerts."),"email_digest"!==e||M.trim()||(a.to="Enter a valid email address."),$(a),Object.keys(a).length||P(async()=>{try{let t=l.find(e=>e.id===w)?.label??"",a="telegram"===e?await b(w,t):"discord"===e?await g(N):"webhook"===e?await m(N,z):"smtp"===e?await v({...A,port:Number(A.port)}):await f(M);if(!a.ok){$(a.fieldErrors??{}),a.fieldErrors||d.c.error(a.error);return}d.c.success("Channel saved",{description:a.message}),s(!1)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:E.chat,children:(0,t.jsxs)("select",{id:"ch-chat",className:c.S,value:w,onChange:e=>C(e.target.value),children:[0===l.length&&(0,t.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),l.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))]})}),(0,t.jsx)("p",{className:"mb-3",children:(0,t.jsx)(c.K,{size:"sm",onClick:function(){F(async()=>{try{let e=await k();if(!e.ok)return void d.c.error(e.error);let t=e.data?.chats??[];h(t),C(t[0]?.id??""),$({}),t.length?d.c.success(`Found ${t.length} chat${1===t.length?"":"s"}: ${t.map(e=>e.label).join(", ")}.`):d.c.info("No chats yet",{description:e.message??"Send /start to your bot in Telegram, then try again."})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:U,children:U?"Looking…":"Find chats"})})]}),"discord"===e&&(0,t.jsx)(c.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:E.url,children:(0,t.jsx)("input",{id:"ch-hook",className:c.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:N,onChange:e=>R(e.target.value)})}),"webhook"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.O,{id:"ch-wh",label:"Address",help:"Encrypted before it's saved and never shown again; the console shows only its host.",error:E.url,children:(0,t.jsx)("input",{id:"ch-wh",className:c.S,type:"url",autoComplete:"off",placeholder:"https://n8n.example.com/webhook/…",value:N,onChange:e=>R(e.target.value)})}),(0,t.jsx)(c.O,{id:"ch-wh-secret",label:"Secret (optional)",help:"16 to 200 characters. Each body is signed with it: header X-Watchbell-Signature = sha256 HMAC of the timestamp, a dot and the body.",error:E.secret,children:(0,t.jsx)("input",{id:"ch-wh-secret",className:c.S,type:"password",autoComplete:"off",value:z,onChange:e=>D(e.target.value)})})]}),"smtp"===e&&(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 max-[520px]:grid-cols-1",children:[(0,t.jsx)(c.O,{id:"ch-sm-host",label:"Server",error:E.host,children:(0,t.jsx)("input",{id:"ch-sm-host",className:c.S,autoComplete:"off",placeholder:"smtp.office365.com",value:A.host,onChange:e=>L({...A,host:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-port",label:"Port",error:E.port,children:(0,t.jsxs)("select",{id:"ch-sm-port",className:c.S,value:A.port,onChange:e=>L({...A,port:e.target.value}),children:[(0,t.jsx)("option",{value:"587",children:"587 · STARTTLS"}),(0,t.jsx)("option",{value:"465",children:"465 · TLS"}),(0,t.jsx)("option",{value:"2525",children:"2525 · STARTTLS"})]})}),(0,t.jsx)(c.O,{id:"ch-sm-user",label:"User name",error:E.user,children:(0,t.jsx)("input",{id:"ch-sm-user",className:c.S,autoComplete:"off",value:A.user,onChange:e=>L({...A,user:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-pass",label:"Password",help:a?"Leave empty to keep the saved one.":"Encrypted before it's saved and never shown again.",error:E.pass,children:(0,t.jsx)("input",{id:"ch-sm-pass",className:c.S,type:"password",autoComplete:"off",value:A.pass,onChange:e=>L({...A,pass:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-from",label:"From",error:E.from,children:(0,t.jsx)("input",{id:"ch-sm-from",className:c.S,type:"email",autoComplete:"off",placeholder:"alerts@example.com",value:A.from,onChange:e=>L({...A,from:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-to",label:"Send to",error:E.to,children:(0,t.jsx)("input",{id:"ch-sm-to",className:c.S,type:"email",autoComplete:"off",placeholder:"you@example.com",value:A.to,onChange:e=>L({...A,to:e.target.value})})})]}),"email_digest"===e&&(0,t.jsx)(c.O,{id:"ch-to",label:"Send to",error:E.to,children:(0,t.jsx)("input",{id:"ch-to",className:c.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:M,onChange:e=>T(e.target.value)})})]}),(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)(c.K,{onClick:()=>V(!1),disabled:O,children:"Cancel"}),(0,t.jsx)(c.K,{type:"submit",variant:"primary",disabled:O,children:O?"Saving…":"Save"})]})]})]})]}),a&&n&&null===r&&(0,t.jsx)(c.K,{size:"sm",disabled:_,onClick:()=>H(()=>x(e),`${S[e]} test`),children:_?"Sending…":"Send test"}),a&&(0,t.jsx)(c.K,{size:"sm",variant:"ghost",disabled:_,onClick:()=>H(()=>y(e,!n),S[e]),children:n?"Turn off":"Turn on"})]})}],108608)},274224,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(846696),r=e.i(428325),i=e.i(95187);let s=(0,i.createServerReference)("606e574f27ecb10dc1f14ce4537eb37fee683ea3e0",i.callServer,void 0,i.findSourceMapURL,"setNotifyLanguage");e.s(["LanguageSelect",0,function({channel:e,label:i,saved:l}){let[o,d]=(0,a.useState)(l),[c,u]=(0,a.useTransition)();return(0,t.jsxs)("select",{"aria-label":`${i} language`,className:`${r.S} w-auto min-w-[160px]`,value:o,disabled:c,onChange:t=>{var a;d(a="id"===t.target.value?"id":"en"),u(async()=>{try{let t=await s(e,a);t.ok?n.c.success(`${i} language saved`,{description:t.message}):(d(o),n.c.error(t.error))}catch{d(o),n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,t.jsx)("option",{value:"en",children:"English"}),(0,t.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],274224)},689721,e=>{var t=e.i(843476),a=e.i(668029),n=e.i(271645),r=e.i(846696),i=e.i(428325),s=e.i(500443),l=e.i(776639);let o=e=>(e??0).toLocaleString("en-US"),d={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:e=>`${o(e)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:e=>`No collector run for ${o(e)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:e=>`Slowest 5% of checks over ${o(e)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A production deploy fails"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase pauses the project"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:e=>`TLS certificate expires in < ${o(e)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:e=>`Domain expires in < ${o(e)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Database size > ${o(e)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:e=>`> ${o(e)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:e=>`Daily reads > ${o(e)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase project without API traffic for ${o(e)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase CPU > ${o(e)}% for 15 min, RAM > ${o(Math.min(99,(e??80)+10))}%, disk > ${o(e)}% or connections > ${o(e)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Turso, Upstash or D1 usage > ${o(e)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:e=>`Account credential expires in < ${o(e)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}};Object.keys(d),e.i(684496);let c=[["critical","Critical"],["warning","Warning"],["info","Info"]];var u=e.i(95187);let p=(0,u.createServerReference)("60159e399f42da1283584a9fb283a9315cc7020d6d",u.callServer,void 0,u.findSourceMapURL,"editRule"),h=[["telegram","Telegram"],["discord","Discord"],["webhook","Webhook"],["smtp","Email (SMTP)"],["email_digest","Daily email digest"]],f=e=>({severity:e.severity,threshold:null===e.threshold?"":e.threshold.toLocaleString("en-US"),channels:[...e.channels],enabled:e.enabled});e.s(["RuleActions",0,function({rule:e,condition:o}){let[u,g]=(0,n.useState)(!1),[v,b]=(0,n.useState)(()=>f(e)),[m,x]=(0,n.useState)({}),[y,k]=(0,n.useTransition)();(0,s.useHoldRefresh)(u);let j=d[e.key].bounds;function S(t){t&&(b(f(e)),x({})),g(t)}function w(t,a){k(async()=>{try{let n=await p(e.key,t);if(!n.ok){x(n.fieldErrors??{}),r.c.error(n.error);return}a(n.message??""),g(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,t.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,t.jsxs)(l.N,{open:u,onOpenChange:e=>{y||S(e)},children:[(0,t.jsx)(l.a,{render:(0,t.jsx)(i.K,{size:"sm",children:"Edit"})}),(0,t.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",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 text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(l.F,{className:"text-base",children:["Edit ",e.key]}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:o})]})]}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),w(v,e=>r.c.success("Rule saved",{description:e}))},children:[(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,t.jsx)(i.O,{id:"rule-sev",label:"Severity",error:m.severity,children:(0,t.jsx)("select",{id:"rule-sev",className:i.S,value:v.severity,onChange:e=>b({...v,severity:e.target.value}),children:c.map(([e,a])=>(0,t.jsx)("option",{value:e,children:a},e))})}),j&&(0,t.jsx)(i.O,{id:"rule-num",label:"Threshold",help:`Replaces ${e.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:m.threshold,children:(0,t.jsx)("input",{id:"rule-num",className:i.S,inputMode:"numeric",autoComplete:"off",value:v.threshold,onChange:e=>b({...v,threshold:e.target.value})})})]}),(0,t.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Send to"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:h.map(([e,a])=>(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:v.channels.includes(e),onChange:t=>{let a;return a=t.target.checked,b({...v,channels:a?[...v.channels,e]:v.channels.filter(t=>t!==e)})}}),a]},e))}),(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Opens and resolves are sent once; a still-firing alert repeats every 6 hours unless silenced."}),m.channels&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:m.channels})]}),(0,t.jsxs)("label",{className:"mb-3.5 flex items-center gap-1.5 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:v.enabled,onChange:e=>b({...v,enabled:e.target.checked})}),"Rule is on"]})]}),(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:()=>S(!1),disabled:y,children:"Cancel"}),(0,t.jsx)(i.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"Save rule"})]})]})]})]}),(0,t.jsx)(i.K,{size:"sm",disabled:y,onClick:()=>w({...f(e),enabled:!e.enabled},t=>e.enabled?r.c.success(`${e.key} disabled. It won't fire until you enable it again.`):r.c.success(`${e.key} enabled.`,{description:t})),children:e.enabled?"Disable":"Enable"})]})}],689721)},582429,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(846696),r=e.i(428325),i=e.i(684496),s=e.i(95187);let l=(0,s.createServerReference)("00404ee3f55f10b7036116081c73ff26a2d3c16b84",s.callServer,void 0,s.findSourceMapURL,"approvalsStatus"),o=(0,s.createServerReference)("0021fa6518e5c82dcb89e65e06020e7c7ed74b55f7",s.callServer,void 0,s.findSourceMapURL,"disableApprovals"),d=(0,s.createServerReference)("005830be09e30c4e8501e2c0dac37d5d6c87cfd340",s.callServer,void 0,s.findSourceMapURL,"enableApprovals"),c=(0,s.createServerReference)("001c4fe06239da2c543e39ad7a5839917e50e8aba1",s.callServer,void 0,s.findSourceMapURL,"telegramLinkCode");e.s(["TelegramApprovals",0,function(){let[e,s]=(0,a.useState)(null),[u,p]=(0,a.useState)(null),[h,f]=(0,a.useState)(null),[g,v]=(0,a.useTransition)();function b(e,t){v(async()=>{try{let a=await e();if(!a.ok)return void n.c.error(a.error??"Watchbell didn't answer. Check that it's still running, then try again.");a.data&&s(a.data),t?.(),a.message&&n.c.success("Approval buttons",{description:a.message})}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}(0,a.useEffect)(()=>{let e=!0;return l().then(t=>{e&&(t.ok&&t.data?s(t.data):p(t.ok?null:t.error))}).catch(()=>e&&p("Couldn't read the status.")),()=>{e=!1}},[]);let m=e?e.on?e.linked?"On · linked to your Telegram account":"On · not linked yet":"Off":u??"Checking…",x=h?(0,i.U)(new Date(h.expiresAt)):"";return(0,t.jsxs)("div",{className:"mt-1 basis-full rounded-md border border-line px-3 py-2 text-[13px]",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium",children:"Approval buttons"}),(0,t.jsx)("span",{className:"text-ink-soft",children:m}),(0,t.jsxs)("span",{className:"ml-auto inline-flex flex-wrap gap-2",children:[e&&!e.on&&(0,t.jsx)(r.K,{size:"sm",disabled:g,onClick:()=>b(d),children:g?"Working…":"Turn on"}),e?.on&&(0,t.jsx)(r.K,{size:"sm",disabled:g,onClick:function(){v(async()=>{try{let e=await c();e.ok&&e.data?f(e.data):n.c.error(e.ok?"Watchbell didn't answer. Check that it's still running, then try again.":e.error)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:e.linked?"Link again":"Show link code"}),e?.on&&(0,t.jsx)(r.K,{size:"sm",variant:"ghost",disabled:g,onClick:()=>b(o,()=>f(null)),children:"Turn off"})]})]}),(0,t.jsx)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:"Proposal notices get ✅ Approve / ❌ Reject buttons that only your linked Telegram account can use; risky actions ask twice. While this is on, Telegram sends updates to the console instead of holding them, so Find chats lists the chats the bot has seen since then."}),e?.problem&&(0,t.jsx)("p",{className:"mt-1 text-[12.5px] text-err",children:e.problem}),h&&(0,t.jsxs)("p",{className:"mt-1 text-[12.5px]",children:["Send ",(0,t.jsxs)("code",{className:"rounded bg-sunken px-1 font-mono",children:["/link ",h.code]})," in the connected chat before ",x,". The code works once."]})]})}],582429)},374931,e=>{var t=e.i(843476),a=e.i(531219),n=e.i(357772),r=e.i(271645),i=e.i(54131),s=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:p,groups:h,head:f,rows:g,chips:v}){var b,m;let x,[y,k]=(0,r.useState)(""),[j,S]=(0,r.useState)(""),[w,C]=(0,r.useState)(""),[N,R]=(0,r.useState)(""),[M,T]=(0,r.useState)(1),z=(0,i.useMask)(),D=(b=g.map(e=>({...e,text:`${e.text} ${z("text",e.text)}`})),x=(m={text:y,state:j,group:N,tag:w}).text.trim().toLowerCase(),b.filter(e=>(!m.state||e.state===m.state)&&(!m.group||e.group===m.group)&&(!m.tag||(e.tags??[]).includes(m.tag))&&(!x||e.text.toLowerCase().includes(x)))),A=(0,u.$)(D,M),L=A.rows;A.page!==M&&T(A.page);let E=p?.find(([e])=>e===j)?.[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)(s.S,"w-[240px] max-[720px]:w-full"),placeholder:e,"aria-label":e,value:y,onChange:e=>{k(e.target.value),T(1)}}),p&&(0,t.jsxs)("select",{className:(0,d.f)(s.S,"w-auto"),"aria-label":"State",value:j,onChange:e=>{S(e.target.value),T(1)},children:[(0,t.jsx)("option",{value:"",children:"All states"}),p.map(([e,a])=>(0,t.jsx)("option",{value:e,children:a},e))]}),h&&h.length>1&&(0,t.jsxs)("select",{className:(0,d.f)(s.S,"w-auto"),"aria-label":"Account",value:N,onChange:e=>{R(e.target.value),T(1)},children:[(0,t.jsx)("option",{value:"",children:"All accounts"}),h.map(e=>(0,t.jsx)("option",{value:e,children:z("account",e)},e))]}),v?.map(([e,a])=>(0,t.jsx)("button",{type:"button","aria-pressed":w===e,onClick:()=>{C(w===e?"":e),T(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:a},e)),E&&(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: ",E,(0,t.jsx)("button",{type:"button","aria-label":"Remove filter",className:"px-0.5",onClick:()=>{S(""),T(1)},children:(0,t.jsx)(n.f,{size:13})})]}),N&&(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)(i.Masked,{kind:"account",real:N}),(0,t.jsx)("button",{type:"button","aria-label":"Remove account filter",className:"px-0.5",onClick:()=>{R(""),T(1)},children:(0,t.jsx)(n.f,{size:13})})]}),(0,t.jsx)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:(0,c.f)(D.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:L.map(e=>(0,t.jsx)(r.Fragment,{children:e.row},e.key))})]})}),0===D.length&&g.length>0&&(0,t.jsxs)(s.k,{icon:a.f,title:"No results",children:["Nothing matches these filters."," ",(0,t.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{k(""),S(""),R(""),C(""),T(1)},children:"Clear filters"})]}),(0,t.jsx)(l.f,{page:A.page,pages:A.pages,text:(0,u.z)(A),onPage:T})]})}],374931)},541299,495784,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(428325),r=e.i(975157);function i(e,t,a=25){let n=e.length,r=Math.max(1,Math.ceil(n/a)),s=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),r),l=(s-1)*a,o=e.slice(l,l+a);return{rows:o,page:s,pages:r,from:0===n?0:l+1,to:l+o.length,total:n}}e.s(["f",0,function({page:e,pages:i,text:s,onPage:l,bleed:o=!1}){let d=(0,a.useRef)(null),c=(0,a.useRef)(null);if((0,a.useEffect)(()=>{null!==c.current&&(d.current?.querySelectorAll("button")[c.current]?.focus(),c.current=null)},[e]),i<=1)return null;let u=(e,t)=>{(e<=1||e>=i)&&(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:s}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(n.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)(n.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>u(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,a,n){return n<=1?null:t>0&&null!==a?a:e[0]?.id??null},"$",0,i,"f",0,function(e,t,a,n=25){let r=null===a?0:Math.max(0,e.findIndex(e=>e.id===a)),s=i(e.slice(r),t,n);return 0===r||s.page>1?{...s,shift:r}:{...i(e,1,n),shift:0}},"z",0,function(e,t=0,a=e.total){return`${e.from+t}–${e.to+t} of ${a}`}],495784)},346072,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(541299),r=e.i(691106),i=e.i(495784);e.s(["PlainTable",0,function({head:e,rows:s}){let[l,o]=(0,a.useState)(1),d=(0,i.$)(s,l);return d.page!==l&&o(d.page),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:r.o,children:[(0,t.jsx)(r.U,{head:e}),(0,t.jsx)("tbody",{children:d.rows.map(e=>(0,t.jsx)(a.Fragment,{children:e.row},e.key))})]})}),(0,t.jsx)(n.f,{page:d.page,pages:d.pages,text:(0,i.z)(d),onPage:o})]})}])},177106,e=>{var t=e.i(843476),a=e.i(33550);let n=(0,a.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),r=(0,a.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),s=e.i(428325),l=e.i(500443),o=e.i(755146);e.s(["RowMenu",0,function({items:e,button:a=!1,label:d="Actions"}){let[c,u]=(0,i.useState)(!1);return(0,l.useHoldRefresh)(c),(0,t.jsxs)(o.G,{open:c,onOpenChange:u,children:[a?(0,t.jsxs)(o.X,{className:(0,s.R)(),children:[d," ",(0,t.jsx)(n,{size:16,"aria-hidden":!0})]}):(0,t.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,t.jsx)(r,{size:17})}),(0,t.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,a)=>"---"===e?(0,t.jsx)(o.U,{},`sep-${a}`):(0,t.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,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),a=e.i(526323),n=e.i(828376);e.s(["f",0,n],998218);var n=n,r=e.i(209977),i=e.i(921637),s=e.i(141708),l=e.i(593480),o=e.i(309169),d=n;e.s(["f",0,d],152744);var d=n,c=e.i(975157),u=e.i(271645),p=e.i(540886),h=e.i(552245);let f=u.forwardRef(function(e,t){let{render:a,className:n,disabled:r=!1,focusableWhenDisabled:i=!1,nativeButton:s=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:r,focusableWhenDisabled:i,native:s});return(0,h.a)("button",e,{state:{disabled:r},ref:[t,c],props:[o,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 v({className:e,variant:a="default",size:n="default",...r}){return(0,t.jsx)(f,{"data-slot":"button",className:(0,c.f)(g({variant:a,size:n,className:e})),...r})}var b=e.i(456420);let m={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};m.node;let x=(0,b.f)(m);function y({...e}){return(0,t.jsx)(r.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...a}){return(0,t.jsx)(s.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),...a})}e.s(["N",0,function({...e}){return(0,t.jsx)(a.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:a,showCloseButton:n=!0,...r}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(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:[a,n&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(v,{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,...a}){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),...a})},"F",0,function({className:e,...a}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...a})},"a",0,function({...e}){return(0,t.jsx)(n.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},677572,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(951437),r=e.i(146376),i=e.i(667865),s=e.i(552245),l=e.i(53687),o=e.i(733332);let d=a.createContext(void 0);function c(){let e=a.useContext(d);if(void 0===e)throw Error((0,o.f)(64));return e}let u={tabActivationDirection:e=>({"data-activation-direction":e})};var p=e.i(675606),h=e.i(216856),h=h,f=h,g=h;let v=a.forwardRef(function(e,o){let{className:c,defaultValue:v=0,onValueChange:x,orientation:y="horizontal",render:k,value:j,style:S,...w}=e,C=void 0!==e.defaultValue,N=a.useRef([]),[R,M]=a.useState(()=>new Map),[T,z]=(0,n.f)({controlled:j,default:v,name:"Tabs",state:"value"}),D=void 0!==j,[A,L]=a.useState(()=>new Map),E=a.useRef(void 0),$=a.useCallback(e=>b(A,e),[A]),[O,P]=a.useState(()=>({previousValue:T,tabActivationDirection:"none"})),{previousValue:U,tabActivationDirection:F}=O,_=F,K=!1;U!==T&&(_=m(U,T,y,A),K=null!=U&&null!=T&&null==$(T));let W=K?U:T,I=U!==W||F!==_;(0,r.f)(()=>{I&&P({previousValue:W,tabActivationDirection:_})},[W,I,_]);let V=(0,i.f)((e,t)=>{t.activationDirection=m(T,e,y,A),x?.(e,t),t.isCanceled||z(()=>e)}),H=(0,i.f)((e,t)=>{x?.(e,(0,p.j)(t,void 0,void 0,{activationDirection:"none"}))}),B=(0,i.f)((e,t)=>(M(a=>{let n=new Map(a);return n.set(e,t),n}),()=>{M(a=>{if(a.get(e)!==t)return a;let n=new Map(a);return n.delete(e),n})})),q=a.useCallback(e=>R.get(e),[R]),X=a.useCallback(e=>{for(let t of A.values())if(e===t.value)return t.id},[A]),Q=a.useMemo(()=>({getTabElementBySelectedValue:$,getTabIdByPanelValue:X,getTabPanelIdByValue:q,onValueChange:V,orientation:y,registerMountedTabPanel:B,setTabMap:L,tabActivationDirection:_,value:T}),[$,X,q,V,y,B,L,_,T]),Z=a.useMemo(()=>{for(let e of A.values())if(e.value===T)return e},[A,T]),G=a.useMemo(()=>{for(let e of A.values())if(!e.disabled)return e.value},[A]),J=a.useRef(!C),Y=a.useRef(v),ee=a.useRef(C),et=a.useRef(!1);(0,r.f)(()=>{if(D)return;function e(e,t){z(()=>e),P({previousValue:e,tabActivationDirection:"none"}),H(e,t),J.current=!1}if(0===A.size){et.current&&null!==T&&!E.current?.isConnected&&e(null,f.missing);return}et.current=!0,E.current=A.keys().next().value;let t=Z?.disabled,a=null==Z&&null!==T;if(t||T!==Y.current||(ee.current=!1),ee.current&&t&&T===Y.current)return;let n=J.current;if(t||a){let a=G??null;if(T===a){J.current=!1;return}let r=f.missing;n?r=h.initial:t&&(r=g.disabled),e(a,r);return}n&&null!=Z&&(H(T,h.initial),J.current=!1)},[G,D,H,Z,z,A,T]);let ea={orientation:y,tabActivationDirection:_},en=(0,s.a)("div",e,{state:ea,ref:o,props:w,stateAttributesMapping:u});return(0,t.jsx)(d.Provider,{value:Q,children:(0,t.jsx)(l.f,{elementsRef:N,children:en})})});function b(e,t){for(let[a,n]of e.entries())if(t===n.value)return a;return null}function m(e,t,a,n){if(null==e||null==t)return"none";let[r,i,s]="horizontal"===a?["left","left","right"]:["top","up","down"],l=b(n,e),o=b(n,t);if(null==l||null==o)return l!==o&&("number"==typeof e||"string"==typeof e)&&typeof e==typeof t?t>e?s:i:"none";let d=l.getBoundingClientRect()[r],c=o.getBoundingClientRect()[r];return c<d?i:c>d?s:"none"}var x=e.i(108868),y=e.i(788015),k=e.i(540886);let j="data-composite-item-active";var S=e.i(395530),w=e.i(838452);let C=a.createContext(void 0);var N=e.i(380025),R=e.i(584446);let M=a.forwardRef(function(e,t){let{className:n,disabled:l=!1,render:d,value:h,id:f,nativeButton:g=!0,style:v,...b}=e,{value:m,getTabPanelIdByValue:M,onValueChange:T,orientation:z,tabActivationDirection:D}=c(),{activateOnFocus:A,registerTabResizeObserverElement:L,tabsListElement:E}=function(){let e=a.useContext(C);if(void 0===e)throw Error((0,o.f)(65));return e}(),{highlightedIndex:$,onHighlightedIndexChange:O}=(0,w.o)(),P=(0,y.f)(f),U=a.useMemo(()=>({disabled:l,id:P,value:h}),[l,P,h]),{compositeProps:F,compositeRef:_,index:K}=(0,S.f)({metadata:U}),W=h===m,I=a.useRef(!1),V=a.useRef(null),H=(0,i.f)(e=>{V.current?.(),V.current=e?L(e):null});(0,r.f)(()=>{if(I.current){I.current=!1;return}if(W&&K>-1&&$!==K){if(null!=E){let e=(0,R.T)((0,x.f)(E));if(e&&(0,R.I)(E,e))return}l||O(K)}},[W,K,$,O,l,E]);let{getButtonProps:B,buttonRef:q}=(0,k.f)({disabled:l,native:g,focusableWhenDisabled:!0}),X=M(h),Q=a.useRef(!1),Z=a.useRef(!1);function G(e){T(h,(0,p.j)(N.f.none,e.nativeEvent,void 0,{activationDirection:"none"}))}return(0,s.a)("button",e,{state:{disabled:l,active:W,orientation:z,tabActivationDirection:D},ref:[t,q,_,H],props:[F,{role:"tab","aria-controls":X,"aria-selected":W,id:P,onClick:function(e){W||l||G(e)},onFocus:function(e){W||l||A&&(!Q.current||Z.current)&&G(e)},onPointerDown:function(e){if(W||l)return;Q.current=!0,Z.current=0===e.button;let t=(0,x.f)(e.currentTarget);function a(){Q.current=!1,Z.current=!1,t.removeEventListener("pointerup",a),t.removeEventListener("pointercancel",a)}t.addEventListener("pointerup",a),t.addEventListener("pointercancel",a)},[j]:W?"":void 0,onKeyDownCapture(){I.current=!0}},b,B],stateAttributesMapping:u})});var T=e.i(144394),z=e.i(474354),D=e.i(137584),A=e.i(223910),L=e.i(673553),E=e.i(180862),E=E,$=E;E.startingStyle,$.endingStyle;let O={...u,...z.f},P=a.forwardRef(function(e,t){let{className:n,value:i,render:l,keepMounted:o=!1,style:d,...u}=e,{value:p,getTabIdByPanelValue:h,orientation:f,tabActivationDirection:g,registerMountedTabPanel:v}=c(),b=(0,y.f)(),{ref:m,index:x}=(0,L.f)(),k=i===p,{mounted:j,transitionStatus:S,setMounted:w}=(0,A.f)(k),C=!j,N=h(i),R=a.useRef(null),M=(0,s.a)("div",e,{state:{hidden:C,orientation:f,tabActivationDirection:g,transitionStatus:S},ref:[t,m,R],props:[{"aria-labelledby":N,hidden:C,id:b,role:"tabpanel",tabIndex:k?0:-1,inert:(0,T.f)(!k),"data-index":x},u],stateAttributesMapping:O});return((0,D.f)({open:k,ref:R,onComplete(){k||w(!1)}}),(0,r.f)(()=>{if(null!=b&&(!C||o))return v(i,b)},[C,o,i,b,v]),o||j)?M:null});var U=e.i(956789),F=e.i(828918),_=e.i(673327),K=e.i(621082),W=e.i(872855);function I(e){let{render:n,className:o,style:d,refs:c=U.v,props:u=U.v,state:p=U.w,stateAttributesMapping:h,highlightedIndex:f,onHighlightedIndexChange:g,orientation:v,grid:b,loopFocus:m,onLoop:x,enableHomeAndEndKeys:y,onMapChange:k,stopEventPropagation:S=!0,rootRef:C,disabledIndices:N,modifierKeys:M,highlightItemOnHover:T=!1,tag:z="div",...D}=e,{props:A,highlightedIndex:L,onHighlightedIndexChange:E,elementsRef:$,onMapChange:O,relayKeyboardEvent:P}=function(e){let{loopFocus:t=!0,orientation:n="both",grid:s,onLoop:l,direction:o,highlightedIndex:d,onHighlightedIndexChange:c,rootRef:u,enableHomeAndEndKeys:p=!1,stopEventPropagation:h,disabledIndices:f,modifierKeys:g=U.v}=e,[v,b]=a.useState(0),m=null!=s,x=a.useRef(null),y=(0,F.A)(x,u),k=a.useRef([]),S=a.useRef(!1),w=a.useRef(null),C=d??v,N=(0,i.f)((e,t=!1)=>{if(w.current=k.current[e]??null,(c??b)(e),t){let t=k.current[e];(0,_.l)(x.current,t,o,n)}}),M=(0,i.f)(e=>{if(0===e.size)return;if(S.current){let e=k.current,t=e.indexOf(w.current);if(-1===t){let t=e[C];!t||(0,K.K)(e,C,f)?N(function(e,t){let a=-1;for(let n=0;n<e.length;n+=1){let r=e[n];if(!(!r||(0,K.K)(e,n,t))){if(r.hasAttribute(j))return n;-1===a&&(a=n)}}return Math.max(a,0)}(e,f)):w.current=t}else t!==C&&N(t);return}S.current=!0;let t=Array.from(e.keys()),a=t.find(e=>e?.hasAttribute(j))??null,r=a?e.get(a)?.index??-1:-1;if(-1!==r)N(r);else if((0,K.K)(t,C,f)){let e=(0,K.e)(t,{disabledIndices:f});(0,K.c)(t,e)||N(e)}(0,_.l)(x.current,a,o,n)});(0,r.f)(()=>{if(null==f||null!=d||!S.current)return;let e=k.current;if((0,K.K)(e,C,f)){let t=(0,K.e)(e,{disabledIndices:f});(0,K.c)(e,t)||N(t)}},[f,d,C,k,N]);let T=(0,i.f)((e,t,a)=>l?l(e,t,a,k):a),z=(0,i.f)(e=>{let a=e.key===_.Z||e.key===_.C;if(!_.J.has(e.key)||!p&&a||function(e,t){for(let a of _.a)if(!t.includes(a)&&e.getModifierState(a))return!0;return!1}(e,g)||!x.current)return;let r="rtl"===o,i=r?_.b:_.q,d=r?_.q:_.b,c="vertical"===n?_.e:i,u="vertical"===n?_.V:d,v=(0,R.Z)(e.nativeEvent);if(null!=v&&(0,_.X)(v)&&!(null==v||v.hasAttribute("disabled")||"true"===v.getAttribute("aria-disabled"))){let t=v.selectionStart,a=v.selectionEnd,n=v.value;if(null==t||e.shiftKey||t!==a||e.key!==u&&t<n.length||e.key!==c&&t>0)return}let b=C,y=(0,K.J)(k,f),j=(0,K._)(k,f);null!=s&&(b=s({disabledIndices:f,elementsRef:k,event:e,highlightedIndex:C,loopFocus:t,maxIndex:j,minIndex:y,onLoop:T,orientation:n,rtl:r}));let S="vertical"!==n&&e.key===i||"horizontal"!==n&&e.key===_.e,w="vertical"!==n&&e.key===d||"horizontal"!==n&&e.key===_.V;p&&(e.key===_.Z?b=y:e.key===_.C&&(b=j)),b===C&&(S||w)&&(t&&b===j&&S?(b=y,l&&(b=l(e,C,b,k))):t&&b===y&&w?(b=j,l&&(b=l(e,C,b,k))):b=(0,K.e)(k.current,{startingIndex:b,decrement:w,disabledIndices:f})),b===C||(0,K.c)(k.current,b)||(h&&e.stopPropagation(),(m||a||S||w)&&e.preventDefault(),N(b,!0),queueMicrotask(()=>{k.current[b]?.focus()}))});return{props:{ref:y,onFocus(e){let t=x.current,a=(0,R.Z)(e.nativeEvent);t&&null!=a&&(0,_.X)(a)&&a.setSelectionRange(0,a.value.length)},onKeyDown:z},highlightedIndex:C,onHighlightedIndexChange:N,elementsRef:k,onMapChange:M,relayKeyboardEvent:z}}({grid:b,loopFocus:m,onLoop:x,orientation:v,highlightedIndex:f,onHighlightedIndexChange:g,rootRef:C,stopEventPropagation:S,enableHomeAndEndKeys:y,direction:(0,W.f)(),disabledIndices:N,modifierKeys:M}),I=(0,s.a)(z,e,{state:p,ref:c,props:[A,...u,D],stateAttributesMapping:h}),V=a.useMemo(()=>({highlightedIndex:L,onHighlightedIndexChange:E,highlightItemOnHover:T,relayKeyboardEvent:P}),[L,E,T,P]);return(0,t.jsx)(w.e.Provider,{value:V,children:(0,t.jsx)(l.f,{elementsRef:$,onMapChange:e=>{k?.(e),O(e)},children:I})})}let V=a.forwardRef(function(e,n){let{activateOnFocus:s=!1,className:l,loopFocus:o=!0,render:d,style:p,...h}=e,{orientation:f,setTabMap:g,tabActivationDirection:v}=c(),[b,m]=a.useState(0),[x,y]=a.useState(null),k=a.useRef(new Set),j=a.useRef(new Set),S=a.useRef(null);(0,r.f)(()=>{if("u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{k.current.forEach(e=>{e()})});return S.current=e,x&&e.observe(x),j.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),S.current=null}},[x]);let w=(0,i.f)(e=>(k.current.add(e),()=>{k.current.delete(e)})),N=(0,i.f)(e=>(j.current.add(e),S.current?.observe(e),()=>{j.current.delete(e),S.current?.unobserve(e)})),R=a.useMemo(()=>({activateOnFocus:s,registerIndicatorUpdateListener:w,registerTabResizeObserverElement:N,tabsListElement:x}),[s,w,N,x]);return(0,t.jsx)(C.Provider,{value:R,children:(0,t.jsx)(I,{render:d,className:l,style:p,state:{orientation:f,tabActivationDirection:v},refs:[n,y],props:[{"aria-orientation":"vertical"===f?"vertical":void 0,role:"tablist"},h],stateAttributesMapping:u,highlightedIndex:b,enableHomeAndEndKeys:!0,loopFocus:o,orientation:f,onHighlightedIndexChange:m,onMapChange:g,disabledIndices:U.v})})});e.s(["List",0,V,"Panel",0,P,"Root",0,v,"Tab",0,M],69281);var H=e.i(69281),H=H,B=H,q=H,X=H,Q=e.i(225913),Z=e.i(975157);let G=(0,Q.f)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"w-full justify-start gap-1 overflow-x-auto bg-transparent p-0 shadow-[inset_0_-1px_0_var(--oc-line)] group-data-horizontal/tabs:h-auto"}},defaultVariants:{variant:"default"}});e.s(["Tabs",0,function({className:e,orientation:a="horizontal",...n}){return(0,t.jsx)(H.Root,{"data-slot":"tabs","data-orientation":a,className:(0,Z.f)("group/tabs flex gap-2 data-horizontal:flex-col",e),...n})},"TabsContent",0,function({className:e,...a}){return(0,t.jsx)(X.Panel,{"data-slot":"tabs-content",className:(0,Z.f)("flex-1 text-sm outline-none",e),...a})},"TabsList",0,function({className:e,variant:a="default",...n}){return(0,t.jsx)(B.List,{"data-slot":"tabs-list","data-variant":a,className:(0,Z.f)(G({variant:a}),e),...n})},"TabsTrigger",0,function({className:e,...a}){return(0,t.jsx)(q.Tab,{"data-slot":"tabs-trigger",className:(0,Z.f)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100","group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:px-3 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:text-sm group-data-[variant=line]/tabs-list:font-normal group-data-[variant=line]/tabs-list:text-ink-soft group-data-[variant=line]/tabs-list:hover:text-ink group-data-[variant=line]/tabs-list:data-active:font-medium group-data-[variant=line]/tabs-list:data-active:text-ink group-data-[variant=line]/tabs-list:after:bg-brand group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:after:bottom-0","dark:group-data-[variant=line]/tabs-list:text-ink-soft dark:group-data-[variant=line]/tabs-list:hover:text-ink dark:group-data-[variant=line]/tabs-list:data-active:text-ink",e),...a})}],677572)},322534,e=>{e.i(684496),e.s(["f",0,e=>`${e} item${1===e?"":"s"}`])}])})();