watchbell 1.3.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/package.json +1 -1
  2. package/server/.next/BUILD_ID +1 -1
  3. package/server/.next/app-path-routes-manifest.json +3 -0
  4. package/server/.next/build-manifest.json +36 -3
  5. package/server/.next/prerender-manifest.json +3 -3
  6. package/server/.next/routes-manifest.json +18 -0
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +76 -68
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +76 -68
  13. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +76 -68
  17. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  18. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +76 -68
  21. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  22. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +76 -68
  25. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  26. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  27. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  28. package/server/.next/server/app/(console)/(private)/ai/models/page.js +76 -68
  29. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  31. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  32. package/server/.next/server/app/(console)/(private)/ai/page.js +76 -68
  33. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +76 -68
  37. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  38. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +76 -68
  41. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  42. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +76 -68
  45. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  46. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +76 -68
  49. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +76 -68
  53. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  54. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +76 -68
  57. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  58. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  59. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  60. package/server/.next/server/app/(console)/alerts/page.js +76 -68
  61. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  62. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  63. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +92 -62
  64. package/server/.next/server/app/(console)/apps/[id]/page.js +78 -70
  65. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  66. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  67. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  68. package/server/.next/server/app/(console)/apps/page.js +78 -70
  69. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  70. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  71. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  72. package/server/.next/server/app/(console)/backups/page.js +76 -68
  73. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  74. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  75. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  76. package/server/.next/server/app/(console)/catalog/page.js +76 -68
  77. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  78. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  79. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  80. package/server/.next/server/app/(console)/connections/page.js +76 -68
  81. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  82. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  83. package/server/.next/server/app/(console)/containers/page/app-paths-manifest.json +3 -0
  84. package/server/.next/server/app/(console)/containers/page/build-manifest.json +22 -0
  85. package/server/.next/server/app/(console)/containers/page/next-font-manifest.json +11 -0
  86. package/server/.next/server/app/(console)/containers/page/react-loadable-manifest.json +1 -0
  87. package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +145 -0
  88. package/server/.next/server/app/(console)/containers/page.js +121 -0
  89. package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -0
  90. package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +3 -0
  91. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  92. package/server/.next/server/app/(console)/d1/page.js +76 -68
  93. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/deploy/page/app-paths-manifest.json +3 -0
  96. package/server/.next/server/app/(console)/deploy/page/build-manifest.json +22 -0
  97. package/server/.next/server/app/(console)/deploy/page/next-font-manifest.json +11 -0
  98. package/server/.next/server/app/(console)/deploy/page/react-loadable-manifest.json +1 -0
  99. package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +115 -0
  100. package/server/.next/server/app/(console)/deploy/page.js +122 -0
  101. package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -0
  102. package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +3 -0
  103. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
  104. package/server/.next/server/app/(console)/deployments/page.js +76 -68
  105. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  106. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  107. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  108. package/server/.next/server/app/(console)/dns/page.js +76 -68
  109. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  110. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  111. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  112. package/server/.next/server/app/(console)/domains/page.js +76 -68
  113. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  114. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  115. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  116. package/server/.next/server/app/(console)/events/page.js +76 -68
  117. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  118. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  119. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  120. package/server/.next/server/app/(console)/firebase/page.js +76 -68
  121. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  122. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  123. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  124. package/server/.next/server/app/(console)/logs/page.js +76 -68
  125. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  126. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  127. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  128. package/server/.next/server/app/(console)/manage/sections/page.js +76 -68
  129. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  130. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  131. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  132. package/server/.next/server/app/(console)/neon/page.js +76 -68
  133. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  134. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  135. package/server/.next/server/app/(console)/os/page/app-paths-manifest.json +3 -0
  136. package/server/.next/server/app/(console)/os/page/build-manifest.json +22 -0
  137. package/server/.next/server/app/(console)/os/page/next-font-manifest.json +11 -0
  138. package/server/.next/server/app/(console)/os/page/react-loadable-manifest.json +1 -0
  139. package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +125 -0
  140. package/server/.next/server/app/(console)/os/page.js +120 -0
  141. package/server/.next/server/app/(console)/os/page.js.nft.json +1 -0
  142. package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +3 -0
  143. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  144. package/server/.next/server/app/(console)/overview/page.js +77 -69
  145. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  146. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  147. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  148. package/server/.next/server/app/(console)/repos/[id]/page.js +80 -72
  149. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  150. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  151. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  152. package/server/.next/server/app/(console)/repos/page.js +81 -72
  153. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  154. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  155. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +21 -21
  156. package/server/.next/server/app/(console)/settings/page.js +76 -68
  157. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  158. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  159. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  160. package/server/.next/server/app/(console)/sql/page.js +76 -68
  161. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  162. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  163. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  164. package/server/.next/server/app/(console)/status/page.js +76 -68
  165. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  166. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  167. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  168. package/server/.next/server/app/(console)/supabase/page.js +81 -72
  169. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  170. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  171. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  172. package/server/.next/server/app/(console)/topology/page.js +76 -68
  173. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  174. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  175. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  176. package/server/.next/server/app/(console)/turso/page.js +76 -68
  177. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  178. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  179. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  180. package/server/.next/server/app/(console)/upstash/page.js +76 -68
  181. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  182. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  183. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  184. package/server/.next/server/app/(console)/uptime/page.js +76 -68
  185. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  186. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  187. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  188. package/server/.next/server/app/(console)/welcome/page.js +76 -68
  189. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  190. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  191. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  192. package/server/.next/server/app/_global-error/page.js +1 -1
  193. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  194. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  195. package/server/.next/server/app/_global-error.html +1 -1
  196. package/server/.next/server/app/_global-error.rsc +3 -3
  197. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  198. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  199. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  200. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  201. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  202. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/_not-found.html +1 -1
  204. package/server/.next/server/app/_not-found.rsc +4 -4
  205. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  206. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  207. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  208. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  209. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  210. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  211. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  212. package/server/.next/server/app/api/collect/route.js +59 -52
  213. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  214. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  215. package/server/.next/server/app/api/daily/route.js +59 -52
  216. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  217. package/server/.next/server/app/api/health/route.js.nft.json +1 -1
  218. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  219. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  220. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  221. package/server/.next/server/app/api/telegram/webhook/route.js +59 -52
  222. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  223. package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
  224. package/server/.next/server/app/api/v1/advice/route.js +14 -14
  225. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  226. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  227. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  228. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  229. package/server/.next/server/app/api/v1/ai/questions/route.js +10 -10
  230. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  231. package/server/.next/server/app/api/v1/mcp/route.js +25 -24
  232. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  233. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  234. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  235. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +13 -13
  236. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  237. package/server/.next/server/app/api/v1/status/route.js +13 -13
  238. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  239. package/server/.next/server/app/api/watchdog/route.js +11 -12
  240. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  241. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  242. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  243. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  244. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  245. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  246. package/server/.next/server/app/icon.svg/route.js.nft.json +1 -1
  247. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  248. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  249. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  250. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  251. package/server/.next/server/app/mfa/page.js +35 -30
  252. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  253. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  254. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  255. package/server/.next/server/app/mfa/setup/page.js +35 -30
  256. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  257. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  258. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  259. package/server/.next/server/app/page.js.nft.json +1 -1
  260. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  261. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  262. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  263. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  264. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  265. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  266. package/server/.next/server/app/setup/page.js +1 -1
  267. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  268. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  269. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  270. package/server/.next/server/app/signin/page.js +35 -30
  271. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  272. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  273. package/server/.next/server/app-paths-manifest.json +3 -0
  274. package/server/.next/server/chunks/{[externals]__1-y7b_mfadqi-._.js → [externals]__0n4j2emxdv20_._.js} +1 -1
  275. package/server/.next/server/chunks/{[externals]__1b3dgyi9diwhy._.js → [externals]__1hwo1oo04do39._.js} +1 -1
  276. package/server/.next/server/chunks/{[externals]__1dd9hhrnxhegy._.js → [externals]__1k12utcf9tvqg._.js} +1 -1
  277. package/server/.next/server/chunks/{[root-of-the-server]__040a3il587nja._.js → [root-of-the-server]__0016p4j5uh74t._.js} +2 -2
  278. package/server/.next/server/chunks/{[root-of-the-server]__08i6b8tzxads4._.js → [root-of-the-server]__00oxbw3nfl_kd._.js} +1 -1
  279. package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
  280. package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +1 -1
  281. package/server/.next/server/chunks/{[root-of-the-server]__0qme276hvajvy._.js → [root-of-the-server]__02y9yjf7lp37-._.js} +1 -1
  282. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  283. package/server/.next/server/chunks/{[root-of-the-server]__1jjusd74y8gd5._.js → [root-of-the-server]__03589rgm1a3ks._.js} +2 -2
  284. package/server/.next/server/chunks/[root-of-the-server]__04u9e45_g1jdi._.js +3 -0
  285. package/server/.next/server/chunks/{[root-of-the-server]__0-zrmrb4499ay._.js → [root-of-the-server]__04v42ls1mfjd2._.js} +2 -2
  286. package/server/.next/server/chunks/{[root-of-the-server]__0sp5xoed3-994._.js → [root-of-the-server]__05b18nw2k-7-4._.js} +1 -1
  287. package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
  288. package/server/.next/server/chunks/{[root-of-the-server]__01hgqxx2a0okv._.js → [root-of-the-server]__06kp2_zqpttyd._.js} +2 -2
  289. package/server/.next/server/chunks/{[root-of-the-server]__04ogdmf82__0g._.js → [root-of-the-server]__06l038ifglbqy._.js} +1 -1
  290. package/server/.next/server/chunks/{[root-of-the-server]__1etpd6q60ypcc._.js → [root-of-the-server]__06nrq_1pbp3z-._.js} +2 -2
  291. package/server/.next/server/chunks/{[root-of-the-server]__0i3h5covkd6_t._.js → [root-of-the-server]__06zmu7jjyw1qw._.js} +1 -1
  292. package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
  293. package/server/.next/server/chunks/{[root-of-the-server]__0sq7jwlhv9n79._.js → [root-of-the-server]__081hh3_un4awi._.js} +1 -1
  294. package/server/.next/server/chunks/{[root-of-the-server]__1vvg0ur3_7o0p._.js → [root-of-the-server]__090n04cg_br7j._.js} +1 -1
  295. package/server/.next/server/chunks/{[root-of-the-server]__0lht1cr4aiudu._.js → [root-of-the-server]__09gla7jgbw2bs._.js} +1 -1
  296. package/server/.next/server/chunks/{[root-of-the-server]__0cmp5mwchd8sn._.js → [root-of-the-server]__09l9icaspfmoh._.js} +2 -2
  297. package/server/.next/server/chunks/{[root-of-the-server]__0m_nqt44ioex_._.js → [root-of-the-server]__09msxcjw3tlue._.js} +1 -1
  298. package/server/.next/server/chunks/{[root-of-the-server]__1smidspfoqz48._.js → [root-of-the-server]__09yvavo991rdd._.js} +2 -2
  299. package/server/.next/server/chunks/{[root-of-the-server]__0ox91q3i5u6fl._.js → [root-of-the-server]__0_vtp19_2frgj._.js} +1 -1
  300. package/server/.next/server/chunks/[root-of-the-server]__0a0st8-rftztn._.js +3 -0
  301. package/server/.next/server/chunks/{[root-of-the-server]__04iumkvxok49x._.js → [root-of-the-server]__0a7moaa91ctod._.js} +2 -2
  302. package/server/.next/server/chunks/{[root-of-the-server]__17dr2z1o1hsvk._.js → [root-of-the-server]__0ao4b2jjkcvo1._.js} +1 -1
  303. package/server/.next/server/chunks/{[root-of-the-server]__04htuwoulmp21._.js → [root-of-the-server]__0at6fxe9efr-x._.js} +1 -1
  304. package/server/.next/server/chunks/{[root-of-the-server]__0erdelc9_06nk._.js → [root-of-the-server]__0c_mpay_m5kbm._.js} +1 -1
  305. package/server/.next/server/chunks/{[root-of-the-server]__02h-ec_gusm_2._.js → [root-of-the-server]__0di45l_tnq1pm._.js} +2 -2
  306. package/server/.next/server/chunks/[root-of-the-server]__0ebkmgcs7v0c8._.js +3 -0
  307. package/server/.next/server/chunks/{[root-of-the-server]__19k0l-ubyp1j_._.js → [root-of-the-server]__0ej4hdoyogtji._.js} +1 -1
  308. package/server/.next/server/chunks/{[root-of-the-server]__1etg41llk7f09._.js → [root-of-the-server]__0eqrtvr3uqlqf._.js} +1 -1
  309. package/server/.next/server/chunks/{[root-of-the-server]__1x7en4waq21dd._.js → [root-of-the-server]__0exruft64u1hg._.js} +1 -1
  310. package/server/.next/server/chunks/{[root-of-the-server]__0ubalx5w0ds9m._.js → [root-of-the-server]__0fii83nfm0bsk._.js} +1 -1
  311. package/server/.next/server/chunks/{[root-of-the-server]__1d1u-wejsfl84._.js → [root-of-the-server]__0g0rd65zoitrb._.js} +1 -1
  312. package/server/.next/server/chunks/{[root-of-the-server]__0fmt9z8-xukob._.js → [root-of-the-server]__0g3v-ty9-xstp._.js} +1 -1
  313. package/server/.next/server/chunks/[root-of-the-server]__0g81f_2ecmg8a._.js +3 -0
  314. package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
  315. package/server/.next/server/chunks/[root-of-the-server]__0glhrm7zmrvi2._.js +3 -0
  316. package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
  317. package/server/.next/server/chunks/{[root-of-the-server]__1jsf0jf_ljpsm._.js → [root-of-the-server]__0jma907r441wi._.js} +1 -1
  318. package/server/.next/server/chunks/{[root-of-the-server]__1j527a18gh10b._.js → [root-of-the-server]__0jpktq0f88rvz._.js} +2 -2
  319. package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
  320. package/server/.next/server/chunks/{[root-of-the-server]__0lco43i5w25zg._.js → [root-of-the-server]__0myf9g_uv3bia._.js} +2 -2
  321. package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
  322. package/server/.next/server/chunks/{[root-of-the-server]__1xnqsy7nud--q._.js → [root-of-the-server]__0pi_camvun8ak._.js} +2 -2
  323. package/server/.next/server/chunks/{[root-of-the-server]__0mrbo2p5fy4ji._.js → [root-of-the-server]__0puji-hw0xtk7._.js} +1 -1
  324. package/server/.next/server/chunks/{[root-of-the-server]__1kr6f03r82mk6._.js → [root-of-the-server]__0qlf-so9k6401._.js} +1 -1
  325. package/server/.next/server/chunks/{[root-of-the-server]__0iicsi0n7tfa5._.js → [root-of-the-server]__0r0zrp3s_n614._.js} +1 -1
  326. package/server/.next/server/chunks/{[root-of-the-server]__0zwr7fll4dm9q._.js → [root-of-the-server]__0s3b61ttgb9if._.js} +2 -2
  327. package/server/.next/server/chunks/{[root-of-the-server]__1_df6aphi-pfk._.js → [root-of-the-server]__0t0dd5t5rch1i._.js} +2 -2
  328. package/server/.next/server/chunks/{[root-of-the-server]__11a8fxlpahjy2._.js → [root-of-the-server]__0tshehtsx7229._.js} +1 -1
  329. package/server/.next/server/chunks/[root-of-the-server]__0ty2qkszfdr5t._.js +3 -0
  330. package/server/.next/server/chunks/[root-of-the-server]__0ugx1i8km15fl._.js +3 -0
  331. package/server/.next/server/chunks/{[root-of-the-server]__0c2heh-0pjyob._.js → [root-of-the-server]__0uyc9w7f_r10u._.js} +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0uz_r72zdnwdd._.js +1 -1
  333. package/server/.next/server/chunks/{[root-of-the-server]__130_vkgsongq_._.js → [root-of-the-server]__0vb1_m_h5hi0z._.js} +2 -2
  334. package/server/.next/server/chunks/{[root-of-the-server]__0x929r1phz1oi._.js → [root-of-the-server]__0vclan952l_ty._.js} +2 -2
  335. package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
  336. package/server/.next/server/chunks/{[root-of-the-server]__1wjsjh-1i-sn6._.js → [root-of-the-server]__0vsafetdvsfhj._.js} +1 -1
  337. package/server/.next/server/chunks/{[root-of-the-server]__0db2p-om-b_4s._.js → [root-of-the-server]__0ww7a-9fnx2rv._.js} +1 -1
  338. package/server/.next/server/chunks/[root-of-the-server]__0x5vp_8n6xvpw._.js +3 -0
  339. package/server/.next/server/chunks/[root-of-the-server]__0yhki59n8zyjb._.js +1 -1
  340. package/server/.next/server/chunks/{[root-of-the-server]__20sp5m_w5iklm._.js → [root-of-the-server]__10-v22hv1sxrv._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__0jswmvddgl3sb._.js → [root-of-the-server]__10d4a34z0js-f._.js} +1 -1
  342. package/server/.next/server/chunks/{[root-of-the-server]__0zkeao78mms1_._.js → [root-of-the-server]__10ts7p_9fu3ge._.js} +2 -2
  343. package/server/.next/server/chunks/{[root-of-the-server]__14jw0y_hj7jmw._.js → [root-of-the-server]__12tmfv427e9cb._.js} +2 -2
  344. package/server/.next/server/chunks/[root-of-the-server]__1426to_m4prqh._.js +1 -1
  345. package/server/.next/server/chunks/[root-of-the-server]__1481y3utu_a_o._.js +3 -0
  346. package/server/.next/server/chunks/[root-of-the-server]__14e0j38785glf._.js +3 -0
  347. package/server/.next/server/chunks/{[root-of-the-server]__1-2ckgdamg0-j._.js → [root-of-the-server]__14yq_wf4xemgd._.js} +2 -2
  348. package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
  349. package/server/.next/server/chunks/{[root-of-the-server]__0-94urkhm871c._.js → [root-of-the-server]__192br5y94wzhx._.js} +1 -1
  350. package/server/.next/server/chunks/[root-of-the-server]__19jalyhtntk8p._.js +3 -0
  351. package/server/.next/server/chunks/{[root-of-the-server]__0fc4c9-xzmkol._.js → [root-of-the-server]__19o-a03uklyrw._.js} +2 -2
  352. package/server/.next/server/chunks/{[root-of-the-server]__1rpgddeg42i-q._.js → [root-of-the-server]__1_0vd5-tvmsg8._.js} +1 -1
  353. package/server/.next/server/chunks/{[root-of-the-server]__0w07p3ypro834._.js → [root-of-the-server]__1_goy0uhapvk9._.js} +2 -2
  354. package/server/.next/server/chunks/[root-of-the-server]__1ac-dzt5bffr2._.js +3 -0
  355. package/server/.next/server/chunks/{[root-of-the-server]__1bjvjngj7lvqi._.js → [root-of-the-server]__1ajyr5xvo1-x5._.js} +2 -2
  356. package/server/.next/server/chunks/{[root-of-the-server]__0-ytbad9hn7uc._.js → [root-of-the-server]__1avuwg9wmyh48._.js} +1 -1
  357. package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
  358. package/server/.next/server/chunks/[root-of-the-server]__1ey2qia7rofoc._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__161v5qfd5qk2p._.js → [root-of-the-server]__1ghx3ayy7tm73._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__0xfgfo-ks4_e8._.js → [root-of-the-server]__1hlvqq0azku2x._.js} +2 -2
  361. package/server/.next/server/chunks/{[root-of-the-server]__0zs-wkvv1cs0i._.js → [root-of-the-server]__1hrcyozojb6ot._.js} +1 -1
  362. package/server/.next/server/chunks/[root-of-the-server]__1hrviq7s700td._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__212_l7y-180xi._.js → [root-of-the-server]__1i841w7a3057h._.js} +1 -1
  364. package/server/.next/server/chunks/[root-of-the-server]__1ifov-udw6__d._.js +3 -0
  365. package/server/.next/server/chunks/{[root-of-the-server]__10negjjz5k5bz._.js → [root-of-the-server]__1ig0p-frprcbm._.js} +1 -1
  366. package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
  367. package/server/.next/server/chunks/{[root-of-the-server]__0c9y_zg74k4oe._.js → [root-of-the-server]__1iruoalu93dg7._.js} +2 -2
  368. package/server/.next/server/chunks/[root-of-the-server]__1ksyvvsf32jfg._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1kzi1du1sliqb._.js +3 -0
  370. package/server/.next/server/chunks/{[root-of-the-server]__15vqo7amys573._.js → [root-of-the-server]__1mbm_bvk1oat7._.js} +2 -2
  371. package/server/.next/server/chunks/[root-of-the-server]__1mvibnqor6lx_._.js +3 -0
  372. package/server/.next/server/chunks/{[root-of-the-server]__0ct18spdi1leu._.js → [root-of-the-server]__1ons16gam6qb7._.js} +2 -2
  373. package/server/.next/server/chunks/[root-of-the-server]__1ozfk4_3lx1o7._.js +1 -1
  374. package/server/.next/server/chunks/[root-of-the-server]__1po33h2u2o4e_._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__1qps9ushddgwe._.js +3 -0
  376. package/server/.next/server/chunks/{[root-of-the-server]__0so_ihc-5tp14._.js → [root-of-the-server]__1qyz1wi13rxxb._.js} +1 -1
  377. package/server/.next/server/chunks/{[root-of-the-server]__0nkfi6x2c4c5p._.js → [root-of-the-server]__1r2ei065xk141._.js} +1 -1
  378. package/server/.next/server/chunks/{[root-of-the-server]__0dltcr407-ow6._.js → [root-of-the-server]__1r8mzvf7_9d2k._.js} +2 -2
  379. package/server/.next/server/chunks/[root-of-the-server]__1rxke2_vpd7np._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__1sjp750034q4j._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__1tefe1f5835t_._.js +1 -1
  382. package/server/.next/server/chunks/{[root-of-the-server]__0a5t6bkr3-uqw._.js → [root-of-the-server]__1tlivd99uri0t._.js} +2 -2
  383. package/server/.next/server/chunks/{[root-of-the-server]__217jp1b3psyq_._.js → [root-of-the-server]__1vfvw1pmssxww._.js} +1 -1
  384. package/server/.next/server/chunks/{[root-of-the-server]__1g6xpr_typmce._.js → [root-of-the-server]__1wbnule0tzwdu._.js} +2 -2
  385. package/server/.next/server/chunks/{[root-of-the-server]__0zu1odpvrptrt._.js → [root-of-the-server]__1wcnj2xtesyd9._.js} +1 -1
  386. package/server/.next/server/chunks/{[root-of-the-server]__1cpee8xi1ig3-._.js → [root-of-the-server]__1won_frdj9jms._.js} +2 -2
  387. package/server/.next/server/chunks/[root-of-the-server]__1wvp6wau5ueb9._.js +3 -0
  388. package/server/.next/server/chunks/{[root-of-the-server]__0bvdnvpw43au9._.js → [root-of-the-server]__1y9gsf61fh1fv._.js} +1 -1
  389. package/server/.next/server/chunks/[root-of-the-server]__1yxudc_keazqo._.js +3 -0
  390. package/server/.next/server/chunks/{[root-of-the-server]__1pyhos8be90-4._.js → [root-of-the-server]__1yxxfmyk3649a._.js} +1 -1
  391. package/server/.next/server/chunks/{[root-of-the-server]__1t87mhqedigsz._.js → [root-of-the-server]__1z1fgf8k8icw8._.js} +2 -2
  392. package/server/.next/server/chunks/{[root-of-the-server]__1d4wmw2wohveb._.js → [root-of-the-server]__1z_l9mj3s_6tu._.js} +1 -1
  393. package/server/.next/server/chunks/[root-of-the-server]__1zvy7u_y3fzbz._.js +3 -0
  394. package/server/.next/server/chunks/{[root-of-the-server]__0xd_bgjy5_tr5._.js → [root-of-the-server]__20056vw370xom._.js} +1 -1
  395. package/server/.next/server/chunks/[root-of-the-server]__205cmd-k6g2kc._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
  397. package/server/.next/server/chunks/{[root-of-the-server]__1sm4p209f_yie._.js → [root-of-the-server]__20qdu-env7wgt._.js} +1 -1
  398. package/server/.next/server/chunks/[root-of-the-server]__20qirklw1sgj0._.js +3 -0
  399. package/server/.next/server/chunks/{[root-of-the-server]__0inf2zuuqjrq6._.js → [root-of-the-server]__212-4r-w6a9sm._.js} +2 -2
  400. package/server/.next/server/chunks/_0-5pjvqu672_v._.js +49 -0
  401. package/server/.next/server/chunks/_02qrz1g8sdvhe._.js +49 -0
  402. package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
  403. package/server/.next/server/chunks/_05hhw0eql5-dv._.js +2 -2
  404. package/server/.next/server/chunks/_06gv0srpbf_lk._.js +1 -1
  405. package/server/.next/server/chunks/_06lf75x-xhl7v._.js +1 -1
  406. package/server/.next/server/chunks/{_0-ub844lc_z_a._.js → _0ehqx1pkh20px._.js} +3 -3
  407. package/server/.next/server/chunks/{_08z7lmk32r__5._.js → _0jiq3ns7681pv._.js} +3 -3
  408. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  409. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
  410. package/server/.next/server/chunks/_0vgplianlrk3e._.js +3 -0
  411. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
  412. package/server/.next/server/chunks/_1ap0upnvy5i_1._.js +49 -0
  413. package/server/.next/server/chunks/_1b-88djuoexz1._.js +49 -0
  414. package/server/.next/server/chunks/{_0-jfehdfklu-i._.js → _1k3v1-vgvzm_o._.js} +2 -2
  415. package/server/.next/server/chunks/_1l-68brbq289m._.js +2 -2
  416. package/server/.next/server/chunks/{_1-pv4d4qhe7to._.js → _1t46m15axa4b4._.js} +3 -3
  417. package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +3 -3
  418. package/server/.next/server/chunks/{_0op74d4yyc3ma._.js → node_modules_next_1mwxx95m7177g._.js} +3 -3
  419. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  420. package/server/.next/server/chunks/{src_2108_me3q06ih._.js → src_05be6wzefzaky._.js} +2 -2
  421. package/server/.next/server/chunks/src_05jrvcsgaq5ek._.js +1 -1
  422. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  423. package/server/.next/server/chunks/src_06tyytf_c_hlu._.js +1 -1
  424. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
  425. package/server/.next/server/chunks/src_08fq45_-8xq5o._.js +1 -1
  426. package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +1 -1
  427. package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +1 -1
  428. package/server/.next/server/chunks/{src_0j8daco-75zka._.js → src_0cdn5fuk8f_x2._.js} +2 -2
  429. package/server/.next/server/chunks/src_0dxbyz8iemj_5._.js +1 -1
  430. package/server/.next/server/chunks/src_0hx0sol2clocu._.js +1 -1
  431. package/server/.next/server/chunks/{src_1lvv9wiag2d8-._.js → src_0j84o_hkkaeg-._.js} +2 -2
  432. package/server/.next/server/chunks/src_0u2zbz77uh__q._.js +1 -1
  433. package/server/.next/server/chunks/src_0ud2mqnh4emxz._.js +1 -1
  434. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
  435. package/server/.next/server/chunks/src_10vyvp9vy_69h._.js +1 -1
  436. package/server/.next/server/chunks/src_13n1vi7uew4iu._.js +1 -1
  437. package/server/.next/server/chunks/src_1_fnzi0em_6er._.js +3 -0
  438. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  439. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
  440. package/server/.next/server/chunks/src_1cvp6ubs-3z6l._.js +1 -1
  441. package/server/.next/server/chunks/src_1il7wg_qjxny7._.js +1 -1
  442. package/server/.next/server/chunks/src_1ntwbcb1cl-y9._.js +1 -1
  443. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +5 -5
  444. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  445. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
  446. package/server/.next/server/chunks/src_1wmb2yl3tn-dd._.js +1 -1
  447. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +5 -5
  448. package/server/.next/server/chunks/src_lib_00ixpbvymlbo_._.js +3 -0
  449. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  450. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  451. package/server/.next/server/chunks/src_lib_0j2ifdk5byg1t._.js +3 -0
  452. package/server/.next/server/chunks/src_lib_0ma36vqcze7a9._.js +7 -0
  453. package/server/.next/server/chunks/src_lib_0ps7mu81f-6s1._.js +7 -0
  454. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +10 -10
  455. package/server/.next/server/chunks/src_lib_14grv5a5_n9o0._.js +7 -0
  456. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +10 -10
  457. package/server/.next/server/chunks/src_lib_1iuuekw6uwbbr._.js +3 -0
  458. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +10 -10
  459. package/server/.next/server/chunks/src_lib_1znb-e7g8dkgc._.js +7 -0
  460. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  461. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +3 -3
  462. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
  463. package/server/.next/server/chunks/src_lib_data_cached_ts_017to1fh48jms._.js +3 -0
  464. package/server/.next/server/chunks/src_lib_data_databases-db_ts_04a4hj5j7h8m0._.js +3 -0
  465. package/server/.next/server/chunks/src_lib_data_os-scan-db_ts_0g2a3ofkaxf40._.js +4 -0
  466. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +4 -4
  467. package/server/.next/server/chunks/src_lib_databases_snapshot-data_ts_1xilv6_re7hcp._.js +3 -0
  468. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +5 -5
  469. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +10 -10
  470. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +12 -12
  471. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +10 -10
  472. package/server/.next/server/chunks/src_lib_deps_branch_ts_06dz9-7a66n24._.js +3 -0
  473. package/server/.next/server/chunks/src_lib_deps_osv_ts_0c-lbj4hsmojx._.js +3 -0
  474. package/server/.next/server/chunks/src_lib_deps_plan_ts_0bctf8v4qttk5._.js +1 -1
  475. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  476. package/server/.next/server/chunks/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
  477. package/server/.next/server/chunks/src_lib_view_security_ts_1_c7vkcsp6y27._.js +3 -0
  478. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  479. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  480. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  481. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  482. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  483. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  484. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  485. package/server/.next/server/chunks/ssr/1q96_modules_@tabler_icons-react_dist_esm_icons_IconExternalLink_mjs_19uzq2wmxdb36._.js +3 -0
  486. package/server/.next/server/chunks/ssr/{[externals]__1rj83sktdlxvt._.js → [externals]__00hge8tjqv73a._.js} +1 -1
  487. package/server/.next/server/chunks/ssr/{[externals]__1s7xw086rvse0._.js → [externals]__0summv9f9jkob._.js} +1 -1
  488. package/server/.next/server/chunks/ssr/{[externals]__20leqouf6m6f3._.js → [externals]__1jdljyrzmqoz0._.js} +1 -1
  489. package/server/.next/server/chunks/ssr/{[externals]__02s9k1gg9qqkm._.js → [externals]__1q1drb4oske-9._.js} +1 -1
  490. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  491. package/server/.next/server/chunks/ssr/{[root-of-the-server]__07k_84t5-d55n._.js → [root-of-the-server]__02lkybw6gg3ln._.js} +2 -2
  492. package/server/.next/server/chunks/ssr/[root-of-the-server]__02s29zgn7lrps._.js +3 -0
  493. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1e9tlsk1gl8lw._.js → [root-of-the-server]__03xevz8n-mc20._.js} +3 -3
  494. package/server/.next/server/chunks/ssr/{[root-of-the-server]__077-acap7g4ck._.js → [root-of-the-server]__0423qjo9c2t9-._.js} +1 -1
  495. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0nrc_8-wrhf3y._.js → [root-of-the-server]__04p9ipxxdhqfn._.js} +1 -1
  496. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ct4apye0sfmc._.js → [root-of-the-server]__05s2n35zn4go-._.js} +1 -1
  497. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0fd39clnjw9fb._.js → [root-of-the-server]__06bgklzuef-ya._.js} +2 -2
  498. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1itgt83qo1e77._.js → [root-of-the-server]__07_efq7yhxfj-._.js} +1 -1
  499. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0q7rssq_3unbc._.js → [root-of-the-server]__07zuxj3veqm14._.js} +1 -1
  500. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1qrk2rfmx21b_._.js → [root-of-the-server]__092gsphy4oz6k._.js} +2 -2
  501. package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
  502. package/server/.next/server/chunks/ssr/[root-of-the-server]__0_-fz8cunfpwp._.js +3 -0
  503. package/server/.next/server/chunks/ssr/[root-of-the-server]__0de1senl_kfo5._.js +3 -0
  504. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ee5ew5q3jh8i._.js → [root-of-the-server]__0gyvfp6c-_edw._.js} +2 -2
  505. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
  506. package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
  507. package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
  508. package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +4 -0
  509. package/server/.next/server/chunks/ssr/{[root-of-the-server]__04_prmhm_cts4._.js → [root-of-the-server]__0n4bkq-45z4aa._.js} +1 -1
  510. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0e1s_5gg-u3iu._.js → [root-of-the-server]__0no6c0whevi73._.js} +1 -1
  511. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
  512. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  513. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y2s_4828a5u9._.js +3 -0
  514. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0p86d9imejczs._.js → [root-of-the-server]__0z5ucbis8ik32._.js} +2 -2
  515. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0uxychcp_pldy._.js → [root-of-the-server]__10r0u-q18z71i._.js} +1 -1
  516. package/server/.next/server/chunks/ssr/{[root-of-the-server]__004q78ed0nf0_._.js → [root-of-the-server]__12t9_ndr9z-2d._.js} +1 -1
  517. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hgf7si8htevx._.js → [root-of-the-server]__139ya3ejh6htx._.js} +1 -1
  518. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-zqh1gf4dsj3._.js → [root-of-the-server]__13phmsw9wsyrs._.js} +1 -1
  519. package/server/.next/server/chunks/ssr/[root-of-the-server]__14e0j38785glf._.js +3 -0
  520. package/server/.next/server/chunks/ssr/{[root-of-the-server]__080do5vfu69n5._.js → [root-of-the-server]__157kjredkf1pa._.js} +1 -1
  521. package/server/.next/server/chunks/ssr/{[root-of-the-server]__09j1po2u91fp3._.js → [root-of-the-server]__16jfs8j29r4b5._.js} +2 -2
  522. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0skfdezx5rxie._.js → [root-of-the-server]__183_36tj3p645._.js} +2 -2
  523. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1sw2q1p1t59y8._.js → [root-of-the-server]__18gw74mr2vto3._.js} +2 -2
  524. package/server/.next/server/chunks/ssr/[root-of-the-server]__19twn3g5nv5q1._.js +3 -0
  525. package/server/.next/server/chunks/ssr/[root-of-the-server]__19wvac83zh5-9._.js +3 -0
  526. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  527. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0h9rpg5-lhp5q._.js → [root-of-the-server]__1a5760tg4iits._.js} +2 -2
  528. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0b3g72j9cu141._.js → [root-of-the-server]__1d1ksu1dlha3r._.js} +2 -2
  529. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1y7nfsglxx7cn._.js → [root-of-the-server]__1iqedr7nfvayk._.js} +1 -1
  530. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11paa809_igt_._.js → [root-of-the-server]__1knbzqo0nba_q._.js} +2 -2
  531. package/server/.next/server/chunks/ssr/{[root-of-the-server]__05_98ql5tgeii._.js → [root-of-the-server]__1m38od9tgaroe._.js} +1 -1
  532. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ed6qo3lg9_f9._.js → [root-of-the-server]__1mah0p09qrkpu._.js} +2 -2
  533. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1v3b498_j-68t._.js → [root-of-the-server]__1mxpszbk1aup8._.js} +3 -3
  534. package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
  535. package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +3 -0
  536. package/server/.next/server/chunks/ssr/{_0azq3ml4gbn1d._.js → _01n29sxn-py3x._.js} +2 -2
  537. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  538. package/server/.next/server/chunks/ssr/_03d3sxmob-gr7._.js +3 -0
  539. package/server/.next/server/chunks/ssr/{_1wfjx67s3e6ws._.js → _04mnjz5cekpue._.js} +1 -1
  540. package/server/.next/server/chunks/ssr/_08rjac8cutbcs._.js +3 -0
  541. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  542. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  543. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  544. package/server/.next/server/chunks/ssr/{_1ah_xx0-cty-v._.js → _0aznz0i-8olet._.js} +1 -1
  545. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  546. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  547. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  548. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  549. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  550. package/server/.next/server/chunks/ssr/_0dvz4dndt6lkf._.js +1 -1
  551. package/server/.next/server/chunks/ssr/_0eu69r0sm274b._.js +3 -0
  552. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  553. package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
  554. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  555. package/server/.next/server/chunks/ssr/_0iaoiq9xbkdma._.js +3 -0
  556. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  557. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
  558. package/server/.next/server/chunks/ssr/_0k2qpgzlqzc_p._.js +1 -1
  559. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  560. package/server/.next/server/chunks/ssr/_0lb1euzjakqbr._.js +3 -0
  561. package/server/.next/server/chunks/ssr/{_0_vfnz8i8hac7._.js → _0mhwgy5lvtng0._.js} +1 -1
  562. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  563. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  564. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  565. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  566. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  567. package/server/.next/server/chunks/ssr/{_1vjm7-shohnh7._.js → _0u5_d3o0i72tq._.js} +2 -2
  568. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  569. package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +4 -0
  570. package/server/.next/server/chunks/ssr/_0vgplianlrk3e._.js +3 -0
  571. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  572. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
  573. package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +3 -0
  574. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
  575. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  576. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  577. package/server/.next/server/chunks/ssr/{_1xokm14jd0teg._.js → _113tc44xki0cp._.js} +1 -1
  578. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  579. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  580. package/server/.next/server/chunks/ssr/{_0y5ov4kk2q81r._.js → _13bpjk3g0tp2e._.js} +2 -2
  581. package/server/.next/server/chunks/ssr/_16vvfyez78u5k._.js +3 -0
  582. package/server/.next/server/chunks/ssr/{_0tu64jsmbyx4_._.js → _17tabyg0mhxlx._.js} +2 -2
  583. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  584. package/server/.next/server/chunks/ssr/_19-n2kl-knt0j._.js +3 -0
  585. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  587. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  588. package/server/.next/server/chunks/ssr/_1d0anr0hjs5k5._.js +3 -0
  589. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  590. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  591. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  592. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  593. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  594. package/server/.next/server/chunks/ssr/_1i96si4hzn74p._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  596. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  597. package/server/.next/server/chunks/ssr/_1lgb0h9z-8z15._.js +3 -0
  598. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  599. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  600. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  601. package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +3 -0
  602. package/server/.next/server/chunks/ssr/_1qsshadaq_-6p._.js +3 -0
  603. package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +4 -0
  604. package/server/.next/server/chunks/ssr/{_1nzncndn-1ggb._.js → _1xbmdurub1ykt._.js} +1 -1
  605. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  606. package/server/.next/server/chunks/ssr/{_10oqiz6hmf92q._.js → _1ykegy3wzl3mu._.js} +2 -2
  607. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  608. package/server/.next/server/chunks/ssr/{_1_ct-7kmkfab1._.js → _1znzrmlfouh6k._.js} +1 -1
  609. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  610. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  611. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  612. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +4 -0
  613. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  614. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  615. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +3 -0
  616. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  617. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  618. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  619. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  620. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  621. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  622. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  623. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  624. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  625. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  626. package/server/.next/server/chunks/ssr/{node_modules_@tabler_icons-react_dist_esm_icons_0904ro5eqxhlr._.js → node_modules_@tabler_icons-react_dist_esm_icons_0b7guexr5je6g._.js} +1 -1
  627. package/server/.next/server/chunks/ssr/{node_modules_@tabler_icons-react_dist_esm_icons_07e6iv4064369._.js → node_modules_@tabler_icons-react_dist_esm_icons_0ej-u2f-ha9q0._.js} +1 -1
  628. package/server/.next/server/chunks/ssr/{node_modules_@tabler_icons-react_dist_esm_icons_1uzp0vue7-c9z._.js → node_modules_@tabler_icons-react_dist_esm_icons_1nstb42fu_h0p._.js} +1 -1
  629. package/server/.next/server/chunks/ssr/node_modules_class-variance-authority_dist_index_mjs_0wl3fjdt40o5n._.js +3 -0
  630. package/server/.next/server/chunks/ssr/{_1b4uqc9fwt4dy._.js → node_modules_next_1mwxx95m7177g._.js} +2 -2
  631. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hrjtaoa__ix8.js +3 -0
  632. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0slepiv25mpch.js +3 -0
  633. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1oqgmgc8y6yxj.js +3 -0
  634. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  635. package/server/.next/server/chunks/ssr/src_05mcsr-od-9ug._.js +3 -0
  636. package/server/.next/server/chunks/ssr/src_0632mrev4i__u._.js +3 -0
  637. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  638. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  639. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  640. package/server/.next/server/chunks/ssr/src_0c62tj2aysn_e._.js +3 -0
  641. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
  642. package/server/.next/server/chunks/ssr/src_0k2rwfjheyrf7._.js +1 -1
  643. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
  644. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  645. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +2 -2
  646. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  647. package/server/.next/server/chunks/ssr/src_13u1vu8hwwr6n._.js +3 -0
  648. package/server/.next/server/chunks/ssr/src_14bxi75kwc3xt._.js +3 -0
  649. package/server/.next/server/chunks/ssr/src_15mtytgydjtio._.js +3 -0
  650. package/server/.next/server/chunks/ssr/{src_14ulgwoxoyfkq._.js → src_1_9q6-wstn038._.js} +2 -2
  651. package/server/.next/server/chunks/ssr/src_1emolu5lrse98._.js +6 -0
  652. package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +3 -3
  653. package/server/.next/server/chunks/ssr/src_1ntwbcb1cl-y9._.js +1 -1
  654. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  655. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  656. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  657. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  658. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  659. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  660. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  661. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  662. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  663. package/server/.next/server/chunks/ssr/src_app_(console)_0_odx13qcz9o1._.js +3 -0
  664. package/server/.next/server/chunks/ssr/{src_app_(console)_0-vcbt2icvguc._.js → src_app_(console)_0gw9o1og9hq_4._.js} +2 -2
  665. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  666. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +3 -0
  667. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  668. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  671. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  672. package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +3 -0
  673. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  674. package/server/.next/server/chunks/ssr/src_app_(console)_deploy_0zeo9k66pzhae._.js +3 -0
  675. package/server/.next/server/chunks/ssr/src_app_(console)_deploy_deploy-picker_tsx_1qtt_mfhq6hx7._.js +3 -0
  676. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  679. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  680. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  681. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  682. package/server/.next/server/chunks/ssr/src_app_(console)_os_09ake6nf7de4h._.js +3 -0
  683. package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +3 -0
  684. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  686. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  687. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  688. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  689. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  691. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  692. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  693. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  694. package/server/.next/server/chunks/ssr/{src_app_signin_0obhr-33tppu8._.js → src_app_signin_1u2md84o5b6td._.js} +2 -2
  695. package/server/.next/server/chunks/ssr/src_components_174vbjanfxq81._.js +3 -0
  696. package/server/.next/server/chunks/ssr/{src_components_0ozvphxxwb7d-._.js → src_components_1pmro72g7f44k._.js} +1 -1
  697. package/server/.next/server/chunks/ssr/src_components_charts_tsx_0u0c5sxi3-7ug._.js +1 -1
  698. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  699. package/server/.next/server/chunks/ssr/src_components_live_tsx_1p2s3b807w0jt._.js +1 -1
  700. package/server/.next/server/chunks/ssr/src_lib_00ixpbvymlbo_._.js +3 -0
  701. package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
  702. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  703. package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_lib_0j2ifdk5byg1t._.js +3 -0
  705. package/server/.next/server/chunks/ssr/src_lib_0nbad7vu413-f._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_lib_1-o98ehvb_ozi._.js +3 -0
  707. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_lib_1iuuekw6uwbbr._.js +3 -0
  709. package/server/.next/server/chunks/ssr/{src_lib_0-nc33gvdtkg5._.js → src_lib_1zgor_vrwl5kt._.js} +1 -1
  710. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  711. package/server/.next/server/chunks/ssr/src_lib_data_cached_ts_017to1fh48jms._.js +3 -0
  712. package/server/.next/server/chunks/ssr/src_lib_data_databases-db_ts_04a4hj5j7h8m0._.js +3 -0
  713. package/server/.next/server/chunks/ssr/src_lib_data_os-scan-db_ts_0g2a3ofkaxf40._.js +4 -0
  714. package/server/.next/server/chunks/ssr/src_lib_data_provider-action-db_ts_0-bucssqnudtd._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_lib_data_repos-db_ts_06z14rp86ukii._.js +3 -0
  716. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +2 -2
  717. package/server/.next/server/chunks/ssr/src_lib_databases_snapshot-data_ts_1xilv6_re7hcp._.js +3 -0
  718. package/server/.next/server/chunks/ssr/{src_lib_demo_0sbw5n9n4mpzx._.js → src_lib_demo_15e3gnqzod0tj._.js} +2 -2
  719. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_lib_deps_branch_ts_06dz9-7a66n24._.js +3 -0
  721. package/server/.next/server/chunks/ssr/src_lib_deps_osv_ts_0c-lbj4hsmojx._.js +3 -0
  722. package/server/.next/server/chunks/ssr/src_lib_deps_plan_ts_0bctf8v4qttk5._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
  724. package/server/.next/server/chunks/ssr/src_lib_view_security_ts_1_c7vkcsp6y27._.js +3 -0
  725. package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_private_ui_0jp9fny_5k1v6._.js +1 -1
  731. package/server/.next/server/middleware-build-manifest.js +36 -3
  732. package/server/.next/server/next-font-manifest.js +1 -1
  733. package/server/.next/server/next-font-manifest.json +12 -0
  734. package/server/.next/server/pages/404.html +1 -1
  735. package/server/.next/server/pages/500.html +1 -1
  736. package/server/.next/server/preview-props.json +3 -3
  737. package/server/.next/server/server-reference-manifest.js +1 -1
  738. package/server/.next/server/server-reference-manifest.json +378 -176
  739. package/server/.next/static/chunks/{0uom2d_-nh45g.js → 00e1aosyzj6rl.js} +1 -1
  740. package/server/.next/static/chunks/{0tw_we2nleycj.js → 0cc9ahw1xs0ny.js} +1 -1
  741. package/server/.next/static/chunks/{0p5xwnif2xe2v.js → 0hths0sijlql2.js} +1 -1
  742. package/server/.next/static/chunks/0hzw1rqyz-ith.js +1 -0
  743. package/server/.next/static/chunks/0ish66r3_d92v.js +1 -0
  744. package/server/.next/static/chunks/{20u3tmdb-6drr.js → 0ps76fyk0mlud.js} +1 -1
  745. package/server/.next/static/chunks/{2i629nz4h3fqg.js → 0rblb2d9s6x__.js} +1 -1
  746. package/server/.next/static/chunks/{2pjruch-2xss_.js → 0v-0yvs2o_ibn.js} +1 -1
  747. package/server/.next/static/chunks/{3ki7epe69d8mi.js → 0viea3-xdb4uv.js} +1 -1
  748. package/server/.next/static/chunks/{3y4vkm_orksj_.js → 11r8k-t1ijjkn.js} +1 -1
  749. package/server/.next/static/chunks/{3tqlcut9yz40q.js → 14f5pn2krqoyh.js} +1 -1
  750. package/server/.next/static/chunks/{1d5jx8nbj9hio.js → 17zst1h7smcce.js} +1 -1
  751. package/server/.next/static/chunks/{1hzn5sr2wq7_6.js → 1a0rdqp6soc92.js} +1 -1
  752. package/server/.next/static/chunks/{2y5zgpld68mbe.js → 1a7zdd51t9mil.js} +2 -2
  753. package/server/.next/static/chunks/{32sed3oqb5mgw.js → 1d4i_v63pyozl.js} +1 -1
  754. package/server/.next/static/chunks/{20xid8njz36og.js → 1d5651gcd0bfq.js} +1 -1
  755. package/server/.next/static/chunks/{2jyi95ohxfybd.js → 1fh3cq_v5nqtp.js} +1 -1
  756. package/server/.next/static/chunks/1fk-rtgxvtdso.js +1 -0
  757. package/server/.next/static/chunks/1kyz-ah3_ho6c.js +1 -0
  758. package/server/.next/static/chunks/{3tigi9c4vke8u.js → 1qjg48qu3j1w4.js} +1 -1
  759. package/server/.next/static/chunks/{3e8jbph5vbqrh.js → 1qmrzxeff7esb.js} +1 -1
  760. package/server/.next/static/chunks/{13t0_-lm77ctu.js → 1rgved8vjyay2.js} +1 -1
  761. package/server/.next/static/chunks/{12z4gcgh75y3h.js → 1y_o3hc2z85sh.js} +1 -1
  762. package/server/.next/static/chunks/{12ryyhs-tt27p.js → 1yjrm8ekqlzfy.js} +1 -1
  763. package/server/.next/static/chunks/{1jfri9y7a54t3.js → 2-ijilf6lbw4f.js} +1 -1
  764. package/server/.next/static/chunks/{12rf9fj_wat4k.js → 2-vu-7596xgz-.js} +2 -2
  765. package/server/.next/static/chunks/{0x_wb_w6fgkyt.js → 226fbv9fq4xq_.js} +1 -1
  766. package/server/.next/static/chunks/{1xaww6l378y_h.js → 26exu0f7ok41j.js} +1 -1
  767. package/server/.next/static/chunks/{1zid1do5vuxcq.js → 28fzu8z0ofyw0.js} +1 -1
  768. package/server/.next/static/chunks/2c2oi6ivdnv6f.js +1 -0
  769. package/server/.next/static/chunks/{1q0dfli6xlok0.js → 2crsj9_2h2nzh.js} +1 -1
  770. package/server/.next/static/chunks/{2gnckmw5e2mfd.js → 2d7luax7loip3.js} +1 -1
  771. package/server/.next/static/chunks/{11r3cljnu3lrb.js → 2j24hsy45xi-u.js} +1 -1
  772. package/server/.next/static/chunks/{0vqfc5ez__g1s.js → 2k4z-oed_6g2l.js} +1 -1
  773. package/server/.next/static/chunks/{2zudgr23_bvy5.js → 2kmw3ug2__8y3.js} +1 -1
  774. package/server/.next/static/chunks/2owzn0qjb8n5g.js +1 -0
  775. package/server/.next/static/chunks/{0p_qyask2har9.js → 2pa65sxfnzj4k.js} +1 -1
  776. package/server/.next/static/chunks/2zzk4wxiacgja.css +3 -0
  777. package/server/.next/static/chunks/{223rdnw2yty48.js → 308vk5n0anqam.js} +2 -2
  778. package/server/.next/static/chunks/{27epf-aa_5m_r.js → 356b00huilj4q.js} +1 -1
  779. package/server/.next/static/chunks/{0znki_inst5fe.js → 35vilzb1p9yjf.js} +1 -1
  780. package/server/.next/static/chunks/39a3uxexc-wqm.js +1 -0
  781. package/server/.next/static/chunks/{1andb44i5y-5c.js → 3_6-4h_qltoii.js} +1 -1
  782. package/server/.next/static/chunks/3a9toq_3nqe93.js +1 -0
  783. package/server/.next/static/chunks/{3a55yojb_7drl.js → 3ezef0voy5xju.js} +1 -1
  784. package/server/.next/static/chunks/{2wmkryogm5g3y.js → 3f1selgoqszyq.js} +2 -2
  785. package/server/.next/static/chunks/{143_uak5v6uky.js → 3g0ywdith98z2.js} +1 -1
  786. package/server/.next/static/chunks/{0o53bcdd6gtyu.js → 3lc-hq-bpg71u.js} +1 -1
  787. package/server/.next/static/chunks/3qudv985iqmz7.js +1 -0
  788. package/server/.next/static/chunks/{0a77yea00jt0y.js → 3u2qewigse-a4.js} +1 -1
  789. package/server/.next/static/chunks/{16f-5rrbswao-.js → 3w5rrc-0xud6m.js} +1 -1
  790. package/server/.next/static/chunks/{2plrf95jah9ew.js → 3wfyge_-2qnyj.js} +1 -1
  791. package/server/.next/static/chunks/{0s44z2_pzghcu.js → 3xulo5x1hbsw-.js} +1 -1
  792. package/server/.next/static/chunks/44hkyor0suthy.js +1 -0
  793. package/server/drizzle-selfhost/0008_ci_failing_rule.sql +2 -0
  794. package/server/drizzle-selfhost/0009_os_security_rule.sql +2 -0
  795. package/server/drizzle-selfhost/0010_supabase_metrics_memory.sql +8 -0
  796. package/server/drizzle-selfhost/meta/_journal.json +82 -61
  797. package/server/.next/server/chunks/[root-of-the-server]__038br8sr9eepd._.js +0 -3
  798. package/server/.next/server/chunks/[root-of-the-server]__0a5op--7u5_xh._.js +0 -3
  799. package/server/.next/server/chunks/[root-of-the-server]__0r3cq1lecww4e._.js +0 -3
  800. package/server/.next/server/chunks/[root-of-the-server]__0r_6xpjwcdrda._.js +0 -3
  801. package/server/.next/server/chunks/[root-of-the-server]__0rctmpp7p7cp9._.js +0 -3
  802. package/server/.next/server/chunks/[root-of-the-server]__0rpys5i04hzww._.js +0 -3
  803. package/server/.next/server/chunks/[root-of-the-server]__0vax5gpdmh80a._.js +0 -3
  804. package/server/.next/server/chunks/[root-of-the-server]__0vv63vp8y0fs-._.js +0 -3
  805. package/server/.next/server/chunks/[root-of-the-server]__0ycpg444s91lb._.js +0 -3
  806. package/server/.next/server/chunks/[root-of-the-server]__0zjhlf_yodox3._.js +0 -3
  807. package/server/.next/server/chunks/[root-of-the-server]__1-37ctpn8yw_m._.js +0 -3
  808. package/server/.next/server/chunks/[root-of-the-server]__1-ne3clcouvm2._.js +0 -3
  809. package/server/.next/server/chunks/[root-of-the-server]__14vj8ywy5spa2._.js +0 -3
  810. package/server/.next/server/chunks/[root-of-the-server]__16jyhasrd2ojp._.js +0 -3
  811. package/server/.next/server/chunks/[root-of-the-server]__16u9d_hm9lefl._.js +0 -3
  812. package/server/.next/server/chunks/[root-of-the-server]__1_zr2xlmtkn4l._.js +0 -3
  813. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
  814. package/server/.next/server/chunks/[root-of-the-server]__1aagly59gw-xf._.js +0 -3
  815. package/server/.next/server/chunks/[root-of-the-server]__1c0cb3ur16yhh._.js +0 -3
  816. package/server/.next/server/chunks/[root-of-the-server]__1jvy8r4n-62x7._.js +0 -3
  817. package/server/.next/server/chunks/[root-of-the-server]__1k-7jan2fsbys._.js +0 -3
  818. package/server/.next/server/chunks/[root-of-the-server]__1qmdi981syrsn._.js +0 -3
  819. package/server/.next/server/chunks/[root-of-the-server]__1r9v6qgjwlv32._.js +0 -3
  820. package/server/.next/server/chunks/[root-of-the-server]__1uad-kugxmkx8._.js +0 -3
  821. package/server/.next/server/chunks/_0ffsv993spriq._.js +0 -3
  822. package/server/.next/server/chunks/_0nt4ifc48vl34._.js +0 -48
  823. package/server/.next/server/chunks/_0rkn5gstaj2d0._.js +0 -48
  824. package/server/.next/server/chunks/_1_4jb754aeifp._.js +0 -48
  825. package/server/.next/server/chunks/_1d_77nvqcnkcg._.js +0 -3
  826. package/server/.next/server/chunks/_1qsryafbujfwn._.js +0 -48
  827. package/server/.next/server/chunks/src_05vq-abuilwk4._.js +0 -3
  828. package/server/.next/server/chunks/src_06lwphwuzgl6e._.js +0 -3
  829. package/server/.next/server/chunks/src_1p24c-nz35cov._.js +0 -3
  830. package/server/.next/server/chunks/src_20sym_ohuqw76._.js +0 -3
  831. package/server/.next/server/chunks/src_lib_001zhbfd1zeuk._.js +0 -3
  832. package/server/.next/server/chunks/src_lib_0k_aposzvy1c8._.js +0 -6
  833. package/server/.next/server/chunks/src_lib_0n1xnas42gur9._.js +0 -3
  834. package/server/.next/server/chunks/src_lib_0vjapfdxkooq5._.js +0 -6
  835. package/server/.next/server/chunks/src_lib_0yn0bj14ih0id._.js +0 -6
  836. package/server/.next/server/chunks/src_lib_18wgdeemqm6gg._.js +0 -3
  837. package/server/.next/server/chunks/src_lib_1qbgm0zu8q1rr._.js +0 -6
  838. package/server/.next/server/chunks/src_lib_1ywf_wup1kxy_._.js +0 -3
  839. package/server/.next/server/chunks/src_private_123pnf7iqjhkz._.js +0 -3
  840. package/server/.next/server/chunks/ssr/[root-of-the-server]__03mal5uo1rzg4._.js +0 -3
  841. package/server/.next/server/chunks/ssr/[root-of-the-server]__0s2of3mcou177._.js +0 -3
  842. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tqqte5jb6jz7._.js +0 -3
  843. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ujxsp9l9ad-l._.js +0 -3
  844. package/server/.next/server/chunks/ssr/[root-of-the-server]__113zn8es2wp67._.js +0 -3
  845. package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +0 -3
  846. package/server/.next/server/chunks/ssr/_0_8v3-nq-b4ug._.js +0 -3
  847. package/server/.next/server/chunks/ssr/_0_yyszoyzyccn._.js +0 -3
  848. package/server/.next/server/chunks/ssr/_0ffsv993spriq._.js +0 -3
  849. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +0 -3
  850. package/server/.next/server/chunks/ssr/_12wjuabpo0ofk._.js +0 -3
  851. package/server/.next/server/chunks/ssr/_1js_iq-0mb62d._.js +0 -3
  852. package/server/.next/server/chunks/ssr/_1ktvwngz0lzjr._.js +0 -3
  853. package/server/.next/server/chunks/ssr/_1st-ksb6wm2og._.js +0 -3
  854. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1--1mjfnoprr2.js +0 -3
  855. package/server/.next/server/chunks/ssr/src_04o0-kzfmcnim._.js +0 -3
  856. package/server/.next/server/chunks/ssr/src_0dceh6hsdybq8._.js +0 -3
  857. package/server/.next/server/chunks/ssr/src_1-k3gvxaqli74._.js +0 -3
  858. package/server/.next/server/chunks/ssr/src_1ckoccd8qvnje._.js +0 -3
  859. package/server/.next/server/chunks/ssr/src_1p24c-nz35cov._.js +0 -3
  860. package/server/.next/server/chunks/ssr/src_1wnx8vxv7nd04._.js +0 -3
  861. package/server/.next/server/chunks/ssr/src_app_(console)_05h6-wpd078oj._.js +0 -3
  862. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_10xvt--29v-ed._.js +0 -3
  863. package/server/.next/server/chunks/ssr/src_lib_001zhbfd1zeuk._.js +0 -3
  864. package/server/.next/server/chunks/ssr/src_lib_033ses2c4-ww-._.js +0 -3
  865. package/server/.next/server/chunks/ssr/src_lib_0n1xnas42gur9._.js +0 -3
  866. package/server/.next/server/chunks/ssr/src_lib_18wgdeemqm6gg._.js +0 -3
  867. package/server/.next/server/chunks/ssr/src_lib_1ywf_wup1kxy_._.js +0 -3
  868. package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +0 -6
  869. package/server/.next/static/chunks/08fdgz3f6aeh3.js +0 -1
  870. package/server/.next/static/chunks/11locca8ayu84.js +0 -1
  871. package/server/.next/static/chunks/1lq20aqwgdq8w.js +0 -1
  872. package/server/.next/static/chunks/1tg1mstvws8rj.css +0 -3
  873. package/server/.next/static/chunks/38ao1jq4zw-nd.js +0 -1
  874. package/server/.next/static/chunks/3c79k7qsyelf1.js +0 -1
  875. package/server/.next/static/chunks/3zhb71t6q4f9k.js +0 -1
  876. /package/server/.next/static/{VmJyuS9PCFUrRHa6THIcV → g_rE0bq_ZZa-pl4RulWXV}/_buildManifest.js +0 -0
  877. /package/server/.next/static/{VmJyuS9PCFUrRHa6THIcV → g_rE0bq_ZZa-pl4RulWXV}/_clientMiddlewareManifest.js +0 -0
  878. /package/server/.next/static/{VmJyuS9PCFUrRHa6THIcV → g_rE0bq_ZZa-pl4RulWXV}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
- (()=>{"use strict";module.exports=[138984,a=>{var b=a.i(26972),c=a.i(427221),d=a.i(827857),e=a.i(899370),f=a.i(371289);let g=b.z.object({COLLECTOR_SECRET:c.z.string().min(32),CRON_SECRET:c.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:c.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:c.z.string().min(10)}),h=g.extend({QSTASH_CURRENT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default("")}),i=!1;a.s(["f",0,function(){try{var a=process.env;let b=("selfhost"===(0,f.c)(a)?h:g).safeParse(a);if(!b.success)throw Error(`Missing or invalid scheduler settings: ${b.error.issues.map(a=>a.path.join(".")).join(", ")}`);return b.data}catch(a){return i||(i=!0,console.warn(a instanceof Error?a.message:"Missing or invalid scheduler settings")),null}}])},736780,664892,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(358179),g=a.i(912283),h=a.i(117859),i=a.i(876808),j=a.i(521050),k=a.i(679662);let l={checks:"waiting for CI",preview:"waiting for preview",smoke:"smoke test",merging:"merging…",merged:"merged ✅","ready-manual":"ready to merge (manual)",failed:"needs a look ⚠️",timeout:"needs a look ⚠️",closed:"closed"},m=(a,b,c)=>{let d=`PR #${a}: ${l[b]}${c?` — ${c}`:""}`;return d.length>200?`${d.slice(0,199)}…`:d},n=new Set(["success","neutral","skipped"]),o=a=>"completed"!==a.status?"pending":n.has(a.conclusion??"")?"success":"failure",p={name:"watchbell[bot]",email:"watchbell-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchbell)"},q={name:"watchpost[bot]",email:"watchpost-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchpost)"},r=a=>[p,q].some(b=>a.name===b.name&&a.email.toLowerCase()===b.email&&a.message.trim()===b.message),s=/^[\^~]?[0-9][0-9A-Za-z.+-]*$/,t=a=>Array.isArray(a)?a.map(t):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,t(a[b])])):a,u=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,v=/^sha512-[A-Za-z0-9+/]{86}==$/,w="(?:@[a-z0-9][a-z0-9._~-]*/)?[a-z0-9][a-z0-9._~-]*",x=RegExp(`^(?:[A-Za-z0-9_-][A-Za-z0-9._-]*/)*?node_modules/${w}(?:/node_modules/${w})*$`,"i"),y=new Set(["dev","optional","devOptional","peer"]),z=a=>!!a&&"object"==typeof a&&!Array.isArray(a),A=a=>a.slice(a.lastIndexOf("node_modules/")+13),B=(a,b,c)=>`${a}/${b}/-/${b.split("/").pop()}-${c}.tgz`,C=(a,b)=>JSON.stringify(t(a))===JSON.stringify(t(b)),D=a=>Object.fromEntries(Object.entries(a).filter(([a])=>!y.has(a))),E=a=>{try{let b=JSON.parse(a);return z(b)&&z(b.packages)?b:null}catch{return null}};a.s(["y",0,20,"X",0,["checks","preview","smoke","merging"],"w",0,15e3,"R",0,27e5,"j",0,function(a){let b=(a.checkRuns??a.actionRuns??[]).map(o);return(a.combined&&a.combined.total>0&&b.push("success"===a.combined.state?"success":"pending"===a.combined.state?"pending":"failure"),b.includes("failure"))?"failure":b.includes("pending")?"pending":"success"},"L",0,function(a){if(!a.length||a.some(a=>a.authWall))return null;let b=a.find(a=>null===a.status||a.status<200||a.status>399);return b?{mode:"http",result:"fail",reason:null===b.status?`${b.path} didn't answer within 15 seconds`:`${b.path} answered ${b.status}`}:{mode:"http",result:"pass",reason:null}},"S",0,function(a,b,c){return(401===a||403===a)&&(/vercel\.com\/(sso|login)|Authentication Required|_vercel_sso|vercel-authentication/i.test(b)||/_vercel_sso/i.test(c.get("set-cookie")??"")||"vercel"===(c.get("server")??"").toLowerCase())},"T",0,function(a,b,c){if([a,b].some(a=>null!==a&&(a=>{if(a.length>0x1900000)return!0;if(3*a.length<=0x1900000)return!1;let b=0;for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);d<128?b+=1:d<2048?b+=2:d>=55296&&d<56320&&(64512&a.charCodeAt(c+1))==56320?(b+=4,c++):b+=3}return b>0x1900000})(a)))return`lockfile too large to check (over 25 MB): ${c}`.slice(0,150);try{return function(a,b,c){let d=a=>`unexpected lockfile change ${a}`.slice(0,150),e=null===b?null:E(b),f=null===a?{packages:{}}:E(a);if(!e||!f)return d(c);if(2!==e.lockfileVersion&&3!==e.lockfileVersion||null!==a&&e.lockfileVersion!==f.lockfileVersion)return d("lockfileVersion");let g=new Set;for(let[a,b]of Object.entries(f.packages)){if(!x.test(a)||!z(b)||"string"!=typeof b.resolved||"string"!=typeof b.version)continue;let c=B("","string"==typeof b.name?b.name:A(a),b.version);b.resolved.startsWith("https://")&&b.resolved.endsWith(c)&&g.add(b.resolved.slice(0,-c.length))}for(let[a,b]of(g.size||g.add("https://registry.npmjs.org"),Object.entries(e.packages))){let e=Object.hasOwn(f.packages,a)?f.packages[a]:void 0;if(void 0!==e&&C(e,b))continue;let h=z(e)?e:null;if(""===a||!a.includes("node_modules/")){let e=""===a?z(b)&&"string"==typeof b.name?b.name:c:a;if(!z(b)||""!==a&&!h||"resolved"in b||"link"in b)return d(e);continue}if(!x.test(a)||!z(b))return d(x.test(a)?A(a):a);let i=A(a);if(void 0!==b.name&&b.name!==i&&(!h||h.name!==b.name))return d(i);let j="string"==typeof b.name?b.name:i,k=b.version;if(void 0!==b.link||"string"!=typeof k||!u.test(k)||"string"!=typeof b.integrity||!v.test(b.integrity)||"string"!=typeof b.resolved||![...g].some(a=>b.resolved===B(a,j,k))||h&&h.version===k&&!C(D(h),D(b)))return d(i)}return null}(a,b,c)}catch{return`unexpected lockfile change ${c} (couldn't be checked)`.slice(0,150)}},"H",0,a=>!!a.lockfileRequired&&!!a.lockfile&&!a.files.some(b=>b.filename===a.lockfile),"n",0,function(a,b,c){return null!==c&&c>0?{mode:"logs",result:"fail",reason:`${c} errors in the preview logs`}:b.getTime()-a.getTime()<18e4||null===c?{mode:"logs",result:"wait",reason:null}:{mode:"logs",result:"pass",reason:null}},"C",0,function(a,b,c){let d,e;try{d=JSON.parse(a),e=JSON.parse(b)}catch{return"unexpected change: package.json isn't valid JSON"}if(!d||!e||"object"!=typeof d||"object"!=typeof e)return"unexpected change: package.json isn't an object";let f=a=>{let b=structuredClone(a);for(let a of["dependencies","devDependencies"]){let d=b[a];if(d&&"object"==typeof d)for(let a of c)delete d[a]}return b};if(JSON.stringify(t(f(d)))!==JSON.stringify(t(f(e))))return"unexpected change in package.json beyond the bumped versions";for(let a of["dependencies","devDependencies"]){let b=d[a]??{},f=e[a]??{};for(let a of c){if(a in b!=a in f)return`unexpected change in package.json: ${a} added or removed`;if(a in f&&f[a]!==b[a]&&("string"!=typeof f[a]||!s.test(f[a])))return`unexpected change in package.json: ${a} isn't a plain version`}}return null},"E",0,function(a){let b=["/"];for(let c of a){let a;try{a=new URL(c).pathname||"/"}catch{continue}!b.includes(a)&&b.length<4&&b.push(a)}return b},"m",0,m,"k",0,function(a){let b=new Set([a.manifest,...a.lockfile?[a.lockfile]:[]]);for(let c of a.files)for(let a of[c.filename,c.previous])if(a&&!b.has(a))return`unexpected change in ${a}`.slice(0,150);if(!a.files.some(b=>b.filename===a.manifest))return`unexpected change: ${a.manifest} isn't changed`.slice(0,150);if(a.manifestProblem)return a.manifestProblem.slice(0,150);if(a.lockfileProblem)return a.lockfileProblem.slice(0,150);if(!a.tokenLogin||!a.commits.length||a.commits.length>20)return"couldn't confirm who wrote the PR's commits";if(a.headSha&&a.commits[a.commits.length-1].sha!==a.headSha)return"the PR's head moved while it was checked";for(let b of a.commits){if(null!==b.login&&b.login.toLowerCase()===a.tokenLogin.toLowerCase())continue;let c=b.sha.slice(0,7);if(!r(b)||!b.files||!a.lockfile)return`unexpected commit ${c} by ${b.login??b.name}`.slice(0,150);let d=b.files.find(b=>b!==a.lockfile);if(d)return`unexpected change in ${d} by commit ${c}`.slice(0,150)}return null},"f",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<1e5))&&(Math.floor(c/6e4)%2==0||null!==b&&c-b>=24e4)},"M",0,function(a){if(a.pr.merged)return{kind:"done",stage:"merged"};if("closed"===a.pr.state)return{kind:"done",stage:"closed"};if(void 0!==a.pr.base&&void 0!==a.recordedBase&&a.pr.base!==a.recordedBase)return{kind:"stop",stage:"failed",reason:`the PR's base changed to ${a.pr.base}`};if(a.pr.headSha!==a.recordedSha)return{kind:"wait",stage:"checks",reason:"new commit on the PR branch, checking again",resetSha:a.pr.headSha};let b=a.now.getTime()-a.openedAt.getTime()>27e5;return"failure"===a.checks?{kind:"stop",stage:"failed",reason:"CI failed"}:!1===a.pr.mergeable?{kind:"stop",stage:"failed",reason:"conflicts with the main branch"}:"error"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel preview failed"}:"canceled"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel canceled the preview (an Ignored Build Step that skips previews does this), so the update wasn't smoke-tested; check it and merge by hand"}:"pending"===a.checks||null===a.pr.mergeable?b?{kind:"stop",stage:"timeout",reason:"CI not finished within 45 minutes"}:{kind:"wait",stage:"checks",reason:null}:"ready"!==a.preview.state?b?{kind:"stop",stage:"timeout",reason:"preview not ready within 45 minutes"}:{kind:"wait",stage:"preview",reason:null}:a.smoke&&"wait"!==a.smoke.result?"fail"===a.smoke.result?{kind:"stop",stage:"failed",reason:`preview smoke test failed: ${a.smoke.reason??"?"}`}:a.autoRollbackOn?{kind:"merge"}:{kind:"stop",stage:"ready-manual",reason:"PR is ready to merge, but auto-rollback is off; merge it manually"}:b?{kind:"stop",stage:"timeout",reason:"preview smoke test not finished within 45 minutes"}:{kind:"wait",stage:"smoke",reason:null}}],664892);var F=a.i(120213),G=a.i(492665),H=a.i(683439),I=a.i(751263),J=a.i(812092),K=a.i(75105),L=a.i(322145),M=a.i(976937);let N=a=>({done:!1,message:a});async function O(){let[a]=await (0,d.f)().select().from(e.accounts).where((0,b.u)(e.accounts.provider,"github_write")).orderBy((0,c.M)(e.accounts.createdAt)).limit(1);if(!a)return null;let g=(0,f.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,G.f)().OPS_ENCRYPTION_KEY);return g?{id:a.id,token:g}:"unreadable"}let P={severity:"no package at the selected severity",major:"an update jumps a major version",nothing:"nothing can be updated"};async function Q(a){let[c]=await (0,d.f)().select({version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appSecurity).where((0,b.u)(e.appSecurity.resourceId,a)).limit(1);return c?(0,i.p)({version:c.version,status:c.status,findings:Array.isArray(c.findings)?c.findings:[]}):null}async function R(a){let c=await (0,d.f)().select({package:e.dependencyVulns.package,installedVersion:e.dependencyVulns.installedVersion,fixedVersion:e.dependencyVulns.fixedVersion,vulnId:e.dependencyVulns.vulnId,aliases:e.dependencyVulns.aliases,severity:e.dependencyVulns.severity,direct:e.dependencyVulns.direct,dev:e.dependencyVulns.dev}).from(e.dependencyVulns).where((0,b.b)((0,b.u)(e.dependencyVulns.repoId,a),(0,b.M)(e.dependencyVulns.resolvedAt))).limit(2e3);return{upgrades:(0,F.B)(c),installed:(0,g.D)(c)}}async function S(a,b,c,d,e){for(let f of(0,I.a)(d,c)){if(f===c)break;let d=await (0,J.M)(a,b,f,e);if(!d.ok)return d;if(d.data)return{ok:!0,data:{base:f,head:d}}}return{ok:!0,data:{base:c,head:await (0,J.M)(a,b,c,e)}}}async function T(c,f,l,n=L.W,o={}){let p;if(!(0,H.f)(f)||!(0,H.f)(l))return n(N("Something in that request wasn't valid."),c,"");let q=await (0,L.q)(c.id,"github_bump_pr",f);if(q)return n(N(q),c,"");let r=await O();if(null===r)return n(N('A GitHub PR-write token is needed: connect "GitHub (PR write)" on Connections (fine-grained, this repository only, Contents and Pull requests: Read and write; Commit statuses: Read for automatic merges), then ask again.'),c,"");if("unreadable"===r)return n(N("Can't read the stored GitHub PR-write credential. Replace it on Connections."),c,"");let[s]=await (0,d.f)().select({app:e.resources.name,meta:e.resources.meta,fullName:e.githubRepos.fullName,owner:e.githubRepos.owner,goneAt:e.githubRepos.goneAt,lockfilePath:e.dependencyScans.lockfilePath,lockfileSha:e.dependencyScans.lockfileSha}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).leftJoin(e.dependencyScans,(0,b.u)(e.dependencyScans.repoId,e.appRepos.repoId)).where((0,b.b)((0,b.u)(e.appRepos.appId,f),(0,b.u)(e.appRepos.repoId,l))).limit(1);if(!s||s.goneAt)return n(N(K.G),c,r.id);let t=s.meta??{},u=(0,j.l)(t.rootDirectoryUnsupported);if(u)return n(N(`The Vercel Root Directory "${u}" of ${s.app} couldn't be used (Watchbell reads plain folder names, at most 4 deep). Update its package.json yourself.`),c,r.id);let v=(0,j.Q)(t.rootDirectory),w=(0,j.H)(v,"package.json"),x=v?`in ${v}`:"at the repository root";if(o.framework){let a=await Q(f);if(!a)return n(N(`Nothing to update in ${s.app}: its Next.js check shows no advisory with a fixed version.`),c,r.id);p=a}else if(!(p=await R(l)).upgrades.length)return n(N(`Nothing to update in ${s.app}: no direct package has a fixed version for its open advisories.`),c,r.id);let y=p.upgrades;if(o.auto){let a=(0,g.a)(y,p.installed,o.auto.severities);if(!a.ok)return n(N(`Automatic PR not opened: ${P[a.why]}. The proposal waits for your approval.`),c,r.id);y=a.upgrades}y=(0,i.F)(y);let{auto:z,proposalId:A,framework:B,...C}=o,D={timeoutMs:8e3,...C},E=await (0,J.H)(r.token,s.fullName,D);if(!E.ok)return n({done:!1,failed:E,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let F=await S(r.token,s.fullName,E.data.defaultBranch,t,D);if(!F.ok)return n({done:!1,failed:F,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let G=F.data.base,U=(0,I.B)(t.productionSource,G,new Date);if(U&&z)return n(N(`Automatic PR not opened: ${U} The proposal waits for your approval.`),c,r.id);let V=B?null:(0,I.y)(s.lockfileSha,E.data.defaultBranch,v);if(V&&V!==G)return n(N(`The dependency scan of ${s.app} read ${V}, but this pull request would go to ${G}. Scan again (Dependencies › Scan now on the app page), then ask again.`),c,r.id);let W=F.data.head;if(!W.ok)return n({done:!1,failed:W,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!W.data)return n(N(`The default branch ${G} wasn't found.`),c,r.id);let X=await (0,J.E)(r.token,s.fullName,W.data,D,w);if(!X.ok)return n({done:!1,failed:X,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!X.data)return n(N(`There is no package.json ${x}.`),c,r.id);let Y=(0,h.k)(X.data.text,y);if(!Y?.length||B&&!Y.some(a=>"next"===a.package))return n(N(`${w} in ${s.app} already allows the fixed versions (or its ranges can't be rewritten). Run npm install there.`),c,r.id);if(z){let a=Y.find(a=>{let b=(0,k.Y)(a.from);return!b||!(0,g.J)(b,a.fixed)});if(a)return n(N(`Automatic PR not opened: ${a.package} ${a.from} → ${a.to} jumps a major version. The proposal waits for your approval.`),c,r.id)}let Z=(0,h.M)(X.data.text,Y);if(!Z)return n(N("package.json couldn't be edited safely."),c,r.id);let $=(0,h.U)(Y,v);if(!(0,h.c)($,G))return n(N("Refused: the PR branch would be the default branch."),c,r.id);let _=await (0,J.x)(r.token,s.fullName,s.owner,$,G,D);if(_.ok&&_.data)return{ok:!0,message:`Pull request #${_.data.number} for these updates is already open.`};let aa=await (0,J.e)(r.token,s.fullName,D);if(!aa.ok)return n({done:!1,failed:aa,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(aa.data.length){let a=new Map((await (0,d.f)().select({number:e.dependencyPrs.number,packages:e.dependencyPrs.packages}).from(e.dependencyPrs).where((0,b.b)((0,b.u)(e.dependencyPrs.repoId,l),(0,b.y)(e.dependencyPrs.number,aa.data.map(a=>a.number))))).map(a=>[a.number,a.packages])),f=(0,g.U)(Y.map(a=>a.package),aa.data.map(b=>({number:b.number,branch:b.branch,title:b.title,packages:a.get(b.number)??null})),v);if(f)return n(N(`Pull request #${f.number} for the same package is already open in ${s.app}. Merge or close it first.`),c,r.id)}let ab=await (0,J.M)(r.token,s.fullName,$,D);if(ab.ok&&ab.data)return n(N(`Branch ${$} already exists without an open pull request. Delete it on GitHub, then ask again.`),c,r.id);let ac=s.lockfilePath??(v?(0,j.H)(v,"package-lock.json"):null),ad=k.a.find(a=>a.path===ac?.split("/").pop())?.kind??null,ae=a=>n({done:!1,failed:a,audit:{message:`Package update PR failed \xb7 ${s.app} \xb7 ${$}`,resourceId:f}},c,r.id),af=await (0,J.k)(r.token,s.fullName,$,W.data,G,D);if(!af.ok)return ae(af);let ag=await (0,J.D)(r.token,s.fullName,$,G,Z,X.data.sha,(0,h.G)(Y),D,w);if(!ag.ok)return ae(ag);let ah=(0,h.f)(Y,v),ai=(U?`> [!WARNING]
2
- > ${U} Check where production is built from before you merge; Watchbell won't merge this pull request itself.
1
+ (()=>{"use strict";module.exports=[138984,a=>{var b=a.i(26972),c=a.i(427221),d=a.i(827857),e=a.i(899370),f=a.i(371289);let g=b.z.object({COLLECTOR_SECRET:c.z.string().min(32),CRON_SECRET:c.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:c.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:c.z.string().min(10)}),h=g.extend({QSTASH_CURRENT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default("")}),i=!1;a.s(["f",0,function(){try{var a=process.env;let b=("selfhost"===(0,f.c)(a)?h:g).safeParse(a);if(!b.success)throw Error(`Missing or invalid scheduler settings: ${b.error.issues.map(a=>a.path.join(".")).join(", ")}`);return b.data}catch(a){return i||(i=!0,console.warn(a instanceof Error?a.message:"Missing or invalid scheduler settings")),null}}])},736780,664892,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(358179),g=a.i(912283),h=a.i(117859),i=a.i(876808),j=a.i(521050),k=a.i(679662);let l={checks:"waiting for CI",preview:"waiting for preview",smoke:"smoke test",merging:"merging…",merged:"merged ✅","ready-manual":"ready to merge (manual)",failed:"needs a look ⚠️",timeout:"needs a look ⚠️",closed:"closed"},m=(a,b,c)=>{let d=`PR #${a}: ${l[b]}${c?` — ${c}`:""}`;return d.length>200?`${d.slice(0,199)}…`:d},n=new Set(["success","neutral","skipped"]),o=a=>"completed"!==a.status?"pending":n.has(a.conclusion??"")?"success":"failure",p={name:"watchbell[bot]",email:"watchbell-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchbell)"},q={name:"watchpost[bot]",email:"watchpost-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchpost)"},r=a=>[p,q].some(b=>a.name===b.name&&a.email.toLowerCase()===b.email&&a.message.trim()===b.message),s=/^[\^~]?[0-9][0-9A-Za-z.+-]*$/,t=a=>Array.isArray(a)?a.map(t):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,t(a[b])])):a,u=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,v=/^sha512-[A-Za-z0-9+/]{86}==$/,w="(?:@[a-z0-9][a-z0-9._~-]*/)?[a-z0-9][a-z0-9._~-]*",x=RegExp(`^(?:[A-Za-z0-9_-][A-Za-z0-9._-]*/)*?node_modules/${w}(?:/node_modules/${w})*$`,"i"),y=new Set(["dev","optional","devOptional","peer"]),z=a=>!!a&&"object"==typeof a&&!Array.isArray(a),A=a=>a.slice(a.lastIndexOf("node_modules/")+13),B=(a,b,c)=>`${a}/${b}/-/${b.split("/").pop()}-${c}.tgz`,C=(a,b)=>JSON.stringify(t(a))===JSON.stringify(t(b)),D=a=>Object.fromEntries(Object.entries(a).filter(([a])=>!y.has(a))),E=a=>{try{let b=JSON.parse(a);return z(b)&&z(b.packages)?b:null}catch{return null}};a.s(["y",0,20,"X",0,["checks","preview","smoke","merging"],"w",0,15e3,"R",0,27e5,"j",0,function(a){let b=(a.checkRuns??a.actionRuns??[]).map(o);return(a.combined&&a.combined.total>0&&b.push("success"===a.combined.state?"success":"pending"===a.combined.state?"pending":"failure"),b.includes("failure"))?"failure":b.includes("pending")?"pending":"success"},"L",0,function(a){if(!a.length||a.some(a=>a.authWall))return null;let b=a.find(a=>null===a.status||a.status<200||a.status>399);return b?{mode:"http",result:"fail",reason:null===b.status?`${b.path} didn't answer within 15 seconds`:`${b.path} answered ${b.status}`}:{mode:"http",result:"pass",reason:null}},"S",0,function(a,b,c){return(401===a||403===a)&&(/vercel\.com\/(sso|login)|Authentication Required|_vercel_sso|vercel-authentication/i.test(b)||/_vercel_sso/i.test(c.get("set-cookie")??"")||"vercel"===(c.get("server")??"").toLowerCase())},"T",0,function(a,b,c){if([a,b].some(a=>null!==a&&(a=>{if(a.length>0x1900000)return!0;if(3*a.length<=0x1900000)return!1;let b=0;for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);d<128?b+=1:d<2048?b+=2:d>=55296&&d<56320&&(64512&a.charCodeAt(c+1))==56320?(b+=4,c++):b+=3}return b>0x1900000})(a)))return`lockfile too large to check (over 25 MB): ${c}`.slice(0,150);try{return function(a,b,c){let d=a=>`unexpected lockfile change ${a}`.slice(0,150),e=null===b?null:E(b),f=null===a?{packages:{}}:E(a);if(!e||!f)return d(c);if(2!==e.lockfileVersion&&3!==e.lockfileVersion||null!==a&&e.lockfileVersion!==f.lockfileVersion)return d("lockfileVersion");let g=new Set;for(let[a,b]of Object.entries(f.packages)){if(!x.test(a)||!z(b)||"string"!=typeof b.resolved||"string"!=typeof b.version)continue;let c=B("","string"==typeof b.name?b.name:A(a),b.version);b.resolved.startsWith("https://")&&b.resolved.endsWith(c)&&g.add(b.resolved.slice(0,-c.length))}for(let[a,b]of(g.size||g.add("https://registry.npmjs.org"),Object.entries(e.packages))){let e=Object.hasOwn(f.packages,a)?f.packages[a]:void 0;if(void 0!==e&&C(e,b))continue;let h=z(e)?e:null;if(""===a||!a.includes("node_modules/")){let e=""===a?z(b)&&"string"==typeof b.name?b.name:c:a;if(!z(b)||""!==a&&!h||"resolved"in b||"link"in b)return d(e);continue}if(!x.test(a)||!z(b))return d(x.test(a)?A(a):a);let i=A(a);if(void 0!==b.name&&b.name!==i&&(!h||h.name!==b.name))return d(i);let j="string"==typeof b.name?b.name:i,k=b.version;if(void 0!==b.link||"string"!=typeof k||!u.test(k)||"string"!=typeof b.integrity||!v.test(b.integrity)||"string"!=typeof b.resolved||![...g].some(a=>b.resolved===B(a,j,k))||h&&h.version===k&&!C(D(h),D(b)))return d(i)}return null}(a,b,c)}catch{return`unexpected lockfile change ${c} (couldn't be checked)`.slice(0,150)}},"H",0,a=>!!a.lockfileRequired&&!!a.lockfile&&!a.files.some(b=>b.filename===a.lockfile),"n",0,function(a,b,c){return null!==c&&c>0?{mode:"logs",result:"fail",reason:`${c} errors in the preview logs`}:b.getTime()-a.getTime()<18e4||null===c?{mode:"logs",result:"wait",reason:null}:{mode:"logs",result:"pass",reason:null}},"C",0,function(a,b,c){let d,e;try{d=JSON.parse(a),e=JSON.parse(b)}catch{return"unexpected change: package.json isn't valid JSON"}if(!d||!e||"object"!=typeof d||"object"!=typeof e)return"unexpected change: package.json isn't an object";let f=a=>{let b=structuredClone(a);for(let a of["dependencies","devDependencies"]){let d=b[a];if(d&&"object"==typeof d)for(let a of c)delete d[a]}return b};if(JSON.stringify(t(f(d)))!==JSON.stringify(t(f(e))))return"unexpected change in package.json beyond the bumped versions";for(let a of["dependencies","devDependencies"]){let b=d[a]??{},f=e[a]??{};for(let a of c){if(a in b!=a in f)return`unexpected change in package.json: ${a} added or removed`;if(a in f&&f[a]!==b[a]&&("string"!=typeof f[a]||!s.test(f[a])))return`unexpected change in package.json: ${a} isn't a plain version`}}return null},"E",0,function(a){let b=["/"];for(let c of a){let a;try{a=new URL(c).pathname||"/"}catch{continue}!b.includes(a)&&b.length<4&&b.push(a)}return b},"m",0,m,"k",0,function(a){let b=new Set([a.manifest,...a.lockfile?[a.lockfile]:[]]);for(let c of a.files)for(let a of[c.filename,c.previous])if(a&&!b.has(a))return`unexpected change in ${a}`.slice(0,150);if(!a.files.some(b=>b.filename===a.manifest))return`unexpected change: ${a.manifest} isn't changed`.slice(0,150);if(a.manifestProblem)return a.manifestProblem.slice(0,150);if(a.lockfileProblem)return a.lockfileProblem.slice(0,150);if(!a.tokenLogin||!a.commits.length||a.commits.length>20)return"couldn't confirm who wrote the PR's commits";if(a.headSha&&a.commits[a.commits.length-1].sha!==a.headSha)return"the PR's head moved while it was checked";for(let b of a.commits){if(null!==b.login&&b.login.toLowerCase()===a.tokenLogin.toLowerCase())continue;let c=b.sha.slice(0,7);if(!r(b)||!b.files||!a.lockfile)return`unexpected commit ${c} by ${b.login??b.name}`.slice(0,150);let d=b.files.find(b=>b!==a.lockfile);if(d)return`unexpected change in ${d} by commit ${c}`.slice(0,150)}return null},"f",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<1e5))&&(Math.floor(c/6e4)%2==0||null!==b&&c-b>=24e4)},"M",0,function(a){if(a.pr.merged)return{kind:"done",stage:"merged"};if("closed"===a.pr.state)return{kind:"done",stage:"closed"};if(void 0!==a.pr.base&&void 0!==a.recordedBase&&a.pr.base!==a.recordedBase)return{kind:"stop",stage:"failed",reason:`the PR's base changed to ${a.pr.base}`};if(a.pr.headSha!==a.recordedSha)return{kind:"wait",stage:"checks",reason:"new commit on the PR branch, checking again",resetSha:a.pr.headSha};let b=a.now.getTime()-a.openedAt.getTime()>27e5;return"failure"===a.checks?{kind:"stop",stage:"failed",reason:"CI failed"}:!1===a.pr.mergeable?{kind:"stop",stage:"failed",reason:"conflicts with the main branch"}:"error"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel preview failed"}:"canceled"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel canceled the preview (an Ignored Build Step that skips previews does this), so the update wasn't smoke-tested; check it and merge by hand"}:"pending"===a.checks||null===a.pr.mergeable?b?{kind:"stop",stage:"timeout",reason:"CI not finished within 45 minutes"}:{kind:"wait",stage:"checks",reason:null}:"ready"!==a.preview.state?b?{kind:"stop",stage:"timeout",reason:"preview not ready within 45 minutes"}:{kind:"wait",stage:"preview",reason:null}:a.smoke&&"wait"!==a.smoke.result?"fail"===a.smoke.result?{kind:"stop",stage:"failed",reason:`preview smoke test failed: ${a.smoke.reason??"?"}`}:a.autoRollbackOn?{kind:"merge"}:{kind:"stop",stage:"ready-manual",reason:"PR is ready to merge, but auto-rollback is off; merge it manually"}:b?{kind:"stop",stage:"timeout",reason:"preview smoke test not finished within 45 minutes"}:{kind:"wait",stage:"smoke",reason:null}}],664892);var F=a.i(120213),G=a.i(492665),H=a.i(683439),I=a.i(751263),J=a.i(812092),K=a.i(75105),L=a.i(322145),M=a.i(976937);let N='A GitHub PR-write token is needed: connect "GitHub (PR write)" on Connections (fine-grained, this repository only, Contents and Pull requests: Read and write; Commit statuses: Read for automatic merges), then ask again.',O=a=>({done:!1,message:a});async function P(){let[a]=await (0,d.f)().select().from(e.accounts).where((0,b.u)(e.accounts.provider,"github_write")).orderBy((0,c.M)(e.accounts.createdAt)).limit(1);if(!a)return null;let g=(0,f.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,G.f)().OPS_ENCRYPTION_KEY);return g?{id:a.id,token:g}:"unreadable"}let Q={severity:"no package at the selected severity",major:"an update jumps a major version",nothing:"nothing can be updated"};async function R(a){let[c]=await (0,d.f)().select({version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appSecurity).where((0,b.u)(e.appSecurity.resourceId,a)).limit(1);return c?(0,i.p)({version:c.version,status:c.status,findings:Array.isArray(c.findings)?c.findings:[]}):null}async function S(a){let c=await (0,d.f)().select({package:e.dependencyVulns.package,installedVersion:e.dependencyVulns.installedVersion,fixedVersion:e.dependencyVulns.fixedVersion,vulnId:e.dependencyVulns.vulnId,aliases:e.dependencyVulns.aliases,severity:e.dependencyVulns.severity,direct:e.dependencyVulns.direct,dev:e.dependencyVulns.dev}).from(e.dependencyVulns).where((0,b.b)((0,b.u)(e.dependencyVulns.repoId,a),(0,b.M)(e.dependencyVulns.resolvedAt))).limit(2e3);return{upgrades:(0,F.B)(c),installed:(0,g.D)(c)}}async function T(a,b,c,d,e){for(let f of(0,I.a)(d,c)){if(f===c)break;let d=await (0,J.M)(a,b,f,e);if(!d.ok)return d;if(d.data)return{ok:!0,data:{base:f,head:d}}}return{ok:!0,data:{base:c,head:await (0,J.M)(a,b,c,e)}}}async function U(c,f,l,n=L.W,o={}){let p;if(!(0,H.f)(f)||!(0,H.f)(l))return n(O("Something in that request wasn't valid."),c,"");let q=await (0,L.q)(c.id,"github_bump_pr",f);if(q)return n(O(q),c,"");let r=await P();if(null===r)return n(O(N),c,"");if("unreadable"===r)return n(O("Can't read the stored GitHub PR-write credential. Replace it on Connections."),c,"");let[s]=await (0,d.f)().select({app:e.resources.name,meta:e.resources.meta,fullName:e.githubRepos.fullName,owner:e.githubRepos.owner,goneAt:e.githubRepos.goneAt,lockfilePath:e.dependencyScans.lockfilePath,lockfileSha:e.dependencyScans.lockfileSha}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).leftJoin(e.dependencyScans,(0,b.u)(e.dependencyScans.repoId,e.appRepos.repoId)).where((0,b.b)((0,b.u)(e.appRepos.appId,f),(0,b.u)(e.appRepos.repoId,l))).limit(1);if(!s||s.goneAt)return n(O(K.G),c,r.id);let t=s.meta??{},u=(0,j.l)(t.rootDirectoryUnsupported);if(u)return n(O(`The Vercel Root Directory "${u}" of ${s.app} couldn't be used (Watchbell reads plain folder names, at most 4 deep). Update its package.json yourself.`),c,r.id);let v=(0,j.Q)(t.rootDirectory),w=(0,j.H)(v,"package.json"),x=v?`in ${v}`:"at the repository root";if(o.framework){let a=await R(f);if(!a)return n(O(`Nothing to update in ${s.app}: its Next.js check shows no advisory with a fixed version.`),c,r.id);p=a}else if(!(p=await S(l)).upgrades.length)return n(O(`Nothing to update in ${s.app}: no direct package has a fixed version for its open advisories.`),c,r.id);let y=p.upgrades;if(o.auto){let a=(0,g.a)(y,p.installed,o.auto.severities);if(!a.ok)return n(O(`Automatic PR not opened: ${Q[a.why]}. The proposal waits for your approval.`),c,r.id);y=a.upgrades}y=(0,i.F)(y);let{auto:z,proposalId:A,framework:B,...C}=o,D={timeoutMs:8e3,...C},E=await (0,J.H)(r.token,s.fullName,D);if(!E.ok)return n({done:!1,failed:E,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let F=await T(r.token,s.fullName,E.data.defaultBranch,t,D);if(!F.ok)return n({done:!1,failed:F,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let G=F.data.base,V=(0,I.B)(t.productionSource,G,new Date);if(V&&z)return n(O(`Automatic PR not opened: ${V} The proposal waits for your approval.`),c,r.id);let W=B?null:(0,I.y)(s.lockfileSha,E.data.defaultBranch,v);if(W&&W!==G)return n(O(`The dependency scan of ${s.app} read ${W}, but this pull request would go to ${G}. Scan again (Dependencies › Scan now on the app page), then ask again.`),c,r.id);let X=F.data.head;if(!X.ok)return n({done:!1,failed:X,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!X.data)return n(O(`The default branch ${G} wasn't found.`),c,r.id);let Y=await (0,J.E)(r.token,s.fullName,X.data,D,w);if(!Y.ok)return n({done:!1,failed:Y,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!Y.data)return n(O(`There is no package.json ${x}.`),c,r.id);let Z=(0,h.k)(Y.data.text,y);if(!Z?.length||B&&!Z.some(a=>"next"===a.package))return n(O(`${w} in ${s.app} already allows the fixed versions (or its ranges can't be rewritten). Run npm install there.`),c,r.id);if(z){let a=Z.find(a=>{let b=(0,k.Y)(a.from);return!b||!(0,g.J)(b,a.fixed)});if(a)return n(O(`Automatic PR not opened: ${a.package} ${a.from} → ${a.to} jumps a major version. The proposal waits for your approval.`),c,r.id)}let $=(0,h.M)(Y.data.text,Z);if(!$)return n(O("package.json couldn't be edited safely."),c,r.id);let _=(0,h.U)(Z,v);if(!(0,h.c)(_,G))return n(O("Refused: the PR branch would be the default branch."),c,r.id);let aa=await (0,J.x)(r.token,s.fullName,s.owner,_,G,D);if(aa.ok&&aa.data)return{ok:!0,message:`Pull request #${aa.data.number} for these updates is already open.`};let ab=await (0,J.e)(r.token,s.fullName,D);if(!ab.ok)return n({done:!1,failed:ab,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(ab.data.length){let a=new Map((await (0,d.f)().select({number:e.dependencyPrs.number,packages:e.dependencyPrs.packages}).from(e.dependencyPrs).where((0,b.b)((0,b.u)(e.dependencyPrs.repoId,l),(0,b.y)(e.dependencyPrs.number,ab.data.map(a=>a.number))))).map(a=>[a.number,a.packages])),f=(0,g.U)(Z.map(a=>a.package),ab.data.map(b=>({number:b.number,branch:b.branch,title:b.title,packages:a.get(b.number)??null})),v);if(f)return n(O(`Pull request #${f.number} for the same package is already open in ${s.app}. Merge or close it first.`),c,r.id)}let ac=await (0,J.M)(r.token,s.fullName,_,D);if(ac.ok&&ac.data)return n(O(`Branch ${_} already exists without an open pull request. Delete it on GitHub, then ask again.`),c,r.id);let ad=s.lockfilePath??(v?(0,j.H)(v,"package-lock.json"):null),ae=k.a.find(a=>a.path===ad?.split("/").pop())?.kind??null,af=a=>n({done:!1,failed:a,audit:{message:`Package update PR failed \xb7 ${s.app} \xb7 ${_}`,resourceId:f}},c,r.id),ag=await (0,J.k)(r.token,s.fullName,_,X.data,G,D);if(!ag.ok)return af(ag);let ah=await (0,J.D)(r.token,s.fullName,_,G,$,Y.data.sha,(0,h.G)(Z),D,w);if(!ah.ok)return af(ah);let ai=(0,h.f)(Z,v),aj=(V?`> [!WARNING]
2
+ > ${V} Check where production is built from before you merge; Watchbell won't merge this pull request itself.
3
3
 
4
- `:"")+(0,h.y)(Y,ad,!!z,v),aj=await (0,J.y)(r.token,s.fullName,$,G,ah,ai,D,{draft:!!U}),ak=!!U;if(U&&!aj.ok&&422===aj.status&&(aj=await (0,J.y)(r.token,s.fullName,$,G,ah,ai,D),ak=!1),!aj.ok)return ae(aj);let al=U?ak?` Opened as a draft: ${U}`:` Opened as a normal pull request (this repository can't have drafts), with the warning on top: ${U}`:"",am=Y.map(a=>`${a.package} ${a.from} → ${a.to}`).join(", "),an=await (0,J.M)(r.token,s.fullName,$,D).catch(()=>null),ao=!1;if(an?.ok&&an.data){await (0,d.f)().insert(e.dependencyPrs).values({repoId:l,appId:f,proposalId:A??null,number:aj.data.number,branch:$,baseBranch:G,headSha:an.data,title:ah.slice(0,200),packages:Y.map(a=>a.package),auto:!!z,stage:"checks",stageText:m(aj.data.number,"checks")}).onConflictDoNothing().catch(()=>console.warn("deps: recording the PR failed"));let{extensions:b}=await a.A(414785),c=await b.runner?.queueLockfileJob({repoId:l,branch:$,headSha:an.data,prNumber:aj.data.number,lockfilePath:ac,targets:Y.map(a=>({name:a.package,version:a.fixed}))}).catch(()=>(console.warn("deps: queueing the lockfile job failed"),null)),g=await (0,M.U)(r.token,{repo:s.fullName,branch:$,lockfilePath:ac,prNumber:aj.data.number});ao=c?.queued===!0||g.sent}return n({done:!0,message:`Pull request #${aj.data.number} opened for ${s.app}: ${am}.${ao?"":` Run npm install${v?` in ${v}`:""} on the branch before merging.`}${al}`,audit:{message:`Package update PR opened \xb7 ${s.app} \xb7 #${aj.data.number}`,resourceId:f,detail:am}},c,r.id)}async function U(a,b,c){if(!(0,H.f)(a)||c&&!(0,H.f)(c.appId))return{ok:!1,why:"target"};let d=await O();if(!d||"unreadable"===d)return{ok:!1,why:"no write token"};let e=c?await Q(c.appId):await R(a);if(!e)return{ok:!1,why:"nothing"};let f=(0,g.a)(e.upgrades,e.installed,b);return f.ok?{ok:!0}:{ok:!1,why:f.why}}async function V(a,c){let f=a.filter(a=>(0,H.f)(a.appId)&&(0,H.f)(a.repoId)),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,meta:e.resources.meta,defaultBranch:e.githubRepos.defaultBranch}).from(e.appRepos).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).where((0,b.y)(e.appRepos.appId,[...new Set(f.map(a=>a.appId))])).limit(4*f.length);for(let a of f){let b=h.find(b=>b.appId===a.appId&&b.repoId===a.repoId),d=b?.meta??{},e=b?(0,I.B)(d.productionSource,(0,I.q)(d,b.defaultBranch??null),c):null;e&&g.set(a.appId,e)}return g}async function W(a,c=[]){let f=a.filter(H.f),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.appSecurity,(0,b.u)(e.appSecurity.resourceId,e.appRepos.appId)).where((0,b.b)((0,b.y)(e.appRepos.appId,f),(0,b.M)(e.githubRepos.goneAt),(0,b.u)(e.appSecurity.status,"vulnerable"))).limit(f.length),j=new Set(c),k=h.filter(a=>j.has(a.appId)),l=k.length?new Set((await (0,d.f)().selectDistinct({repoId:e.dependencyVulns.repoId}).from(e.dependencyVulns).where((0,b.b)((0,b.y)(e.dependencyVulns.repoId,[...new Set(k.map(a=>a.repoId))]),(0,b.M)(e.dependencyVulns.resolvedAt),(0,b.u)(e.dependencyVulns.package,"next"),(0,b.u)(e.dependencyVulns.direct,!0),(0,b.E)(e.dependencyVulns.fixedVersion))).limit(k.length)).map(a=>a.repoId)):new Set;for(let a of h){if(j.has(a.appId)&&l.has(a.repoId))continue;let b=(0,i.p)({version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[]});b&&g.set(a.appId,{repoId:a.repoId,from:b.from,to:b.to})}return g}a.s(["J",0,U,"W",0,T,"h",0,W,"H",0,V,"G",0,O],736780)},915598,657582,a=>{var b=a.i(322145),c=a.i(75105),d=a.i(572134);function e(a,b,c){if("building"===a.state)return"building";if(null!==b&&a.id===b)return"current";if("error"===a.state)return"failed";if("preview"===a.target)return"ready"===a.state?"preview":"other";if("ready"!==a.state||null===b)return"other";let d=c.find(a=>a.id===b);if(!d)return"other";if(a.createdAt.getTime()>d.createdAt.getTime())return"staged";let e=c.filter(a=>"ready"===a.state&&a.id!==b&&a.createdAt.getTime()<d.createdAt.getTime()).sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime())[0];return e?.id===a.id?"previous":"other"}let f=a=>{let b;return{id:a.externalId,state:"ready"===(b=a.state)||"building"===b||"error"===b||"canceled"===b?b:"building",target:"production"===a.target?"production":"preview",createdAt:a.createdAt}};function g(a){let b=new Map;for(let c of(function(a){let b=new Map;for(let c of a)b.set(c.appId,[...b.get(c.appId)??[],c]);return b})(a).values()){let a=c.find(a=>a.isCurrent)?.externalId??null,d=c.filter(a=>"production"===a.target).map(f);for(let g of c)b.set(g.externalId,e(f(g),a,d))}return b}a.s(["g",0,function(a,b=!1){switch(a){case"building":return["Cancel"];case"current":return b?[]:["Redeploy"];case"previous":return["Roll back to this"];case"staged":return["Promote"];case"preview":return b?[]:["Promote to production"];default:return[]}},"h",0,function(a){let b=g(a),c=[...a].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),d=a=>c.find(c=>b.get(c.externalId)===a)?.externalId??null;return{currentId:d("current"),previousId:d("previous"),stagedId:d("staged")}},"U",0,e,"S",0,g],657582);let h="This app or its Vercel credential isn't available any more. Reload the page.",i="Already live.",j=new Set(["QUEUED","INITIALIZING","BUILDING"]),k=a=>({done:!1,message:a}),l=(a,b)=>a?.sha?a.sha.slice(0,7):b;async function m(a,c,d){let e=await (0,b.q)(a.id,c,d);if(e)return e;let f=await (0,b.p)(d,"app"),g=f?.resource.meta.teamId;if(!f||"string"!=typeof g||!g||!f.resource.externalId)return h;let i=f.resource.meta.teamSlug;return{member:a,t:f,appId:d,app:f.resource.name,teamId:g,teamSlug:"string"==typeof i?i:"",projectId:f.resource.externalId}}async function n(a){let[b,c]=await Promise.all([(0,d.c)(a.t.token,a.teamId,a.projectId),(0,d.r)(a.t.token,a.teamId,a.projectId)]);return b.ok?c.ok?{ok:!0,data:{name:b.data.name,currentId:b.data.currentId??c.data[0]?.id??null,production:c.data}}:c:b}async function o(a,d,e,f,g=b.W){return g(d.ok?{done:!0,message:e.message,audit:{message:e.audit,resourceId:a.appId}}:{done:!1,failed:"scope"===d.kind?{ok:!1,kind:"scope",status:d.status,error:(0,c.b)("vercel",{team:a.teamSlug})}:404===d.status?{ok:!1,kind:"missing",status:404,error:"Vercel can't find that deployment any more. Reload and try again."}:{ok:!1,kind:"auth"===d.kind?"auth":"format"===d.kind?"format":"transient",...d.status?{status:d.status}:{},error:d.error},audit:{message:f,resourceId:a.appId}},a.member,a.t.account.id)}async function p(a,f,g,h=b.W){{let b=await m(a,"redeploy",f);if("string"==typeof b)return h(k(b),a,"");let i=await n(b);if(!i.ok)return h(k(i.error),a,b.t.account.id);if(i.data.currentId!==g)return h(k(c.G),a,b.t.account.id);if(i.data.production.some(a=>"staged"===e(a,i.data.currentId,i.data.production)))return h(k("Rolled back: promote a deployment first. A redeploy would stay staged and not go live."),a,b.t.account.id);let j=await (0,d.N)(b.t.token,b.teamId,b.projectId);if(!j.ok)return h(k(j.error),a,b.t.account.id);if(j.data)return h(k(`A production build of ${b.app} is already running.`),a,b.t.account.id);let p=l(i.data.production.find(a=>a.id===g),g),q=await (0,d.L)(b.t.token,b.teamId,{projectId:b.projectId,name:i.data.name,deploymentId:g});return o(b,q,{message:`Redeploy requested. Vercel is building ${b.app} again.`,audit:`Redeploy requested \xb7 ${b.app} \xb7 ${p}`},`Redeploy failed \xb7 ${b.app} \xb7 ${p}`,h)}}async function q(a,c,f,g=b.W){{let b=await m(a,"rollback",c);if("string"==typeof b)return g(k(b),a,"");let h=await n(b);if(!h.ok)return g(k(h.error),a,b.t.account.id);if(h.data.currentId===f)return g(k(i),a,b.t.account.id);let j=h.data.production.find(a=>a.id===f);if(!j||"previous"!==e(j,h.data.currentId,h.data.production))return g(k("Hobby can only roll back to the previous production deployment."),a,b.t.account.id);let p=l(j,f),q=await (0,d.E)(b.t.token,b.teamId,b.projectId,f);return o(b,q,{message:`Rolled back ${b.app} to ${p}. New pushes don't go live until you promote one.`,audit:`Rolled back \xb7 ${b.app} → ${p}`},`Roll back failed \xb7 ${b.app} → ${p}`,g)}}a.s(["T",0,/^dpl_[A-Za-z0-9]{8,40}$/,"u",0,h,"G",0,"Vercel can't find that deployment any more. Reload and try again.","f",0,i,"l",0,"Only a ready preview of this app can be promoted to production.","v",0,"Only a ready production deployment newer than the live one can be promoted.","S",0,"Rolled back: promote a production deployment first. A promoted preview would stay staged and not go live.","o",0,j,"X",0,n,"p",0,m,"B",0,p,"C",0,l,"O",0,k,"U",0,q,"J",0,o],915598)},313235,a=>{var b=a.i(927262),c=a.i(462820);let d={workloads:"Workloads",databases:"Databases",network:"Network",observe:"Observe",ai:"AI & API",admin:"Administration"},e={MonitorDown:"workloads",HighLatency:"workloads",DeploymentFailed:"workloads",DatabasePaused:"databases",StorageAlmostFull:"databases",NeonComputeHigh:"databases",FirestoreQuotaHigh:"databases",AutoPauseRisk:"databases",ComputeHigh:"databases",DbQuotaHigh:"databases",CertExpiringSoon:"network",DomainExpiringSoon:"network",DnsProxiedToVercel:"network",CollectorStale:"observe",CredentialExpiring:"admin",VulnerableDependency:"workloads",FrameworkVulnerable:"workloads",MonitorDomainMoved:"workloads"},f=new Set(["MonitorDown","HighLatency","DeploymentFailed","VulnerableDependency","FrameworkVulnerable","MonitorDomainMoved"]);a.s(["H",0,d,"p",0,function(a){if((0,b.h)(a.ruleKey))return f.has(a.ruleKey)&&null!==a.resourceKind&&"app"!==a.resourceKind?"observe":e[a.ruleKey];let c=new Set(a.ruleKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),d=(...a)=>a.some(a=>c.has(a));return d("ai","router","gateway","model","models","provider","quota","llm","gemini")?"ai":d("key","keys","member","members","security","audit","credential","credentials","mfa","token")?"admin":d("database","db","storage","compute","neon","supabase","firestore","firebase")?"databases":d("domain","domains","dns","cert","certificate","tls","zone")?"network":"app"===a.resourceKind?"workloads":"observe"},"y",0,a=>c.X.proposedBy(d[a])])},247881,649031,a=>{var b=a.i(488345),c=a.i(342634),d=a.i(313235),e=a.i(188282),f=a.i(416454);let g=["LogErrorSpike","LogErrors","LogDbErrors"],h="timeout|ECONNREFUSED|too many connections|terminating connection|connection terminated|endpoint is disabled|compute.*suspend";RegExp(h,"i");let i=/^dpl_[A-Za-z0-9]{8,40}$/,j=/^ep-[a-z0-9-]{3,60}$/,k=/^[a-z0-9]{8,40}$/;function l(a,d,e){let f=d?(0,b.g)(d,e,120):"";return(0,c.l)((0,b.g)(f?`${a}. Most common: ${f}`:a,e,c.j)||a,c.j)}let m=a=>`${a.ruleKey}:${a.resourceId??""}:${a.action}`,n=new Set(["pending","approved","running"]);a.s(["s",0,864e5,"b",0,72e5,"V",0,3,"N",0,h,"G",0,20,"T",0,g,"v",0,72e5,"H",0,18e5,"w",0,10,"I",0,72e5,"x",0,function(a,b,c){let d=new Set(b.filter(a=>n.has(a.status)||null!==a.closedAt&&c.getTime()-a.closedAt.getTime()<72e5).map(m)),e=new Set;return a.filter(a=>{let b=m(a);return!(d.has(b)||e.has(b))&&(e.add(b),!0)})},"t",0,function(a,b,g){return(function(a,b,d){let e=[],g=d.getTime(),h=null!==a.liveAt&&g-a.liveAt.getTime()<72e5&&a.liveAt.getTime()<=g,m=a.previousNext?.status??"unknown";if(h&&a.errorsSinceLive>=Math.max(10,Math.ceil(5*a.baselineErrors/24))&&a.currentId&&a.previousId&&i.test(a.previousId)&&a.previousId!==a.currentId&&"vulnerable"!==m){let d=l(`${a.errorsSinceLive} errors since the deploy went live ${Math.max(1,Math.round((g-a.liveAt.getTime())/6e4))} min ago (${a.baselineErrors} in the 24 h before)`,a.topSinceLive,b);e.push({ruleKey:"LogErrorSpike",room:"workloads",action:"vercel_rollback",resourceKind:"app",resourceId:a.appId,targetRef:a.previousId,reason:"ok"===m?d:(0,c.l)(`${f.B} ${d}`)})}let n=null!==a.lastDeployAt&&g-a.lastDeployAt.getTime()<72e5;if(a.errors30>=20&&!n&&a.httpMonitorId&&e.push({ruleKey:"LogErrors",room:"workloads",action:"recheck",resourceKind:"app",resourceId:a.appId,targetRef:a.httpMonitorId,reason:l(`${a.errors30} errors in the last 30 min`,a.top30,b)}),a.dbErrors30>=3&&a.db){let c=l(`${a.dbErrors30} database connection errors in the last 30 min`,a.topDb,b),d=a.db;("neon_project"===d.kind||"neon_branch"===d.kind)&&d.wakeEndpoint&&j.test(d.wakeEndpoint)?e.push({ruleKey:"LogDbErrors",room:"databases",action:"neon_wake",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.wakeEndpoint,reason:c}):"supabase_project"===d.kind&&d.supabasePaused&&d.supabaseRef&&k.test(d.supabaseRef)&&e.push({ruleKey:"LogDbErrors",room:"databases",action:"supabase_restore",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.supabaseRef,reason:c})}return e})(a,b,g).map(f=>{let h="app"===f.resourceKind?(0,c.J)("app",a.appId,a.appName,b):(0,c.J)(f.resourceKind,f.resourceId,null,b);return{alertId:null,ruleKey:f.ruleKey,room:f.room,action:f.action,risk:e.H[f.action].risk,title:(0,c.M)(f.action,h),reason:f.reason,resourceKind:f.resourceKind,resourceId:f.resourceId,resourceName:h,targetRef:f.targetRef,proposedBy:(0,d.y)(f.room),expiresAt:new Date(g.getTime()+e.V)}})},"D",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<27e4))&&(Math.floor(c/6e4)%5==0||null!==b&&c-b>=6e5)},"W",0,function(a,b){let c=new Set(b.map(m));return a.filter(a=>{let b;return"pending"===a.status&&(b=a.ruleKey,g.includes(b))&&!c.has(m(a))}).map(a=>a.id)}],247881);let o=new Set(["MonitorDown","LogErrorSpike"]);a.s(["r",0,72e5,"M",0,o,"s",0,function(a,b){let c=a=>({ok:!1,why:a});if(!a.setting.enabled)return c("off");if(!a.ruleKey||!o.has(a.ruleKey))return c("rule");let d=a.deploy;if(!d||!d.liveAt)return c("no live deploy");let e=b.getTime()-d.liveAt.getTime();return e<0||e>6e4*a.setting.windowMin?c("outside the window"):d.previousId&&a.targetRef===d.previousId&&d.previousId!==d.currentId?d.newestProdCreatedAt&&d.currentCreatedAt.getTime()<d.newestProdCreatedAt.getTime()?c("live deploy is a rollback"):a.rolledOrPromotedLately?c("live deploy came from a rollback or promote"):"ready"!==(d.previousState??"").toLowerCase()?c("previous not ready"):!d.previousCreatedAt||b.getTime()-d.previousCreatedAt.getTime()>2592e6?c("previous too old"):"vulnerable"===a.previousNext?c("previous Next.js has advisories"):"ok"!==a.previousNext?c("previous Next.js unknown"):a.autoLately?c("auto-rollback within 2 h"):a.sameDeployBefore?c("already rolled back once"):a.inFlight?c("another auto-rollback is running"):{ok:!0}:c("target changed")},"u",0,(a,b,d)=>(0,c.l)(`Automatic: the new deploy ${a} errored in the first ${b} minutes. ${d}`),"E",0,a=>a.currentSha&&/^[0-9a-f]{7,40}$/i.test(a.currentSha)?a.currentSha.slice(0,7):a.currentId.slice(0,16)],649031)},691100,a=>{let b;var c,d=a.i(93321),e=a.i(530385),f=a.i(351674),g=a.i(548734),h=a.i(462820),i=a.i(837137),j=a.i(247730),k=a.i(455317),l=a.i(930270),m=a.i(396667),n=a.i(160147),o=a.i(767163),p=a.i(757902),q=a.i(436357),r=a.i(893893),s=a.i(556987),t=a.i(142754),u=a.i(342634),v=a.i(247881),w=a.i(649031),x=a.i(381544),y=a.i(138984),z=a.i(492665),A=a.i(221084),B=a.i(736780),C=a.i(560954),D=a.i(895176),E=a.i(305731),F=a.i(30184),G=a.i(721170),H=a.i(322145),I=a.i(248358),J=a.i(915598),K=a.i(312573),L=a.i(323878),M=a.i(19809),N=a.i(371289),O=a.i(94473),P=a.i(188282);let Q={checkMonitorNow:D.X,keepAliveNow:C.v,wakeAs:G.v,supabaseAct:I.Q,redeployAs:J.B,rollbackAs:J.U,finish:H.W,recordAction:A.f,limit:L.C,bumpPrAs:B.W,autoSecurity:()=>(0,O.X)(),recheckDomain:F._,moveMonitorToDomain:E.f};async function R(){let[a]=await (0,g.f)().select({at:i.collectorRuns.startedAt}).from(i.collectorRuns).where(f.B`(${i.collectorRuns.trigger} = 'vercel_cron' or (${i.collectorRuns.trigger} = 'manual' and ${i.collectorRuns.tasks} ? 'rollups'))`).orderBy((0,e.A)(i.collectorRuns.startedAt)).limit(1);return a?.at??null}async function S(a){let b=await (a.lastDailyRunAt??R)(),c=(a.now??(()=>new Date))();if(b&&c.getTime()-b.getTime()<216e5)return{ok:!1,error:"The daily job ran less than 6 hours ago."};let d=(a.dailyTarget??function(){let a=(0,y.f)();return a?{url:`${(0,z.f)().SITE_URL.replace(/\/+$/,"")}/api/daily`,secret:a.CRON_SECRET}:null})();if(!d)return{ok:!1,error:"The scheduler settings are missing, so the daily job can't be started."};try{let b=await (a.fetch??fetch)(d.url,{headers:{Authorization:`Bearer ${d.secret}`},signal:AbortSignal.timeout(4e4),redirect:"manual"});if(!b.ok||b.status>=300)return{ok:!1,error:`The daily job route answered ${b.status}.`};return{ok:!0,message:`Daily job ran again (${b.status}).`}}catch(a){if(a instanceof Error&&("TimeoutError"===a.name||"AbortError"===a.name))return{ok:!0,message:"Daily job started; it's still running — the heartbeat turns Up when it finishes."};throw a}}let T="The proposal's target is missing, so it can't run.";async function U(a,b,c=Q){let d="auto"===b,e=d?{id:u.e,userId:null}:{id:b.id,userId:b.userId},f=(a,b,e)=>c.finish(a,b,e,{refresh:!1,...d?{auditPrefix:u.v}:{}});try{if(!a.resourceId||!a.targetRef)return{ok:!1,error:T};if((0,N.W)()&&"recheck"!==a.action)return await c.recordAction({kind:"ok",message:`${d?u.v:""}${P.H[a.action].label} (simulated)`,detail:"Simulated in the demo",resourceId:a.resourceId,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:M.r};switch(a.action){case"recheck":{let b=await c.limit(K.t.check,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await c.checkMonitorNow(a.targetRef);if(!f.ok)return{ok:!1,error:f.error};if(f.audit)try{await c.recordAction({kind:!1===f.passed?"err":"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId})}catch{console.warn("audit event failed")}return{ok:!0,message:f.message}}case"domain_recheck":{let b=await c.limit(K.t.domainCheck,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.recheckDomain??F._)(a.targetRef);if(!f.ok)return f;return await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"monitor_update_url":{let b=await c.limit(K.t.monitorWrite,e.id);if(!b.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.moveMonitorToDomain??E.f)(a.targetRef);if(!f.ok)return f;return f.audit&&await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"daily_rerun":return await S(c);case"neon_wake":return await c.wakeAs(e,a.resourceId,a.targetRef,f);case"supabase_keepalive":return await c.keepAliveNow(e,a.resourceId,f);case"supabase_restore":return await c.supabaseAct("restore",e,a.resourceId,a.targetRef,f);case"vercel_redeploy":return await c.redeployAs(e,a.resourceId,a.targetRef,f);case"vercel_rollback":return await c.rollbackAs(e,a.resourceId,a.targetRef,f);case"github_bump_pr":{let b=d?await (c.autoSecurity??O.X)():null;if(d&&!b?.enabled)return{ok:!1,error:"Automatic security fixes is off."};return await (c.bumpPrAs??B.W)(e,a.resourceId,a.targetRef,f,{proposalId:a.proposalId??null,...b?{auto:{severities:b.severities}}:{},..."FrameworkVulnerable"===a.ruleKey?{framework:!0}:{}})}default:return{ok:!1,error:T}}}catch(a){return console.warn(`${h.X.logTag}/proposals run failed:`,a instanceof Error?a.name:"error"),{ok:!1,error:"Something went wrong while running it. Check the console page before trying again."}}}var V=a.i(416454);let W={id:t.O.id,room:t.O.room,action:t.O.action,risk:t.O.risk,title:t.O.title,reason:t.O.reason,resourceName:t.O.resourceName,proposedBy:t.O.proposedBy,status:t.O.status,auto:t.O.auto,result:t.O.result,createdAt:t.O.createdAt,decidedAt:t.O.decidedAt,expiresAt:t.O.expiresAt},X={...W,resourceId:t.O.resourceId,targetRef:t.O.targetRef,ruleKey:t.O.ruleKey,alertId:t.O.alertId};async function Y(a,b,c){let e=(0,u.z)(a,b),h=new Set(e.deployApps),j=a.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&a.resourceId&&h.has(a.resourceId)&&a.startedAt),[k,m,n,o,p,r,s,t,v]=await Promise.all([e.monitorIds.length?(0,g.f)().select({id:i.monitors.id,kind:i.monitors.kind,url:i.monitors.url,lastError:i.monitors.lastError,appId:i.monitors.resourceId,appName:i.resources.name,appMeta:i.resources.meta}).from(i.monitors).innerJoin(i.resources,(0,d.u)(i.resources.id,i.monitors.resourceId)).where((0,d.y)(i.monitors.id,e.monitorIds)):[],e.deployApps.length?(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,e.deployApps),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))):[],e.supabaseIds.length?(0,g.f)().select({id:i.resources.id,ref:i.resources.externalId}).from(i.resources).where((0,d.b)((0,d.y)(i.resources.id,e.supabaseIds),(0,d.u)(i.resources.kind,"supabase_project"),f.B`${i.resources.goneAt} is null`)):[],e.monitorApps.length?ac(e.monitorApps):new Map,e.depApps.length?aa(a,e.depApps).catch(()=>new Set).then(a=>(0,l.C)(e.depApps,a)).catch(()=>new Map):new Map,e.monitorIds.length?ab(e.monitorIds):null,e.frameworkApps.length?(0,B.h)(e.frameworkApps,e.depApps).catch(()=>new Map):new Map,j.length?Z(j.map(a=>a.subject),b).catch(()=>[]):[],$(e.deployApps)]),w=k.some(a=>null!==(0,q.Y)(a.appMeta)),x=w?await (0,g.f)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta}).from(i.resources).where((0,d.b)((0,d.u)(i.resources.kind,"app"),(0,d.u)(i.resources.monitored,!0),(0,d.M)(i.resources.goneAt))).limit(500):[],y=w?(0,q.P)(k,x):new Map,z=[...[...p].map(([a,b])=>({appId:a,repoId:b})),...[...s].map(([a,b])=>({appId:a,repoId:b.repoId}))],A=z.length?await Promise.resolve().then(()=>(0,B.H)(z,b)).catch(()=>new Map):new Map,C=new Map,D=new Map;for(let a of m){let b=C.get(a.app)??{currentId:null,previousId:null,liveAt:null};a.isCurrent?(b.currentId=a.id,b.liveAt=a.readyAt??a.createdAt??null):a.isPrevious&&(b.previousId=a.id,D.set(a.app,a.readyAt??a.createdAt??null)),C.set(a.app,b)}let E=new Map;for(let[a,b]of C)b.previousId&&E.set(a,_(v,a,b.liveAt,D.get(a)??null));let F=new Map(j.map(a=>[a.id,(0,V.g)(a.startedAt,t.filter(b=>b.ruleKey===a.ruleKey&&b.subject===a.subject),{ruleKey:a.ruleKey,liveAt:C.get(a.resourceId)?.liveAt??null})]));return{monitorKinds:new Map(k.map(a=>[a.id,String(a.kind)])),deploys:C,...void 0!==c?{rollbackWindowMs:c}:{},supabaseRefs:new Map(n.map(a=>[a.id,a.ref])),neonSuspended:o,fixableRepos:p,dailyHeartbeatId:r,frameworkFixes:s,monitorMoves:y,problemSince:F,previousNext:E,...A.size?{productionMismatch:A}:{}}}async function Z(a,b){return(0,g.f)().select({ruleKey:i.alerts.ruleKey,subject:i.alerts.subject,startedAt:i.alerts.startedAt,resolvedAt:i.alerts.resolvedAt}).from(i.alerts).where((0,d.b)((0,d.y)(i.alerts.ruleKey,["MonitorDown","HighLatency"]),(0,d.y)(i.alerts.subject,[...new Set(a)]),(0,d.E)(i.alerts.resolvedAt),(0,d.B)(i.alerts.resolvedAt,new Date(b.getTime()-V.A)))).orderBy((0,e.A)(i.alerts.startedAt)).limit(500)}async function $(a){let b={checks:new Map,events:new Map,frameworks:new Map};if(!a.length)return b;try{let[c,f,h]=await Promise.all([(0,g.f)().select({app:i.appSecurity.resourceId,version:i.appSecurity.version,status:i.appSecurity.status,findings:i.appSecurity.findings,checkedAt:i.appSecurity.checkedAt,reason:i.appSecurity.reason}).from(i.appSecurity).where((0,d.y)(i.appSecurity.resourceId,a)).limit(a.length),(0,g.f)().select({app:i.events.resourceId,at:i.events.at,reason:i.events.reason,message:i.events.message}).from(i.events).where((0,d.b)((0,d.y)(i.events.reason,[...V.Y]),(0,d.y)(i.events.resourceId,a))).orderBy((0,e.A)(i.events.at)).limit(Math.min(500,50*a.length)),(0,g.f)().select({app:i.resources.id,meta:i.resources.meta}).from(i.resources).where((0,d.y)(i.resources.id,a)).limit(a.length)]);for(let a of c)b.checks.set(a.app,{version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[],checkedAt:a.checkedAt,reason:a.reason});for(let a of f)a.app&&b.events.set(a.app,[...b.events.get(a.app)??[],{at:a.at,reason:a.reason,message:a.message}]);for(let a of h){let c=a.meta&&"object"==typeof a.meta?a.meta.framework:null;b.frameworks.set(a.app,"string"==typeof c?c:null)}}catch{return{checks:new Map,events:new Map,frameworks:new Map}}return b}let _=(a,b,c,d)=>(0,V.Q)({currentLiveAt:c,previousLiveAt:d,check:a.checks.get(b)??null,events:a.events.get(b)??[],framework:a.frameworks.get(b)??null});async function aa(a,b){let c=new Set(b),e=a.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind&&a.resourceId&&c.has(a.resourceId)).map(a=>a.id);return e.length?new Set((await (0,g.f)().selectDistinct({resourceId:t.O.resourceId}).from(t.O).where((0,d.b)((0,d.u)(t.O.ruleKey,"FrameworkVulnerable"),(0,d.u)(t.O.action,"github_bump_pr"),(0,d.y)(t.O.status,["pending","approved","running","done"]),(0,d.y)(t.O.alertId,e),(0,d.y)(t.O.resourceId,[...c]))).limit(e.length)).flatMap(a=>a.resourceId?[a.resourceId]:[])):new Set}async function ab(a){let b=(0,o.i)(process.env.DAILY_HEARTBEAT_TOKEN);if(!b)return null;let[c]=await (0,g.f)().select({id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.id,a),(0,d.u)(i.monitors.kind,"heartbeat"),(0,d.u)(i.monitors.tokenHash,(0,p.C)(b)))).limit(1).catch(()=>[]);return c?.id??null}async function ac(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch"]),f.B`${i.resources.goneAt} is null`)),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,h=[...new Set(b.map(e).filter(a=>!!a))];if(!h.length)return c;let j=new Map((await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,h))).map(a=>[a.id,(0,r.k)(r.s,a.data)]));for(let a of b){let b=e(a),d=b?j.get(b):void 0,f=d?(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null):null;f&&c.set(a.app,{resourceId:a.id,resourceKind:a.kind,endpointId:f})}return c}async function ad(a){if(!a.length)return[];let b=new Set((await (0,g.f)().select({alertId:t.O.alertId,action:t.O.action}).from(t.O).where((0,d.y)(t.O.alertId,[...new Set(a.map(a=>a.alertId))]))).map(a=>`${a.alertId}:${a.action}`)),c=a.filter(a=>!b.has(`${a.alertId}:${a.action}`));return c.length?(0,g.f)().insert(t.O).values(c.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X):[]}async function ae(a,b){return(await (0,g.f)().select(W).from(t.O).where(f.B`${t.O.createdAt} >= ${new Date(a.getTime()-6048e5).toISOString()}::timestamptz`).orderBy(f.B`case when ${t.O.status} = 'pending' then 0 else 1 end`,(0,e.A)(t.O.createdAt),(0,e.A)(t.O.id)).limit(b)).map(u.E)}async function af(a){let[b]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return b?(0,u.E)(b):null}async function ag(a,b,c,e){let[h]=await (0,g.f)().update(t.O).set({status:"approve"===b?"approved":"rejected",decidedBy:c,decidedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),f.B`${t.O.expiresAt} > ${e.toISOString()}::timestamptz`)).returning(X);if(h)return{status:"ok",proposal:(0,u.E)(h),row:h};let[i]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return i?{status:"conflict",proposal:(0,u.E)(i)}:{status:"missing"}}async function ah(a,b){let[c]=await (0,g.f)().update(t.O).set({status:"running",claimedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"approved"))).returning(X);return c??null}async function ai(a,b,c,e){let[f]=await (0,g.f)().update(t.O).set({status:b?"done":"failed",result:c,finishedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"running"))).returning(X);return f??null}let aj={run:(a,b)=>U(a,b),book:()=>(0,j.f)()};async function ak(a,b,c,d=aj){let e=await ah(a,c);if(!e)return null;let f=await d.run({action:e.action,resourceId:e.resourceId,targetRef:e.targetRef,proposalId:e.id,ruleKey:e.ruleKey??null},b),g=await d.book().catch(()=>s.a),h=await ai(a,f.ok,(0,u.x)(f,g),new Date);return h?(0,u.E)(h):null}async function al(a,b){let c=await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: nobody decided in time, or the alert stopped firing."}).where((0,d.b)((0,d.u)(t.O.status,"pending"),(0,d.F)((0,d.S)(t.O.expiresAt,new Date(b.getTime()+1)),(0,d.b)((0,d.E)(t.O.alertId),a.length?(0,d.$)(t.O.alertId,a):f.B`true`)))).returning({id:t.O.id});return await (0,g.f)().update(t.O).set({status:"failed",result:"The run was interrupted. Check the console page before trying again.",finishedAt:b}).where((0,d.b)((0,d.u)(t.O.status,"running"),(0,d.S)(t.O.claimedAt,new Date(b.getTime()-u.L)))),c.length}async function am(a){await (0,g.f)().delete(t.O).where((0,d.b)((0,d.S)(t.O.createdAt,new Date(a.getTime()-2592e6)),(0,d.$)(t.O.status,["pending","approved","running"])))}let an=f.B`(${i.storedLogs.level} in ('error', 'fatal') or coalesce(${i.storedLogs.statusCode}, 0) >= 500)`,ao=f.B`coalesce(${i.deployments.readyAt}, ${i.deployments.createdAtProvider})`;async function ap(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch","supabase_project"]),(0,d.M)(i.resources.goneAt))),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,f=[...new Set(b.map(e).filter(a=>!!a))],h=new Map((f.length?await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,f)):[]).map(a=>[a.id,a.data]));for(let a of b){let b=h.get(e(a)??"");if("supabase_project"===a.kind){let d=(0,r.k)(r.B,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:null,supabaseRef:a.externalId,supabasePaused:"INACTIVE"===d.status})}else{let d=(0,r.k)(r.s,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null),supabaseRef:null,supabasePaused:!1})}}return c}let aq={apps:async function(a){let b=new Date(a.getTime()-v.I-v.s),c=f.B`${i.storedLogs.at} >= ${new Date(a.getTime()-v.H).toISOString()}::timestamptz`,e=f.B`${i.storedLogs.message} ~* ${v.N}`,h=f.B`left(${i.storedLogs.message}, 200)`,j=(await (0,g.f)().select({appId:i.storedLogs.resourceId,appName:f.B`max(${i.resources.name})`,liveAt:f.B`max(${ao})`.mapWith(i.deployments.readyAt),currentId:f.B`max(${i.deployments.externalId})`,errorsSinceLive:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`.mapWith(Number),baselineErrors:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao} - interval '24 hours' and ${i.storedLogs.at} < ${ao})`.mapWith(Number),topSinceLive:f.B`mode() within group (order by ${h}) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`,errors30:f.B`count(*) filter (where ${an} and ${c})`.mapWith(Number),top30:f.B`mode() within group (order by ${h}) filter (where ${an} and ${c})`,dbErrors30:f.B`count(*) filter (where ${c} and ${e})`.mapWith(Number),topDb:f.B`mode() within group (order by ${h}) filter (where ${c} and ${e})`}).from(i.storedLogs).innerJoin(i.resources,(0,d.u)(i.resources.id,i.storedLogs.resourceId)).leftJoin(i.deployments,(0,d.b)((0,d.u)(i.deployments.resourceId,i.storedLogs.resourceId),(0,d.u)(i.deployments.isCurrent,!0))).where((0,d.b)((0,d.B)(i.storedLogs.at,b),(0,d.u)(i.resources.kind,"app"),(0,d.M)(i.resources.goneAt))).groupBy(i.storedLogs.resourceId)).filter(a=>a.errorsSinceLive>=v.w||a.errors30>=v.G||a.dbErrors30>=v.V);if(!j.length)return[];let k=j.map(a=>a.appId),[l,m,n]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,previousId:f.B`max(${i.deployments.externalId}) filter (where ${i.deployments.isPreviousProduction})`,previousLiveAt:f.B`max(${ao}) filter (where ${i.deployments.isPreviousProduction})`.mapWith(i.deployments.readyAt),lastDeployAt:f.B`max(${i.deployments.createdAtProvider}) filter (where ${i.deployments.target} = 'production')`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,k),(0,d.F)((0,d.u)(i.deployments.isPreviousProduction,!0),(0,d.B)(i.deployments.createdAtProvider,new Date(a.getTime()-v.v))))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.monitors.resourceId,id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.resourceId,k),(0,d.u)(i.monitors.kind,"http"),(0,d.u)(i.monitors.paused,!1),(0,d.u)(i.monitors.ownerPaused,!1))).orderBy(i.monitors.createdAt),ap(k)]),o=new Map(l.map(a=>[a.app,a])),p=new Map;for(let a of m)p.has(a.app)||p.set(a.app,a.id);let q=j.filter(a=>a.errorsSinceLive>=v.w&&a.liveAt&&o.get(a.appId)?.previousId).map(a=>a.appId),r=q.length?await $(q):null;return j.map(a=>({...a,appName:a.appName??"",previousId:o.get(a.appId)?.previousId??null,lastDeployAt:o.get(a.appId)?.lastDeployAt??null,httpMonitorId:p.get(a.appId)??null,db:n.get(a.appId)??null,...r&&q.includes(a.appId)?{previousNext:_(r,a.appId,a.liveAt,o.get(a.appId)?.previousLiveAt??null)}:{}}))},rows:async function(a){let b=f.B`coalesce(${t.O.finishedAt}, ${t.O.decidedAt}, ${t.O.expiresAt})`;return(0,g.f)().select({id:t.O.id,ruleKey:t.O.ruleKey,resourceId:t.O.resourceId,action:t.O.action,status:t.O.status,closedAt:b.mapWith(t.O.finishedAt)}).from(t.O).where((0,d.b)((0,d.M)(t.O.alertId),(0,d.y)(t.O.ruleKey,[...v.T]),(0,d.F)((0,d.y)(t.O.status,["pending","approved","running"]),f.B`${b} > ${new Date(a.getTime()-v.b).toISOString()}::timestamptz`)))}};async function ar(a,b,c=aq){let[e,f]=await Promise.all([c.apps(a),c.rows(a)]),h=e.flatMap(c=>(0,v.t)(c,b,a)),i=(0,v.W)(f,h),j=0;i.length&&(j=(await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: the logs no longer show it.",finishedAt:a}).where((0,d.b)((0,d.y)(t.O.id,i),(0,d.u)(t.O.status,"pending"))).returning({id:t.O.id})).length);let k=(0,v.x)(h,f,a);return k.length?{created:await (0,g.f)().insert(t.O).values(k.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X),expired:j}:{created:[],expired:j}}let as=null;async function at(a,b){return(0,v.D)(a,as)?(as=a.getTime(),ar(a,await b())):{created:[],expired:0}}async function au(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.risk,"safe"))).returning({id:t.O.id})).length>0}async function av(a,b){let c=new Date(b.getTime()-w.r),[e,h,j,k,l]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,sha:i.deployments.commitSha,state:i.deployments.state,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))),(0,g.f)().select({app:i.deployments.resourceId,at:f.B`max(${i.deployments.createdAtProvider})`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.u)(i.deployments.target,"production"),(0,d.u)(i.deployments.state,"ready"))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.events.resourceId}).from(i.events).where((0,d.b)((0,d.u)(i.events.type,"action"),(0,d.y)(i.events.resourceId,a),(0,d.B)(i.events.at,c),f.B`${i.events.message} ~ ${aw}`)),(0,g.f)().select({app:t.O.resourceId,targetRef:t.O.targetRef,status:t.O.status,decidedAt:t.O.decidedAt}).from(t.O).where((0,d.b)((0,d.u)(t.O.action,"vercel_rollback"),(0,d.u)(t.O.auto,!0),(0,d.B)(t.O.createdAt,new Date(b.getTime()-26784e5)))),$(a)]),m=new Map;for(let b of a){let a=e.find(a=>a.app===b&&a.isCurrent),d=e.find(a=>a.app===b&&a.isPrevious&&!a.isCurrent),f=k.filter(a=>a.app===b);m.set(b,{deploy:a?{currentId:a.id,currentSha:a.sha,liveAt:a.readyAt??a.createdAt,currentCreatedAt:a.createdAt,newestProdCreatedAt:h.find(a=>a.app===b)?.at??null,previousId:d?.id??null,previousState:d?.state??null,previousCreatedAt:d?.createdAt??null}:null,rolledOrPromotedLately:j.some(a=>a.app===b),autoLately:f.some(a=>null!==a.decidedAt&&a.decidedAt.getTime()>=c.getTime()),sameDeployBefore:!!d&&f.some(a=>a.targetRef===d.id),previousNext:a&&d?_(l,b,a.readyAt??a.createdAt,d.readyAt??d.createdAt).status:"unknown"})}return{apps:m,inFlight:k.some(a=>"approved"===a.status||"running"===a.status)}}let aw="(Rolled back|Promoted|Preview promoted) ·";async function ax(a,b,c){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:c,reason:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"vercel_rollback"),f.B`not exists (select 1 from ops.action_proposals x where x.action = 'vercel_rollback' and x.auto and x.status in ('approved', 'running'))`)).returning({id:t.O.id})).length>0}async function ay(a,b,c,d){let e=a.filter(a=>"vercel_rollback"===a.action&&a.ruleKey&&w.M.has(a.ruleKey)&&a.resourceId);if(!e.length||!d.autoRollback||!d.rollbackContext||!d.approveAutoRollback)return[];let f=await d.autoRollback().catch(()=>null);if(!f?.enabled||15e3>c())return[];let g=[];try{let a=await d.rollbackContext([...new Set(e.map(a=>a.resourceId))],b),i=a.inFlight;for(let j of e){let e=a.apps.get(j.resourceId);if(!e||12e3>c())continue;let k=(0,w.s)({setting:f,ruleKey:j.ruleKey??null,targetRef:j.targetRef,inFlight:i,...e},b);if(!k.ok){console.log(`${h.X.logTag}/auto-rollback: skipped (${k.why})`);continue}let l=(0,w.E)(e.deploy);if(!await d.approveAutoRollback(j.id,(0,w.u)(l,f.windowMin,j.reason),new Date))continue;i=!0;let m=await d.execute(j.id,new Date);if(m){g.push(m),await (d.notifyRollback??x.q)(m,{reason:j.reason,newRef:l},{},{alertId:j.alertId??null}).catch(()=>void 0);break}}}catch(a){console.warn(`${h.X.logTag}/auto-rollback failed:`,a instanceof Error?a.name:"error")}return g}async function az(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"github_bump_pr"))).returning({id:t.O.id})).length>0}async function aA(a,b,c){let d=a.filter(a=>"github_bump_pr"===a.action&&a.targetRef);if(!d.length||!c.autoSecurity||!c.bumpReady||!c.approveAutoBump)return[];let e=await c.autoSecurity().catch(()=>null);if(!e?.enabled||!e.severities.length)return[];let f=[];for(let a of d){if(15e3>b())break;try{if(a.resourceId&&c.prodMismatch?await c.prodMismatch(a.resourceId,a.targetRef).catch(()=>"unknown"):null){console.log(`${h.X.logTag}/auto-security: waits for the owner (production source)`);continue}let b="FrameworkVulnerable"===a.ruleKey&&a.resourceId?await c.bumpReady(a.targetRef,e.severities,{appId:a.resourceId}):await c.bumpReady(a.targetRef,e.severities);if(!b.ok){console.log(`${h.X.logTag}/auto-security: waits for the owner (${b.why})`);continue}if(!await c.approveAutoBump(a.id,new Date))continue;let d=await c.execute(a.id,new Date);d&&f.push(d)}catch(a){console.warn(`${h.X.logTag}/auto-security failed:`,a instanceof Error?a.name:"error")}}return f}async function aB(a,b){return(await (0,B.H)([{appId:a,repoId:b}],new Date)).get(a)??null}async function aC(a){return new Map((await (0,g.f)().select({id:i.accounts.id,provider:i.accounts.provider}).from(i.accounts).where((0,d.y)(i.accounts.id,a))).map(a=>[a.id,a.provider]))}let aD={firing:()=>(0,k.q)(),book:()=>(0,j.f)(),facts:Y,create:ad,expire:al,autoRun:O.I,approveAuto:au,execute:(a,b)=>ak(a,"auto",b),notifyNew:x.i,notifyResult:x.b,logs:at,autoRollback:()=>(0,O.K)(),rollbackContext:av,approveAutoRollback:ax,notifyRollback:x.q,autoSecurity:()=>(0,O.X)(),bumpReady:B.J,approveAutoBump:az,paused:m.I,providers:aC,prodMismatch:aB};async function aE(a,b={},c=aD){let d={created:0,expired:0,autoRan:0},e=()=>(b.deadline??1/0)-Date.now(),f=await c.firing();d.expired=await c.expire(f.map(a=>a.id),a);let g=c.paused?await c.paused().catch(()=>new Set):new Set,i=[...new Set(f.flatMap(a=>a.accountId?[a.accountId]:[]))],j=g.size&&i.length&&c.providers?await c.providers(i).catch(()=>new Map):new Map,k=f.filter(a=>!(0,n.O)(g,a.ruleKey,a.accountId?j.get(a.accountId):null)),l=null,m=()=>l??=c.book().catch(()=>s.a),o=[],p=(0,u.z)(k,a);if(Object.values(p).some(a=>a.length>0)){let b=p.deployApps.length&&c.autoRollback?await c.autoRollback().catch(()=>null):null,d=await c.facts(k,a,b?6e4*b.windowMin:void 0),e=await m(),f=k.flatMap(b=>(0,u.t)(b,d,e,a)).filter(a=>!("github_bump_pr"===a.action&&g.has("devops")));o.push(...await c.create(f))}if(e()>1e4&&!g.has("hosting"))try{let b=await c.logs(a,m);o.push(...b.created),d.expired+=b.expired}catch(a){console.warn(`${h.X.logTag}/proposals logs failed:`,a instanceof Error?a.name:"error")}if(d.created=o.length,!o.length)return d;let q=await c.autoRun().catch(()=>null),r=await ay(o,a,e,c);d.autoRan+=r.length;let t=await aA(o.filter(a=>!r.some(b=>b.id===a.id)),e,c),v=new Set(r.map(a=>a.id)),w=[...t];for(let a of(d.autoRan+=t.length,t))v.add(a.id);for(let a of o){if(v.has(a.id)||!q||!(0,u.I)(a.action,q)||8e3>e()||!await c.approveAuto(a.id,new Date))continue;let b=await c.execute(a.id,new Date);b&&(w.push(b),d.autoRan++)}let x=new Set([...w.map(a=>a.id),...v]),y=o.filter(a=>"LogErrorSpike"===a.ruleKey&&a.resourceId).map(a=>({proposalId:a.id,appId:a.resourceId})),z=y.length&&c.queueDev?await c.queueDev(y,a).catch(()=>new Set):new Set,A=new Map(o.map(a=>[a.id,a.alertId??null]));for(let a of(await c.notifyNew(o.filter(a=>!x.has(a.id)).map(u.E),{},{devQueued:z,alertIds:A}).catch(()=>void 0),w))await c.notifyResult(a,{},{alertId:A.get(a.id)??null}).catch(()=>void 0);return d}let aF=(c={},b={...aD,queueDev:c.queueDev},async(a,c)=>{try{let d=await aE(a,c??{},b);(d.created||d.expired||d.autoRan)&&console.log(`${h.X.logTag}/proposals: ${d.created} new, ${d.expired} expired, ${d.autoRan} auto-ran`)}catch(a){console.warn(`${h.X.logTag}/proposals failed:`,a instanceof Error?a.name:"error")}});a.s(["V",0,ag,"N",0,ak,"Q",0,ae,"Z",0,aF,"t",0,am,"K",0,af],691100)},381544,a=>{var b=a.i(462820),c=a.i(532620),d=a.i(49146),e=a.i(390626),f=a.i(192738),g=a.i(492665),h=a.i(552543),i=a.i(446914),j=a.i(556987),k=a.i(488345),l=a.i(94473),m=a.i(188282);let n={target:d.Q,book:()=>(0,c.e)(),siteUrl:()=>(0,g.f)().SITE_URL,autoRun:()=>(0,l.I)(),send:(a,b,c,d,e)=>(0,i.I)(a,b,c,{...d?{replyMarkup:d}:{},...e?{replyTo:e}:{}}),record:(a,b)=>(0,d.P)("telegram",a,b),lang:()=>(0,h.I)("telegram"),discord:()=>(0,d.G)(),sendDiscord:(a,b)=>(0,e.$)(a,b,{timeoutMs:w}),recordDiscord:(a,b)=>(0,d.P)("discord",a,b),discordLang:()=>(0,h.I)("discord"),buttons:()=>a.A(801116).then(a=>a.approvalButtons()),thread:a=>(0,d.M)(a)},o={en:{pending:"Status: ⏳ waiting",dev:"🧑‍💻 Dev is checking the code",proposer:b.X.notifyFallback.en,app:"app",safe:"safe",risky:"needs care",proposes:"proposes",why:"Why",risk:"Risk",open:"Open in Auto-actions",waitingN:"new proposals waiting for approval:",moreN:"more proposals",automatic:"Automatic",rollbackWhy:"the app errored after the new deploy",succeeded:"Succeeded",failed:"Failed",stopFallback:"something failed"},id:{pending:"Status: ⏳ menunggu",dev:"🧑‍💻 Dev lagi cek kodenya",proposer:b.X.notifyFallback.id,app:"aplikasi",safe:"aman",risky:"perlu hati-hati",proposes:"usul",why:"Kenapa",risk:"Risiko",open:"Buka di Auto-actions",waitingN:"usulan baru menunggu persetujuan:",moreN:"usulan lagi",automatic:"Otomatis",rollbackWhy:"app-nya error setelah deploy baru",succeeded:"Berhasil",failed:"Gagal",stopFallback:"ada yang gagal"}},p={recheck:"Cek ulang sekarang",neon_wake:"Bangunin Neon",supabase_keepalive:"Kirim keep-alive Supabase",supabase_restore:"Restore project Supabase",vercel_redeploy:"Redeploy production",vercel_rollback:"Rollback ke deploy sebelumnya",github_bump_pr:"Bikin PR update paket",domain_recheck:"Cek ulang sertifikat domain",daily_rerun:"Jalanin ulang daily job",monitor_update_url:"Arahin monitor ke domain baru"},q=(a="en")=>(0,h.t)(o,a,"dev"),r=(a,b)=>("id"===b?p[a.action]:void 0)??m.H[a.action]?.label??a.actionLabel,s=(a,b)=>(0,h.t)(o,b,"risky"===a.risk||m.H[a.action]?.risk==="risky"?"risky":"safe"),t=(a,b)=>`${a.replace(/\/+$/,"")}/auto-actions${b?`?proposal=${encodeURIComponent(b)}`:""}`;function u(a,b,c,d=!1,e="en"){let g=a=>(0,h.t)(o,e,a),i=(0,k.R)(a.proposedBy,b,60)||g("proposer"),j=(0,k.R)(a.title,b,120),l=(0,k.R)(a.reason,b,200)||"-";return[`🧑‍✈️ ${(0,f.H)(i)} ${g("proposes")}: ${(0,f.H)(r(a,e))} — ${(0,f.H)(j)}`,`${g("why")}: ${(0,f.H)(l)}`,`${g("risk")}: ${s(a,e)}`,...d?[q(e)]:[],`${g("open")}: ${(0,f.H)(t(c,a.id))}`].join("\n")}let v=new Set(["recheck","domain_recheck"]),w=3e3,x={en:{proposed:"📝 Proposed",approved:"✅ Approved by the owner",rejected:"🚫 Rejected by the owner",done:"⚙️ Ran",failed:"❌ Failed",waiting:"waiting for approval on Telegram.",newN:"new proposals"},id:{proposed:"📝 Usulan",approved:"✅ Disetujui owner",rejected:"🚫 Ditolak owner",done:"⚙️ Dijalankan",failed:"❌ Gagal",waiting:"nunggu persetujuan di Telegram.",newN:"usulan baru"}};function y(a,b,c,d="en"){let e=a=>(0,h.t)(x,d,a);if(Array.isArray(b))return`📝 ${b.length} ${e("newN")} — ${e("waiting")}`;let f=((0,k.g)(b.title,c,120)||r(b,d)).replace(/[*_`~|\[\]<>]/g,"");if("proposed"===a)return`${e("proposed")}: ${f} — ${e("waiting")}`;if("approved"===a||"rejected"===a)return`${e(a)}: ${f}`;let g=b.result?(0,k.g)(b.result,c,200).replace(/[*_`~|\[\]<>]/g,""):"";return`${e(a)}: ${f}${g?` — ${g}`:""}`}async function z(a,c,d){try{let e,f=await c.discord();if(!f)return;let g=await c.book().catch(()=>j.a),h=await c.discordLang().catch(()=>"en"),i=a(g,h);if(!i.length)return;try{e=await c.sendDiscord(f.url,i.join("\n"))}catch{e={ok:!1,kind:"transient",error:"Discord didn't answer."}}await c.recordDiscord(e,d).catch(()=>console.warn(`${b.X.logTag}/discord: recording the result failed`))}catch{console.warn(`${b.X.logTag}/discord: sending the action history failed`)}}async function A(a,b,c={},d={}){let e={...n,...c};await C(()=>z((c,d)=>[y(a,b,c,d)],e,d.now??new Date),d.timeoutMs??w)}async function B(a,c,d){let e=await c.target();if(!e)return;let f=await c.book().catch(()=>j.a),g=await c.lang().catch(()=>"en");for(let h of(await a(f,g))){let a;try{a="string"==typeof h?await c.send(e.token,e.chatId,h):await c.send(e.token,e.chatId,h.text,h.keyboard,h.replyTo??void 0)}catch{a={ok:!1,kind:"transient",error:"Telegram didn't answer."}}await c.record(a,d).catch(()=>console.warn(`${b.X.logTag}/telegram: recording the result failed`))}}async function C(a,c){try{var d;let b;await (d=a(),Promise.race([d,new Promise((a,d)=>{b=setTimeout(()=>d(Object.assign(Error("timeout"),{name:"TimeoutError"})),c)})]).finally(()=>clearTimeout(b)))}catch(a){console.warn(`${b.X.logTag}/telegram: sending the proposal notice failed:`,a instanceof Error?a.name:"error")}}let D=async(a,b)=>b&&a.thread?a.thread(b).catch(()=>null):null;async function E(a,b={},c={}){if(!a.length)return;let d={...n,...b};await C(async()=>{let b=await d.autoRun().catch(()=>null),e=a.filter(a=>{var c;return c=b??{},"pending"===a.status&&!a.auto&&(m.H[a.action]?.risk!=="safe"||"risky"===a.risk||!c[a.action])});if(!e.length)return;let g=e.length>3||!d.buttons?null:await d.buttons().catch(()=>null),i=c.now??new Date;await Promise.all([B(async(a,b)=>e.length>3?[function(a,b,c,d=new Set,e="en"){let g=a=>(0,h.t)(o,e,a),i=a.slice(0,10).map(a=>{let h=(0,k.R)(a.proposedBy,b,60)||g("proposer");return`• ${(0,f.H)(h)}: ${(0,f.H)(r(a,e))} — ${(0,f.H)((0,k.R)(a.title,b,120))} (${s(a,e)})${d.has(a.id)?` \xb7 ${q(e)}`:""}
4
+ `:"")+(0,h.y)(Z,ae,!!z,v),ak=await (0,J.y)(r.token,s.fullName,_,G,ai,aj,D,{draft:!!V}),al=!!V;if(V&&!ak.ok&&422===ak.status&&(ak=await (0,J.y)(r.token,s.fullName,_,G,ai,aj,D),al=!1),!ak.ok)return af(ak);let am=V?al?` Opened as a draft: ${V}`:` Opened as a normal pull request (this repository can't have drafts), with the warning on top: ${V}`:"",an=Z.map(a=>`${a.package} ${a.from} → ${a.to}`).join(", "),ao=await (0,J.M)(r.token,s.fullName,_,D).catch(()=>null),ap=!1;if(ao?.ok&&ao.data){await (0,d.f)().insert(e.dependencyPrs).values({repoId:l,appId:f,proposalId:A??null,number:ak.data.number,branch:_,baseBranch:G,headSha:ao.data,title:ai.slice(0,200),packages:Z.map(a=>a.package),auto:!!z,stage:"checks",stageText:m(ak.data.number,"checks")}).onConflictDoNothing().catch(()=>console.warn("deps: recording the PR failed"));let{extensions:b}=await a.A(414785),c=await b.runner?.queueLockfileJob({repoId:l,branch:_,headSha:ao.data,prNumber:ak.data.number,lockfilePath:ad,targets:Z.map(a=>({name:a.package,version:a.fixed}))}).catch(()=>(console.warn("deps: queueing the lockfile job failed"),null)),g=await (0,M.U)(r.token,{repo:s.fullName,branch:_,lockfilePath:ad,prNumber:ak.data.number});ap=c?.queued===!0||g.sent}return n({done:!0,message:`Pull request #${ak.data.number} opened for ${s.app}: ${an}.${ap?"":` Run npm install${v?` in ${v}`:""} on the branch before merging.`}${am}`,audit:{message:`Package update PR opened \xb7 ${s.app} \xb7 #${ak.data.number}`,resourceId:f,detail:an}},c,r.id)}async function V(a,b,c){if(!(0,H.f)(a)||c&&!(0,H.f)(c.appId))return{ok:!1,why:"target"};let d=await P();if(!d||"unreadable"===d)return{ok:!1,why:"no write token"};let e=c?await R(c.appId):await S(a);if(!e)return{ok:!1,why:"nothing"};let f=(0,g.a)(e.upgrades,e.installed,b);return f.ok?{ok:!0}:{ok:!1,why:f.why}}async function W(a,c){let f=a.filter(a=>(0,H.f)(a.appId)&&(0,H.f)(a.repoId)),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,meta:e.resources.meta,defaultBranch:e.githubRepos.defaultBranch}).from(e.appRepos).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).where((0,b.y)(e.appRepos.appId,[...new Set(f.map(a=>a.appId))])).limit(4*f.length);for(let a of f){let b=h.find(b=>b.appId===a.appId&&b.repoId===a.repoId),d=b?.meta??{},e=b?(0,I.B)(d.productionSource,(0,I.q)(d,b.defaultBranch??null),c):null;e&&g.set(a.appId,e)}return g}async function X(a,c=[]){let f=a.filter(H.f),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.appSecurity,(0,b.u)(e.appSecurity.resourceId,e.appRepos.appId)).where((0,b.b)((0,b.y)(e.appRepos.appId,f),(0,b.M)(e.githubRepos.goneAt),(0,b.u)(e.appSecurity.status,"vulnerable"))).limit(f.length),j=new Set(c),k=h.filter(a=>j.has(a.appId)),l=k.length?new Set((await (0,d.f)().selectDistinct({repoId:e.dependencyVulns.repoId}).from(e.dependencyVulns).where((0,b.b)((0,b.y)(e.dependencyVulns.repoId,[...new Set(k.map(a=>a.repoId))]),(0,b.M)(e.dependencyVulns.resolvedAt),(0,b.u)(e.dependencyVulns.package,"next"),(0,b.u)(e.dependencyVulns.direct,!0),(0,b.E)(e.dependencyVulns.fixedVersion))).limit(k.length)).map(a=>a.repoId)):new Set;for(let a of h){if(j.has(a.appId)&&l.has(a.repoId))continue;let b=(0,i.p)({version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[]});b&&g.set(a.appId,{repoId:a.repoId,from:b.from,to:b.to})}return g}a.s(["u",0,N,"J",0,V,"W",0,U,"h",0,X,"H",0,W,"G",0,P],736780)},915598,657582,a=>{var b=a.i(322145),c=a.i(75105),d=a.i(572134);function e(a,b,c){if("building"===a.state)return"building";if(null!==b&&a.id===b)return"current";if("error"===a.state)return"failed";if("preview"===a.target)return"ready"===a.state?"preview":"other";if("ready"!==a.state||null===b)return"other";let d=c.find(a=>a.id===b);if(!d)return"other";if(a.createdAt.getTime()>d.createdAt.getTime())return"staged";let e=c.filter(a=>"ready"===a.state&&a.id!==b&&a.createdAt.getTime()<d.createdAt.getTime()).sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime())[0];return e?.id===a.id?"previous":"other"}let f=a=>{let b;return{id:a.externalId,state:"ready"===(b=a.state)||"building"===b||"error"===b||"canceled"===b?b:"building",target:"production"===a.target?"production":"preview",createdAt:a.createdAt}};function g(a){let b=new Map;for(let c of(function(a){let b=new Map;for(let c of a)b.set(c.appId,[...b.get(c.appId)??[],c]);return b})(a).values()){let a=c.find(a=>a.isCurrent)?.externalId??null,d=c.filter(a=>"production"===a.target).map(f);for(let g of c)b.set(g.externalId,e(f(g),a,d))}return b}a.s(["g",0,function(a,b=!1){switch(a){case"building":return["Cancel"];case"current":return b?[]:["Redeploy"];case"previous":return["Roll back to this"];case"staged":return["Promote"];case"preview":return b?[]:["Promote to production"];default:return[]}},"h",0,function(a){let b=g(a),c=[...a].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),d=a=>c.find(c=>b.get(c.externalId)===a)?.externalId??null;return{currentId:d("current"),previousId:d("previous"),stagedId:d("staged")}},"U",0,e,"S",0,g],657582);let h="This app or its Vercel credential isn't available any more. Reload the page.",i="Already live.",j=new Set(["QUEUED","INITIALIZING","BUILDING"]),k=a=>({done:!1,message:a}),l=(a,b)=>a?.sha?a.sha.slice(0,7):b;async function m(a,c,d){let e=await (0,b.q)(a.id,c,d);if(e)return e;let f=await (0,b.p)(d,"app"),g=f?.resource.meta.teamId;if(!f||"string"!=typeof g||!g||!f.resource.externalId)return h;let i=f.resource.meta.teamSlug;return{member:a,t:f,appId:d,app:f.resource.name,teamId:g,teamSlug:"string"==typeof i?i:"",projectId:f.resource.externalId}}async function n(a){let[b,c]=await Promise.all([(0,d.c)(a.t.token,a.teamId,a.projectId),(0,d.r)(a.t.token,a.teamId,a.projectId)]);return b.ok?c.ok?{ok:!0,data:{name:b.data.name,currentId:b.data.currentId??c.data[0]?.id??null,production:c.data}}:c:b}async function o(a,d,e,f,g=b.W){return g(d.ok?{done:!0,message:e.message,audit:{message:e.audit,resourceId:a.appId}}:{done:!1,failed:"scope"===d.kind?{ok:!1,kind:"scope",status:d.status,error:(0,c.b)("vercel",{team:a.teamSlug})}:404===d.status?{ok:!1,kind:"missing",status:404,error:"Vercel can't find that deployment any more. Reload and try again."}:{ok:!1,kind:"auth"===d.kind?"auth":"format"===d.kind?"format":"transient",...d.status?{status:d.status}:{},error:d.error},audit:{message:f,resourceId:a.appId}},a.member,a.t.account.id)}async function p(a,f,g,h=b.W){{let b=await m(a,"redeploy",f);if("string"==typeof b)return h(k(b),a,"");let i=await n(b);if(!i.ok)return h(k(i.error),a,b.t.account.id);if(i.data.currentId!==g)return h(k(c.G),a,b.t.account.id);if(i.data.production.some(a=>"staged"===e(a,i.data.currentId,i.data.production)))return h(k("Rolled back: promote a deployment first. A redeploy would stay staged and not go live."),a,b.t.account.id);let j=await (0,d.N)(b.t.token,b.teamId,b.projectId);if(!j.ok)return h(k(j.error),a,b.t.account.id);if(j.data)return h(k(`A production build of ${b.app} is already running.`),a,b.t.account.id);let p=l(i.data.production.find(a=>a.id===g),g),q=await (0,d.L)(b.t.token,b.teamId,{projectId:b.projectId,name:i.data.name,deploymentId:g});return o(b,q,{message:`Redeploy requested. Vercel is building ${b.app} again.`,audit:`Redeploy requested \xb7 ${b.app} \xb7 ${p}`},`Redeploy failed \xb7 ${b.app} \xb7 ${p}`,h)}}async function q(a,c,f,g=b.W){{let b=await m(a,"rollback",c);if("string"==typeof b)return g(k(b),a,"");let h=await n(b);if(!h.ok)return g(k(h.error),a,b.t.account.id);if(h.data.currentId===f)return g(k(i),a,b.t.account.id);let j=h.data.production.find(a=>a.id===f);if(!j||"previous"!==e(j,h.data.currentId,h.data.production))return g(k("Hobby can only roll back to the previous production deployment."),a,b.t.account.id);let p=l(j,f),q=await (0,d.E)(b.t.token,b.teamId,b.projectId,f);return o(b,q,{message:`Rolled back ${b.app} to ${p}. New pushes don't go live until you promote one.`,audit:`Rolled back \xb7 ${b.app} → ${p}`},`Roll back failed \xb7 ${b.app} → ${p}`,g)}}a.s(["T",0,/^dpl_[A-Za-z0-9]{8,40}$/,"u",0,h,"G",0,"Vercel can't find that deployment any more. Reload and try again.","f",0,i,"l",0,"Only a ready preview of this app can be promoted to production.","v",0,"Only a ready production deployment newer than the live one can be promoted.","S",0,"Rolled back: promote a production deployment first. A promoted preview would stay staged and not go live.","o",0,j,"X",0,n,"p",0,m,"B",0,p,"C",0,l,"O",0,k,"U",0,q,"J",0,o],915598)},313235,a=>{var b=a.i(927262),c=a.i(462820);let d={workloads:"Workloads",databases:"Databases",network:"Network",observe:"Observe",ai:"AI & API",admin:"Administration"},e={MonitorDown:"workloads",HighLatency:"workloads",DeploymentFailed:"workloads",DatabasePaused:"databases",StorageAlmostFull:"databases",NeonComputeHigh:"databases",FirestoreQuotaHigh:"databases",AutoPauseRisk:"databases",ComputeHigh:"databases",DbQuotaHigh:"databases",CertExpiringSoon:"network",DomainExpiringSoon:"network",DnsProxiedToVercel:"network",CollectorStale:"observe",CredentialExpiring:"admin",VulnerableDependency:"workloads",FrameworkVulnerable:"workloads",MonitorDomainMoved:"workloads",CiFailing:"workloads",OsSecurityUpdate:"observe"},f=new Set(["MonitorDown","HighLatency","DeploymentFailed","VulnerableDependency","FrameworkVulnerable","MonitorDomainMoved","CiFailing"]);a.s(["H",0,d,"p",0,function(a){if((0,b.h)(a.ruleKey))return f.has(a.ruleKey)&&null!==a.resourceKind&&"app"!==a.resourceKind?"observe":e[a.ruleKey];let c=new Set(a.ruleKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),d=(...a)=>a.some(a=>c.has(a));return d("ai","router","gateway","model","models","provider","quota","llm","gemini")?"ai":d("key","keys","member","members","security","audit","credential","credentials","mfa","token")?"admin":d("database","db","storage","compute","neon","supabase","firestore","firebase")?"databases":d("domain","domains","dns","cert","certificate","tls","zone")?"network":"app"===a.resourceKind?"workloads":"observe"},"y",0,a=>c.X.proposedBy(d[a])])},247881,649031,a=>{var b=a.i(488345),c=a.i(342634),d=a.i(313235),e=a.i(188282),f=a.i(416454);let g=["LogErrorSpike","LogErrors","LogDbErrors"],h="timeout|ECONNREFUSED|too many connections|terminating connection|connection terminated|endpoint is disabled|compute.*suspend";RegExp(h,"i");let i=/^dpl_[A-Za-z0-9]{8,40}$/,j=/^ep-[a-z0-9-]{3,60}$/,k=/^[a-z0-9]{8,40}$/;function l(a,d,e){let f=d?(0,b.g)(d,e,120):"";return(0,c.l)((0,b.g)(f?`${a}. Most common: ${f}`:a,e,c.j)||a,c.j)}let m=a=>`${a.ruleKey}:${a.resourceId??""}:${a.action}`,n=new Set(["pending","approved","running"]);a.s(["s",0,864e5,"b",0,72e5,"V",0,3,"N",0,h,"G",0,20,"T",0,g,"v",0,72e5,"H",0,18e5,"w",0,10,"I",0,72e5,"x",0,function(a,b,c){let d=new Set(b.filter(a=>n.has(a.status)||null!==a.closedAt&&c.getTime()-a.closedAt.getTime()<72e5).map(m)),e=new Set;return a.filter(a=>{let b=m(a);return!(d.has(b)||e.has(b))&&(e.add(b),!0)})},"t",0,function(a,b,g){return(function(a,b,d){let e=[],g=d.getTime(),h=null!==a.liveAt&&g-a.liveAt.getTime()<72e5&&a.liveAt.getTime()<=g,m=a.previousNext?.status??"unknown";if(h&&a.errorsSinceLive>=Math.max(10,Math.ceil(5*a.baselineErrors/24))&&a.currentId&&a.previousId&&i.test(a.previousId)&&a.previousId!==a.currentId&&"vulnerable"!==m){let d=l(`${a.errorsSinceLive} errors since the deploy went live ${Math.max(1,Math.round((g-a.liveAt.getTime())/6e4))} min ago (${a.baselineErrors} in the 24 h before)`,a.topSinceLive,b);e.push({ruleKey:"LogErrorSpike",room:"workloads",action:"vercel_rollback",resourceKind:"app",resourceId:a.appId,targetRef:a.previousId,reason:"ok"===m?d:(0,c.l)(`${f.B} ${d}`)})}let n=null!==a.lastDeployAt&&g-a.lastDeployAt.getTime()<72e5;if(a.errors30>=20&&!n&&a.httpMonitorId&&e.push({ruleKey:"LogErrors",room:"workloads",action:"recheck",resourceKind:"app",resourceId:a.appId,targetRef:a.httpMonitorId,reason:l(`${a.errors30} errors in the last 30 min`,a.top30,b)}),a.dbErrors30>=3&&a.db){let c=l(`${a.dbErrors30} database connection errors in the last 30 min`,a.topDb,b),d=a.db;("neon_project"===d.kind||"neon_branch"===d.kind)&&d.wakeEndpoint&&j.test(d.wakeEndpoint)?e.push({ruleKey:"LogDbErrors",room:"databases",action:"neon_wake",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.wakeEndpoint,reason:c}):"supabase_project"===d.kind&&d.supabasePaused&&d.supabaseRef&&k.test(d.supabaseRef)&&e.push({ruleKey:"LogDbErrors",room:"databases",action:"supabase_restore",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.supabaseRef,reason:c})}return e})(a,b,g).map(f=>{let h="app"===f.resourceKind?(0,c.J)("app",a.appId,a.appName,b):(0,c.J)(f.resourceKind,f.resourceId,null,b);return{alertId:null,ruleKey:f.ruleKey,room:f.room,action:f.action,risk:e.H[f.action].risk,title:(0,c.M)(f.action,h),reason:f.reason,resourceKind:f.resourceKind,resourceId:f.resourceId,resourceName:h,targetRef:f.targetRef,proposedBy:(0,d.y)(f.room),expiresAt:new Date(g.getTime()+e.V)}})},"D",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<27e4))&&(Math.floor(c/6e4)%5==0||null!==b&&c-b>=6e5)},"W",0,function(a,b){let c=new Set(b.map(m));return a.filter(a=>{let b;return"pending"===a.status&&(b=a.ruleKey,g.includes(b))&&!c.has(m(a))}).map(a=>a.id)}],247881);let o=new Set(["MonitorDown","LogErrorSpike"]);a.s(["r",0,72e5,"M",0,o,"s",0,function(a,b){let c=a=>({ok:!1,why:a});if(!a.setting.enabled)return c("off");if(!a.ruleKey||!o.has(a.ruleKey))return c("rule");let d=a.deploy;if(!d||!d.liveAt)return c("no live deploy");let e=b.getTime()-d.liveAt.getTime();return e<0||e>6e4*a.setting.windowMin?c("outside the window"):d.previousId&&a.targetRef===d.previousId&&d.previousId!==d.currentId?d.newestProdCreatedAt&&d.currentCreatedAt.getTime()<d.newestProdCreatedAt.getTime()?c("live deploy is a rollback"):a.rolledOrPromotedLately?c("live deploy came from a rollback or promote"):"ready"!==(d.previousState??"").toLowerCase()?c("previous not ready"):!d.previousCreatedAt||b.getTime()-d.previousCreatedAt.getTime()>2592e6?c("previous too old"):"vulnerable"===a.previousNext?c("previous Next.js has advisories"):"ok"!==a.previousNext?c("previous Next.js unknown"):a.autoLately?c("auto-rollback within 2 h"):a.sameDeployBefore?c("already rolled back once"):a.inFlight?c("another auto-rollback is running"):{ok:!0}:c("target changed")},"u",0,(a,b,d)=>(0,c.l)(`Automatic: the new deploy ${a} errored in the first ${b} minutes. ${d}`),"E",0,a=>a.currentSha&&/^[0-9a-f]{7,40}$/i.test(a.currentSha)?a.currentSha.slice(0,7):a.currentId.slice(0,16)],649031)},691100,a=>{let b;var c,d=a.i(93321),e=a.i(530385),f=a.i(351674),g=a.i(548734),h=a.i(462820),i=a.i(837137),j=a.i(247730),k=a.i(455317),l=a.i(930270),m=a.i(396667),n=a.i(160147),o=a.i(767163),p=a.i(757902),q=a.i(436357),r=a.i(893893),s=a.i(556987),t=a.i(142754),u=a.i(342634),v=a.i(247881),w=a.i(649031),x=a.i(381544),y=a.i(138984),z=a.i(492665),A=a.i(221084),B=a.i(736780),C=a.i(560954),D=a.i(895176),E=a.i(305731),F=a.i(30184),G=a.i(721170),H=a.i(322145),I=a.i(248358),J=a.i(915598),K=a.i(312573),L=a.i(323878),M=a.i(19809),N=a.i(371289),O=a.i(94473),P=a.i(188282);let Q={checkMonitorNow:D.X,keepAliveNow:C.v,wakeAs:G.v,supabaseAct:I.Q,redeployAs:J.B,rollbackAs:J.U,finish:H.W,recordAction:A.f,limit:L.C,bumpPrAs:B.W,autoSecurity:()=>(0,O.X)(),recheckDomain:F._,moveMonitorToDomain:E.f};async function R(){let[a]=await (0,g.f)().select({at:i.collectorRuns.startedAt}).from(i.collectorRuns).where(f.B`(${i.collectorRuns.trigger} = 'vercel_cron' or (${i.collectorRuns.trigger} = 'manual' and ${i.collectorRuns.tasks} ? 'rollups'))`).orderBy((0,e.A)(i.collectorRuns.startedAt)).limit(1);return a?.at??null}async function S(a){let b=await (a.lastDailyRunAt??R)(),c=(a.now??(()=>new Date))();if(b&&c.getTime()-b.getTime()<216e5)return{ok:!1,error:"The daily job ran less than 6 hours ago."};let d=(a.dailyTarget??function(){let a=(0,y.f)();return a?{url:`${(0,z.f)().SITE_URL.replace(/\/+$/,"")}/api/daily`,secret:a.CRON_SECRET}:null})();if(!d)return{ok:!1,error:"The scheduler settings are missing, so the daily job can't be started."};try{let b=await (a.fetch??fetch)(d.url,{headers:{Authorization:`Bearer ${d.secret}`},signal:AbortSignal.timeout(4e4),redirect:"manual"});if(!b.ok||b.status>=300)return{ok:!1,error:`The daily job route answered ${b.status}.`};return{ok:!0,message:`Daily job ran again (${b.status}).`}}catch(a){if(a instanceof Error&&("TimeoutError"===a.name||"AbortError"===a.name))return{ok:!0,message:"Daily job started; it's still running — the heartbeat turns Up when it finishes."};throw a}}let T="The proposal's target is missing, so it can't run.";async function U(a,b,c=Q){let d="auto"===b,e=d?{id:u.e,userId:null}:{id:b.id,userId:b.userId},f=(a,b,e)=>c.finish(a,b,e,{refresh:!1,...d?{auditPrefix:u.v}:{}});try{if(!a.resourceId||!a.targetRef)return{ok:!1,error:T};if((0,N.W)()&&"recheck"!==a.action)return await c.recordAction({kind:"ok",message:`${d?u.v:""}${P.H[a.action].label} (simulated)`,detail:"Simulated in the demo",resourceId:a.resourceId,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:M.r};switch(a.action){case"recheck":{let b=await c.limit(K.t.check,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await c.checkMonitorNow(a.targetRef);if(!f.ok)return{ok:!1,error:f.error};if(f.audit)try{await c.recordAction({kind:!1===f.passed?"err":"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId})}catch{console.warn("audit event failed")}return{ok:!0,message:f.message}}case"domain_recheck":{let b=await c.limit(K.t.domainCheck,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.recheckDomain??F._)(a.targetRef);if(!f.ok)return f;return await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"monitor_update_url":{let b=await c.limit(K.t.monitorWrite,e.id);if(!b.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.moveMonitorToDomain??E.f)(a.targetRef);if(!f.ok)return f;return f.audit&&await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"daily_rerun":return await S(c);case"neon_wake":return await c.wakeAs(e,a.resourceId,a.targetRef,f);case"supabase_keepalive":return await c.keepAliveNow(e,a.resourceId,f);case"supabase_restore":return await c.supabaseAct("restore",e,a.resourceId,a.targetRef,f);case"vercel_redeploy":return await c.redeployAs(e,a.resourceId,a.targetRef,f);case"vercel_rollback":return await c.rollbackAs(e,a.resourceId,a.targetRef,f);case"github_bump_pr":{let b=d?await (c.autoSecurity??O.X)():null;if(d&&!b?.enabled)return{ok:!1,error:"Automatic security fixes is off."};return await (c.bumpPrAs??B.W)(e,a.resourceId,a.targetRef,f,{proposalId:a.proposalId??null,...b?{auto:{severities:b.severities}}:{},..."FrameworkVulnerable"===a.ruleKey?{framework:!0}:{}})}default:return{ok:!1,error:T}}}catch(a){return console.warn(`${h.X.logTag}/proposals run failed:`,a instanceof Error?a.name:"error"),{ok:!1,error:"Something went wrong while running it. Check the console page before trying again."}}}var V=a.i(416454);let W={id:t.O.id,room:t.O.room,action:t.O.action,risk:t.O.risk,title:t.O.title,reason:t.O.reason,resourceName:t.O.resourceName,proposedBy:t.O.proposedBy,status:t.O.status,auto:t.O.auto,result:t.O.result,createdAt:t.O.createdAt,decidedAt:t.O.decidedAt,expiresAt:t.O.expiresAt},X={...W,resourceId:t.O.resourceId,targetRef:t.O.targetRef,ruleKey:t.O.ruleKey,alertId:t.O.alertId};async function Y(a,b,c){let e=(0,u.z)(a,b),h=new Set(e.deployApps),j=a.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&a.resourceId&&h.has(a.resourceId)&&a.startedAt),[k,m,n,o,p,r,s,t,v]=await Promise.all([e.monitorIds.length?(0,g.f)().select({id:i.monitors.id,kind:i.monitors.kind,url:i.monitors.url,lastError:i.monitors.lastError,appId:i.monitors.resourceId,appName:i.resources.name,appMeta:i.resources.meta}).from(i.monitors).innerJoin(i.resources,(0,d.u)(i.resources.id,i.monitors.resourceId)).where((0,d.y)(i.monitors.id,e.monitorIds)):[],e.deployApps.length?(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,e.deployApps),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))):[],e.supabaseIds.length?(0,g.f)().select({id:i.resources.id,ref:i.resources.externalId}).from(i.resources).where((0,d.b)((0,d.y)(i.resources.id,e.supabaseIds),(0,d.u)(i.resources.kind,"supabase_project"),f.B`${i.resources.goneAt} is null`)):[],e.monitorApps.length?ac(e.monitorApps):new Map,e.depApps.length?aa(a,e.depApps).catch(()=>new Set).then(a=>(0,l.C)(e.depApps,a)).catch(()=>new Map):new Map,e.monitorIds.length?ab(e.monitorIds):null,e.frameworkApps.length?(0,B.h)(e.frameworkApps,e.depApps).catch(()=>new Map):new Map,j.length?Z(j.map(a=>a.subject),b).catch(()=>[]):[],$(e.deployApps)]),w=k.some(a=>null!==(0,q.Y)(a.appMeta)),x=w?await (0,g.f)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta}).from(i.resources).where((0,d.b)((0,d.u)(i.resources.kind,"app"),(0,d.u)(i.resources.monitored,!0),(0,d.M)(i.resources.goneAt))).limit(500):[],y=w?(0,q.P)(k,x):new Map,z=[...[...p].map(([a,b])=>({appId:a,repoId:b})),...[...s].map(([a,b])=>({appId:a,repoId:b.repoId}))],A=z.length?await Promise.resolve().then(()=>(0,B.H)(z,b)).catch(()=>new Map):new Map,C=new Map,D=new Map;for(let a of m){let b=C.get(a.app)??{currentId:null,previousId:null,liveAt:null};a.isCurrent?(b.currentId=a.id,b.liveAt=a.readyAt??a.createdAt??null):a.isPrevious&&(b.previousId=a.id,D.set(a.app,a.readyAt??a.createdAt??null)),C.set(a.app,b)}let E=new Map;for(let[a,b]of C)b.previousId&&E.set(a,_(v,a,b.liveAt,D.get(a)??null));let F=new Map(j.map(a=>[a.id,(0,V.g)(a.startedAt,t.filter(b=>b.ruleKey===a.ruleKey&&b.subject===a.subject),{ruleKey:a.ruleKey,liveAt:C.get(a.resourceId)?.liveAt??null})]));return{monitorKinds:new Map(k.map(a=>[a.id,String(a.kind)])),deploys:C,...void 0!==c?{rollbackWindowMs:c}:{},supabaseRefs:new Map(n.map(a=>[a.id,a.ref])),neonSuspended:o,fixableRepos:p,dailyHeartbeatId:r,frameworkFixes:s,monitorMoves:y,problemSince:F,previousNext:E,...A.size?{productionMismatch:A}:{}}}async function Z(a,b){return(0,g.f)().select({ruleKey:i.alerts.ruleKey,subject:i.alerts.subject,startedAt:i.alerts.startedAt,resolvedAt:i.alerts.resolvedAt}).from(i.alerts).where((0,d.b)((0,d.y)(i.alerts.ruleKey,["MonitorDown","HighLatency"]),(0,d.y)(i.alerts.subject,[...new Set(a)]),(0,d.E)(i.alerts.resolvedAt),(0,d.B)(i.alerts.resolvedAt,new Date(b.getTime()-V.A)))).orderBy((0,e.A)(i.alerts.startedAt)).limit(500)}async function $(a){let b={checks:new Map,events:new Map,frameworks:new Map};if(!a.length)return b;try{let[c,f,h]=await Promise.all([(0,g.f)().select({app:i.appSecurity.resourceId,version:i.appSecurity.version,status:i.appSecurity.status,findings:i.appSecurity.findings,checkedAt:i.appSecurity.checkedAt,reason:i.appSecurity.reason}).from(i.appSecurity).where((0,d.y)(i.appSecurity.resourceId,a)).limit(a.length),(0,g.f)().select({app:i.events.resourceId,at:i.events.at,reason:i.events.reason,message:i.events.message}).from(i.events).where((0,d.b)((0,d.y)(i.events.reason,[...V.Y]),(0,d.y)(i.events.resourceId,a))).orderBy((0,e.A)(i.events.at)).limit(Math.min(500,50*a.length)),(0,g.f)().select({app:i.resources.id,meta:i.resources.meta}).from(i.resources).where((0,d.y)(i.resources.id,a)).limit(a.length)]);for(let a of c)b.checks.set(a.app,{version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[],checkedAt:a.checkedAt,reason:a.reason});for(let a of f)a.app&&b.events.set(a.app,[...b.events.get(a.app)??[],{at:a.at,reason:a.reason,message:a.message}]);for(let a of h){let c=a.meta&&"object"==typeof a.meta?a.meta.framework:null;b.frameworks.set(a.app,"string"==typeof c?c:null)}}catch{return{checks:new Map,events:new Map,frameworks:new Map}}return b}let _=(a,b,c,d)=>(0,V.Q)({currentLiveAt:c,previousLiveAt:d,check:a.checks.get(b)??null,events:a.events.get(b)??[],framework:a.frameworks.get(b)??null});async function aa(a,b){let c=new Set(b),e=a.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind&&a.resourceId&&c.has(a.resourceId)).map(a=>a.id);return e.length?new Set((await (0,g.f)().selectDistinct({resourceId:t.O.resourceId}).from(t.O).where((0,d.b)((0,d.u)(t.O.ruleKey,"FrameworkVulnerable"),(0,d.u)(t.O.action,"github_bump_pr"),(0,d.y)(t.O.status,["pending","approved","running","done"]),(0,d.y)(t.O.alertId,e),(0,d.y)(t.O.resourceId,[...c]))).limit(e.length)).flatMap(a=>a.resourceId?[a.resourceId]:[])):new Set}async function ab(a){let b=(0,o.i)(process.env.DAILY_HEARTBEAT_TOKEN);if(!b)return null;let[c]=await (0,g.f)().select({id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.id,a),(0,d.u)(i.monitors.kind,"heartbeat"),(0,d.u)(i.monitors.tokenHash,(0,p.C)(b)))).limit(1).catch(()=>[]);return c?.id??null}async function ac(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch"]),f.B`${i.resources.goneAt} is null`)),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,h=[...new Set(b.map(e).filter(a=>!!a))];if(!h.length)return c;let j=new Map((await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,h))).map(a=>[a.id,(0,r.k)(r.s,a.data)]));for(let a of b){let b=e(a),d=b?j.get(b):void 0,f=d?(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null):null;f&&c.set(a.app,{resourceId:a.id,resourceKind:a.kind,endpointId:f})}return c}async function ad(a){if(!a.length)return[];let b=new Set((await (0,g.f)().select({alertId:t.O.alertId,action:t.O.action}).from(t.O).where((0,d.y)(t.O.alertId,[...new Set(a.map(a=>a.alertId))]))).map(a=>`${a.alertId}:${a.action}`)),c=a.filter(a=>!b.has(`${a.alertId}:${a.action}`));return c.length?(0,g.f)().insert(t.O).values(c.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X):[]}async function ae(a,b){return(await (0,g.f)().select(W).from(t.O).where(f.B`${t.O.createdAt} >= ${new Date(a.getTime()-6048e5).toISOString()}::timestamptz`).orderBy(f.B`case when ${t.O.status} = 'pending' then 0 else 1 end`,(0,e.A)(t.O.createdAt),(0,e.A)(t.O.id)).limit(b)).map(u.E)}async function af(a){let[b]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return b?(0,u.E)(b):null}async function ag(a,b,c,e){let[h]=await (0,g.f)().update(t.O).set({status:"approve"===b?"approved":"rejected",decidedBy:c,decidedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),f.B`${t.O.expiresAt} > ${e.toISOString()}::timestamptz`)).returning(X);if(h)return{status:"ok",proposal:(0,u.E)(h),row:h};let[i]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return i?{status:"conflict",proposal:(0,u.E)(i)}:{status:"missing"}}async function ah(a,b){let[c]=await (0,g.f)().update(t.O).set({status:"running",claimedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"approved"))).returning(X);return c??null}async function ai(a,b,c,e){let[f]=await (0,g.f)().update(t.O).set({status:b?"done":"failed",result:c,finishedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"running"))).returning(X);return f??null}let aj={run:(a,b)=>U(a,b),book:()=>(0,j.f)()};async function ak(a,b,c,d=aj){let e=await ah(a,c);if(!e)return null;let f=await d.run({action:e.action,resourceId:e.resourceId,targetRef:e.targetRef,proposalId:e.id,ruleKey:e.ruleKey??null},b),g=await d.book().catch(()=>s.a),h=await ai(a,f.ok,(0,u.x)(f,g),new Date);return h?(0,u.E)(h):null}async function al(a,b){let c=await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: nobody decided in time, or the alert stopped firing."}).where((0,d.b)((0,d.u)(t.O.status,"pending"),(0,d.F)((0,d.S)(t.O.expiresAt,new Date(b.getTime()+1)),(0,d.b)((0,d.E)(t.O.alertId),a.length?(0,d.$)(t.O.alertId,a):f.B`true`)))).returning({id:t.O.id});return await (0,g.f)().update(t.O).set({status:"failed",result:"The run was interrupted. Check the console page before trying again.",finishedAt:b}).where((0,d.b)((0,d.u)(t.O.status,"running"),(0,d.S)(t.O.claimedAt,new Date(b.getTime()-u.L)))),c.length}async function am(a){await (0,g.f)().delete(t.O).where((0,d.b)((0,d.S)(t.O.createdAt,new Date(a.getTime()-2592e6)),(0,d.$)(t.O.status,["pending","approved","running"])))}let an=f.B`(${i.storedLogs.level} in ('error', 'fatal') or coalesce(${i.storedLogs.statusCode}, 0) >= 500)`,ao=f.B`coalesce(${i.deployments.readyAt}, ${i.deployments.createdAtProvider})`;async function ap(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch","supabase_project"]),(0,d.M)(i.resources.goneAt))),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,f=[...new Set(b.map(e).filter(a=>!!a))],h=new Map((f.length?await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,f)):[]).map(a=>[a.id,a.data]));for(let a of b){let b=h.get(e(a)??"");if("supabase_project"===a.kind){let d=(0,r.k)(r.B,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:null,supabaseRef:a.externalId,supabasePaused:"INACTIVE"===d.status})}else{let d=(0,r.k)(r.s,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null),supabaseRef:null,supabasePaused:!1})}}return c}let aq={apps:async function(a){let b=new Date(a.getTime()-v.I-v.s),c=f.B`${i.storedLogs.at} >= ${new Date(a.getTime()-v.H).toISOString()}::timestamptz`,e=f.B`${i.storedLogs.message} ~* ${v.N}`,h=f.B`left(${i.storedLogs.message}, 200)`,j=(await (0,g.f)().select({appId:i.storedLogs.resourceId,appName:f.B`max(${i.resources.name})`,liveAt:f.B`max(${ao})`.mapWith(i.deployments.readyAt),currentId:f.B`max(${i.deployments.externalId})`,errorsSinceLive:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`.mapWith(Number),baselineErrors:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao} - interval '24 hours' and ${i.storedLogs.at} < ${ao})`.mapWith(Number),topSinceLive:f.B`mode() within group (order by ${h}) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`,errors30:f.B`count(*) filter (where ${an} and ${c})`.mapWith(Number),top30:f.B`mode() within group (order by ${h}) filter (where ${an} and ${c})`,dbErrors30:f.B`count(*) filter (where ${c} and ${e})`.mapWith(Number),topDb:f.B`mode() within group (order by ${h}) filter (where ${c} and ${e})`}).from(i.storedLogs).innerJoin(i.resources,(0,d.u)(i.resources.id,i.storedLogs.resourceId)).leftJoin(i.deployments,(0,d.b)((0,d.u)(i.deployments.resourceId,i.storedLogs.resourceId),(0,d.u)(i.deployments.isCurrent,!0))).where((0,d.b)((0,d.B)(i.storedLogs.at,b),(0,d.u)(i.resources.kind,"app"),(0,d.M)(i.resources.goneAt))).groupBy(i.storedLogs.resourceId)).filter(a=>a.errorsSinceLive>=v.w||a.errors30>=v.G||a.dbErrors30>=v.V);if(!j.length)return[];let k=j.map(a=>a.appId),[l,m,n]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,previousId:f.B`max(${i.deployments.externalId}) filter (where ${i.deployments.isPreviousProduction})`,previousLiveAt:f.B`max(${ao}) filter (where ${i.deployments.isPreviousProduction})`.mapWith(i.deployments.readyAt),lastDeployAt:f.B`max(${i.deployments.createdAtProvider}) filter (where ${i.deployments.target} = 'production')`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,k),(0,d.F)((0,d.u)(i.deployments.isPreviousProduction,!0),(0,d.B)(i.deployments.createdAtProvider,new Date(a.getTime()-v.v))))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.monitors.resourceId,id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.resourceId,k),(0,d.u)(i.monitors.kind,"http"),(0,d.u)(i.monitors.paused,!1),(0,d.u)(i.monitors.ownerPaused,!1))).orderBy(i.monitors.createdAt),ap(k)]),o=new Map(l.map(a=>[a.app,a])),p=new Map;for(let a of m)p.has(a.app)||p.set(a.app,a.id);let q=j.filter(a=>a.errorsSinceLive>=v.w&&a.liveAt&&o.get(a.appId)?.previousId).map(a=>a.appId),r=q.length?await $(q):null;return j.map(a=>({...a,appName:a.appName??"",previousId:o.get(a.appId)?.previousId??null,lastDeployAt:o.get(a.appId)?.lastDeployAt??null,httpMonitorId:p.get(a.appId)??null,db:n.get(a.appId)??null,...r&&q.includes(a.appId)?{previousNext:_(r,a.appId,a.liveAt,o.get(a.appId)?.previousLiveAt??null)}:{}}))},rows:async function(a){let b=f.B`coalesce(${t.O.finishedAt}, ${t.O.decidedAt}, ${t.O.expiresAt})`;return(0,g.f)().select({id:t.O.id,ruleKey:t.O.ruleKey,resourceId:t.O.resourceId,action:t.O.action,status:t.O.status,closedAt:b.mapWith(t.O.finishedAt)}).from(t.O).where((0,d.b)((0,d.M)(t.O.alertId),(0,d.y)(t.O.ruleKey,[...v.T]),(0,d.F)((0,d.y)(t.O.status,["pending","approved","running"]),f.B`${b} > ${new Date(a.getTime()-v.b).toISOString()}::timestamptz`)))}};async function ar(a,b,c=aq){let[e,f]=await Promise.all([c.apps(a),c.rows(a)]),h=e.flatMap(c=>(0,v.t)(c,b,a)),i=(0,v.W)(f,h),j=0;i.length&&(j=(await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: the logs no longer show it.",finishedAt:a}).where((0,d.b)((0,d.y)(t.O.id,i),(0,d.u)(t.O.status,"pending"))).returning({id:t.O.id})).length);let k=(0,v.x)(h,f,a);return k.length?{created:await (0,g.f)().insert(t.O).values(k.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X),expired:j}:{created:[],expired:j}}let as=null;async function at(a,b){return(0,v.D)(a,as)?(as=a.getTime(),ar(a,await b())):{created:[],expired:0}}async function au(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.risk,"safe"))).returning({id:t.O.id})).length>0}async function av(a,b){let c=new Date(b.getTime()-w.r),[e,h,j,k,l]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,sha:i.deployments.commitSha,state:i.deployments.state,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))),(0,g.f)().select({app:i.deployments.resourceId,at:f.B`max(${i.deployments.createdAtProvider})`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.u)(i.deployments.target,"production"),(0,d.u)(i.deployments.state,"ready"))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.events.resourceId}).from(i.events).where((0,d.b)((0,d.u)(i.events.type,"action"),(0,d.y)(i.events.resourceId,a),(0,d.B)(i.events.at,c),f.B`${i.events.message} ~ ${aw}`)),(0,g.f)().select({app:t.O.resourceId,targetRef:t.O.targetRef,status:t.O.status,decidedAt:t.O.decidedAt}).from(t.O).where((0,d.b)((0,d.u)(t.O.action,"vercel_rollback"),(0,d.u)(t.O.auto,!0),(0,d.B)(t.O.createdAt,new Date(b.getTime()-26784e5)))),$(a)]),m=new Map;for(let b of a){let a=e.find(a=>a.app===b&&a.isCurrent),d=e.find(a=>a.app===b&&a.isPrevious&&!a.isCurrent),f=k.filter(a=>a.app===b);m.set(b,{deploy:a?{currentId:a.id,currentSha:a.sha,liveAt:a.readyAt??a.createdAt,currentCreatedAt:a.createdAt,newestProdCreatedAt:h.find(a=>a.app===b)?.at??null,previousId:d?.id??null,previousState:d?.state??null,previousCreatedAt:d?.createdAt??null}:null,rolledOrPromotedLately:j.some(a=>a.app===b),autoLately:f.some(a=>null!==a.decidedAt&&a.decidedAt.getTime()>=c.getTime()),sameDeployBefore:!!d&&f.some(a=>a.targetRef===d.id),previousNext:a&&d?_(l,b,a.readyAt??a.createdAt,d.readyAt??d.createdAt).status:"unknown"})}return{apps:m,inFlight:k.some(a=>"approved"===a.status||"running"===a.status)}}let aw="(Rolled back|Promoted|Preview promoted) ·";async function ax(a,b,c){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:c,reason:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"vercel_rollback"),f.B`not exists (select 1 from ops.action_proposals x where x.action = 'vercel_rollback' and x.auto and x.status in ('approved', 'running'))`)).returning({id:t.O.id})).length>0}async function ay(a,b,c,d){let e=a.filter(a=>"vercel_rollback"===a.action&&a.ruleKey&&w.M.has(a.ruleKey)&&a.resourceId);if(!e.length||!d.autoRollback||!d.rollbackContext||!d.approveAutoRollback)return[];let f=await d.autoRollback().catch(()=>null);if(!f?.enabled||15e3>c())return[];let g=[];try{let a=await d.rollbackContext([...new Set(e.map(a=>a.resourceId))],b),i=a.inFlight;for(let j of e){let e=a.apps.get(j.resourceId);if(!e||12e3>c())continue;let k=(0,w.s)({setting:f,ruleKey:j.ruleKey??null,targetRef:j.targetRef,inFlight:i,...e},b);if(!k.ok){console.log(`${h.X.logTag}/auto-rollback: skipped (${k.why})`);continue}let l=(0,w.E)(e.deploy);if(!await d.approveAutoRollback(j.id,(0,w.u)(l,f.windowMin,j.reason),new Date))continue;i=!0;let m=await d.execute(j.id,new Date);if(m){g.push(m),await (d.notifyRollback??x.q)(m,{reason:j.reason,newRef:l},{},{alertId:j.alertId??null}).catch(()=>void 0);break}}}catch(a){console.warn(`${h.X.logTag}/auto-rollback failed:`,a instanceof Error?a.name:"error")}return g}async function az(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"github_bump_pr"))).returning({id:t.O.id})).length>0}async function aA(a,b,c){let d=a.filter(a=>"github_bump_pr"===a.action&&a.targetRef);if(!d.length||!c.autoSecurity||!c.bumpReady||!c.approveAutoBump)return[];let e=await c.autoSecurity().catch(()=>null);if(!e?.enabled||!e.severities.length)return[];let f=[];for(let a of d){if(15e3>b())break;try{if(a.resourceId&&c.prodMismatch?await c.prodMismatch(a.resourceId,a.targetRef).catch(()=>"unknown"):null){console.log(`${h.X.logTag}/auto-security: waits for the owner (production source)`);continue}let b="FrameworkVulnerable"===a.ruleKey&&a.resourceId?await c.bumpReady(a.targetRef,e.severities,{appId:a.resourceId}):await c.bumpReady(a.targetRef,e.severities);if(!b.ok){console.log(`${h.X.logTag}/auto-security: waits for the owner (${b.why})`);continue}if(!await c.approveAutoBump(a.id,new Date))continue;let d=await c.execute(a.id,new Date);d&&f.push(d)}catch(a){console.warn(`${h.X.logTag}/auto-security failed:`,a instanceof Error?a.name:"error")}}return f}async function aB(a,b){return(await (0,B.H)([{appId:a,repoId:b}],new Date)).get(a)??null}async function aC(a){return new Map((await (0,g.f)().select({id:i.accounts.id,provider:i.accounts.provider}).from(i.accounts).where((0,d.y)(i.accounts.id,a))).map(a=>[a.id,a.provider]))}let aD={firing:()=>(0,k.q)(),book:()=>(0,j.f)(),facts:Y,create:ad,expire:al,autoRun:O.I,approveAuto:au,execute:(a,b)=>ak(a,"auto",b),notifyNew:x.i,notifyResult:x.b,logs:at,autoRollback:()=>(0,O.K)(),rollbackContext:av,approveAutoRollback:ax,notifyRollback:x.q,autoSecurity:()=>(0,O.X)(),bumpReady:B.J,approveAutoBump:az,paused:m.I,providers:aC,prodMismatch:aB};async function aE(a,b={},c=aD){let d={created:0,expired:0,autoRan:0},e=()=>(b.deadline??1/0)-Date.now(),f=await c.firing();d.expired=await c.expire(f.map(a=>a.id),a);let g=c.paused?await c.paused().catch(()=>new Set):new Set,i=[...new Set(f.flatMap(a=>a.accountId?[a.accountId]:[]))],j=g.size&&i.length&&c.providers?await c.providers(i).catch(()=>new Map):new Map,k=f.filter(a=>!(0,n.O)(g,a.ruleKey,a.accountId?j.get(a.accountId):null)),l=null,m=()=>l??=c.book().catch(()=>s.a),o=[],p=(0,u.z)(k,a);if(Object.values(p).some(a=>a.length>0)){let b=p.deployApps.length&&c.autoRollback?await c.autoRollback().catch(()=>null):null,d=await c.facts(k,a,b?6e4*b.windowMin:void 0),e=await m(),f=k.flatMap(b=>(0,u.t)(b,d,e,a)).filter(a=>!("github_bump_pr"===a.action&&g.has("devops")));o.push(...await c.create(f))}if(e()>1e4&&!g.has("hosting"))try{let b=await c.logs(a,m);o.push(...b.created),d.expired+=b.expired}catch(a){console.warn(`${h.X.logTag}/proposals logs failed:`,a instanceof Error?a.name:"error")}if(d.created=o.length,!o.length)return d;let q=await c.autoRun().catch(()=>null),r=await ay(o,a,e,c);d.autoRan+=r.length;let t=await aA(o.filter(a=>!r.some(b=>b.id===a.id)),e,c),v=new Set(r.map(a=>a.id)),w=[...t];for(let a of(d.autoRan+=t.length,t))v.add(a.id);for(let a of o){if(v.has(a.id)||!q||!(0,u.I)(a.action,q)||8e3>e()||!await c.approveAuto(a.id,new Date))continue;let b=await c.execute(a.id,new Date);b&&(w.push(b),d.autoRan++)}let x=new Set([...w.map(a=>a.id),...v]),y=o.filter(a=>"LogErrorSpike"===a.ruleKey&&a.resourceId).map(a=>({proposalId:a.id,appId:a.resourceId})),z=y.length&&c.queueDev?await c.queueDev(y,a).catch(()=>new Set):new Set,A=new Map(o.map(a=>[a.id,a.alertId??null]));for(let a of(await c.notifyNew(o.filter(a=>!x.has(a.id)).map(u.E),{},{devQueued:z,alertIds:A}).catch(()=>void 0),w))await c.notifyResult(a,{},{alertId:A.get(a.id)??null}).catch(()=>void 0);return d}let aF=(c={},b={...aD,queueDev:c.queueDev},async(a,c)=>{try{let d=await aE(a,c??{},b);(d.created||d.expired||d.autoRan)&&console.log(`${h.X.logTag}/proposals: ${d.created} new, ${d.expired} expired, ${d.autoRan} auto-ran`)}catch(a){console.warn(`${h.X.logTag}/proposals failed:`,a instanceof Error?a.name:"error")}});a.s(["V",0,ag,"N",0,ak,"Q",0,ae,"Z",0,aF,"t",0,am,"K",0,af],691100)},381544,a=>{var b=a.i(462820),c=a.i(532620),d=a.i(49146),e=a.i(390626),f=a.i(192738),g=a.i(492665),h=a.i(552543),i=a.i(446914),j=a.i(556987),k=a.i(488345),l=a.i(94473),m=a.i(188282);let n={target:d.Q,book:()=>(0,c.e)(),siteUrl:()=>(0,g.f)().SITE_URL,autoRun:()=>(0,l.I)(),send:(a,b,c,d,e)=>(0,i.I)(a,b,c,{...d?{replyMarkup:d}:{},...e?{replyTo:e}:{}}),record:(a,b)=>(0,d.P)("telegram",a,b),lang:()=>(0,h.I)("telegram"),discord:()=>(0,d.G)(),sendDiscord:(a,b)=>(0,e.$)(a,b,{timeoutMs:w}),recordDiscord:(a,b)=>(0,d.P)("discord",a,b),discordLang:()=>(0,h.I)("discord"),buttons:()=>a.A(801116).then(a=>a.approvalButtons()),thread:a=>(0,d.M)(a)},o={en:{pending:"Status: ⏳ waiting",dev:"🧑‍💻 Dev is checking the code",proposer:b.X.notifyFallback.en,app:"app",safe:"safe",risky:"needs care",proposes:"proposes",why:"Why",risk:"Risk",open:"Open in Auto-actions",waitingN:"new proposals waiting for approval:",moreN:"more proposals",automatic:"Automatic",rollbackWhy:"the app errored after the new deploy",succeeded:"Succeeded",failed:"Failed",stopFallback:"something failed"},id:{pending:"Status: ⏳ menunggu",dev:"🧑‍💻 Dev lagi cek kodenya",proposer:b.X.notifyFallback.id,app:"aplikasi",safe:"aman",risky:"perlu hati-hati",proposes:"usul",why:"Kenapa",risk:"Risiko",open:"Buka di Auto-actions",waitingN:"usulan baru menunggu persetujuan:",moreN:"usulan lagi",automatic:"Otomatis",rollbackWhy:"app-nya error setelah deploy baru",succeeded:"Berhasil",failed:"Gagal",stopFallback:"ada yang gagal"}},p={recheck:"Cek ulang sekarang",neon_wake:"Bangunin Neon",supabase_keepalive:"Kirim keep-alive Supabase",supabase_restore:"Restore project Supabase",vercel_redeploy:"Redeploy production",vercel_rollback:"Rollback ke deploy sebelumnya",github_bump_pr:"Bikin PR update paket",domain_recheck:"Cek ulang sertifikat domain",daily_rerun:"Jalanin ulang daily job",monitor_update_url:"Arahin monitor ke domain baru"},q=(a="en")=>(0,h.t)(o,a,"dev"),r=(a,b)=>("id"===b?p[a.action]:void 0)??m.H[a.action]?.label??a.actionLabel,s=(a,b)=>(0,h.t)(o,b,"risky"===a.risk||m.H[a.action]?.risk==="risky"?"risky":"safe"),t=(a,b)=>`${a.replace(/\/+$/,"")}/auto-actions${b?`?proposal=${encodeURIComponent(b)}`:""}`;function u(a,b,c,d=!1,e="en"){let g=a=>(0,h.t)(o,e,a),i=(0,k.R)(a.proposedBy,b,60)||g("proposer"),j=(0,k.R)(a.title,b,120),l=(0,k.R)(a.reason,b,200)||"-";return[`🧑‍✈️ ${(0,f.H)(i)} ${g("proposes")}: ${(0,f.H)(r(a,e))} — ${(0,f.H)(j)}`,`${g("why")}: ${(0,f.H)(l)}`,`${g("risk")}: ${s(a,e)}`,...d?[q(e)]:[],`${g("open")}: ${(0,f.H)(t(c,a.id))}`].join("\n")}let v=new Set(["recheck","domain_recheck"]),w=3e3,x={en:{proposed:"📝 Proposed",approved:"✅ Approved by the owner",rejected:"🚫 Rejected by the owner",done:"⚙️ Ran",failed:"❌ Failed",waiting:"waiting for approval on Telegram.",newN:"new proposals"},id:{proposed:"📝 Usulan",approved:"✅ Disetujui owner",rejected:"🚫 Ditolak owner",done:"⚙️ Dijalankan",failed:"❌ Gagal",waiting:"nunggu persetujuan di Telegram.",newN:"usulan baru"}};function y(a,b,c,d="en"){let e=a=>(0,h.t)(x,d,a);if(Array.isArray(b))return`📝 ${b.length} ${e("newN")} — ${e("waiting")}`;let f=((0,k.g)(b.title,c,120)||r(b,d)).replace(/[*_`~|\[\]<>]/g,"");if("proposed"===a)return`${e("proposed")}: ${f} — ${e("waiting")}`;if("approved"===a||"rejected"===a)return`${e(a)}: ${f}`;let g=b.result?(0,k.g)(b.result,c,200).replace(/[*_`~|\[\]<>]/g,""):"";return`${e(a)}: ${f}${g?` — ${g}`:""}`}async function z(a,c,d){try{let e,f=await c.discord();if(!f)return;let g=await c.book().catch(()=>j.a),h=await c.discordLang().catch(()=>"en"),i=a(g,h);if(!i.length)return;try{e=await c.sendDiscord(f.url,i.join("\n"))}catch{e={ok:!1,kind:"transient",error:"Discord didn't answer."}}await c.recordDiscord(e,d).catch(()=>console.warn(`${b.X.logTag}/discord: recording the result failed`))}catch{console.warn(`${b.X.logTag}/discord: sending the action history failed`)}}async function A(a,b,c={},d={}){let e={...n,...c};await C(()=>z((c,d)=>[y(a,b,c,d)],e,d.now??new Date),d.timeoutMs??w)}async function B(a,c,d){let e=await c.target();if(!e)return;let f=await c.book().catch(()=>j.a),g=await c.lang().catch(()=>"en");for(let h of(await a(f,g))){let a;try{a="string"==typeof h?await c.send(e.token,e.chatId,h):await c.send(e.token,e.chatId,h.text,h.keyboard,h.replyTo??void 0)}catch{a={ok:!1,kind:"transient",error:"Telegram didn't answer."}}await c.record(a,d).catch(()=>console.warn(`${b.X.logTag}/telegram: recording the result failed`))}}async function C(a,c){try{var d;let b;await (d=a(),Promise.race([d,new Promise((a,d)=>{b=setTimeout(()=>d(Object.assign(Error("timeout"),{name:"TimeoutError"})),c)})]).finally(()=>clearTimeout(b)))}catch(a){console.warn(`${b.X.logTag}/telegram: sending the proposal notice failed:`,a instanceof Error?a.name:"error")}}let D=async(a,b)=>b&&a.thread?a.thread(b).catch(()=>null):null;async function E(a,b={},c={}){if(!a.length)return;let d={...n,...b};await C(async()=>{let b=await d.autoRun().catch(()=>null),e=a.filter(a=>{var c;return c=b??{},"pending"===a.status&&!a.auto&&(m.H[a.action]?.risk!=="safe"||"risky"===a.risk||!c[a.action])});if(!e.length)return;let g=e.length>3||!d.buttons?null:await d.buttons().catch(()=>null),i=c.now??new Date;await Promise.all([B(async(a,b)=>e.length>3?[function(a,b,c,d=new Set,e="en"){let g=a=>(0,h.t)(o,e,a),i=a.slice(0,10).map(a=>{let h=(0,k.R)(a.proposedBy,b,60)||g("proposer");return`• ${(0,f.H)(h)}: ${(0,f.H)(r(a,e))} — ${(0,f.H)((0,k.R)(a.title,b,120))} (${s(a,e)})${d.has(a.id)?` \xb7 ${q(e)}`:""}
5
5
  ${(0,f.H)(t(c,a.id))}`}),j=a.length>10?[`+${a.length-10} ${g("moreN")}`]:[];return[`🧑‍✈️ ${a.length} ${g("waitingN")}`,...i,...j,`${g("open")}: ${(0,f.H)(t(c))}`].join("\n")}(e,a,d.siteUrl(),c.devQueued,b)]:Promise.all(e.map(async e=>{let f=u(e,a,d.siteUrl(),c.devQueued?.has(e.id)??!1,b),i=await D(d,c.alertIds?.get(e.id));return g?{text:`${f}
6
6
  ${((a="en")=>(0,h.t)(o,a,"pending"))(b)}`,keyboard:g(e),replyTo:i}:{text:f,replyTo:i}})),d,i),z((a,b)=>e.length>3?[y("proposed",e,a,b)]:e.map(c=>y("proposed",c,a,b)),d,i)])},c.timeoutMs??8e3)}async function F(a,b={},c={}){if(!a.auto||"done"!==a.status&&"failed"!==a.status)return;let d={...n,...b},e=c.now??new Date;await C(()=>Promise.all([B(async(b,e)=>{let g=function(a,b,c="en"){if(!a.auto||"done"!==a.status&&"failed"!==a.status||a.auto&&"done"===a.status&&v.has(a.action))return null;let d="done"===a.status?"✅":"❌",e=a.result?(0,k.R)(a.result,b,200):"";return`${d} ${(0,h.t)(o,c,"automatic")}: ${(0,f.H)(r(a,c))} — ${(0,f.H)((0,k.R)(a.title,b,120))}${e?`: ${(0,f.H)(e)}`:""}`}(a,b,e);return g?[{text:g,replyTo:await D(d,c.alertId)}]:[]},d,e),z((b,c)=>[y("done"===a.status?"done":"failed",a,b,c)],d,e)]).then(()=>void 0),c.timeoutMs??8e3)}async function G(a,b,c={},d={}){if("done"!==a.status&&"failed"!==a.status)return;let e={...n,...c},g=d.now??new Date;await C(()=>Promise.all([B(async(c,g)=>[{text:function(a,b,c,d="en"){let e=a=>(0,h.t)(o,d,a),g=(0,k.R)(a.resourceName??e("app"),c,60)||e("app"),i=(0,k.R)(b.reason,c,200).replace(/[.!?…]+$/,"")||e("rollbackWhy"),j=a.result?(0,k.R)(a.result,c,200):"";return["id"===d?`⏪ Otomatis rollback ${(0,f.H)(g)}: ${(0,f.H)(i)}. Deploy baru ${(0,f.H)((0,k.R)(b.newRef,c,40))} dibalikin ke deploy sebelumnya. Benerin dulu, terus deploy ulang.`:`⏪ Automatic rollback of ${(0,f.H)(g)}: ${(0,f.H)(i)}. The new deploy ${(0,f.H)((0,k.R)(b.newRef,c,40))} was rolled back to the previous one. Fix it first, then deploy again.`,`${"done"===a.status?"✅":"❌"} ${e("done"===a.status?"succeeded":"failed")}${j?`: ${(0,f.H)(j)}`:""}`].join("\n")}(a,b,c,g),replyTo:await D(e,d.alertId)}],e,g),z((b,c)=>[y("done"===a.status?"done":"failed",a,b,c)],e,g)]).then(()=>void 0),d.timeoutMs??8e3)}async function H(a,b={},c={}){let d={...n,...b};await C(()=>B((b,c)=>[function(a,b,c="en"){let d="id"===c,e=(0,k.R)(a.app,b,60)||(0,h.t)(o,c,"app"),g=a.packages.slice(0,4).join(", ")+(a.packages.length>4?`, +${a.packages.length-4}`:"");if("merged"===a.kind)return d?`✅ PR #${a.number} di ${(0,f.H)(e)} di-merge otomatis (${(0,f.H)(g)}). Deploy production jalan lewat Vercel; auto-rollback jaga ${a.windowMin??30} menit pertama.`:`✅ PR #${a.number} in ${(0,f.H)(e)} was merged automatically (${(0,f.H)(g)}). The production deploy runs through Vercel; auto-rollback watches the first ${a.windowMin??30} minutes.`;if("ready-manual"===a.kind)return d?`🔐 PR #${a.number} di ${(0,f.H)(e)} siap di-merge, tapi auto-rollback mati — merge manual ya.`:`🔐 PR #${a.number} in ${(0,f.H)(e)} is ready to merge, but auto-rollback is off — please merge it manually.`;let i=(0,k.R)(a.reason??"",b,200)||(0,h.t)(o,c,"stopFallback");return d?`⚠️ PR #${a.number} di ${(0,f.H)(e)} butuh dicek: ${(0,f.H)(i)}. PR-nya dibiarin terbuka.`:`⚠️ PR #${a.number} in ${(0,f.H)(e)} needs a look: ${(0,f.H)(i)}. The PR was left open.`}(a,b,c)],d,c.now??new Date),c.timeoutMs??8e3)}a.s(["h",0,w,"q",0,G,"y",0,H,"v",0,A,"i",0,E,"b",0,F,"a",0,u])},342634,416454,a=>{var b=a.i(556987),c=a.i(313235),d=a.i(462820),e=a.i(488345),f=a.i(188282),g=a.i(679662),h=a.i(84877),i=a.i(245710);let j=new Set(["nextjs","blitzjs"]),k={status:"unknown",version:null},l={status:"ok",version:null},m=/(?:Next\.js|\(now) (\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/,n=a=>!!a&&!j.has(a),o=(a,b)=>null===a.version&&!a.findings.length&&"vulnerable"!==a.status&&("not a Next.js site"===a.reason||n(b));function p(a,b){return"vulnerable"===a.status||a.findings.length?{status:"vulnerable",version:a.version}:"ok"===a.status||a.version?{status:"ok",version:a.version}:o(a,b)?l:k}let q=a=>`${(0,i.L)(a)} ${(0,i.U)(a)} ${(0,i.J)(a)}`,r=a=>"HighLatency"===a?"Slow":"Down",s=(a,b,c,d=!1)=>{let e;if(!c||b.getTime()<c.getTime())return`${r(a)} since ${q(b)}, not tied to a deploy${c?` (live since ${q(c)})`:""}: check the app.`;let f=(e=Math.max(1,Math.round((b.getTime()-c.getTime())/6e4)))<120?`${e} min`:e<2880?`${Math.round(e/60)} h`:`${Math.round(e/1440)} days`;return d?`${r(a)} since ${q(b)}, ${f} after the deploy went live, outside the rollback window: check the app or roll back by hand.`:`${r(a)} since ${q(b)}, started ${f} after the deploy went live: check the app.`},t=a=>a?`No rollback: the previous deployment runs Next.js ${a}, which has known advisories.`:"No rollback: the previous deployment's Next.js has known advisories.",u="Previous deployment's Next.js version is unknown: check it has no known advisories before approving.";a.s(["A",0,6048e5,"Y",0,["NextVulnerable","NextClean"],"B",0,u,"D",0,s,"Q",0,function(a){let b,c=a.currentLiveAt?.getTime(),d=a.previousLiveAt?.getTime(),e=a.check;if(!e)return n(a.framework)?l:k;if(o(e,a.framework))return l;if(void 0===c||void 0===d||d>=c)return k;let f=e.checkedAt.getTime();if(f>=d&&f<c)return p(e,a.framework);if(f<d||c-d<36e5)return k;let i=a.events.filter(a=>"NextVulnerable"===a.reason||"NextClean"===a.reason),j=i.filter(a=>a.at.getTime()<c).sort((a,b)=>b.at.getTime()-a.at.getTime())[0],q=i.filter(a=>a.at.getTime()>=c).sort((a,b)=>a.at.getTime()-b.at.getTime())[0];if(j){var r;let a;b={status:"NextVulnerable"===j.reason?"vulnerable":"ok",version:j.at.getTime()>=d?(r=j.message,(a=m.exec(r)?.[1]??null)&&(0,g.C)(a)?a:null):null}}else b=q?"NextClean"===q.reason?{status:"vulnerable",version:null}:k:{status:p(e,a.framework).status,version:null};if("ok"===b.status&&"ok"!==e.status&&e.findings.length){let a;if(!b.version)return k;if(a=b.version,e.findings.some(b=>!!b.fixed&&(0,g.C)(b.fixed)&&0>(0,h.f)(a,b.fixed)))return{status:"vulnerable",version:b.version}}return b},"g",0,function(a,b,c={}){let d=a.getTime(),e="MonitorDown"===c.ruleKey;if(e&&!c.liveAt)return a;let f=c.liveAt?c.liveAt.getTime()-9e5:0,g=c.gapMs??864e5;for(let a of[...b].sort((a,b)=>b.startedAt.getTime()-a.startedAt.getTime()))!(a.startedAt.getTime()>=d)&&(e?null===a.resolvedAt||a.resolvedAt.getTime()>=f:null===a.resolvedAt||a.resolvedAt.getTime()>=d-g)&&(d=a.startedAt.getTime());return new Date(d)},"e",0,t],416454);let v=200,w=d.X.auditPrefix,x=/^dpl_[A-Za-z0-9]{8,40}$/,y=/^ep-[a-z0-9-]{3,60}$/,z=/^[a-z0-9]{8,40}$/,A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,B=(a,b=v)=>a.length>b?`${a.slice(0,b-1).trimEnd()}…`:a,C=a=>/[.!?…]$/.test(a)?a:`${a}.`;function D(a,c,d,f){return"app"===a&&d?(0,b.r)(f,d):("supabase_project"===a||"neon_project"===a||"neon_branch"===a||"firestore"===a)&&c?(0,b.X)(f,c):d&&(0,e.g)(d,f,120)||null}let E={recheck:a=>`Check ${a} again now`,neon_wake:a=>`Wake the Neon compute of ${a}`,supabase_keepalive:a=>`Send a keep-alive to ${a}`,supabase_restore:a=>`Restore Supabase project ${a}`,vercel_redeploy:a=>`Redeploy production ${a}`,vercel_rollback:a=>`Roll ${a} back to the previous deployment`,github_bump_pr:a=>`Open a PR updating vulnerable packages in ${a}`,domain_recheck:a=>`Re-check the certificate of ${a}`,daily_rerun:()=>"Rerun the daily job",monitor_update_url:a=>`Point the ${a} monitor at its new domain`},F=(a,b)=>B(E[a](b??"this resource")),G=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),H={status:"unknown",version:null};a.s(["e",0,"office-auto","v",0,w,"L",0,6e5,"j",0,v,"I",0,(a,b)=>"safe"===f.H[a].risk&&!0===b[a],"l",0,B,"z",0,function(a,b){let c=a.filter(a=>!G(a,b)),d=a=>[...new Set(a.filter(a=>!!a&&A.test(a)))],e=c.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&"app"===a.resourceKind);return{monitorIds:d([...e,...c.filter(a=>"MonitorDomainMoved"===a.ruleKey&&"app"===a.resourceKind)].map(a=>a.subject)),monitorApps:d(e.map(a=>a.resourceId)),deployApps:d(c.filter(a=>("DeploymentFailed"===a.ruleKey||"MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&"app"===a.resourceKind).map(a=>a.resourceId)),supabaseIds:d(c.filter(a=>("DatabasePaused"===a.ruleKey||"AutoPauseRisk"===a.ruleKey)&&"supabase_project"===a.resourceKind).map(a=>a.resourceId)),depApps:d(c.filter(a=>"VulnerableDependency"===a.ruleKey&&"app"===a.resourceKind).map(a=>a.resourceId)),frameworkApps:d(c.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind).map(a=>a.resourceId))}},"b",0,a=>"string"==typeof a&&A.test(a),"M",0,F,"t",0,function(a,d,g,h){let i,j,k;if(G(a,h))return[];let l=(i=(0,b.o)(a,g),j=(0,e.g)(i.title,g,80),k=(0,e.g)(i.message,g,v),B([j&&C(j),k&&C(k)].filter(Boolean).join(" ")||`${a.ruleKey}.`));return(function(a,b,c){let d="app"===a.resourceKind&&a.resourceId?a.resourceId:null;switch(a.ruleKey){case"DeploymentFailed":{let a=d?b.deploys.get(d):void 0;if(!d||!a?.currentId||!x.test(a.currentId))return[];let c=[{action:"vercel_redeploy",resourceKind:"app",resourceId:d,targetRef:a.currentId}],e=b.previousNext?.get(d)??H;return a.previousId&&x.test(a.previousId)&&a.previousId!==a.currentId&&("vulnerable"===e.status?c[0].note=t(e.version):c.push({action:"vercel_rollback",resourceKind:"app",resourceId:d,targetRef:a.previousId,..."unknown"===e.status?{note:u}:{}})),c}case"DatabasePaused":case"AutoPauseRisk":{if("supabase_project"!==a.resourceKind||!a.resourceId)return[];let c=b.supabaseRefs.get(a.resourceId);if(!c||!z.test(c))return[];return[{action:"DatabasePaused"===a.ruleKey?"supabase_restore":"supabase_keepalive",resourceKind:"supabase_project",resourceId:a.resourceId,targetRef:c}]}case"VulnerableDependency":{let a=d?b.fixableRepos?.get(d):void 0;return d&&a&&A.test(a)?[{action:"github_bump_pr",resourceKind:"app",resourceId:d,targetRef:a}]:[]}case"FrameworkVulnerable":{let a=d?b.frameworkFixes?.get(d):void 0;return d&&a&&A.test(a.repoId)?[{action:"github_bump_pr",resourceKind:"app",resourceId:d,targetRef:a.repoId}]:[]}case"MonitorDomainMoved":return d&&A.test(a.subject)&&b.monitorMoves?.has(a.subject)?[{action:"monitor_update_url",resourceKind:"app",resourceId:d,targetRef:a.subject}]:[];case"MonitorDown":case"HighLatency":{let e=[];d&&A.test(a.subject)&&"http"===b.monitorKinds.get(a.subject)&&e.push({action:"recheck",resourceKind:"app",resourceId:d,targetRef:a.subject}),"MonitorDown"===a.ruleKey&&a.resourceId&&A.test(a.subject)&&b.dailyHeartbeatId===a.subject&&e.push({action:"daily_rerun",room:"observe",resourceKind:a.resourceKind,resourceId:a.resourceId,targetRef:a.subject});let f=d?b.neonSuspended.get(d):void 0;if(f&&y.test(f.endpointId)&&e.push({action:"neon_wake",room:"databases",resourceKind:f.resourceKind,resourceId:f.resourceId,targetRef:f.endpointId}),b.monitorMoves?.has(a.subject))return e;let g=d?b.deploys.get(d):void 0,h=b.problemSince?.get(a.id)??a.startedAt??null,i=g?.liveAt??null,j=h&&i?h.getTime()>=i.getTime():null,k=d&&b.previousNext?.get(d)||H,l=b.rollbackWindowMs??18e5,m=!!d&&!0===j&&function(a,b,c){if(!a?.currentId||!a.previousId||!a.liveAt||!x.test(a.previousId)||a.previousId===a.currentId)return!1;let d=c.getTime()-a.liveAt.getTime();return d>=0&&d<=b}(g,l,c);if(m&&"vulnerable"!==k.status)return e.push({action:"vercel_rollback",resourceKind:"app",resourceId:d,targetRef:g.previousId,..."unknown"===k.status?{note:u}:{}}),e;let n=m?t(k.version):void 0;if("MonitorDown"===a.ruleKey&&d&&g?.currentId&&x.test(g.currentId)&&"http"===b.monitorKinds.get(a.subject)&&!1!==j)return e.push({action:"vercel_redeploy",resourceKind:"app",resourceId:d,targetRef:g.currentId,...n?{note:n}:{}}),e;let o=!!i&&c.getTime()-i.getTime()>l,p=n??(h&&i&&g?.currentId?s(a.ruleKey,h,i,o):void 0),q=e.find(a=>"recheck"===a.action);return q&&p&&(q.note=p),e}case"CertExpiringSoon":return"domain"===a.resourceKind&&a.resourceId&&A.test(a.resourceId)?[{action:"domain_recheck",resourceKind:"domain",resourceId:a.resourceId,targetRef:a.resourceId}]:[];default:return[]}})(a,d,h).map(i=>{var j;let k,m,n,o,p=i.room??(0,c.p)(a),q="neon_wake"===i.action?D(i.resourceKind,i.resourceId,null,g):D(a.resourceKind,a.resourceId,a.resourceName,g),r="FrameworkVulnerable"===a.ruleKey&&"github_bump_pr"===i.action,s="monitor_update_url"===i.action?d.monitorMoves?.get(i.targetRef):void 0,t=r?(j=i.resourceId?d.frameworkFixes?.get(i.resourceId):void 0,k=q??"this app",B(j?`Next.js ${j.from} in ${k} has known vulnerabilities: the PR updates next (and eslint-config-next when listed) to ${j.to}.`:`Next.js in ${k} has known vulnerabilities with a fixed version.`)):"github_bump_pr"===i.action?(n=(m=(0,e.g)((0,b.o)(a,g).message,g,v)).includes(": ")?m.slice(m.indexOf(": ")+2):"",o=`Vulnerable packages in ${q??"this app"} have a fix`,B(n?`${o}: ${n}`:`${o}.`)):i.note?B(`${i.note} ${l}`):l,u="github_bump_pr"===i.action&&i.resourceId?d.productionMismatch?.get(i.resourceId):void 0;return{alertId:a.id,ruleKey:a.ruleKey,room:p,action:i.action,risk:f.H[i.action].risk,title:r?B(`Open a PR updating Next.js in ${q??"this app"}`):s?B(`Point the ${q??"app's"} monitor at ${s.to}`):F(i.action,q),reason:u?B(`${(0,e.g)(u,g,v)} ${t}`):t,resourceKind:i.resourceKind,resourceId:i.resourceId,resourceName:q,targetRef:i.targetRef,proposedBy:(0,c.y)(p),expiresAt:new Date(h.getTime()+f.V)}})},"x",0,function(a,b){let c=a.ok?a.message||"Done.":a.error||"It didn't run.";return B((0,e.g)(c,b,v)||(a.ok?"Done.":"It didn't run."))},"J",0,D,"E",0,function(a){return{id:a.id,room:a.room,action:a.action,actionLabel:f.H[a.action].label,risk:f.H[a.action].risk,title:a.title,reason:a.reason,resourceName:a.resourceName,proposedBy:a.proposedBy,status:a.status,auto:a.auto,result:a.result,createdAt:a.createdAt.toISOString(),decidedAt:a.decidedAt?a.decidedAt.toISOString():null,expiresAt:a.expiresAt.toISOString()}},"Z",0,function(a,b,c){let d=c??b?.find(a=>a.isDefault)?.id??null,e=(a??[]).find(a=>!d||a.branchId===d);return e&&!e.disabled&&"idle"===e.state&&"active"!==e.pendingState&&y.test(e.id)?e.id:null}],342634)},488345,a=>{var b=a.i(556987),c=a.i(425238),d=a.i(609007),e=a.i(434711);let f=/\b([a-z][a-z0-9+.-]{1,20}):\/\/[^\s"'<>`]*/gi,g=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,h=/\b(?:w[bp]_[A-Za-z0-9]{6,}|hb_[A-Za-z0-9[\]]{2,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{10,}|AQ\.[A-Za-z0-9_-]{10,})/g,i=/(?<![\p{L}\p{N}_.-])[a-z0-9-]+\.vercel\.app(?![\p{L}\p{N}_-])/giu,j=/@/g,k=new WeakMap;function l(a,b){return/^https?$/i.test(b)?"[link]":"[hidden]"}e._;let m="[\\p{L}\\p{N}_./-]",n=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=/(?<![\p{L}\p{N}_.@-])(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,24}(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])/giu,p=new WeakMap;function q(a,e){return String(a??"").replace(/\r\n?/g,"\n").split("\n").map(a=>{var q,r;let s,t,u,v=(q=(0,c.F)(a,e),s=q.replace(f,l),s=(0,b.J)(s,e),s=(s=(0,d.h)(s)).replace(h,"[hidden]"),(t=function(a){if(k.has(a))return k.get(a);let b=[...a.host??[]].filter(a=>a.name.includes(".")).sort((a,b)=>b.name.length-a.name.length),c=b.length?{re:RegExp(`(?<![\\p{L}\\p{N}_-])((?:[a-z0-9-]+\\.)*?)(${b.map(a=>a.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")})(?![\\p{L}\\p{N}_-]|\\.[\\p{L}\\p{N}])`,"giu"),alias:new Map(b.map(a=>[a.name.toLowerCase(),a.alias]))}:null;return k.set(a,c),c}(e))&&(s=s.replace(t.re,(a,b,c)=>`${b}${t.alias.get(c.toLowerCase())??"site.example"}`)),s=s.replace(i,"preview.example").replace(g,"[ip]").replace(j," at "));return v=v.replace(o,a=>/\.example$/i.test(a)?a:"site.example"),(0,b.G)((r=v,(u=function(a){if(p.has(a))return p.get(a);let b=new Map(a.app.filter(a=>a.name.trim().length>=2).map(a=>[a.name.toLowerCase(),a.alias])),c=[...b.keys()].sort((a,b)=>b.length-a.length),d=c.length?{re:RegExp(`(?<!${m})(?:${c.map(n).join("|")})(?!${m})`,"giu"),alias:b}:null;return p.set(a,d),d}(e))?r.replace(u.re,a=>u.alias.get(a.toLowerCase())??a):r))}).join("\n")}let r=(a,b)=>a.length>b?`${a.slice(0,b-1).trimEnd()}…`:a;a.s(["g",0,(a,b,c)=>r(q(String(a??"").replace(/\s+/g," "),b).replace(/\s+/g," ").trim(),c),"R",0,(a,c,d)=>{let e;return r((e=String(a??"").replace(/\s+/g," "),(0,b.q)(q(e,c),c)).replace(/\s+/g," ").trim(),d)}],488345)}]})();
7
7
 
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[169286,a=>{var b=a.i(489221),c=a.i(986096),d=a.i(383217),e=a.i(574619),f=a.i(954801),g=a.i(665105),h=a.i(99450),i=a.i(731793),j=a.i(837137);let k=j.ops.table("supabase_metrics_keys",{resourceId:(0,i.q)("resource_id").primaryKey().references(()=>j.resources.id,{onDelete:"cascade"}),keyCiphertext:(0,g.f)("key_ciphertext").notNull(),keyIv:(0,g.f)("key_iv").notNull(),keyVersion:(0,c.f)("key_version").notNull().default(1),addedBy:(0,i.q)("added_by"),latest:(0,d.y)("latest").$type(),lastTryAt:(0,h._)("last_try_at",{withTimezone:!0}),lastOkAt:(0,h._)("last_ok_at",{withTimezone:!0}),lastError:(0,g.f)("last_error"),createdAt:(0,h._)("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:(0,h._)("updated_at",{withTimezone:!0}).notNull().defaultNow()}),l=j.ops.table("supabase_metrics",{resourceId:(0,i.q)("resource_id").notNull().references(()=>j.resources.id,{onDelete:"cascade"}),hour:(0,h._)("hour",{withTimezone:!0}).notNull(),samples:(0,c.f)("samples").notNull().default(0),cpuSamples:(0,c.f)("cpu_samples").notNull().default(0),cpuAvg:(0,f.f)("cpu_avg"),cpuMax:(0,f.f)("cpu_max"),memAvg:(0,f.f)("mem_avg"),memMax:(0,f.f)("mem_max"),diskPct:(0,f.f)("disk_pct"),connUsed:(0,c.f)("conn_used"),connMax:(0,c.f)("conn_max")},a=>[(0,e._)({columns:[a.resourceId,a.hour]}),(0,b.y)("supabase_metrics_hour_idx").on(a.hour)]);a.s(["l",0,l,"A",0,k])},273133,a=>{let b=/^([A-Za-z_:][A-Za-z0-9_:]*)(\{.*\})?\s+(\S+)(?:\s+-?\d+)?\s*$/,c=a=>a.length?a.reduce((a,b)=>a+b.value,0):null,d=["pg_settings_max_connections","pg_max_connections"],e=new Set(["rootfs","tmpfs","overlay","squashfs","devtmpfs"]),f=a=>Math.round(10*a)/10,g=a=>Math.min(100,Math.max(0,a)),h=(a,b)=>null!==a&&null!==b&&b>0?f(g(a/b*100)):null,i=a=>h(a.connUsed,a.connMax),j=a=>new Date(36e5*Math.floor(a.getTime()/36e5));a.s(["w",0,12e5,"B",0,function(a,b,c){if(!a||c.getTime()-new Date(a.at).getTime()>12e5)return null;let d=[],e=a.recent.filter(a=>c.getTime()-new Date(a.at).getTime()<=96e4),f=e.length?new Date(e[e.length-1].at).getTime()-new Date(e[0].at).getTime():0;e.length>=3&&f>=54e4&&e.every(a=>a.cpu>b.cpu)&&d.push(`CPU ${Math.round(Math.min(...e.map(a=>a.cpu)))}%+ for 15 min (limit ${b.cpu}%)`),null!==a.memPct&&a.memPct>b.ram&&d.push(`RAM ${Math.round(a.memPct)}% (limit ${b.ram}%)`),null!==a.diskPct&&a.diskPct>b.disk&&d.push(`disk ${Math.round(a.diskPct)}% (limit ${b.disk}%)`);let g=i(a);return null!==g&&g>b.conn&&d.push(`connections ${a.connUsed} of ${a.connMax} (limit ${b.conn}%)`),d},"V",0,a=>{let b=a??80;return{cpu:b,ram:Math.min(99,b+10),disk:b,conn:b}},"L",0,i,"c",0,function(a,b){let f=b&&a.some(a=>a.labels.supabase_identifier===b)?a.filter(a=>void 0===a.labels.supabase_identifier||a.labels.supabase_identifier===b):a,g=a=>f.filter(b=>b.name===a&&Number.isFinite(b.value)),h=g("node_cpu_seconds_total"),i=c(h),j=c(h.filter(a=>"idle"===a.labels.mode)),k=a=>g(a)[0]?.value??null,l=a=>{let b=g(a).filter(a=>!e.has(a.labels.fstype??""));return(b.find(a=>"/data"===a.labels.mountpoint)??b.find(a=>"/"===a.labels.mountpoint)??null)?.value??null};return{cpu:null!==i&&null!==j?{busy:i-j,total:i}:null,memTotal:k("node_memory_MemTotal_bytes"),memAvailable:k("node_memory_MemAvailable_bytes"),diskSize:l("node_filesystem_size_bytes"),diskAvail:l("node_filesystem_avail_bytes"),backends:c(g("pg_stat_database_num_backends")),maxConnections:d.map(k).find(a=>null!==a)??null}},"d",0,function(a,b,c,d=24){let e=j(c).getTime(),f=new Map(a.map(a=>[a.hour.getTime(),a[b]]));return Array.from({length:d},(a,b)=>{let c=f.get(e-(d-1-b)*36e5);return"number"==typeof c?c:null})},"b",0,j,"E",0,function(a,b,c){var d;let e=c.toISOString(),i=(d=a?.prev,{cpuPct:function(a,b){if(!a||!b)return null;let c=new Date(b.at).getTime()-new Date(a.at).getTime();if(!(c>0)||c>18e5)return null;let d=b.total-a.total,e=b.busy-a.busy;return d<=0||e<0?null:f(g(e/d*100))}(d,b.cpu?{at:e,...b.cpu}:null),memPct:null!==b.memTotal&&null!==b.memAvailable?h(b.memTotal-b.memAvailable,b.memTotal):null,diskPct:null!==b.diskSize&&null!==b.diskAvail?h(b.diskSize-b.diskAvail,b.diskSize):null,connUsed:null===b.backends?null:Math.round(b.backends),connMax:null===b.maxConnections?null:Math.round(b.maxConnections)}),j=(a?.recent??[]).filter(a=>c.getTime()-new Date(a.at).getTime()<=24e5);return null!==i.cpuPct&&j.push({at:e,cpu:i.cpuPct}),{...i,at:e,prev:b.cpu?{at:e,...b.cpu}:null,recent:j.slice(-8)}},"a",0,function(a){let c=[];for(let e of a.split("\n")){var d;let a=e.trim();if(!a||a.startsWith("#"))continue;let f=b.exec(a);if(!f)continue;let g=f[2]?function(a){let b={},c=1,d=a.length-1;for(;c<d;){for(;c<d&&(","===a[c]||" "===a[c]);)c++;if(c>=d)break;let e=a.indexOf("=",c);if(e<0)return null;let f=a.slice(c,e).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(f)||'"'!==a[e+1])return null;let g=e+2,h="";for(;g<d;g++){let b=a[g];if("\\"===b){let b=a[g+1];h+="n"===b?"\n":b,g++}else if('"'===b)break;else h+=b}if('"'!==a[g])return null;b[f]=h,c=g+1}return b}(f[2]):{};if(!g)continue;let h="NaN"===(d=f[3])?0/0:"+Inf"===d||"Inf"===d?1/0:"-Inf"===d?-1/0:Number(d);Number.isNaN(h)&&"NaN"!==f[3]||c.push({name:f[1],labels:g,value:h})}return c}])}]})();
1
+ (()=>{"use strict";module.exports=[169286,a=>{var b=a.i(734139),c=a.i(489221),d=a.i(986096),e=a.i(383217),f=a.i(574619),g=a.i(954801),h=a.i(665105),i=a.i(99450),j=a.i(731793),k=a.i(837137);let l=k.ops.table("supabase_metrics_keys",{resourceId:(0,j.q)("resource_id").primaryKey().references(()=>k.resources.id,{onDelete:"cascade"}),keyCiphertext:(0,h.f)("key_ciphertext").notNull(),keyIv:(0,h.f)("key_iv").notNull(),keyVersion:(0,d.f)("key_version").notNull().default(1),addedBy:(0,j.q)("added_by"),latest:(0,e.y)("latest").$type(),lastTryAt:(0,i._)("last_try_at",{withTimezone:!0}),lastOkAt:(0,i._)("last_ok_at",{withTimezone:!0}),lastError:(0,h.f)("last_error"),createdAt:(0,i._)("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:(0,i._)("updated_at",{withTimezone:!0}).notNull().defaultNow()}),m=k.ops.table("supabase_metrics",{resourceId:(0,j.q)("resource_id").notNull().references(()=>k.resources.id,{onDelete:"cascade"}),hour:(0,i._)("hour",{withTimezone:!0}).notNull(),samples:(0,d.f)("samples").notNull().default(0),cpuSamples:(0,d.f)("cpu_samples").notNull().default(0),cpuAvg:(0,g.f)("cpu_avg"),cpuMax:(0,g.f)("cpu_max"),memAvg:(0,g.f)("mem_avg"),memMax:(0,g.f)("mem_max"),diskPct:(0,g.f)("disk_pct"),connUsed:(0,d.f)("conn_used"),connMax:(0,d.f)("conn_max"),memTotalB:(0,b.f)("mem_total_b"),memUsedB:(0,b.f)("mem_used_b"),memCacheB:(0,b.f)("mem_cache_b"),swapB:(0,b.f)("swap_b"),commitPct:(0,g.f)("commit_pct"),commitMax:(0,g.f)("commit_max")},a=>[(0,f._)({columns:[a.resourceId,a.hour]}),(0,c.y)("supabase_metrics_hour_idx").on(a.hour)]);a.s(["l",0,m,"A",0,l])},273133,a=>{let b=/^([A-Za-z_:][A-Za-z0-9_:]*)(\{.*\})?\s+(\S+)(?:\s+-?\d+)?\s*$/,c=a=>a.length?a.reduce((a,b)=>a+b.value,0):null,d=["pg_settings_max_connections","pg_max_connections"],e=new Set(["rootfs","tmpfs","overlay","squashfs","devtmpfs"]),f=a=>Math.round(10*a)/10,g=a=>Math.min(100,Math.max(0,a)),h=(a,b)=>null!==a&&null!==b&&b>0?f(g(a/b*100)):null,i=a=>h(a.connUsed,a.connMax),j=a=>new Date(36e5*Math.floor(a.getTime()/36e5));a.s(["w",0,27e5,"B",0,function(a,b,c){if(!a||c.getTime()-new Date(a.at).getTime()>27e5)return null;let d=[],e=a.recent.filter(a=>c.getTime()-new Date(a.at).getTime()<=96e4),f=e.length?new Date(e[e.length-1].at).getTime()-new Date(e[0].at).getTime():0;e.length>=3&&f>=54e4&&e.every(a=>a.cpu>b.cpu)&&d.push(`CPU ${Math.round(Math.min(...e.map(a=>a.cpu)))}%+ for 15 min (limit ${b.cpu}%)`),null!==a.memPct&&a.memPct>b.ram&&d.push(`RAM ${Math.round(a.memPct)}% (limit ${b.ram}%)`),null!==a.diskPct&&a.diskPct>b.disk&&d.push(`disk ${Math.round(a.diskPct)}% (limit ${b.disk}%)`);let g=i(a);return null!==g&&g>b.conn&&d.push(`connections ${a.connUsed} of ${a.connMax} (limit ${b.conn}%)`),d},"V",0,a=>{let b=a??80;return{cpu:b,ram:Math.min(99,b+10),disk:b,conn:b}},"L",0,i,"c",0,function(a,b){let f=b&&a.some(a=>a.labels.supabase_identifier===b)?a.filter(a=>void 0===a.labels.supabase_identifier||a.labels.supabase_identifier===b):a,g=a=>f.filter(b=>b.name===a&&Number.isFinite(b.value)),h=g("node_cpu_seconds_total"),i=c(h),j=c(h.filter(a=>"idle"===a.labels.mode)),k=a=>g(a)[0]?.value??null,l=a=>{let b=g(a).filter(a=>!e.has(a.labels.fstype??""));return(b.find(a=>"/data"===a.labels.mountpoint)??b.find(a=>"/"===a.labels.mountpoint)??null)?.value??null};return{cpu:null!==i&&null!==j?{busy:i-j,total:i}:null,memTotal:k("node_memory_MemTotal_bytes"),memAvailable:k("node_memory_MemAvailable_bytes"),diskSize:l("node_filesystem_size_bytes"),diskAvail:l("node_filesystem_avail_bytes"),backends:c(g("pg_stat_database_num_backends")),maxConnections:d.map(k).find(a=>null!==a)??null,memory:{free:k("node_memory_MemFree_bytes"),buffers:k("node_memory_Buffers_bytes"),cached:k("node_memory_Cached_bytes"),sReclaimable:k("node_memory_SReclaimable_bytes"),swapTotal:k("node_memory_SwapTotal_bytes"),swapFree:k("node_memory_SwapFree_bytes"),committed:k("node_memory_Committed_AS_bytes"),commitLimit:k("node_memory_CommitLimit_bytes")}}},"d",0,function(a,b,c,d=24){let e=j(c).getTime(),f=new Map(a.map(a=>[a.hour.getTime(),a[b]]));return Array.from({length:d},(a,b)=>{let c=f.get(e-(d-1-b)*36e5);return"number"==typeof c?c:null})},"b",0,j,"E",0,function(a,b,c){var d,e,i;let j,k=c.toISOString(),l=(d=b,e=a?.prev,i=k,{cpuPct:function(a,b){if(!a||!b)return null;let c=new Date(b.at).getTime()-new Date(a.at).getTime();if(!(c>0)||c>27e5)return null;let d=b.total-a.total,e=b.busy-a.busy;return d<=0||e<0?null:f(g(e/d*100))}(e,d.cpu?{at:i,...d.cpu}:null),memPct:null!==d.memTotal&&null!==d.memAvailable?h(d.memTotal-d.memAvailable,d.memTotal):null,diskPct:null!==d.diskSize&&null!==d.diskAvail?h(d.diskSize-d.diskAvail,d.diskSize):null,connUsed:null===d.backends?null:Math.round(d.backends),connMax:null===d.maxConnections?null:Math.round(d.maxConnections),mem:function(a){let b=a.memory;if(!b||null===a.memTotal||!(a.memTotal>0)||null===b.free||null===b.buffers||null===b.cached)return null;let c=b.buffers+b.cached+(b.sReclaimable??0);return{totalB:a.memTotal,usedB:Math.max(0,a.memTotal-b.free-c),cacheB:c,swapB:null!==b.swapTotal&&null!==b.swapFree?Math.max(0,b.swapTotal-b.swapFree):null}}(d),commit:(j=d.memory)&&null!==j.committed&&null!==j.commitLimit&&j.commitLimit>0?{usedB:j.committed,limitB:j.commitLimit,pct:Math.round(j.committed/j.commitLimit*1e3)/10}:null}),m=(a?.recent??[]).filter(a=>c.getTime()-new Date(a.at).getTime()<=24e5);return null!==l.cpuPct&&m.push({at:k,cpu:l.cpuPct}),{...l,at:k,prev:b.cpu?{at:k,...b.cpu}:null,recent:m.slice(-8)}},"a",0,function(a){let c=[];for(let e of a.split("\n")){var d;let a=e.trim();if(!a||a.startsWith("#"))continue;let f=b.exec(a);if(!f)continue;let g=f[2]?function(a){let b={},c=1,d=a.length-1;for(;c<d;){for(;c<d&&(","===a[c]||" "===a[c]);)c++;if(c>=d)break;let e=a.indexOf("=",c);if(e<0)return null;let f=a.slice(c,e).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(f)||'"'!==a[e+1])return null;let g=e+2,h="";for(;g<d;g++){let b=a[g];if("\\"===b){let b=a[g+1];h+="n"===b?"\n":b,g++}else if('"'===b)break;else h+=b}if('"'!==a[g])return null;b[f]=h,c=g+1}return b}(f[2]):{};if(!g)continue;let h="NaN"===(d=f[3])?0/0:"+Inf"===d||"Inf"===d?1/0:"-Inf"===d?-1/0:Number(d);Number.isNaN(h)&&"NaN"!==f[3]||c.push({name:f[1],labels:g,value:h})}return c}])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_1ntwbcb1cl-y9._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[390124,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("409f31aa2fe8cfaaf21464be28da91f6ce36900530",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
1
+ (()=>{"use strict";module.exports=[390124,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("403f60a55186a5519c23926fc92b668da40472124a",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_1q-jgpnd3lbcu._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("4061bd56e8a36cbbde27b714c9be7385eb33f52f3a",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("60f3def355e29e845f060f207760be662703d939f3",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
1
+ (()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("40b4be9b32132e6961d52903106b98fa986a0adba0",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("6073b7c8878702e43f5e4b501463f27c7c8b2e36f8",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_agents_1fyhh1ldgm23z._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(654310),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
1
+ module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(577916),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4023a0c4bfbda2c391dc8cf4b699acd1438f9b323e",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
1
+ module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4006afdc1dd404ce3ac40d27b0f5b1636f5ff42309",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_logs_export-button_tsx_1k-crb88n1za_._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("006113337c24d89ccfa334a562697648808a2e7a08",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("604fb8af8ce70d8658b5ca10a9661a9026b58a25f1",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("60725547a5dcc14653e3e6efb7e55f25a262dccf7c",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("600cf7231c126b62920c0bc45de68ff81c4dea68d6",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("401a986de7c91501e4a35bb59e265a7e0ae092ada8",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("00c0a38b180ad67b40945cd431f19bb78fcef5f514",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("40e71a770bc09dc9e8fec333dc93aef8ccc0452d95",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("00e4d7163ce72a9fb17d5bfc427a5fbb89207c799f",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("600868898716bb45ac1ef2d2b2387175dba9608cda",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("706b76a40c48dfbe400b576c34157ead579c52813a",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
1
+ (()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("000a4ba1871757b2d612f09500d2dc11df36f6f80c",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("608430afb64717bc5f5dee57b7801a50dae4e5f2e0",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("601b40ad39b59c8c6d925d861413c235df7e778d08",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("60067768b1ef2514683aca72c85cdc195cd5dd6d5a",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("40c76e86a4210c6222a456c57ff2b7d90ea958c433",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("0036f566fe6997d2949dc9eaabfa6cc15527a4b8b5",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("40f211ded89c86c1d716312297213659de4499c664",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("00604a04fcd340e41b5d29f6e0416cc1a551a0b397",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("60e6f8c2c033489d242efc49167b66d5f2659d31ba",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("709640a8790a9cc1e35f90e3122ced4f280f79a0d9",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_models_0ayzqn062pnv5._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(654310),j=a.i(405050);let k=(0,j.createServerReference)("40bcdb3eabf879ab764bb03c210e33a976f8370caf",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("40ea030dcaf48d6e58fa61a319e7943226d7b1dc8d",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
1
+ module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(577916),j=a.i(405050);let k=(0,j.createServerReference)("400d04748bd8331f6c57be7336eeb56251f4985d24",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("4062015f7a5163df338c2bd8ecaccada60e07e5200",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
2
2
  A: ${n(a.a,600)}`);for(;e.length>0;){let a=`Earlier in this chat:
3
3
  ${e.join("\n")}
4
4