watchbell 1.2.6 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/package.json +1 -1
  2. package/server/.next/BUILD_ID +1 -1
  3. package/server/.next/build-manifest.json +3 -3
  4. package/server/.next/prerender-manifest.json +3 -3
  5. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +60 -64
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  9. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +60 -64
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  14. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +60 -64
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  18. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +60 -64
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  22. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +60 -64
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  26. package/server/.next/server/app/(console)/(private)/ai/models/page.js +60 -64
  27. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  30. package/server/.next/server/app/(console)/(private)/ai/page.js +60 -64
  31. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  32. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  34. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +60 -64
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  38. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +60 -64
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  42. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +60 -64
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  46. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +60 -64
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  49. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  50. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +60 -64
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  53. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  54. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +60 -64
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  57. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  58. package/server/.next/server/app/(console)/alerts/page.js +60 -64
  59. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  60. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  61. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +86 -56
  62. package/server/.next/server/app/(console)/apps/[id]/page.js +66 -68
  63. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  66. package/server/.next/server/app/(console)/apps/page.js +63 -66
  67. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  68. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  69. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  70. package/server/.next/server/app/(console)/backups/page.js +60 -64
  71. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  72. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  73. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  74. package/server/.next/server/app/(console)/catalog/page.js +60 -64
  75. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  76. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  77. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  78. package/server/.next/server/app/(console)/connections/page.js +60 -64
  79. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  80. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  81. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  82. package/server/.next/server/app/(console)/d1/page.js +60 -64
  83. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +37 -17
  86. package/server/.next/server/app/(console)/deployments/page.js +63 -66
  87. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  88. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  89. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  90. package/server/.next/server/app/(console)/dns/page.js +60 -64
  91. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  92. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  93. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  94. package/server/.next/server/app/(console)/domains/page.js +60 -64
  95. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  96. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  97. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  98. package/server/.next/server/app/(console)/events/page.js +60 -64
  99. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  100. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  101. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  102. package/server/.next/server/app/(console)/firebase/page.js +60 -64
  103. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  106. package/server/.next/server/app/(console)/logs/page.js +60 -64
  107. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  108. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  109. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  110. package/server/.next/server/app/(console)/manage/sections/page.js +60 -64
  111. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  112. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  113. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  114. package/server/.next/server/app/(console)/neon/page.js +60 -64
  115. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  116. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  117. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  118. package/server/.next/server/app/(console)/overview/page.js +66 -69
  119. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  120. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  121. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  122. package/server/.next/server/app/(console)/repos/[id]/page.js +64 -67
  123. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  126. package/server/.next/server/app/(console)/repos/page.js +62 -65
  127. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  128. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  129. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +21 -21
  130. package/server/.next/server/app/(console)/settings/page.js +60 -64
  131. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  132. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  133. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  134. package/server/.next/server/app/(console)/sql/page.js +60 -64
  135. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  136. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  137. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  138. package/server/.next/server/app/(console)/status/page.js +60 -64
  139. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  140. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  141. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  142. package/server/.next/server/app/(console)/supabase/page.js +60 -64
  143. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  146. package/server/.next/server/app/(console)/topology/page.js +60 -64
  147. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  148. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  149. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  150. package/server/.next/server/app/(console)/turso/page.js +60 -64
  151. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  152. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  153. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  154. package/server/.next/server/app/(console)/upstash/page.js +60 -64
  155. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  156. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  157. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  158. package/server/.next/server/app/(console)/uptime/page.js +60 -64
  159. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  160. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  161. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  162. package/server/.next/server/app/(console)/welcome/page.js +60 -64
  163. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  164. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  165. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  166. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  167. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/_global-error.html +1 -1
  169. package/server/.next/server/app/_global-error.rsc +2 -2
  170. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  171. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  172. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  173. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  174. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  175. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/_not-found.html +1 -1
  177. package/server/.next/server/app/_not-found.rsc +3 -3
  178. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  179. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  180. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  181. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  182. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  183. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  184. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  185. package/server/.next/server/app/api/collect/route.js +46 -48
  186. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  187. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  188. package/server/.next/server/app/api/daily/route.js +46 -48
  189. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  190. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  191. package/server/.next/server/app/api/telegram/webhook/route.js +46 -48
  192. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  193. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  194. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  195. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  196. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  197. package/server/.next/server/app/mfa/page.js +25 -25
  198. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  199. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  200. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  201. package/server/.next/server/app/mfa/setup/page.js +25 -25
  202. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  203. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  204. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  205. package/server/.next/server/app/page.js.nft.json +1 -1
  206. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  207. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  208. package/server/.next/server/app/s/[slug]/page.js +7 -7
  209. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  210. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  211. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  212. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  213. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  214. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  215. package/server/.next/server/app/signin/page.js +28 -29
  216. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  217. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/chunks/{[root-of-the-server]__0655w3_d4ejfb._.js → [root-of-the-server]__0-94urkhm871c._.js} +1 -1
  219. package/server/.next/server/chunks/{[root-of-the-server]__1bg8grh9kfims._.js → [root-of-the-server]__01hgqxx2a0okv._.js} +2 -2
  220. package/server/.next/server/chunks/{[root-of-the-server]__14-pt1-s1o5ex._.js → [root-of-the-server]__0c2heh-0pjyob._.js} +1 -1
  221. package/server/.next/server/chunks/{[root-of-the-server]__12lrpnd-dhawi._.js → [root-of-the-server]__0c9y_zg74k4oe._.js} +2 -2
  222. package/server/.next/server/chunks/{[root-of-the-server]__1kwldcrcmwc0x._.js → [root-of-the-server]__0fmt9z8-xukob._.js} +1 -1
  223. package/server/.next/server/chunks/{[root-of-the-server]__0whk62ebfu1u0._.js → [root-of-the-server]__0i3h5covkd6_t._.js} +1 -1
  224. package/server/.next/server/chunks/{[root-of-the-server]__1nm0sjvuf9jrb._.js → [root-of-the-server]__0inf2zuuqjrq6._.js} +2 -2
  225. package/server/.next/server/chunks/{[root-of-the-server]__09dk9k-9q4d16._.js → [root-of-the-server]__0rpys5i04hzww._.js} +2 -2
  226. package/server/.next/server/chunks/{[root-of-the-server]__0x4_tt5v17fx3._.js → [root-of-the-server]__0xfgfo-ks4_e8._.js} +2 -2
  227. package/server/.next/server/chunks/{[root-of-the-server]__1c1nhm-kj5kqu._.js → [root-of-the-server]__0zjhlf_yodox3._.js} +1 -1
  228. package/server/.next/server/chunks/{[root-of-the-server]__0c0pkv3an1lg-._.js → [root-of-the-server]__130_vkgsongq_._.js} +2 -2
  229. package/server/.next/server/chunks/{[root-of-the-server]__1-xgpr5q148ze._.js → [root-of-the-server]__14vj8ywy5spa2._.js} +1 -1
  230. package/server/.next/server/chunks/{[root-of-the-server]__17jngidngj3rb._.js → [root-of-the-server]__161v5qfd5qk2p._.js} +2 -2
  231. package/server/.next/server/chunks/[root-of-the-server]__16u9d_hm9lefl._.js +3 -0
  232. package/server/.next/server/chunks/{[root-of-the-server]__0s8wo4espz6eu._.js → [root-of-the-server]__1_df6aphi-pfk._.js} +2 -2
  233. package/server/.next/server/chunks/{[root-of-the-server]__1r24segt1slar._.js → [root-of-the-server]__1j527a18gh10b._.js} +2 -2
  234. package/server/.next/server/chunks/[root-of-the-server]__1k-7jan2fsbys._.js +3 -0
  235. package/server/.next/server/chunks/{[root-of-the-server]__1lq25064c4ny_._.js → [root-of-the-server]__1uad-kugxmkx8._.js} +2 -2
  236. package/server/.next/server/chunks/_0-ub844lc_z_a._.js +2 -2
  237. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  238. package/server/.next/server/chunks/_05hhw0eql5-dv._.js +5 -3
  239. package/server/.next/server/chunks/_08fv52mqg619m._.js +11 -9
  240. package/server/.next/server/chunks/_08z7lmk32r__5._.js +2 -2
  241. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  242. package/server/.next/server/chunks/_1-pv4d4qhe7to._.js +2 -2
  243. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  244. package/server/.next/server/chunks/_13dlt388gceez._.js +11 -9
  245. package/server/.next/server/chunks/_1fj4vzjpusyn8._.js +5 -0
  246. package/server/.next/server/chunks/_1l-68brbq289m._.js +5 -3
  247. package/server/.next/server/chunks/{_1476vtrt9101m._.js → _1rskctyr7yt-b._.js} +2 -2
  248. package/server/.next/server/chunks/{src_01fd1ve-xj9xo._.js → src_0j8daco-75zka._.js} +2 -2
  249. package/server/.next/server/chunks/{src_049aazgsmienv._.js → src_1lvv9wiag2d8-._.js} +2 -2
  250. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  251. package/server/.next/server/chunks/src_lib_0n-8zjgq6mcc7._.js +3 -0
  252. package/server/.next/server/chunks/src_lib_1nkahiclbn55q._.js +3 -0
  253. package/server/.next/server/chunks/src_lib_1y5l54dwaet39._.js +3 -0
  254. package/server/.next/server/chunks/src_private_0uwb-eyaxy9b3._.js +5 -0
  255. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  256. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  257. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  258. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  259. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  260. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  261. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  262. package/server/.next/server/chunks/ssr/{[externals]__0d7rvi3tmo9zf._.js → [externals]__02s9k1gg9qqkm._.js} +1 -1
  263. package/server/.next/server/chunks/ssr/[root-of-the-server]__03mal5uo1rzg4._.js +3 -0
  264. package/server/.next/server/chunks/ssr/[root-of-the-server]__05_98ql5tgeii._.js +3 -0
  265. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0xscr-8y9a4cj._.js → [root-of-the-server]__07k_84t5-d55n._.js} +2 -2
  266. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0amfa4t2-in-x._.js → [root-of-the-server]__09j1po2u91fp3._.js} +2 -2
  267. package/server/.next/server/chunks/ssr/{[root-of-the-server]__08u1c2f2i7ru4._.js → [root-of-the-server]__0e1s_5gg-u3iu._.js} +1 -1
  268. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h2hxe0vl-2x0._.js +1 -1
  269. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  270. package/server/.next/server/chunks/ssr/[root-of-the-server]__0s2of3mcou177._.js +3 -0
  271. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1uzqsxyxwffdo._.js → [root-of-the-server]__0skfdezx5rxie._.js} +2 -2
  272. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  273. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e9tlsk1gl8lw._.js +4 -0
  274. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  275. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1o6cysvbfkltz._.js → [root-of-the-server]__1tj-iwvrxfd1a._.js} +1 -1
  276. package/server/.next/server/chunks/ssr/[root-of-the-server]__1v3b498_j-68t._.js +4 -0
  277. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  278. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  279. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  280. package/server/.next/server/chunks/ssr/{_07f-svx_l12lw._.js → _0_yyszoyzyccn._.js} +2 -2
  281. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  282. package/server/.next/server/chunks/ssr/_0ao-urx9ftj1s._.js +3 -0
  283. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  284. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  285. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  286. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  287. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  288. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  289. package/server/.next/server/chunks/ssr/_0dvz4dndt6lkf._.js +3 -0
  290. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  291. package/server/.next/server/chunks/ssr/{_0-wc6f6p0c8lv._.js → _0gmw45sb1llld._.js} +2 -2
  292. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  293. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  294. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +4 -0
  295. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  296. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  297. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  298. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  299. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  300. package/server/.next/server/chunks/ssr/{_1476vtrt9101m._.js → _0rw2pberdmaa5._.js} +2 -2
  301. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  302. package/server/.next/server/chunks/ssr/{_0jqrjb30bblvy._.js → _0tu64jsmbyx4_._.js} +2 -2
  303. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  304. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  305. package/server/.next/server/chunks/ssr/{_1edj756n1im8t._.js → _0w3mz8059j-pk._.js} +2 -2
  306. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  307. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +4 -0
  308. package/server/.next/server/chunks/ssr/{_1bc69myq83woe._.js → _0y5ov4kk2q81r._.js} +2 -2
  309. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +4 -0
  310. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  311. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  312. package/server/.next/server/chunks/ssr/{_07-dfx0qix52k._.js → _10oqiz6hmf92q._.js} +2 -2
  313. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  314. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  315. package/server/.next/server/chunks/ssr/_12wjuabpo0ofk._.js +3 -0
  316. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  317. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  318. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  319. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  320. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  321. package/server/.next/server/chunks/ssr/_1dp5bgqob29-f._.js +3 -0
  322. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  323. package/server/.next/server/chunks/ssr/_1fj4vzjpusyn8._.js +5 -0
  324. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  325. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  326. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  327. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  328. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  329. package/server/.next/server/chunks/ssr/{_1r7o1vx4875hu._.js → _1ktvwngz0lzjr._.js} +2 -2
  330. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  331. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  332. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  333. package/server/.next/server/chunks/ssr/_1rskctyr7yt-b._.js +3 -0
  334. package/server/.next/server/chunks/ssr/{_1j61tfpfj2t9d._.js → _1vjm7-shohnh7._.js} +2 -2
  335. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  336. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  337. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  338. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  339. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  340. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1--1mjfnoprr2.js +3 -0
  341. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  342. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  343. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  344. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  345. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  346. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  347. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  348. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  349. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  350. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  351. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  352. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  353. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  354. package/server/.next/server/chunks/ssr/{src_1bg_io_v7gt71._.js → src_04o0-kzfmcnim._.js} +2 -2
  355. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  356. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  357. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  358. package/server/.next/server/chunks/ssr/src_0jxjbvkvg0bjg._.js +3 -0
  359. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +3 -0
  360. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  361. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +3 -1
  362. package/server/.next/server/chunks/ssr/src_0yxy3bklfxtzz._.js +3 -0
  363. package/server/.next/server/chunks/ssr/src_1-k3gvxaqli74._.js +3 -0
  364. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  365. package/server/.next/server/chunks/ssr/src_1ckoccd8qvnje._.js +1 -1
  366. package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +8 -0
  367. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  368. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  369. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  370. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  371. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  372. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  373. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  374. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  375. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  376. package/server/.next/server/chunks/ssr/{src_app_(console)_0e832kna-734m._.js → src_app_(console)_0-vcbt2icvguc._.js} +2 -2
  377. package/server/.next/server/chunks/ssr/src_app_(console)_05h6-wpd078oj._.js +3 -0
  378. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  379. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_10xvt--29v-ed._.js +3 -0
  380. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  381. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  382. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  383. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  384. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  385. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  386. package/server/.next/server/chunks/ssr/src_app_(console)_deployments_06a83hsex1kba._.js +1 -1
  387. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  388. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  389. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  390. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  391. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  392. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  393. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  394. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +2 -2
  395. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  396. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  397. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  398. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  399. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  400. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  401. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  402. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  403. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  404. package/server/.next/server/chunks/ssr/src_app_signin_0obhr-33tppu8._.js +3 -0
  405. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  406. package/server/.next/server/chunks/ssr/src_components_list-filter_tsx_1zp29997g97yd._.js +1 -1
  407. package/server/.next/server/chunks/ssr/{_0ls7sornjrg95._.js → src_lib_0-nc33gvdtkg5._.js} +2 -2
  408. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  409. package/server/.next/server/chunks/ssr/src_lib_0n-8zjgq6mcc7._.js +3 -0
  410. package/server/.next/server/chunks/ssr/src_lib_10d18lqjfj8je._.js +3 -0
  411. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  412. package/server/.next/server/chunks/ssr/src_lib_1y5l54dwaet39._.js +3 -0
  413. package/server/.next/server/chunks/ssr/{src_lib_demo_09ht4doed9eqi._.js → src_lib_demo_0sbw5n9n4mpzx._.js} +2 -2
  414. package/server/.next/server/chunks/ssr/src_lib_providers_github-browse_ts_1apskpn4fe9qr._.js +3 -0
  415. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  416. package/server/.next/server/chunks/ssr/src_private_1b8918m4jsjpi._.js +5 -0
  417. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  418. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  419. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  420. package/server/.next/server/functions-config-manifest.json +3 -0
  421. package/server/.next/server/middleware-build-manifest.js +3 -3
  422. package/server/.next/server/pages/404.html +1 -1
  423. package/server/.next/server/pages/500.html +1 -1
  424. package/server/.next/server/preview-props.json +3 -3
  425. package/server/.next/server/server-reference-manifest.js +1 -1
  426. package/server/.next/server/server-reference-manifest.json +208 -170
  427. package/server/.next/static/chunks/{3o45i7xbzm0w-.js → 05uco41_mcq9o.js} +1 -1
  428. package/server/.next/static/chunks/08fdgz3f6aeh3.js +1 -0
  429. package/server/.next/static/chunks/{36e9fpbpqndu5.js → 0a77yea00jt0y.js} +1 -1
  430. package/server/.next/static/chunks/0bqipdtnu2hws.js +1 -0
  431. package/server/.next/static/chunks/{041ko45qawas9.js → 0o53bcdd6gtyu.js} +1 -1
  432. package/server/.next/static/chunks/{2j9fpx77gfesr.js → 0p5xwnif2xe2v.js} +1 -1
  433. package/server/.next/static/chunks/{422gxqrwveuyc.js → 0p_qyask2har9.js} +1 -1
  434. package/server/.next/static/chunks/{2kurh5s5u8_4-.js → 0s44z2_pzghcu.js} +1 -1
  435. package/server/.next/static/chunks/{3ymogjp57edbj.js → 0tw_we2nleycj.js} +1 -1
  436. package/server/.next/static/chunks/{3r3-9oir5c1ul.js → 0uom2d_-nh45g.js} +1 -1
  437. package/server/.next/static/chunks/{3cjokqd7600_0.js → 0vqfc5ez__g1s.js} +1 -1
  438. package/server/.next/static/chunks/{0o6_y6xu__s6q.js → 0znki_inst5fe.js} +1 -1
  439. package/server/.next/static/chunks/{0x6eipkda93fh.js → 11r3cljnu3lrb.js} +1 -1
  440. package/server/.next/static/chunks/{3kqiccrh_bnpl.js → 12rf9fj_wat4k.js} +2 -2
  441. package/server/.next/static/chunks/{243ijh4fs2zsq.js → 12ryyhs-tt27p.js} +1 -1
  442. package/server/.next/static/chunks/{1ghfc_9g9io17.js → 12z4gcgh75y3h.js} +1 -1
  443. package/server/.next/static/chunks/{299jy1-g0cm8n.js → 13t0_-lm77ctu.js} +1 -1
  444. package/server/.next/static/chunks/{1eeqy_pc_llv4.js → 143_uak5v6uky.js} +1 -1
  445. package/server/.next/static/chunks/{2ziborutqth-2.js → 16f-5rrbswao-.js} +1 -1
  446. package/server/.next/static/chunks/{3hpyrqm98toxv.js → 1andb44i5y-5c.js} +1 -1
  447. package/server/.next/static/chunks/{0-fov5gyz32mj.js → 1d5jx8nbj9hio.js} +1 -1
  448. package/server/.next/static/chunks/{0m40tf7-fh2ht.js → 1hzn5sr2wq7_6.js} +1 -1
  449. package/server/.next/static/chunks/{1qug5gmo2rbaf.js → 1jfri9y7a54t3.js} +1 -1
  450. package/server/.next/static/chunks/1lq20aqwgdq8w.js +1 -0
  451. package/server/.next/static/chunks/{35ua22np4u9jr.js → 1ot9e084ramy3.js} +1 -1
  452. package/server/.next/static/chunks/{2jdlcu25qy00d.js → 1q0dfli6xlok0.js} +1 -1
  453. package/server/.next/static/chunks/{3oe302ug_esoe.js → 1sexa68j4kb7d.js} +1 -1
  454. package/server/.next/static/chunks/{4545xu4sehvxc.js → 1xaww6l378y_h.js} +1 -1
  455. package/server/.next/static/chunks/{20ujg0hz_need.js → 1xhyfwwelhzu1.js} +1 -1
  456. package/server/.next/static/chunks/{2hscqr4n7hu7n.js → 1zid1do5vuxcq.js} +1 -1
  457. package/server/.next/static/chunks/{11_iva96ceble.js → 20u3tmdb-6drr.js} +1 -1
  458. package/server/.next/static/chunks/{0zj507c7ui4jt.js → 20xid8njz36og.js} +1 -1
  459. package/server/.next/static/chunks/{1e0iyxugtm7b0.js → 223rdnw2yty48.js} +2 -2
  460. package/server/.next/static/chunks/{0x1xj431cbkfa.js → 27epf-aa_5m_r.js} +1 -1
  461. package/server/.next/static/chunks/{1urtw14pwufsv.js → 2f07frmj7udob.js} +1 -1
  462. package/server/.next/static/chunks/2gnckmw5e2mfd.js +1 -0
  463. package/server/.next/static/chunks/{1gw40u38oaj6z.js → 2i629nz4h3fqg.js} +1 -1
  464. package/server/.next/static/chunks/{2t30gqjhercob.js → 2jyi95ohxfybd.js} +1 -1
  465. package/server/.next/static/chunks/{3-xb6vd_khwfo.js → 2pjruch-2xss_.js} +1 -1
  466. package/server/.next/static/chunks/{1jc9qa7xb63lp.js → 2plrf95jah9ew.js} +1 -1
  467. package/server/.next/static/chunks/{442t8i7d46g9y.js → 2wmkryogm5g3y.js} +2 -2
  468. package/server/.next/static/chunks/2y5zgpld68mbe.js +7 -0
  469. package/server/.next/static/chunks/{1vyf467_8v-cw.js → 2zudgr23_bvy5.js} +1 -1
  470. package/server/.next/static/chunks/{2seth6dz7lydu.js → 32sed3oqb5mgw.js} +1 -1
  471. package/server/.next/static/chunks/{1zhnm25vt6hu8.js → 3a55yojb_7drl.js} +1 -1
  472. package/server/.next/static/chunks/{3zx1pe40m_ddz.js → 3b0xtqo5kfyuj.js} +1 -1
  473. package/server/.next/static/chunks/{3wl06e5yyzlwh.js → 3c79k7qsyelf1.js} +1 -1
  474. package/server/.next/static/chunks/{0-ett1b-o34r0.js → 3e8jbph5vbqrh.js} +1 -1
  475. package/server/.next/static/chunks/{1muk1ubaswhlj.js → 3ki7epe69d8mi.js} +1 -1
  476. package/server/.next/static/chunks/{1g3u_ngexgvss.js → 3tigi9c4vke8u.js} +1 -1
  477. package/server/.next/static/chunks/{1z8byc-won_tq.js → 3tqlcut9yz40q.js} +1 -1
  478. package/server/.next/static/chunks/{3xbsyym_tfj0u.js → 3y4vkm_orksj_.js} +1 -1
  479. package/server/.next/static/chunks/3zhb71t6q4f9k.js +1 -0
  480. package/server/.next/server/chunks/[root-of-the-server]__0z3hf530bwcq_._.js +0 -3
  481. package/server/.next/server/chunks/[root-of-the-server]__1p3fqi03x5du8._.js +0 -3
  482. package/server/.next/server/chunks/_0hsj1tx2ynla-._.js +0 -3
  483. package/server/.next/server/chunks/_1b1t9p1xljuql._.js +0 -5
  484. package/server/.next/server/chunks/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +0 -3
  485. package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +0 -3
  486. package/server/.next/server/chunks/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +0 -3
  487. package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +0 -3
  488. package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +0 -5
  489. package/server/.next/server/chunks/ssr/[root-of-the-server]__05gue5stvejba._.js +0 -4
  490. package/server/.next/server/chunks/ssr/[root-of-the-server]__18gcvkhrt73zc._.js +0 -3
  491. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e0l6kek0ufui._.js +0 -3
  492. package/server/.next/server/chunks/ssr/[root-of-the-server]__1o63-3k1wez40._.js +0 -3
  493. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tgcpistmcbrd._.js +0 -4
  494. package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +0 -3
  495. package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +0 -3
  496. package/server/.next/server/chunks/ssr/_0hsj1tx2ynla-._.js +0 -3
  497. package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +0 -4
  498. package/server/.next/server/chunks/ssr/_1b1t9p1xljuql._.js +0 -5
  499. package/server/.next/server/chunks/ssr/_218164gkxgum_._.js +0 -4
  500. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +0 -3
  501. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +0 -8
  502. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +0 -3
  503. package/server/.next/server/chunks/ssr/src_app_(console)_0kwns5iudhgwj._.js +0 -3
  504. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +0 -3
  505. package/server/.next/server/chunks/ssr/src_app_signin_1fj68y-bbe-xr._.js +0 -3
  506. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +0 -3
  507. package/server/.next/server/chunks/ssr/src_lib_1gauld53vvpev._.js +0 -3
  508. package/server/.next/server/chunks/ssr/src_lib_1l8ej-zoyyegd._.js +0 -3
  509. package/server/.next/server/chunks/ssr/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +0 -3
  510. package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +0 -3
  511. package/server/.next/server/chunks/ssr/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +0 -3
  512. package/server/.next/server/chunks/ssr/src_lib_data_vercel-action_ts_1hvera3nwo5fp._.js +0 -3
  513. package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +0 -3
  514. package/server/.next/server/chunks/ssr/src_lib_view_14iq8onyfo7nd._.js +0 -3
  515. package/server/.next/server/chunks/ssr/src_lib_view_deploy-actions_ts_1l3rr2k-04gi4._.js +0 -3
  516. package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +0 -5
  517. package/server/.next/static/chunks/0ia5361d7hoce.js +0 -7
  518. package/server/.next/static/chunks/15_3o9t6d7ujo.js +0 -1
  519. package/server/.next/static/chunks/1c0s-ejiwfy2u.js +0 -1
  520. package/server/.next/static/chunks/2j4kmkog1zkpo.js +0 -1
  521. package/server/.next/static/chunks/2y05vm9r_wxds.js +0 -1
  522. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → VmJyuS9PCFUrRHa6THIcV}/_buildManifest.js +0 -0
  523. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → VmJyuS9PCFUrRHa6THIcV}/_clientMiddlewareManifest.js +0 -0
  524. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → VmJyuS9PCFUrRHa6THIcV}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[949663,912283,876808,747556,e=>{var t=e.i(927262),n=e.i(201516),r=e.i(273133),a=e.i(120213),s=e.i(84979),i=e.i(84877),l=e.i(679662);let o=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function d(e,t){let n=o.exec(e.trim()),r=o.exec(t.trim());return!!n&&!!r&&n[1]===r[1]&&("0"!==n[1]||n[2]===r[2])&&(0,i.f)(t,e)>=0}let u=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,c=e=>u.exec(e)?.[1]??null;e.s(["M",0,e=>`Lockfile tertinggal — jalankan npm install (${e.slice(0,5).join(", ")}${e.length>5?`, +${e.length-5}`:""}).`,"a",0,function(e,t,n){if(!e.length)return{ok:!1,why:"nothing"};let r=e.filter(e=>n.includes(e.severity)&&!("moderate"===e.severity&&e.dev));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!d(n,e.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:r}},"m",0,function(e,t){if(!t)return{deps:e,stale:[]};let n=[...Object.entries(t.dependencies).map(([e,t])=>[e,t,!1]),...Object.entries(t.optionalDependencies).map(([e,t])=>[e,t,!1]),...Object.entries(t.devDependencies).map(([e,t])=>[e,t,!0])],r=[...e],a=[];for(let[e,t,s]of n){let n=(0,l.Y)(t);if(!n||!(0,l.C)(n))continue;let o=r.filter(t=>t.name===e);!o.length||o.some(e=>(0,i.f)(e.version,n)>=0)||((r=r.filter(t=>t.name!==e)).push({name:e,version:n,dev:o.every(e=>e.dev)&&s}),a.push(e))}return{deps:r,stale:a}},"D",0,function(e){let t=new Map;for(let n of e){if(!n.direct)continue;let e=t.get(n.package);(!e||0>(0,i.f)(n.installedVersion,e))&&t.set(n.package,n.installedVersion)}return t},"U",0,function(e,t,n=null){for(let r of t){if(c(r.title)!==n)continue;let t=function(e){if(e.packages?.length)return e.packages;let t=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(e.title);return t?[t[1]]:"all"}(r);if("all"===t||e.some(e=>t.includes(e)))return r}return null},"J",0,d],912283);let p=["next","eslint-config-next"],f={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function m(e,t){if(!e||!(0,l.C)(e))return null;let n=t.map(e=>e.fixed).filter(t=>!!t&&(0,l.C)(t)&&(0,i.f)(t,e)>0);if(!n.length)return null;let r=n.filter(t=>d(e,t));return(r.length?r:n).reduce((e,t)=>(0,i.f)(t,e)>0?t:e)}function h(e,t){let n=m(e,t),r=n?t.map(e=>e.fixed).filter(e=>!!e&&(0,l.C)(e)&&(0,i.f)(e,n)>0):[],a=r.reduce((e,t)=>null===e||(0,i.f)(t,e)>0?t:e,null),o=a?` (${1===r.length?"one fix needs":"some fixes need"} Next.js ${a.split(".")[0]})`:"";return`Next.js ${e??"(unknown version)"} has ${(0,s.q)(t.length)} (${(0,s.N)(t).toLowerCase()}), ${n?`fixed in ${n}${o}`:"no fix yet"}.`}e.s(["P",0,h,"p",0,function(e){if(!e||"vulnerable"!==e.status||!e.findings.length||!e.version)return null;let t=m(e.version,e.findings);if(!t)return null;let n=f[(0,s.N)(e.findings)],r=[...new Set(e.findings.map(e=>e.id))],a=[...new Set(e.findings.flatMap(e=>e.cve?[e.cve]:[]))];return{from:e.version,to:t,upgrades:[{package:"next",to:t,vulnIds:r,cves:a,severity:n},{package:"eslint-config-next",to:t,vulnIds:[],cves:[],severity:n,companionOf:"next"}],installed:new Map(p.map(t=>[t,e.version]))}},"F",0,function(e){let t=e.find(e=>"next"===e.package&&!e.companionOf);return!t||e.some(e=>"eslint-config-next"===e.package)?e:[...e,{package:"eslint-config-next",to:t.to,vulnIds:[],cves:[],severity:t.severity,companionOf:"next"}]}],876808);let g=e=>Math.round(e).toLocaleString("en-US"),y=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),k=(e,t)=>`${e} ${t}${1===e?"":"s"}`,w=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},v=e=>{try{return new URL(e).host}catch{return e}},b=e=>{try{return new URL(e).pathname}catch{return"/"}},I="Down · ",A=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),$=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,S=new Set(["turso","upstash","d1"]),V={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=A("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:b(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=t??3;if("heartbeat"===e.kind){let t;return{...r,status:"err"===e.state?"firing":"ok"===e.state?"ok":"unknown",message:`${e.appName} \xb7 ${e.url}: ${t=e.lastError,t?.startsWith(I)?t.slice(I.length):"no ping in time"}.`}}return e.movedTo?{...r,status:"ok",message:`${v(e.url)} moved to ${e.movedTo}; MonitorDomainMoved takes over.`}:e.failStreak>=a?{...r,status:"firing",message:(0,n.H)(e)?`${w(e.url)} failed its check (${(0,n.H)(e)}) on ${a} consecutive checks.`:`${w(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${w(e.url)} answers again.`}}),MonitorDomainMoved:e=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let t=A("MonitorDomainMoved",e.id,{resourceId:e.appId,title:`${e.appName} ${b(e.url)}`,provider:"vercel"});return e.movedTo?{...t,status:"firing",message:`${v(e.url)} is no longer a domain of ${e.appName}; production is on ${e.movedTo}.`}:{...t,status:"ok",message:`The monitor checks ${v(e.url)}, a domain of ${e.appName}.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[A("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${g((e.now.getTime()-n.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(e,t)=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let n=A("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${b(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt});if(e.checksLast10<5||null===e.p95Last10)return n;let r=t??1500;return{...n,status:e.p95Last10>r?"firing":"ok",message:`p95 ${g(e.p95Last10)} ms over the last 10 minutes (limit ${g(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=A("DeploymentFailed",e.id,{resourceId:e.id,title:e.name,provider:"vercel"}),n=e.latestProduction;return n?"error"===n.state?{...t,status:"firing",message:`Production deployment ${n.sha?n.sha.slice(0,7):"(no commit)"} failed.`}:{...t,status:"building"===n.state?"unknown":"ok"}:{...t,status:"ok"}}),DatabasePaused:e=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(e=>A("DatabasePaused",e.id,{resourceId:e.id,title:e.name,provider:"supabase",status:"unknown"===e.state?"unknown":"paused"===e.state?"firing":"ok",message:`Supabase project ${e.name} is paused.`})),CertExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=A("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let a=y(n.tlsNotAfter,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${k(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=A("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let a=y(n.expiresAt,e.now);return{...r,status:a<(t??30)?"firing":"ok",message:`${n.name} expires in ${k(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=A("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:$(e)});if(null===e.sizeBytes||!e.sizeLimitBytes)return n;let r=e.sizeBytes/e.sizeLimitBytes*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} uses ${g(e.sizeBytes/1e6)} MB of ${g(e.sizeLimitBytes/1e6)} MB (${g(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=A("NeonComputeHigh",e.id,{resourceId:e.id,title:e.name,provider:"neon"});return null===e.cuHours?n:{...n,status:e.cuHours>(t??80)?"firing":"ok",message:`${e.name} used ${g(e.cuHours)} of ${g(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=A("FirestoreQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:"firebase"});if(e.quotaExhausted)return{...n,status:"firing",message:`${e.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===e.readsToday||!e.readsLimit)return!1===e.quotaExhausted?{...n,status:"ok"}:n;let r=e.readsToday/e.readsLimit*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} read ${g(e.readsToday)} of ${g(e.readsLimit)} documents today (${g(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=A("AutoPauseRisk",n.id,{resourceId:n.id,title:n.name,provider:"supabase"});if("paused"===n.state)return{...r,status:"ok"};if(!n.lastApiAt)return r;let a=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${k(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>A("DnsProxiedToVercel",e.id,{resourceId:e.resourceId,title:e.name,provider:"cloudflare",status:e.proxied&&e.pointsToVercel?"firing":"ok",message:`${e.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>S.has(e.provider)).map(e=>{let n=A("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:$(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${g(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let a=A("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),s=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===s?a:{...a,status:s.length?"firing":"ok",message:s.length?`${n.name}: ${s.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=A("CredentialExpiring",n.id,{accountId:n.id,title:`${n.provider} \xb7 ${n.label}`,provider:n.provider});if("drive"===n.provider&&"error"===n.status&&n.lastError?.includes("invalid_grant"))return{...r,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!n.expiresAt)return{...r,status:"ok"};let a=y(n.expiresAt,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:a<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${k(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=A("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let s=(0,a.g)(t.vulns);return s?[{...r,status:"firing",message:(0,a.L)(t.vulns),..."critical"===s?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:e=>e.frameworks?e.frameworks.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=A("FrameworkVulnerable",t.appId,{resourceId:t.appId,title:n.name});return"ok"===t.status?[{...r,status:"ok",message:`${n.name} runs Next.js ${t.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===t.status&&t.findings.length?[{...r,status:"firing",message:h(t.version,t.findings),..."CRITICAL"===(0,s.N)(t.findings)?{severity:"critical"}:{}}]:[r]}):null};e.s(["f",0,function(e,n,r){let a=[],s=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=V[i.key](e,i.threshold);n&&(s.add(i.key),a.push(...n))}return{observations:a,evaluated:s}}],949663);let x=["MonitorDown","HighLatency"],R=["telegram","discord","webhook","smtp"],D=e=>e.channels.some(e=>R.includes(e));function M(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&x.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let T=(e,t)=>"critical"===t&&"warning"===e?"critical":e,B=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),N=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,a,s){let i={open:[],touch:[],resolve:[]},l=new Map(a.map(e=>[e.key,e])),o=new Map(n.map(e=>[N(e.rule,e.subject),e])),d=new Set(e.map(e=>N(e.ruleKey,e.subject))),u=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=l.get(n.ruleKey),a=o.get(N(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!a){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===a.status)continue;let d=a.provider?s.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=M(a,s),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&s.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,l={id:n.id,okStreak:0,lastSampleAt:a.sampleAt??n.lastSampleAt,lastSeenAt:s.now,message:a.message,causedBy:t,providerIncident:d},o=!n.notifiedOpen&&(!n.pendingSince||s.now.getTime()-n.pendingSince.getTime()>=216e5);(r||o)&&!B(n,s.now)&&!t&&null===n.pending&&D(e)&&(l.pending=r?"repeat":"open"),i.touch.push(l);continue}if(!t._[n.ruleKey].sampled||null===a.sampleAt){u(n);continue}if(!(null===n.lastSampleAt||a.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?u(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of n){if("firing"!==e.status||d.has(N(e.rule,e.subject))||s.maintenance.has(e.subject)||e.resourceId&&s.maintenance.has(e.resourceId))continue;let t=l.get(e.rule);if(!t)continue;let n=M(e,s);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:T(t.severity,e.severity),title:e.title,message:e.message,startedAt:s.now,lastSeenAt:s.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?s.incidents.get(e.provider)??null:null,pending:n||!D(t)?null:"open"})}return i}],747556)},708621,e=>{let t=["status","severity","rule","target","detail","cause","step","since","threshold"],n=["id","en"],r={en:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nNext step: {step}\nsince {since}",id:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nYang perlu kamu lakukan: {step}\nsejak {since}"},a=/\{([a-zA-Z_]+)\}/g,s=e=>e.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function i(e){if(e.length>1e3)return`Keep it under ${1e3.toLocaleString("en-US")} characters.`;for(let[,n]of e.matchAll(a))if(!t.includes(n))return`{${n}} isn't a field. Use ${t.map(e=>`{${e}}`).join(", ")}.`;return null}e.s(["I",0,{en:"Test message: Watchbell's sentence about what it saw goes here.",id:"Pesan tes: di sini nanti kalimat Watchbell soal apa yang dilihatnya."},"z",0,"alerts.messageTemplates","i",0,n,"_",0,function(e){if(!e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[r,a]of Object.entries(e)){if(!a||"object"!=typeof a)continue;let e={};for(let t of n){let n=a[t];"string"==typeof n&&n.trim()&&null===i(n)&&(e[t]=n)}Object.keys(e).length&&(t[r]=e)}return t},"l",0,function(e,t){return s(e).split("\n").flatMap(e=>{let n=[...e.matchAll(a)].map(e=>e[1]).filter(e=>Object.hasOwn(t,e));return n.length&&n.every(e=>!t[e].trim())?[]:[e.replace(a,(e,n)=>Object.hasOwn(t,n)?t[n]:e)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim()},"F",0,function(e,t){let n="string"==typeof e?s(e):"";return n&&n!==r[t]?n:null},"m",0,i])},455317,71575,569057,930270,e=>{var t=e.i(93321),n=e.i(530385),r=e.i(351674),a=e.i(548734),s=e.i(837137),i=e.i(927262),l=e.i(949663),o=e.i(747556),d=e.i(708621),u=e.i(519051),c=e.i(160147),p=e.i(245710);function f(e,t){return"1h"===e?{silencedUntil:new Date(t.getTime()+36e5),silencedUntilResolved:!1}:{silencedUntil:null,silencedUntilResolved:!0}}e.s(["_",0,[["critical","Critical"],["warning","Warning"],["info","Info"]],"O",0,function(e,t){return e.silencedUntilResolved?{state:"off",text:"Silenced until resolved"}:e.silencedUntil&&e.silencedUntil.getTime()>t.getTime()?{state:"off",text:`Silenced until ${(0,p.U)(e.silencedUntil)}`}:"open"===e.pending||"repeat"===e.pending?{state:"build",text:"Sending…"}:e.causedBy&&!e.notifiedOpen?{state:"off",text:"Muted"}:e.lastNotifiedAt?{state:"ok",text:`Sent ${(0,p.U)(e.lastNotifiedAt)}`}:{state:"off",text:"Digest only"}},"G",0,function(e){return e.enabled?e.firing?{state:"err",text:`Firing \xb7 ${e.firing}`}:e.hasData?{state:"off",text:"Inactive"}:{state:"unknown",text:"No data yet"}:{state:"off",text:"Disabled"}},"A",0,f,"M",0,function(e,t){let n=Math.max(1,Math.round((t.getTime()-e.getTime())/6e4));if(n<60)return`${n} min`;let r=Math.floor(n/60);return r<24?`${r} h ${n%60} min`:`${Math.floor(r/24)} d ${r%24} h`}],71575);var m=e.i(639271),h=e.i(656298),g=e.i(688275),y=e.i(893893),k=e.i(672319),w=e.i(188546),v=e.i(233711),b=e.i(460565);async function I(){let[e]=await (0,a.f)().select({at:s.collectorRuns.finishedAt}).from(s.collectorRuns).where((0,t.b)((0,t.E)(s.collectorRuns.finishedAt),(0,t.y)(s.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,n.A)(s.collectorRuns.finishedAt)).limit(1);return e?.at??null}async function A(){let[e]=await (0,a.f)().select({at:s.collectorRuns.finishedAt}).from(s.collectorRuns).where((0,t.b)((0,t.E)(s.collectorRuns.finishedAt),(0,t.y)(s.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,n.A)(s.collectorRuns.finishedAt)).limit(1);return e?.at??null}async function $(){let[e]=await (0,a.f)().select({threshold:s.alertRules.threshold}).from(s.alertRules).where((0,t.u)(s.alertRules.key,"CollectorStale")).limit(1);return(0,b.X)(e?.threshold)}e.s(["o",0,$,"D",0,I,"d",0,A],569057);var S=e.i(367247),V=e.i(436357),x=e.i(912283),R=e.i(358179),D=e.i(492665),M=e.i(683439),T=e.i(679662),B=e.i(852539),N=e.i(33135),j=e.i(533957);let C="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function P(e,t,n,r){let a=r.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(a);return L(e,{method:"POST",headers:{"content-type":"application/json","user-agent":C},body:JSON.stringify(t),signal:s},n,s,r)}async function O(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(r,8e3));return L(e,{method:"GET",headers:{"user-agent":C},signal:a},t,a,n)}async function L(e,t,n,r,a){let s;try{s=await (a.fetch??fetch)(e,{...t,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:(0,j.t)(e)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!s.ok)return await s.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${s.status}`};try{let{bytes:e,truncated:t}=await (0,N.z)(s,n,(0,N.X)(r));if(t)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(e))}}catch(e){return{ok:!1,error:(0,j.t)(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function z(e,t){let n=[];for(let r of(0,B.f)(e)){let e=await P(B.n,r,4194304,t);if(!e.ok)return e;let a=(0,B.j)(e.body,r.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...a)}return{ok:!0,ids:n}}async function U(e,t){let n=[...new Set(e)].filter(B.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,a=null;for(let e=0;e<n.length&&!a;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await O(`${B.W}${encodeURIComponent(e)}`,1048576,t),s=n.ok?(0,B.O)(n.body):null;s?r.set(e,s):a??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return a?{ok:!1,error:a}:{ok:!0,map:r}}var E=e.i(521050),_=e.i(120213),H=e.i(689963),q=e.i(26972),K=e.i(427221),F=e.i(811365),J=e.i(760417);let G=H.z.array(q.z.object({name:K.z.string(),type:K.z.string(),sha:K.z.string(),size:F.z.number().optional()}));async function W(e,t,n,r={},a=null){if(!(0,J.M)(t)||!(0,J.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==a&&(0,E.Q)(a)!==a)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let s=a?a.split("/").map(encodeURIComponent).join("/"):"",i=await (0,J.j)(`/repos/${(0,J.f)(t)}/contents/${s}?ref=${encodeURIComponent(n)}`,e,r);if(!i.ok)return i;let l=G.safeParse(i.data);return l.success?{ok:!0,data:l.data.filter(e=>"file"===e.type&&/^[0-9a-f]{40}$/.test(e.sha)).map(e=>({name:e.name,sha:e.sha,size:e.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function Z(e,t,n,r={}){if(!(0,J.M)(t)||!(0,J.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let a=await (0,J.j)(`/repos/${(0,J.f)(t)}/git/ref/heads/${n.split("/").map(encodeURIComponent).join("/")}`,e,r);return a.ok?{ok:!0,data:!0}:"missing"===a.kind?{ok:!0,data:!1}:a}function Q(e,t,n,r,a,s={}){return(0,J.V)(e,t,n,r,a,s)}async function X(e,t,n={}){if(!(0,J.M)(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await (0,J.j)(`/repos/${(0,J.f)(t)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,e,n);if(!r.ok)return"scope"===r.kind||"missing"===r.kind?{ok:!0,data:{denied:!0}}:r;let a=(0,_.E)(r.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var Y=e.i(751263);async function ee(){let[e]=await (0,a.f)().select().from(s.accounts).where((0,t.u)(s.accounts.provider,"github")).orderBy((0,n.M)(s.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let r=(0,R.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,D.f)().OPS_ENCRYPTION_KEY);return r?{token:r,accountId:e.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function et(){let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,t.u)(s.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}let en=e=>{let t=(0,Y.w)(e);return{dir:(0,E.Q)((e??{}).rootDirectory),unsupported:(0,E.l)((e??{}).rootDirectoryUnsupported),branch:(0,Y.i)((0,Y.V)(e),null),...t?{fallback:t}:{}}};async function er(e){let n=[...new Set(e.filter(M.f))],r=new Map;if(!n.length)return r;let i=await (0,a.f)().select({repoId:s.appRepos.repoId,name:s.resources.name,monitored:s.resources.monitored,meta:s.resources.meta}).from(s.appRepos).innerJoin(s.resources,(0,t.u)(s.resources.id,s.appRepos.appId)).where((0,t.b)((0,t.y)(s.appRepos.repoId,n),(0,t.M)(s.resources.goneAt))).limit(1e3);for(let e of(i.sort((e,t)=>Number(!!t.monitored)-Number(!!e.monitored)||(e.name<t.name?-1:+(e.name>t.name))),i))r.has(e.repoId)||r.set(e.repoId,en(e.meta));return r}async function ea(){let e={id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,scannedAt:s.dependencyScans.scannedAt},n=(0,t.b)((0,t.M)(s.githubRepos.goneAt),(0,t.u)(s.githubRepos.archived,!1)),r=await et()?await (0,a.f)().select(e).from(s.githubRepos).leftJoin(s.dependencyScans,(0,t.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(n).limit(500):await (0,a.f)().selectDistinct(e).from(s.appRepos).innerJoin(s.githubRepos,(0,t.u)(s.githubRepos.id,s.appRepos.repoId)).leftJoin(s.dependencyScans,(0,t.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(n).limit(500),i=r.length?await er(r.map(e=>e.id)):new Map;return(0,_.M)(r.map(e=>{let t=i.get(e.id);return{...e,rootDir:t?.dir??null,rootDirUnsupported:t?.unsupported??null,prodBranch:t?.branch??null,...t?.fallback?{prodFallback:t.fallback}:{}}}))}let es=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function ei(e,t){let n=new Date;await (0,a.f)().insert(s.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function el(e){return(0,a.f)().select({id:s.dependencyVulns.id,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,source:s.dependencyVulns.source}).from(s.dependencyVulns).where((0,t.b)((0,t.u)(s.dependencyVulns.repoId,e),(0,t.M)(s.dependencyVulns.resolvedAt))).limit(2e3)}function eo(e,t){for(let n of T.a){let r=e.find(e=>e.name===n.path);if(r)return{path:(0,E.H)(t,n.path),kind:n.kind,sha:r.sha}}return null}async function ed(e,n,r,i={}){let l=()=>({...i,timeoutMs:Math.max(1e3,Math.min(r-Date.now(),1e4))}),o=async e=>(await ei(n.id,{error:es(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),d=n.defaultBranch??"HEAD",u=null;for(let t of[n.prodBranch,n.prodFallback]){if(t&&t===n.defaultBranch)break;let r=(0,Y.i)(t,n.defaultBranch);if(!r)continue;let a=await Z(e,n.fullName,r,l());if(!a.ok)return o(a.error);if(a.data){u=r;break}}let c=null!==u;u&&(d=u);let p=c?`Scanned ${u}, the branch production is built from.`:null,f=(0,E.Q)(n.rootDir),m=f?null:(0,E.l)(n.rootDirUnsupported),h=m?`The Vercel Root Directory "${m}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,g=await W(e,n.fullName,d,l(),f);if(!g.ok)return o(f&&"missing"===g.kind?`The folder ${(0,E.x)(f)} isn't in ${n.fullName} on ${d}.`:g.error);let y=eo(g.data,f),k=g.data.find(e=>"package.json"===e.name)??null,w=!1,v=null;if(f&&k&&!y){let t=await W(e,n.fullName,d,l());if(!t.ok)return o(t.error);w=null!==(y=eo(v=t.data,null))}let b=y?y.sha:k?`pkg:${k.sha}`:null,I=b&&f?`${f}:${b}${w&&k?`+${k.sha}`:""}`:b&&m?`odd:${b}`:b,A=I&&c?`br:${u}:${I}`:I,[$]=await (0,a.f)().select().from(s.dependencyScans).where((0,t.u)(s.dependencyScans.repoId,n.id)).limit(1),S=new Date;if(!(0,_.U)($??null,A,S,i.force))return{status:"unchanged"};if(!A){let e=await el(n.id);return e.length&&await (0,a.f)().update(s.dependencyVulns).set({resolvedAt:S}).where((0,t.y)(s.dependencyVulns.id,e.map(e=>e.id))),await ei(n.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:S,queriedAt:S,error:null,note:es([p,h,`No package.json or lockfile ${f?"in":"at"} ${(0,E.x)(f)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let V=(0,E.H)(f,"package.json"),R=k?await Q(e,n.fullName,V,d,J.$,l()):null;if(R&&!R.ok)return o(R.error);let D=R?.ok&&R.data?(0,T.b)(R.data):null,M=null,N="package-json",j=w&&y?`Scanned ${(0,E.x)(f)} with the repository root's ${y.path} (workspaces).`:null;if(y){if(2e3>r-Date.now())return o("Time budget used before the lockfile was read; the next run tries again.");let t=await Q(e,n.fullName,y.path,d,0xf00000,{...i,timeoutMs:Math.max(1e3,Math.min(r-Date.now(),2e4))});if(!t.ok)return o(t.error);let a=!0;if(w&&f&&t.data&&!(0,E.p)(y.kind,t.data,f)){let t=v?.some(e=>"package.json"===e.name)?await Q(e,n.fullName,"package.json",d,J.$,l()):null;if(t&&!t.ok)return o(t.error);a=(0,E.F)(t?.data??null,f)}a?(M=t.data?(0,T.D)(y.kind,t.data):null,N=y.kind,M||(j=[j,`${y.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(j=`The repository root's ${y.path} isn't a workspace that includes ${f}, so the versions come from ${V} ranges (approximate).`,y=null)}if(M){let e=(0,x.m)(M,D);M=e.deps,e.stale.length&&(j=[j,(0,x.M)(e.stale)].filter(Boolean).join(" "))}else M=D?(0,T.e)(D):[],N="package-json",j??=y?null:"No lockfile: the versions come from package.json ranges (approximate).";let C=await el(n.id),P=[];if(M.length){let e=await z(M,{fetch:i.fetch,deadline:r});if(!e.ok)return o(e.error);let t=(0,_.A)(C,!0===i.force),n=await U((0,_.z)(M,e.ids,t),{fetch:i.fetch,deadline:r});if(!n.ok)return o(n.error);P=(0,B.i)(M,e.ids,n.map,t)}if(r-Date.now()>1500){let t=await X(e,n.fullName,l());t.ok&&"alerts"in t.data?P=(0,_.R)(P,t.data.alerts,M):t.ok&&(j=[j,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let O=(0,_.h)(C,P,(0,T.K)(D));j=[p,h,j].filter(Boolean).join(" ")||null;let L=new Date;return await (0,a.f)().transaction(async e=>{for(let r of(O.insert.length&&await e.insert(s.dependencyVulns).values(O.insert.map(e=>({repoId:n.id,package:e.package,installedVersion:e.installedVersion,vulnId:e.vulnId,aliases:e.aliases,severity:e.severity,fixedVersion:e.fixedVersion,summary:e.summary,direct:e.direct,dev:e.dev,source:e.source,firstSeenAt:L,lastSeenAt:L}))).onConflictDoNothing(),O.update))await e.update(s.dependencyVulns).set({severity:r.severity,fixedVersion:r.fixedVersion,summary:r.summary,aliases:r.aliases,dev:r.dev,direct:r.direct,lastSeenAt:L}).where((0,t.u)(s.dependencyVulns.id,r.id));O.resolve.length&&await e.update(s.dependencyVulns).set({resolvedAt:L}).where((0,t.b)((0,t.y)(s.dependencyVulns.id,O.resolve),(0,t.M)(s.dependencyVulns.resolvedAt))),await e.insert(s.dependencyScans).values({repoId:n.id,lockfilePath:y?.path??(k?V:null),lockfileSha:A,packageCount:M.length,scannedAt:L,queriedAt:L,error:null,note:j?es(j,300):null,updatedAt:L}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{lockfilePath:y?.path??(k?V:null),lockfileSha:A,packageCount:M.length,scannedAt:L,queriedAt:L,error:null,note:j?es(j,300):null,updatedAt:L}})}),{status:"scanned",vulns:O.insert.length+O.update.length,packages:M.length,note:"package-json"===N?j:null}}async function eu(e,n={}){var r,i;let l,o,d,u,c=await ee();if("error"in c)return{error:c.error};let{first:p,only:f,skip:m,...h}=n,g=(r=await ea(),l=(i={first:p,only:f,skip:m}).only?new Set(i.only):null,o=new Set(i.skip??[]),d=(l?r.filter(e=>l.has(e.id)):r).filter(e=>!o.has(e.id)),u=new Set(i.first??[]),[...d.filter(e=>u.has(e.id)),...d.filter(e=>!u.has(e.id))]),y={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:g.map(e=>e.id)};for(let[t,n]of g.entries()){if(e-Date.now()<4e3){y.left=g.length-t;break}y.done.push(n.id);try{let t=await ed(c.token,n,e,h);"scanned"===t.status?y.scanned++:"unchanged"===t.status?y.unchanged++:y.failed.push(`${n.fullName}: ${t.error}`)}catch(e){y.failed.push(`${n.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(s.dependencyVulns).where((0,t.b)((0,t.E)(s.dependencyVulns.resolvedAt),(0,t.S)(s.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),y}let ec=async()=>(await (0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,t.u)(s.accounts.provider,"github")).limit(1)).length>0;async function ep(e,n,r={}){let i,l,o,{marked:d,onlyMarked:u}=n;if(!await ec())return{problem:null,settled:[...d],done:[],complete:!0};let c=d.filter(M.f),p=c.length?await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,t.y)(s.appRepos.appId,c)).limit(5*c.length):[],f=[...new Set(p.map(e=>e.repoId))],m=e=>p.filter(t=>t.appId===e).map(e=>e.repoId),h=d.filter(e=>!m(e).length);if(u&&!f.length)return{problem:null,settled:[...d],done:[],complete:!0};if(e-Date.now()<4e3)return{problem:null,settled:h,done:[],complete:!1};let g=(n.skip??[]).filter(e=>!f.includes(e)),y=await eu(e,{...r,first:f,...u?{only:f}:{skip:g}});if("error"in y){let e;return{problem:(e=y.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:y.error,settled:[...d],done:[],complete:!0}}let k=new Set([...y.done,...f.filter(e=>!y.listed.includes(e))]);return{problem:(i=y.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),(l=y.failed.length-i.length+(y.left??0))&&console.info(`deps: ${l} repositor${1===l?"y":"ies"} wait for the next run`),o=i.slice(0,3),i.length>3&&o.push(`+${i.length-3} more`),o.length?o.join("; "):null),settled:d.filter(e=>m(e).every(e=>k.has(e))),done:y.done,complete:0===y.left}}async function ef(e){let r={repo:null,scan:null,vulns:[],writeConnected:!1};if(!(0,M.f)(e))return r;let[i]=await (0,a.f)().select({id:s.githubRepos.id,fullName:s.githubRepos.fullName}).from(s.appRepos).innerJoin(s.githubRepos,(0,t.u)(s.githubRepos.id,s.appRepos.repoId)).where((0,t.u)(s.appRepos.appId,e)).limit(1);if(!i)return r;let[[l],o,[d]]=await Promise.all([(0,a.f)().select({scannedAt:s.dependencyScans.scannedAt,lockfilePath:s.dependencyScans.lockfilePath,packageCount:s.dependencyScans.packageCount,error:s.dependencyScans.error,note:s.dependencyScans.note}).from(s.dependencyScans).where((0,t.u)(s.dependencyScans.repoId,i.id)).limit(1),(0,a.f)().select({package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,firstSeenAt:s.dependencyVulns.firstSeenAt}).from(s.dependencyVulns).where((0,t.b)((0,t.u)(s.dependencyVulns.repoId,i.id),(0,t.M)(s.dependencyVulns.resolvedAt))).limit(2e3),(0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,t.u)(s.accounts.provider,"github_write")).limit(1)]);o.sort((e,t)=>(0,_.t)(e.severity)-(0,_.t)(t.severity)||(e.package<t.package?-1:+(e.package>t.package))||(e.vulnId<t.vulnId?-1:1));let u=await (0,a.f)().select({number:s.dependencyPrs.number,stage:s.dependencyPrs.stage,stageText:s.dependencyPrs.stageText,openedAt:s.dependencyPrs.openedAt}).from(s.dependencyPrs).where((0,t.b)((0,t.u)(s.dependencyPrs.repoId,i.id),(0,t.B)(s.dependencyPrs.openedAt,new Date(Date.now()-12096e5)))).orderBy((0,n.A)(s.dependencyPrs.openedAt)).limit(5).catch(()=>[]);return{repo:i,scan:l??null,vulns:o,writeConnected:!!d,prs:(u??[]).map(e=>({...e,fullName:i.fullName}))}}async function em(e,n={}){if(!(0,M.f)(e))return{ok:!1,error:"That app no longer exists."};let[i]=await (0,a.f)().select({app:s.resources.name,id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,goneAt:s.githubRepos.goneAt,meta:s.resources.meta}).from(s.appRepos).innerJoin(s.githubRepos,(0,t.u)(s.githubRepos.id,s.appRepos.repoId)).innerJoin(s.resources,(0,t.u)(s.resources.id,s.appRepos.appId)).where((0,t.u)(s.appRepos.appId,e)).limit(1);if(!i)return{ok:!1,error:"Link a repository first."};if(i.goneAt)return{ok:!1,error:"That repository is no longer shared with the GitHub token."};let l=await ee();if("error"in l)return{ok:!1,error:l.error};let o=en(i.meta),d=await ed(l.token,{id:i.id,fullName:i.fullName,defaultBranch:i.defaultBranch,scannedAt:null,rootDir:o.dir,rootDirUnsupported:o.unsupported,prodBranch:o.branch,prodFallback:o.fallback??null},Date.now()+4e4,{...n,force:!0});if("failed"===d.status)return{ok:!1,error:`The scan failed: ${d.error}`};let[u]=await (0,a.f)().select({n:r.B`count(*)::int`}).from(s.dependencyVulns).where((0,t.b)((0,t.u)(s.dependencyVulns.repoId,i.id),(0,t.M)(s.dependencyVulns.resolvedAt))),c=u?.n??0;return{ok:!0,app:i.app,repo:i.fullName,vulns:c,message:c?`${c} known vulnerabilit${1===c?"y":"ies"} in ${d.packages??0} packages.`:`No known vulnerabilities in ${d.packages??0} packages.`}}async function eh(e){let n=e.filter(M.f);if(!n.length)return[];let r=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId,error:s.dependencyScans.error}).from(s.appRepos).innerJoin(s.dependencyScans,(0,t.u)(s.dependencyScans.repoId,s.appRepos.repoId)).where((0,t.b)((0,t.y)(s.appRepos.appId,n),(0,t.E)(s.dependencyScans.scannedAt)));if(!r.length)return[];let i=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,severity:s.dependencyVulns.severity,summary:s.dependencyVulns.summary,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,t.b)((0,t.y)(s.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,t.M)(s.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:i.filter(t=>t.repoId===e.repoId).map(e=>({package:e.package,installedVersion:e.installedVersion,fixedVersion:e.fixedVersion,severity:e.severity,summary:e.summary,dev:e.dev,direct:e.direct}))}))}async function eg(e,n=new Set){let i=e.filter(M.f),l=new Map;if(!i.length)return l;let o=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,t.y)(s.appRepos.appId,i));if(!o.length)return l;let d=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,vulnId:s.dependencyVulns.vulnId,aliases:s.dependencyVulns.aliases,severity:s.dependencyVulns.severity,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,t.b)((0,t.y)(s.dependencyVulns.repoId,[...new Set(o.map(e=>e.repoId))]),(0,t.M)(s.dependencyVulns.resolvedAt),(0,t.u)(s.dependencyVulns.direct,!0),(0,t.E)(s.dependencyVulns.fixedVersion))).limit(2e3),u=d.some(e=>"next"===e.package)?new Set((await (0,a.f)().selectDistinct({appId:s.dependencyPrs.appId}).from(s.dependencyPrs).where((0,t.b)((0,t.y)(s.dependencyPrs.appId,i),(0,t.$)(s.dependencyPrs.stage,["merged","closed"]),(0,t.B)(s.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),r.B`${s.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(i.length)).map(e=>e.appId)):new Set;for(let e of o){let t=n.has(e.appId)||u.has(e.appId);(0,_.B)(d.filter(n=>n.repoId===e.repoId&&!(t&&"next"===n.package))).length&&l.set(e.appId,e.repoId)}return l}e.s(["o",0,12e3,"d",0,4e3,"j",0,ef,"O",0,ep,"C",0,eg,"a",0,eh,"h",0,em],930270);var ey=e.i(242605);async function ek(){return(0,a.f)().select({appId:s.links.fromResourceId,dbId:s.links.toResourceId}).from(s.links).where((0,t.u)(s.links.kind,"uses_db")).limit(500)}async function ew(e){let i=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),[l,o,d,u,c]=await Promise.all([A(),I(),(0,a.f)().select({m:s.monitors,appName:s.resources.name,appMeta:s.resources.meta}).from(s.monitors).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(i,(0,t.u)(s.monitors.paused,!1),(0,t.u)(s.monitors.ownerPaused,!1))),(0,a.f)().select({id:s.resources.id,name:s.resources.name,meta:s.resources.meta}).from(s.resources).where((0,t.b)(i,(0,t.u)(s.resources.kind,"app"))),(0,a.f)().select({id:s.accounts.id,provider:s.accounts.provider,label:s.accounts.label,expiresAt:s.accounts.expiresAt,status:s.accounts.status,lastError:s.accounts.lastError}).from(s.accounts)]),p=d.map(e=>e.m.id),f=p.length?await (0,a.f)().select({id:s.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})::float8`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,p),(0,t.B)(s.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(s.checks.inMaintenance,!1))).groupBy(s.checks.monitorId):[],b=u.map(e=>e.id),$=b.length?await (0,a.f)().selectDistinctOn([s.deployments.resourceId],{appId:s.deployments.resourceId,state:s.deployments.state,sha:s.deployments.commitSha,createdAt:s.deployments.createdAtProvider}).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,b),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,n.A)(s.deployments.createdAtProvider)):[],x=await (0,a.f)().select({id:s.resources.id,name:s.resources.name,kind:s.resources.kind,state:s.snapshots.state,data:s.snapshots.data}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)(i,(0,t.y)(s.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),R=e=>x.filter(t=>t.kind===e),D=x.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),M=R("zone"),T=R("domain"),B=await ek(),N=await (0,S.Y)().catch(()=>null),j=b.length?await eh(b).catch(()=>null):null,C=b.length?await (0,ey.F)(b).catch(()=>null):null;return{now:e,lastMinuteRunAt:l,lastAnyRunAt:o,monitors:d.map(({m:e,appName:t,appMeta:n})=>{let r=f.find(t=>t.id===e.id),a="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:a?e.name??"heartbeat":e.url,kind:a?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:r?.p95??null,checksLast10:r?.n??0,movedTo:a?null:(0,V.u)(e.url,{name:t,meta:n},u.filter(t=>t.id!==e.resourceId),{lastError:e.lastError})?.to??null}}),apps:u.map(e=>{let t=$.find(t=>t.appId===e.id);return{id:e.id,name:e.name,latestProduction:t?{state:t.state,sha:t.sha,createdAt:t.createdAt}:null}}),accounts:c,dbs:D.length?D.map(t=>(function(e,t){let n={id:e.id,name:e.name,state:e.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===e.kind){let t=(0,y.k)(y.B,e.data),r=(0,v.Z)(t.lastTrafficAt),a=(0,v.Z)(t.trafficAt),s=r??(a&&!t.trafficError?new Date(a.getTime()-6048e5):null);return{...n,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:k.R,lastApiAt:s}}if("neon_project"===e.kind){let t=(0,y.k)(y.s,e.data),r=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...n,provider:"neon",cuHours:null==t.computeSeconds?null:t.computeSeconds/3600,cuLimit:g.a.cuHours,sizeBytes:r.length?r.reduce((e,t)=>e+t,0):null,sizeLimitBytes:g.a.storageBytes}}if("firestore"===e.kind){let r=(0,y.k)(y.w,e.data),a=(0,v.Z)(r.opsAt),s=null!=r.reads&&a&&a.getTime()>=(0,h.a)(t).getTime()?r.reads:null,i=null!=r.latencyMs||null!=r.pingError;return{...n,provider:"firestore",readsToday:s,readsLimit:h.T.reads,quotaExhausted:i?"RESOURCE_EXHAUSTED"===r.pingReason:null}}if("turso_database"===e.kind){let r=(0,y.k)(y.N,e.data),a=(0,m.u)((0,m.G)(r,t));return{...n,provider:"turso",sizeBytes:r.orgStorageBytes??null,sizeLimitBytes:m.g.storageBytes,quotaPct:a?.pct??null,quotaLabel:a?`${a.label} ${a.text}`:null}}if("upstash_redis"===e.kind){let r=(0,y.k)(y.e,e.data),a=(0,m.u)((0,m.$)(r,t));return{...n,provider:"upstash",sizeBytes:r.storageBytes??null,sizeLimitBytes:m.W.storageBytes,quotaPct:a?.pct??null,quotaLabel:a?`${a.label} ${a.text}`:null}}if("d1_database"===e.kind){let r=(0,y.k)(y.x,e.data),a=(0,m.u)((0,m.I)(r,t));return{...n,provider:"d1",sizeBytes:r.sizeBytes??null,sizeLimitBytes:m.M.dbBytes,quotaPct:a?.pct??null,quotaLabel:a?`${a.label} ${a.text}`:null}}return null})(t,e)).filter(e=>null!==e):null,domains:M.length||T.length?[...M.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,v.Z)((0,w.q)(e.data).rdap?.expiresAt)})),...T.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,v.Z)((0,w.q)(e.data).tls?.notAfter),expiresAt:null}))]:null,dns:function(e,t){let n=e.filter(e=>Array.isArray(e.data.records));if(!n.length)return null;let r=e.map(e=>e.name),a=[];for(let e of n){let n=t.filter(t=>(0,v.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),s=[...new Set(n.flatMap(e=>(0,w.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,w.q)(e.data).records){if(!(0,v.l)(t,s))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);a.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a}(M,T),links:B,compute:N,deps:j&&j.length?j:null,frameworks:C&&C.length?C:null}}var ev=e.i(714530),eb=e.i(396667);let eI={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function eA(){return(await (0,a.f)().select().from(s.alertRules)).filter(e=>(0,i.h)(e.key)).map(e=>({key:e.key,severity:e.severity,threshold:e.threshold,enabled:e.enabled,channels:e.channels}))}async function e$(e,n={}){let[r,d,p,f,m,h]=await Promise.all([ew(e),eA(),(0,a.f)().select().from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)),(0,a.f)().select({provider:s.providerStatus.provider,state:s.providerStatus.state}).from(s.providerStatus),(0,ev.w)(),(0,eb.I)()]),g=new Map(r.accounts.map(e=>[e.id,e.provider])),y=p.filter(e=>!(0,c.O)(h,e.ruleKey,e.accountId?g.get(e.accountId):null)),k=(0,l.f)(r,d,n.only),w=k.evaluated,v=k.observations.filter(e=>!(0,c.O)(h,e.rule,e.provider)),b=d.find(e=>"CollectorStale"===e.key),I=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,A=!!b?.enabled&&(!I||e.getTime()-I.getTime()>(b.threshold??5)*6e4),$=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),S=new Map(r.links.filter(e=>$.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${$.get(e.dbId)}`])),V=new Map(f.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,eI[e.provider]??e.provider])),x=(0,u.u)(m,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),R=y.filter(e=>(0,i.h)(e.ruleKey)).map(e=>({id:e.id,ruleKey:e.ruleKey,subject:e.subject,okStreak:e.okStreak,lastSampleAt:e.lastSampleAt,silencedUntil:e.silencedUntil,silencedUntilResolved:e.silencedUntilResolved,notifiedOpen:e.notifiedOpen,lastNotifiedAt:e.lastNotifiedAt,pending:e.pending,pendingSince:e.pendingSince})),D=(0,o.f)(R,v,w,d,{now:e,collectorStale:A,mutedApps:S,incidents:V,maintenance:x});return D.open.length||D.touch.length||D.resolve.length?(await (0,a.f)().transaction(async n=>{for(let t of D.open)await n.insert(s.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of D.touch){let{id:a,pending:i,...l}=r;await n.update(s.alerts).set({...l,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(s.alerts.id,a),(0,t.M)(s.alerts.resolvedAt)))}for(let r of D.resolve)await n.update(s.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(s.alerts.id,r.id),(0,t.M)(s.alerts.resolvedAt)))}),{opened:D.open.length,resolved:D.resolve.length}):{opened:0,resolved:0}}async function eS(){let[e,n]=await Promise.all([(0,eb.I)(),(0,a.f)().select({ruleKey:s.alerts.ruleKey,provider:s.accounts.provider,n:r.B`count(*)::int`}).from(s.alerts).leftJoin(s.accounts,(0,t.u)(s.accounts.id,s.alerts.accountId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,t.y)(s.alerts.severity,["critical","warning"]))).groupBy(s.alerts.ruleKey,s.accounts.provider)]);return n.reduce((t,n)=>t+((0,c.O)(e,n.ruleKey,n.provider)?0:Number(n.n)),0)}let eV=r.B`case ${s.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function ex(e=new Set){return(await (0,a.f)().select({a:s.alerts,name:s.resources.name,kind:s.resources.kind}).from(s.alerts).leftJoin(s.resources,(0,t.u)(s.resources.id,s.alerts.resourceId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,eb.s)(e))).orderBy(eV,(0,n.A)(s.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function eR(){return ex(await (0,eb.I)())}async function eD(e){return(await (0,a.f)().select({id:s.alerts.id,ruleKey:s.alerts.ruleKey,severity:s.alerts.severity,title:s.alerts.title,resourceId:s.alerts.resourceId,startedAt:s.alerts.startedAt,resolvedAt:s.alerts.resolvedAt}).from(s.alerts).where((0,t.b)((0,t.E)(s.alerts.resolvedAt),(0,t.B)(s.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(s.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}async function eM(){let[e,n,l]=await Promise.all([eA(),(0,a.f)().select({key:s.alerts.ruleKey,n:r.B`count(*)::int`}).from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)).groupBy(s.alerts.ruleKey),(0,a.f)().select({kind:s.resources.kind}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt))).groupBy(s.resources.kind)]),o=new Set(l.map(e=>e.kind)),d={databases:["supabase_project","neon_project","firestore"].some(e=>o.has(e)),domains:o.has("domain")||o.has("zone"),dns:o.has("zone")};return i.u.flatMap(t=>{let r=e.find(e=>e.key===t);if(!r)return[];let a=i._[t].needs;return[{rule:r,firing:n.find(e=>e.key===t)?.n??0,hasData:null===a||d[a]}]})}async function eT(e,n,r,i){let l="off"===n?{silencedUntil:null,silencedUntilResolved:!1,silencedBy:null}:{...f(n,i),silencedBy:r},[o]=await (0,a.f)().update(s.alerts).set(l).where((0,t.b)((0,t.u)(s.alerts.id,e),(0,t.M)(s.alerts.resolvedAt))).returning({ruleKey:s.alerts.ruleKey,title:s.alerts.title,resourceId:s.alerts.resourceId});return o??null}async function eB(e,n){return(await (0,a.f)().update(s.alertRules).set({...n,updatedAt:new Date}).where((0,t.u)(s.alertRules.key,e)).returning({key:s.alertRules.key})).length>0}async function eN(){try{let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,t.u)(s.settings.key,d.z)).limit(1);return(0,d._)(e?.value)}catch{return{}}}async function ej(e,t){let n=await eN();Object.keys(t).length?n[e]=t:delete n[e],await (0,a.f)().insert(s.settings).values({key:d.z,value:n}).onConflictDoUpdate({target:s.settings.key,set:{value:n,updatedAt:new Date}})}e.s(["$",0,e$,"q",0,ex,"I",0,eD,"i",0,eR,"X",0,eS,"w",0,eN,"y",0,eM,"z",0,eB,"_",0,ej,"N",0,eT],455317)}]})();
1
+ (()=>{"use strict";module.exports=[949663,912283,876808,747556,e=>{var t=e.i(927262),n=e.i(201516),r=e.i(273133),a=e.i(120213),s=e.i(84979),i=e.i(84877),l=e.i(679662);let o=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function d(e,t){let n=o.exec(e.trim()),r=o.exec(t.trim());return!!n&&!!r&&n[1]===r[1]&&("0"!==n[1]||n[2]===r[2])&&(0,i.f)(t,e)>=0}let u=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,c=e=>u.exec(e)?.[1]??null;e.s(["M",0,e=>`Lockfile tertinggal — jalankan npm install (${e.slice(0,5).join(", ")}${e.length>5?`, +${e.length-5}`:""}).`,"a",0,function(e,t,n){if(!e.length)return{ok:!1,why:"nothing"};let r=e.filter(e=>n.includes(e.severity)&&!("moderate"===e.severity&&e.dev));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!d(n,e.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:r}},"m",0,function(e,t){if(!t)return{deps:e,stale:[]};let n=[...Object.entries(t.dependencies).map(([e,t])=>[e,t,!1]),...Object.entries(t.optionalDependencies).map(([e,t])=>[e,t,!1]),...Object.entries(t.devDependencies).map(([e,t])=>[e,t,!0])],r=[...e],a=[];for(let[e,t,s]of n){let n=(0,l.Y)(t);if(!n||!(0,l.C)(n))continue;let o=r.filter(t=>t.name===e);!o.length||o.some(e=>(0,i.f)(e.version,n)>=0)||((r=r.filter(t=>t.name!==e)).push({name:e,version:n,dev:o.every(e=>e.dev)&&s}),a.push(e))}return{deps:r,stale:a}},"D",0,function(e){let t=new Map;for(let n of e){if(!n.direct)continue;let e=t.get(n.package);(!e||0>(0,i.f)(n.installedVersion,e))&&t.set(n.package,n.installedVersion)}return t},"U",0,function(e,t,n=null){for(let r of t){if(c(r.title)!==n)continue;let t=function(e){if(e.packages?.length)return e.packages;let t=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(e.title);return t?[t[1]]:"all"}(r);if("all"===t||e.some(e=>t.includes(e)))return r}return null},"J",0,d],912283);let p=["next","eslint-config-next"],f={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function m(e,t){if(!e||!(0,l.C)(e))return null;let n=t.map(e=>e.fixed).filter(t=>!!t&&(0,l.C)(t)&&(0,i.f)(t,e)>0);if(!n.length)return null;let r=n.filter(t=>d(e,t));return(r.length?r:n).reduce((e,t)=>(0,i.f)(t,e)>0?t:e)}function h(e,t){let n=m(e,t),r=n?t.map(e=>e.fixed).filter(e=>!!e&&(0,l.C)(e)&&(0,i.f)(e,n)>0):[],a=r.reduce((e,t)=>null===e||(0,i.f)(t,e)>0?t:e,null),o=a?` (${1===r.length?"one fix needs":"some fixes need"} Next.js ${a.split(".")[0]})`:"";return`Next.js ${e??"(unknown version)"} has ${(0,s.q)(t.length)} (${(0,s.N)(t).toLowerCase()}), ${n?`fixed in ${n}${o}`:"no fix yet"}.`}e.s(["P",0,h,"p",0,function(e){if(!e||"vulnerable"!==e.status||!e.findings.length||!e.version)return null;let t=m(e.version,e.findings);if(!t)return null;let n=f[(0,s.N)(e.findings)],r=[...new Set(e.findings.map(e=>e.id))],a=[...new Set(e.findings.flatMap(e=>e.cve?[e.cve]:[]))];return{from:e.version,to:t,upgrades:[{package:"next",to:t,vulnIds:r,cves:a,severity:n},{package:"eslint-config-next",to:t,vulnIds:[],cves:[],severity:n,companionOf:"next"}],installed:new Map(p.map(t=>[t,e.version]))}},"F",0,function(e){let t=e.find(e=>"next"===e.package&&!e.companionOf);return!t||e.some(e=>"eslint-config-next"===e.package)?e:[...e,{package:"eslint-config-next",to:t.to,vulnIds:[],cves:[],severity:t.severity,companionOf:"next"}]}],876808);let g=e=>Math.round(e).toLocaleString("en-US"),y=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),k=(e,t)=>`${e} ${t}${1===e?"":"s"}`,w=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},v=e=>{try{return new URL(e).host}catch{return e}},b=e=>{try{return new URL(e).pathname}catch{return"/"}},I="Down · ",A=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),$=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,S=new Set(["turso","upstash","d1"]),V={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=A("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:b(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=t??3;if("heartbeat"===e.kind){let t;return{...r,status:"err"===e.state?"firing":"ok"===e.state?"ok":"unknown",message:`${e.appName} \xb7 ${e.url}: ${t=e.lastError,t?.startsWith(I)?t.slice(I.length):"no ping in time"}.`}}return e.movedTo?{...r,status:"ok",message:`${v(e.url)} moved to ${e.movedTo}; MonitorDomainMoved takes over.`}:e.failStreak>=a?{...r,status:"firing",message:(0,n.H)(e)?`${w(e.url)} failed its check (${(0,n.H)(e)}) on ${a} consecutive checks.`:`${w(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${w(e.url)} answers again.`}}),MonitorDomainMoved:e=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let t=A("MonitorDomainMoved",e.id,{resourceId:e.appId,title:`${e.appName} ${b(e.url)}`,provider:"vercel"});return e.movedTo?{...t,status:"firing",message:`${v(e.url)} is no longer a domain of ${e.appName}; production is on ${e.movedTo}.`}:{...t,status:"ok",message:`The monitor checks ${v(e.url)}, a domain of ${e.appName}.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[A("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${g((e.now.getTime()-n.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(e,t)=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let n=A("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${b(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt});if(e.checksLast10<5||null===e.p95Last10)return n;let r=t??1500;return{...n,status:e.p95Last10>r?"firing":"ok",message:`p95 ${g(e.p95Last10)} ms over the last 10 minutes (limit ${g(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=A("DeploymentFailed",e.id,{resourceId:e.id,title:e.name,provider:"vercel"}),n=e.latestProduction;return n?"error"===n.state?{...t,status:"firing",message:`Production deployment ${n.sha?n.sha.slice(0,7):"(no commit)"} failed.`}:{...t,status:"building"===n.state?"unknown":"ok"}:{...t,status:"ok"}}),DatabasePaused:e=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(e=>A("DatabasePaused",e.id,{resourceId:e.id,title:e.name,provider:"supabase",status:"unknown"===e.state?"unknown":"paused"===e.state?"firing":"ok",message:`Supabase project ${e.name} is paused.`})),CertExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=A("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let a=y(n.tlsNotAfter,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${k(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=A("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let a=y(n.expiresAt,e.now);return{...r,status:a<(t??30)?"firing":"ok",message:`${n.name} expires in ${k(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=A("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:$(e)});if(null===e.sizeBytes||!e.sizeLimitBytes)return n;let r=e.sizeBytes/e.sizeLimitBytes*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} uses ${g(e.sizeBytes/1e6)} MB of ${g(e.sizeLimitBytes/1e6)} MB (${g(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=A("NeonComputeHigh",e.id,{resourceId:e.id,title:e.name,provider:"neon"});return null===e.cuHours?n:{...n,status:e.cuHours>(t??80)?"firing":"ok",message:`${e.name} used ${g(e.cuHours)} of ${g(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=A("FirestoreQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:"firebase"});if(e.quotaExhausted)return{...n,status:"firing",message:`${e.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===e.readsToday||!e.readsLimit)return!1===e.quotaExhausted?{...n,status:"ok"}:n;let r=e.readsToday/e.readsLimit*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} read ${g(e.readsToday)} of ${g(e.readsLimit)} documents today (${g(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=A("AutoPauseRisk",n.id,{resourceId:n.id,title:n.name,provider:"supabase"});if("paused"===n.state)return{...r,status:"ok"};if(!n.lastApiAt)return r;let a=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${k(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>A("DnsProxiedToVercel",e.id,{resourceId:e.resourceId,title:e.name,provider:"cloudflare",status:e.proxied&&e.pointsToVercel?"firing":"ok",message:`${e.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>S.has(e.provider)).map(e=>{let n=A("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:$(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${g(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let a=A("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),s=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===s?a:{...a,status:s.length?"firing":"ok",message:s.length?`${n.name}: ${s.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=A("CredentialExpiring",n.id,{accountId:n.id,title:`${n.provider} \xb7 ${n.label}`,provider:n.provider});if("drive"===n.provider&&"error"===n.status&&n.lastError?.includes("invalid_grant"))return{...r,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!n.expiresAt)return{...r,status:"ok"};let a=y(n.expiresAt,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:a<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${k(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=A("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let s=(0,a.g)(t.vulns);return s?[{...r,status:"firing",message:(0,a.L)(t.vulns),..."critical"===s?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:e=>e.frameworks?e.frameworks.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=A("FrameworkVulnerable",t.appId,{resourceId:t.appId,title:n.name});return"ok"===t.status?[{...r,status:"ok",message:`${n.name} runs Next.js ${t.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===t.status&&t.findings.length?[{...r,status:"firing",message:h(t.version,t.findings),..."CRITICAL"===(0,s.N)(t.findings)?{severity:"critical"}:{}}]:[r]}):null};e.s(["f",0,function(e,n,r){let a=[],s=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=V[i.key](e,i.threshold);n&&(s.add(i.key),a.push(...n))}return{observations:a,evaluated:s}}],949663);let x=["MonitorDown","HighLatency"],R=["telegram","discord","webhook","smtp"],D=e=>e.channels.some(e=>R.includes(e));function M(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&x.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let T=(e,t)=>"critical"===t&&"warning"===e?"critical":e,B=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),N=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,a,s){let i={open:[],touch:[],resolve:[]},l=new Map(a.map(e=>[e.key,e])),o=new Map(n.map(e=>[N(e.rule,e.subject),e])),d=new Set(e.map(e=>N(e.ruleKey,e.subject))),u=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=l.get(n.ruleKey),a=o.get(N(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!a){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===a.status)continue;let d=a.provider?s.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=M(a,s),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&s.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,l={id:n.id,okStreak:0,lastSampleAt:a.sampleAt??n.lastSampleAt,lastSeenAt:s.now,message:a.message,causedBy:t,providerIncident:d},o=!n.notifiedOpen&&(!n.pendingSince||s.now.getTime()-n.pendingSince.getTime()>=216e5);(r||o)&&!B(n,s.now)&&!t&&null===n.pending&&D(e)&&(l.pending=r?"repeat":"open"),i.touch.push(l);continue}if(!t._[n.ruleKey].sampled||null===a.sampleAt){u(n);continue}if(!(null===n.lastSampleAt||a.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?u(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of n){if("firing"!==e.status||d.has(N(e.rule,e.subject))||s.maintenance.has(e.subject)||e.resourceId&&s.maintenance.has(e.resourceId))continue;let t=l.get(e.rule);if(!t)continue;let n=M(e,s);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:T(t.severity,e.severity),title:e.title,message:e.message,startedAt:s.now,lastSeenAt:s.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?s.incidents.get(e.provider)??null:null,pending:n||!D(t)?null:"open"})}return i}],747556)},708621,e=>{let t=["status","severity","rule","target","detail","cause","step","since","threshold"],n=["id","en"],r={en:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nNext step: {step}\nsince {since}",id:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nYang perlu kamu lakukan: {step}\nsejak {since}"},a=/\{([a-zA-Z_]+)\}/g,s=e=>e.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function i(e){if(e.length>1e3)return`Keep it under ${1e3.toLocaleString("en-US")} characters.`;for(let[,n]of e.matchAll(a))if(!t.includes(n))return`{${n}} isn't a field. Use ${t.map(e=>`{${e}}`).join(", ")}.`;return null}e.s(["I",0,{en:"Test message: Watchbell's sentence about what it saw goes here.",id:"Pesan tes: di sini nanti kalimat Watchbell soal apa yang dilihatnya."},"z",0,"alerts.messageTemplates","i",0,n,"_",0,function(e){if(!e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[r,a]of Object.entries(e)){if(!a||"object"!=typeof a)continue;let e={};for(let t of n){let n=a[t];"string"==typeof n&&n.trim()&&null===i(n)&&(e[t]=n)}Object.keys(e).length&&(t[r]=e)}return t},"l",0,function(e,t){return s(e).split("\n").flatMap(e=>{let n=[...e.matchAll(a)].map(e=>e[1]).filter(e=>Object.hasOwn(t,e));return n.length&&n.every(e=>!t[e].trim())?[]:[e.replace(a,(e,n)=>Object.hasOwn(t,n)?t[n]:e)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim()},"F",0,function(e,t){let n="string"==typeof e?s(e):"";return n&&n!==r[t]?n:null},"m",0,i])},455317,71575,569057,930270,e=>{var t=e.i(93321),n=e.i(530385),r=e.i(351674),a=e.i(548734),s=e.i(837137),i=e.i(927262),l=e.i(949663),o=e.i(747556),d=e.i(708621),u=e.i(519051),c=e.i(160147),p=e.i(245710);function f(e,t){return"1h"===e?{silencedUntil:new Date(t.getTime()+36e5),silencedUntilResolved:!1}:{silencedUntil:null,silencedUntilResolved:!0}}e.s(["_",0,[["critical","Critical"],["warning","Warning"],["info","Info"]],"O",0,function(e,t){return e.silencedUntilResolved?{state:"off",text:"Silenced until resolved"}:e.silencedUntil&&e.silencedUntil.getTime()>t.getTime()?{state:"off",text:`Silenced until ${(0,p.U)(e.silencedUntil)}`}:"open"===e.pending||"repeat"===e.pending?{state:"build",text:"Sending…"}:e.causedBy&&!e.notifiedOpen?{state:"off",text:"Muted"}:e.lastNotifiedAt?{state:"ok",text:`Sent ${(0,p.U)(e.lastNotifiedAt)}`}:{state:"off",text:"Digest only"}},"G",0,function(e){return e.enabled?e.firing?{state:"err",text:`Firing \xb7 ${e.firing}`}:e.hasData?{state:"off",text:"Inactive"}:{state:"unknown",text:"No data yet"}:{state:"off",text:"Disabled"}},"A",0,f,"M",0,function(e,t){let n=Math.max(1,Math.round((t.getTime()-e.getTime())/6e4));if(n<60)return`${n} min`;let r=Math.floor(n/60);return r<24?`${r} h ${n%60} min`:`${Math.floor(r/24)} d ${r%24} h`}],71575);var m=e.i(639271),h=e.i(656298),g=e.i(688275),y=e.i(893893),k=e.i(672319),w=e.i(188546),v=e.i(233711),b=e.i(460565);async function I(){let[e]=await (0,a.f)().select({at:s.collectorRuns.finishedAt}).from(s.collectorRuns).where((0,t.b)((0,t.E)(s.collectorRuns.finishedAt),(0,t.y)(s.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,n.A)(s.collectorRuns.finishedAt)).limit(1);return e?.at??null}async function A(){let[e]=await (0,a.f)().select({at:s.collectorRuns.finishedAt}).from(s.collectorRuns).where((0,t.b)((0,t.E)(s.collectorRuns.finishedAt),(0,t.y)(s.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,n.A)(s.collectorRuns.finishedAt)).limit(1);return e?.at??null}async function $(){let[e]=await (0,a.f)().select({threshold:s.alertRules.threshold}).from(s.alertRules).where((0,t.u)(s.alertRules.key,"CollectorStale")).limit(1);return(0,b.X)(e?.threshold)}e.s(["o",0,$,"D",0,I,"d",0,A],569057);var S=e.i(367247),V=e.i(436357),x=e.i(912283),R=e.i(358179),D=e.i(492665),M=e.i(683439),T=e.i(679662),B=e.i(852539),N=e.i(33135),j=e.i(533957);let C="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function P(e,t,n,r){let a=r.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(a);return L(e,{method:"POST",headers:{"content-type":"application/json","user-agent":C},body:JSON.stringify(t),signal:s},n,s,r)}async function O(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(r,8e3));return L(e,{method:"GET",headers:{"user-agent":C},signal:a},t,a,n)}async function L(e,t,n,r,a){let s;try{s=await (a.fetch??fetch)(e,{...t,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:(0,j.t)(e)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!s.ok)return await s.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${s.status}`};try{let{bytes:e,truncated:t}=await (0,N.z)(s,n,(0,N.X)(r));if(t)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(e))}}catch(e){return{ok:!1,error:(0,j.t)(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function z(e,t){let n=[];for(let r of(0,B.f)(e)){let e=await P(B.n,r,4194304,t);if(!e.ok)return e;let a=(0,B.j)(e.body,r.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...a)}return{ok:!0,ids:n}}async function U(e,t){let n=[...new Set(e)].filter(B.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,a=null;for(let e=0;e<n.length&&!a;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await O(`${B.W}${encodeURIComponent(e)}`,1048576,t),s=n.ok?(0,B.O)(n.body):null;s?r.set(e,s):a??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return a?{ok:!1,error:a}:{ok:!0,map:r}}var E=e.i(521050),_=e.i(120213),H=e.i(689963),q=e.i(26972),K=e.i(427221),F=e.i(811365),J=e.i(760417);let G=H.z.array(q.z.object({name:K.z.string(),type:K.z.string(),sha:K.z.string(),size:F.z.number().optional()}));async function W(e,t,n,r={},a=null){if(!(0,J.M)(t)||!(0,J.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==a&&(0,E.Q)(a)!==a)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let s=a?a.split("/").map(encodeURIComponent).join("/"):"",i=await (0,J.j)(`/repos/${(0,J.f)(t)}/contents/${s}?ref=${encodeURIComponent(n)}`,e,r);if(!i.ok)return i;let l=G.safeParse(i.data);return l.success?{ok:!0,data:l.data.filter(e=>"file"===e.type&&/^[0-9a-f]{40}$/.test(e.sha)).map(e=>({name:e.name,sha:e.sha,size:e.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function Z(e,t,n,r={}){if(!(0,J.M)(t)||!(0,J.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let a=await (0,J.j)(`/repos/${(0,J.f)(t)}/git/ref/heads/${n.split("/").map(encodeURIComponent).join("/")}`,e,r);return a.ok?{ok:!0,data:!0}:"missing"===a.kind?{ok:!0,data:!1}:a}function Q(e,t,n,r,a,s={}){return(0,J.V)(e,t,n,r,a,s)}async function X(e,t,n={}){if(!(0,J.M)(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await (0,J.j)(`/repos/${(0,J.f)(t)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,e,n);if(!r.ok)return"scope"===r.kind||"missing"===r.kind?{ok:!0,data:{denied:!0}}:r;let a=(0,_.E)(r.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var Y=e.i(751263);async function ee(){let[e]=await (0,a.f)().select().from(s.accounts).where((0,t.u)(s.accounts.provider,"github")).orderBy((0,n.M)(s.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let r=(0,R.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,D.f)().OPS_ENCRYPTION_KEY);return r?{token:r,accountId:e.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function et(){let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,t.u)(s.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}let en=e=>{let t=(0,Y.w)(e);return{dir:(0,E.Q)((e??{}).rootDirectory),unsupported:(0,E.l)((e??{}).rootDirectoryUnsupported),branch:(0,Y.i)((0,Y.V)(e),null),...t?{fallback:t}:{}}};async function er(e){let n=[...new Set(e.filter(M.f))],r=new Map;if(!n.length)return r;let i=await (0,a.f)().select({repoId:s.appRepos.repoId,name:s.resources.name,monitored:s.resources.monitored,meta:s.resources.meta}).from(s.appRepos).innerJoin(s.resources,(0,t.u)(s.resources.id,s.appRepos.appId)).where((0,t.b)((0,t.y)(s.appRepos.repoId,n),(0,t.M)(s.resources.goneAt))).limit(1e3);for(let e of(i.sort((e,t)=>Number(!!t.monitored)-Number(!!e.monitored)||(e.name<t.name?-1:+(e.name>t.name))),i))r.has(e.repoId)||r.set(e.repoId,en(e.meta));return r}async function ea(){let e={id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,scannedAt:s.dependencyScans.scannedAt},n=(0,t.b)((0,t.M)(s.githubRepos.goneAt),(0,t.u)(s.githubRepos.archived,!1)),r=await et()?await (0,a.f)().select(e).from(s.githubRepos).leftJoin(s.dependencyScans,(0,t.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(n).limit(500):await (0,a.f)().selectDistinct(e).from(s.appRepos).innerJoin(s.githubRepos,(0,t.u)(s.githubRepos.id,s.appRepos.repoId)).leftJoin(s.dependencyScans,(0,t.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(n).limit(500),i=r.length?await er(r.map(e=>e.id)):new Map;return(0,_.M)(r.map(e=>{let t=i.get(e.id);return{...e,rootDir:t?.dir??null,rootDirUnsupported:t?.unsupported??null,prodBranch:t?.branch??null,...t?.fallback?{prodFallback:t.fallback}:{}}}))}let es=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function ei(e,t){let n=new Date;await (0,a.f)().insert(s.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function el(e){return(0,a.f)().select({id:s.dependencyVulns.id,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,source:s.dependencyVulns.source}).from(s.dependencyVulns).where((0,t.b)((0,t.u)(s.dependencyVulns.repoId,e),(0,t.M)(s.dependencyVulns.resolvedAt))).limit(2e3)}function eo(e,t){for(let n of T.a){let r=e.find(e=>e.name===n.path);if(r)return{path:(0,E.H)(t,n.path),kind:n.kind,sha:r.sha}}return null}async function ed(e,n,r,i={}){let l=()=>({...i,timeoutMs:Math.max(1e3,Math.min(r-Date.now(),1e4))}),o=async e=>(await ei(n.id,{error:es(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),d=n.defaultBranch??"HEAD",u=null;for(let t of[n.prodBranch,n.prodFallback]){if(t&&t===n.defaultBranch)break;let r=(0,Y.i)(t,n.defaultBranch);if(!r)continue;let a=await Z(e,n.fullName,r,l());if(!a.ok)return o(a.error);if(a.data){u=r;break}}let c=null!==u;u&&(d=u);let p=c?`Scanned ${u}, the branch production is built from.`:null,f=(0,E.Q)(n.rootDir),m=f?null:(0,E.l)(n.rootDirUnsupported),h=m?`The Vercel Root Directory "${m}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,g=await W(e,n.fullName,d,l(),f);if(!g.ok)return o(f&&"missing"===g.kind?`The folder ${(0,E.x)(f)} isn't in ${n.fullName} on ${d}.`:g.error);let y=eo(g.data,f),k=g.data.find(e=>"package.json"===e.name)??null,w=!1,v=null;if(f&&k&&!y){let t=await W(e,n.fullName,d,l());if(!t.ok)return o(t.error);w=null!==(y=eo(v=t.data,null))}let b=y?y.sha:k?`pkg:${k.sha}`:null,I=b&&f?`${f}:${b}${w&&k?`+${k.sha}`:""}`:b&&m?`odd:${b}`:b,A=I&&c?`br:${u}:${I}`:I,[$]=await (0,a.f)().select().from(s.dependencyScans).where((0,t.u)(s.dependencyScans.repoId,n.id)).limit(1),S=new Date;if(!(0,_.U)($??null,A,S,i.force))return{status:"unchanged"};if(!A){let e=await el(n.id);return e.length&&await (0,a.f)().update(s.dependencyVulns).set({resolvedAt:S}).where((0,t.y)(s.dependencyVulns.id,e.map(e=>e.id))),await ei(n.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:S,queriedAt:S,error:null,note:es([p,h,`No package.json or lockfile ${f?"in":"at"} ${(0,E.x)(f)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let V=(0,E.H)(f,"package.json"),R=k?await Q(e,n.fullName,V,d,J.$,l()):null;if(R&&!R.ok)return o(R.error);let D=R?.ok&&R.data?(0,T.b)(R.data):null,M=null,N="package-json",j=w&&y?`Scanned ${(0,E.x)(f)} with the repository root's ${y.path} (workspaces).`:null;if(y){if(2e3>r-Date.now())return o("Time budget used before the lockfile was read; the next run tries again.");let t=await Q(e,n.fullName,y.path,d,0xf00000,{...i,timeoutMs:Math.max(1e3,Math.min(r-Date.now(),2e4))});if(!t.ok)return o(t.error);let a=!0;if(w&&f&&t.data&&!(0,E.p)(y.kind,t.data,f)){let t=v?.some(e=>"package.json"===e.name)?await Q(e,n.fullName,"package.json",d,J.$,l()):null;if(t&&!t.ok)return o(t.error);a=(0,E.F)(t?.data??null,f)}a?(M=t.data?(0,T.D)(y.kind,t.data):null,N=y.kind,M||(j=[j,`${y.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(j=`The repository root's ${y.path} isn't a workspace that includes ${f}, so the versions come from ${V} ranges (approximate).`,y=null)}if(M){let e=(0,x.m)(M,D);M=e.deps,e.stale.length&&(j=[j,(0,x.M)(e.stale)].filter(Boolean).join(" "))}else M=D?(0,T.e)(D):[],N="package-json",j??=y?null:"No lockfile: the versions come from package.json ranges (approximate).";let C=await el(n.id),P=[];if(M.length){let e=await z(M,{fetch:i.fetch,deadline:r});if(!e.ok)return o(e.error);let t=(0,_.A)(C,!0===i.force),n=await U((0,_.z)(M,e.ids,t),{fetch:i.fetch,deadline:r});if(!n.ok)return o(n.error);P=(0,B.i)(M,e.ids,n.map,t)}if(r-Date.now()>1500){let t=await X(e,n.fullName,l());t.ok&&"alerts"in t.data?P=(0,_.R)(P,t.data.alerts,M):t.ok&&(j=[j,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let O=(0,_.h)(C,P,(0,T.K)(D));j=[p,h,j].filter(Boolean).join(" ")||null;let L=new Date;return await (0,a.f)().transaction(async e=>{for(let r of(O.insert.length&&await e.insert(s.dependencyVulns).values(O.insert.map(e=>({repoId:n.id,package:e.package,installedVersion:e.installedVersion,vulnId:e.vulnId,aliases:e.aliases,severity:e.severity,fixedVersion:e.fixedVersion,summary:e.summary,direct:e.direct,dev:e.dev,source:e.source,firstSeenAt:L,lastSeenAt:L}))).onConflictDoNothing(),O.update))await e.update(s.dependencyVulns).set({severity:r.severity,fixedVersion:r.fixedVersion,summary:r.summary,aliases:r.aliases,dev:r.dev,direct:r.direct,lastSeenAt:L}).where((0,t.u)(s.dependencyVulns.id,r.id));O.resolve.length&&await e.update(s.dependencyVulns).set({resolvedAt:L}).where((0,t.b)((0,t.y)(s.dependencyVulns.id,O.resolve),(0,t.M)(s.dependencyVulns.resolvedAt))),await e.insert(s.dependencyScans).values({repoId:n.id,lockfilePath:y?.path??(k?V:null),lockfileSha:A,packageCount:M.length,scannedAt:L,queriedAt:L,error:null,note:j?es(j,300):null,updatedAt:L}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{lockfilePath:y?.path??(k?V:null),lockfileSha:A,packageCount:M.length,scannedAt:L,queriedAt:L,error:null,note:j?es(j,300):null,updatedAt:L}})}),{status:"scanned",vulns:O.insert.length+O.update.length,packages:M.length,note:"package-json"===N?j:null}}async function eu(e,n={}){var r,i;let l,o,d,u,c=await ee();if("error"in c)return{error:c.error};let{first:p,only:f,skip:m,...h}=n,g=(r=await ea(),l=(i={first:p,only:f,skip:m}).only?new Set(i.only):null,o=new Set(i.skip??[]),d=(l?r.filter(e=>l.has(e.id)):r).filter(e=>!o.has(e.id)),u=new Set(i.first??[]),[...d.filter(e=>u.has(e.id)),...d.filter(e=>!u.has(e.id))]),y={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:g.map(e=>e.id)};for(let[t,n]of g.entries()){if(e-Date.now()<4e3){y.left=g.length-t;break}y.done.push(n.id);try{let t=await ed(c.token,n,e,h);"scanned"===t.status?y.scanned++:"unchanged"===t.status?y.unchanged++:y.failed.push(`${n.fullName}: ${t.error}`)}catch(e){y.failed.push(`${n.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(s.dependencyVulns).where((0,t.b)((0,t.E)(s.dependencyVulns.resolvedAt),(0,t.S)(s.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),y}let ec=async()=>(await (0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,t.u)(s.accounts.provider,"github")).limit(1)).length>0;async function ep(e,n,r={}){let i,l,o,{marked:d,onlyMarked:u}=n;if(!await ec())return{problem:null,settled:[...d],done:[],complete:!0};let c=d.filter(M.f),p=c.length?await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,t.y)(s.appRepos.appId,c)).limit(5*c.length):[],f=[...new Set(p.map(e=>e.repoId))],m=e=>p.filter(t=>t.appId===e).map(e=>e.repoId),h=d.filter(e=>!m(e).length);if(u&&!f.length)return{problem:null,settled:[...d],done:[],complete:!0};if(e-Date.now()<4e3)return{problem:null,settled:h,done:[],complete:!1};let g=(n.skip??[]).filter(e=>!f.includes(e)),y=await eu(e,{...r,first:f,...u?{only:f}:{skip:g}});if("error"in y){let e;return{problem:(e=y.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:y.error,settled:[...d],done:[],complete:!0}}let k=new Set([...y.done,...f.filter(e=>!y.listed.includes(e))]);return{problem:(i=y.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),(l=y.failed.length-i.length+(y.left??0))&&console.info(`deps: ${l} repositor${1===l?"y":"ies"} wait for the next run`),o=i.slice(0,3),i.length>3&&o.push(`+${i.length-3} more`),o.length?o.join("; "):null),settled:d.filter(e=>m(e).every(e=>k.has(e))),done:y.done,complete:0===y.left}}async function ef(e){let r={repo:null,scan:null,vulns:[],writeConnected:!1};if(!(0,M.f)(e))return r;let[i]=await (0,a.f)().select({id:s.githubRepos.id,fullName:s.githubRepos.fullName}).from(s.appRepos).innerJoin(s.githubRepos,(0,t.u)(s.githubRepos.id,s.appRepos.repoId)).where((0,t.u)(s.appRepos.appId,e)).limit(1);if(!i)return r;let[[l],o,[d]]=await Promise.all([(0,a.f)().select({scannedAt:s.dependencyScans.scannedAt,lockfilePath:s.dependencyScans.lockfilePath,packageCount:s.dependencyScans.packageCount,error:s.dependencyScans.error,note:s.dependencyScans.note}).from(s.dependencyScans).where((0,t.u)(s.dependencyScans.repoId,i.id)).limit(1),(0,a.f)().select({package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,firstSeenAt:s.dependencyVulns.firstSeenAt}).from(s.dependencyVulns).where((0,t.b)((0,t.u)(s.dependencyVulns.repoId,i.id),(0,t.M)(s.dependencyVulns.resolvedAt))).limit(2e3),(0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,t.u)(s.accounts.provider,"github_write")).limit(1)]);o.sort((e,t)=>(0,_.t)(e.severity)-(0,_.t)(t.severity)||(e.package<t.package?-1:+(e.package>t.package))||(e.vulnId<t.vulnId?-1:1));let u=await (0,a.f)().select({number:s.dependencyPrs.number,stage:s.dependencyPrs.stage,stageText:s.dependencyPrs.stageText,openedAt:s.dependencyPrs.openedAt}).from(s.dependencyPrs).where((0,t.b)((0,t.u)(s.dependencyPrs.repoId,i.id),(0,t.B)(s.dependencyPrs.openedAt,new Date(Date.now()-12096e5)))).orderBy((0,n.A)(s.dependencyPrs.openedAt)).limit(5).catch(()=>[]);return{repo:i,scan:l??null,vulns:o,writeConnected:!!d,prs:(u??[]).map(e=>({...e,fullName:i.fullName}))}}async function em(e,n={}){if(!(0,M.f)(e))return{ok:!1,error:"That app no longer exists."};let[i]=await (0,a.f)().select({app:s.resources.name,id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,goneAt:s.githubRepos.goneAt,meta:s.resources.meta}).from(s.appRepos).innerJoin(s.githubRepos,(0,t.u)(s.githubRepos.id,s.appRepos.repoId)).innerJoin(s.resources,(0,t.u)(s.resources.id,s.appRepos.appId)).where((0,t.u)(s.appRepos.appId,e)).limit(1);if(!i)return{ok:!1,error:"Link a repository first."};if(i.goneAt)return{ok:!1,error:"That repository is no longer shared with the GitHub token."};let l=await ee();if("error"in l)return{ok:!1,error:l.error};let o=en(i.meta),d=await ed(l.token,{id:i.id,fullName:i.fullName,defaultBranch:i.defaultBranch,scannedAt:null,rootDir:o.dir,rootDirUnsupported:o.unsupported,prodBranch:o.branch,prodFallback:o.fallback??null},Date.now()+4e4,{...n,force:!0});if("failed"===d.status)return{ok:!1,error:`The scan failed: ${d.error}`};let[u]=await (0,a.f)().select({n:r.B`count(*)::int`}).from(s.dependencyVulns).where((0,t.b)((0,t.u)(s.dependencyVulns.repoId,i.id),(0,t.M)(s.dependencyVulns.resolvedAt))),c=u?.n??0;return{ok:!0,app:i.app,repo:i.fullName,vulns:c,message:c?`${c} known vulnerabilit${1===c?"y":"ies"} in ${d.packages??0} packages.`:`No known vulnerabilities in ${d.packages??0} packages.`}}async function eh(e){let n=e.filter(M.f);if(!n.length)return[];let r=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId,error:s.dependencyScans.error}).from(s.appRepos).innerJoin(s.dependencyScans,(0,t.u)(s.dependencyScans.repoId,s.appRepos.repoId)).where((0,t.b)((0,t.y)(s.appRepos.appId,n),(0,t.E)(s.dependencyScans.scannedAt)));if(!r.length)return[];let i=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,severity:s.dependencyVulns.severity,summary:s.dependencyVulns.summary,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,t.b)((0,t.y)(s.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,t.M)(s.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:i.filter(t=>t.repoId===e.repoId).map(e=>({package:e.package,installedVersion:e.installedVersion,fixedVersion:e.fixedVersion,severity:e.severity,summary:e.summary,dev:e.dev,direct:e.direct}))}))}async function eg(e,n=new Set){let i=e.filter(M.f),l=new Map;if(!i.length)return l;let o=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,t.y)(s.appRepos.appId,i));if(!o.length)return l;let d=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,vulnId:s.dependencyVulns.vulnId,aliases:s.dependencyVulns.aliases,severity:s.dependencyVulns.severity,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,t.b)((0,t.y)(s.dependencyVulns.repoId,[...new Set(o.map(e=>e.repoId))]),(0,t.M)(s.dependencyVulns.resolvedAt),(0,t.u)(s.dependencyVulns.direct,!0),(0,t.E)(s.dependencyVulns.fixedVersion))).limit(2e3),u=d.some(e=>"next"===e.package)?new Set((await (0,a.f)().selectDistinct({appId:s.dependencyPrs.appId}).from(s.dependencyPrs).where((0,t.b)((0,t.y)(s.dependencyPrs.appId,i),(0,t.$)(s.dependencyPrs.stage,["merged","closed"]),(0,t.B)(s.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),r.B`${s.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(i.length)).map(e=>e.appId)):new Set;for(let e of o){let t=n.has(e.appId)||u.has(e.appId);(0,_.B)(d.filter(n=>n.repoId===e.repoId&&!(t&&"next"===n.package))).length&&l.set(e.appId,e.repoId)}return l}e.s(["o",0,12e3,"d",0,4e3,"j",0,ef,"O",0,ep,"C",0,eg,"M",0,ee,"a",0,eh,"h",0,em],930270);var ey=e.i(242605);async function ek(){return(0,a.f)().select({appId:s.links.fromResourceId,dbId:s.links.toResourceId}).from(s.links).where((0,t.u)(s.links.kind,"uses_db")).limit(500)}async function ew(e){let i=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),[l,o,d,u,c]=await Promise.all([A(),I(),(0,a.f)().select({m:s.monitors,appName:s.resources.name,appMeta:s.resources.meta}).from(s.monitors).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(i,(0,t.u)(s.monitors.paused,!1),(0,t.u)(s.monitors.ownerPaused,!1))),(0,a.f)().select({id:s.resources.id,name:s.resources.name,meta:s.resources.meta}).from(s.resources).where((0,t.b)(i,(0,t.u)(s.resources.kind,"app"))),(0,a.f)().select({id:s.accounts.id,provider:s.accounts.provider,label:s.accounts.label,expiresAt:s.accounts.expiresAt,status:s.accounts.status,lastError:s.accounts.lastError}).from(s.accounts)]),p=d.map(e=>e.m.id),f=p.length?await (0,a.f)().select({id:s.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})::float8`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,p),(0,t.B)(s.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(s.checks.inMaintenance,!1))).groupBy(s.checks.monitorId):[],b=u.map(e=>e.id),$=b.length?await (0,a.f)().selectDistinctOn([s.deployments.resourceId],{appId:s.deployments.resourceId,state:s.deployments.state,sha:s.deployments.commitSha,createdAt:s.deployments.createdAtProvider}).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,b),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,n.A)(s.deployments.createdAtProvider)):[],x=await (0,a.f)().select({id:s.resources.id,name:s.resources.name,kind:s.resources.kind,state:s.snapshots.state,data:s.snapshots.data}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)(i,(0,t.y)(s.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),R=e=>x.filter(t=>t.kind===e),D=x.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),M=R("zone"),T=R("domain"),B=await ek(),N=await (0,S.Y)().catch(()=>null),j=b.length?await eh(b).catch(()=>null):null,C=b.length?await (0,ey.F)(b).catch(()=>null):null;return{now:e,lastMinuteRunAt:l,lastAnyRunAt:o,monitors:d.map(({m:e,appName:t,appMeta:n})=>{let r=f.find(t=>t.id===e.id),a="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:a?e.name??"heartbeat":e.url,kind:a?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:r?.p95??null,checksLast10:r?.n??0,movedTo:a?null:(0,V.u)(e.url,{name:t,meta:n},u.filter(t=>t.id!==e.resourceId),{lastError:e.lastError})?.to??null}}),apps:u.map(e=>{let t=$.find(t=>t.appId===e.id);return{id:e.id,name:e.name,latestProduction:t?{state:t.state,sha:t.sha,createdAt:t.createdAt}:null}}),accounts:c,dbs:D.length?D.map(t=>(function(e,t){let n={id:e.id,name:e.name,state:e.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===e.kind){let t=(0,y.k)(y.B,e.data),r=(0,v.Z)(t.lastTrafficAt),a=(0,v.Z)(t.trafficAt),s=r??(a&&!t.trafficError?new Date(a.getTime()-6048e5):null);return{...n,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:k.R,lastApiAt:s}}if("neon_project"===e.kind){let t=(0,y.k)(y.s,e.data),r=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...n,provider:"neon",cuHours:null==t.computeSeconds?null:t.computeSeconds/3600,cuLimit:g.a.cuHours,sizeBytes:r.length?r.reduce((e,t)=>e+t,0):null,sizeLimitBytes:g.a.storageBytes}}if("firestore"===e.kind){let r=(0,y.k)(y.w,e.data),a=(0,v.Z)(r.opsAt),s=null!=r.reads&&a&&a.getTime()>=(0,h.a)(t).getTime()?r.reads:null,i=null!=r.latencyMs||null!=r.pingError;return{...n,provider:"firestore",readsToday:s,readsLimit:h.T.reads,quotaExhausted:i?"RESOURCE_EXHAUSTED"===r.pingReason:null}}if("turso_database"===e.kind){let r=(0,y.k)(y.N,e.data),a=(0,m.u)((0,m.G)(r,t));return{...n,provider:"turso",sizeBytes:r.orgStorageBytes??null,sizeLimitBytes:m.g.storageBytes,quotaPct:a?.pct??null,quotaLabel:a?`${a.label} ${a.text}`:null}}if("upstash_redis"===e.kind){let r=(0,y.k)(y.e,e.data),a=(0,m.u)((0,m.$)(r,t));return{...n,provider:"upstash",sizeBytes:r.storageBytes??null,sizeLimitBytes:m.W.storageBytes,quotaPct:a?.pct??null,quotaLabel:a?`${a.label} ${a.text}`:null}}if("d1_database"===e.kind){let r=(0,y.k)(y.x,e.data),a=(0,m.u)((0,m.I)(r,t));return{...n,provider:"d1",sizeBytes:r.sizeBytes??null,sizeLimitBytes:m.M.dbBytes,quotaPct:a?.pct??null,quotaLabel:a?`${a.label} ${a.text}`:null}}return null})(t,e)).filter(e=>null!==e):null,domains:M.length||T.length?[...M.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,v.Z)((0,w.q)(e.data).rdap?.expiresAt)})),...T.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,v.Z)((0,w.q)(e.data).tls?.notAfter),expiresAt:null}))]:null,dns:function(e,t){let n=e.filter(e=>Array.isArray(e.data.records));if(!n.length)return null;let r=e.map(e=>e.name),a=[];for(let e of n){let n=t.filter(t=>(0,v.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),s=[...new Set(n.flatMap(e=>(0,w.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,w.q)(e.data).records){if(!(0,v.l)(t,s))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);a.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a}(M,T),links:B,compute:N,deps:j&&j.length?j:null,frameworks:C&&C.length?C:null}}var ev=e.i(714530),eb=e.i(396667);let eI={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function eA(){return(await (0,a.f)().select().from(s.alertRules)).filter(e=>(0,i.h)(e.key)).map(e=>({key:e.key,severity:e.severity,threshold:e.threshold,enabled:e.enabled,channels:e.channels}))}async function e$(e,n={}){let[r,d,p,f,m,h]=await Promise.all([ew(e),eA(),(0,a.f)().select().from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)),(0,a.f)().select({provider:s.providerStatus.provider,state:s.providerStatus.state}).from(s.providerStatus),(0,ev.w)(),(0,eb.I)()]),g=new Map(r.accounts.map(e=>[e.id,e.provider])),y=p.filter(e=>!(0,c.O)(h,e.ruleKey,e.accountId?g.get(e.accountId):null)),k=(0,l.f)(r,d,n.only),w=k.evaluated,v=k.observations.filter(e=>!(0,c.O)(h,e.rule,e.provider)),b=d.find(e=>"CollectorStale"===e.key),I=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,A=!!b?.enabled&&(!I||e.getTime()-I.getTime()>(b.threshold??5)*6e4),$=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),S=new Map(r.links.filter(e=>$.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${$.get(e.dbId)}`])),V=new Map(f.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,eI[e.provider]??e.provider])),x=(0,u.u)(m,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),R=y.filter(e=>(0,i.h)(e.ruleKey)).map(e=>({id:e.id,ruleKey:e.ruleKey,subject:e.subject,okStreak:e.okStreak,lastSampleAt:e.lastSampleAt,silencedUntil:e.silencedUntil,silencedUntilResolved:e.silencedUntilResolved,notifiedOpen:e.notifiedOpen,lastNotifiedAt:e.lastNotifiedAt,pending:e.pending,pendingSince:e.pendingSince})),D=(0,o.f)(R,v,w,d,{now:e,collectorStale:A,mutedApps:S,incidents:V,maintenance:x});return D.open.length||D.touch.length||D.resolve.length?(await (0,a.f)().transaction(async n=>{for(let t of D.open)await n.insert(s.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of D.touch){let{id:a,pending:i,...l}=r;await n.update(s.alerts).set({...l,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(s.alerts.id,a),(0,t.M)(s.alerts.resolvedAt)))}for(let r of D.resolve)await n.update(s.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(s.alerts.id,r.id),(0,t.M)(s.alerts.resolvedAt)))}),{opened:D.open.length,resolved:D.resolve.length}):{opened:0,resolved:0}}async function eS(){let[e,n]=await Promise.all([(0,eb.I)(),(0,a.f)().select({ruleKey:s.alerts.ruleKey,provider:s.accounts.provider,n:r.B`count(*)::int`}).from(s.alerts).leftJoin(s.accounts,(0,t.u)(s.accounts.id,s.alerts.accountId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,t.y)(s.alerts.severity,["critical","warning"]))).groupBy(s.alerts.ruleKey,s.accounts.provider)]);return n.reduce((t,n)=>t+((0,c.O)(e,n.ruleKey,n.provider)?0:Number(n.n)),0)}let eV=r.B`case ${s.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function ex(e=new Set){return(await (0,a.f)().select({a:s.alerts,name:s.resources.name,kind:s.resources.kind}).from(s.alerts).leftJoin(s.resources,(0,t.u)(s.resources.id,s.alerts.resourceId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,eb.s)(e))).orderBy(eV,(0,n.A)(s.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function eR(){return ex(await (0,eb.I)())}async function eD(e){return(await (0,a.f)().select({id:s.alerts.id,ruleKey:s.alerts.ruleKey,severity:s.alerts.severity,title:s.alerts.title,resourceId:s.alerts.resourceId,startedAt:s.alerts.startedAt,resolvedAt:s.alerts.resolvedAt}).from(s.alerts).where((0,t.b)((0,t.E)(s.alerts.resolvedAt),(0,t.B)(s.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(s.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}async function eM(){let[e,n,l]=await Promise.all([eA(),(0,a.f)().select({key:s.alerts.ruleKey,n:r.B`count(*)::int`}).from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)).groupBy(s.alerts.ruleKey),(0,a.f)().select({kind:s.resources.kind}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt))).groupBy(s.resources.kind)]),o=new Set(l.map(e=>e.kind)),d={databases:["supabase_project","neon_project","firestore"].some(e=>o.has(e)),domains:o.has("domain")||o.has("zone"),dns:o.has("zone")};return i.u.flatMap(t=>{let r=e.find(e=>e.key===t);if(!r)return[];let a=i._[t].needs;return[{rule:r,firing:n.find(e=>e.key===t)?.n??0,hasData:null===a||d[a]}]})}async function eT(e,n,r,i){let l="off"===n?{silencedUntil:null,silencedUntilResolved:!1,silencedBy:null}:{...f(n,i),silencedBy:r},[o]=await (0,a.f)().update(s.alerts).set(l).where((0,t.b)((0,t.u)(s.alerts.id,e),(0,t.M)(s.alerts.resolvedAt))).returning({ruleKey:s.alerts.ruleKey,title:s.alerts.title,resourceId:s.alerts.resourceId});return o??null}async function eB(e,n){return(await (0,a.f)().update(s.alertRules).set({...n,updatedAt:new Date}).where((0,t.u)(s.alertRules.key,e)).returning({key:s.alertRules.key})).length>0}async function eN(){try{let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,t.u)(s.settings.key,d.z)).limit(1);return(0,d._)(e?.value)}catch{return{}}}async function ej(e,t){let n=await eN();Object.keys(t).length?n[e]=t:delete n[e],await (0,a.f)().insert(s.settings).values({key:d.z,value:n}).onConflictDoUpdate({target:s.settings.key,set:{value:n,updatedAt:new Date}})}e.s(["$",0,e$,"q",0,ex,"I",0,eD,"i",0,eR,"X",0,eS,"w",0,eN,"y",0,eM,"z",0,eB,"_",0,ej,"N",0,eT],455317)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_0eqv8l-v8d5ze._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[33135,e=>{var t=e.i(300794),r=e.i(903816),n=e.i(261283);let a=new Set([301,302,303,307,308]),o={ok:!1,statusCode:null,latencyMs:null,error:"Blocked address"};async function i(e){return(await (0,t.lookup)(e,{all:!0,verbatim:!0})).map(e=>e.address)}let s=e=>e.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(e),l=e=>e.toLowerCase().replace(/^www\./,"");async function u(e,t,r,o){let u,c=t.lookup??i;try{u=new URL(e)}catch{return{refused:"blocked"}}let d=u;for(let e=0;;e++){var m,p;if((0,n._)(u))return{refused:"blocked"};if(t.sameOrigin&&(m=u,p="www"===t.sameOrigin,m.origin!==d.origin&&(!p||m.protocol!==d.protocol||m.port!==d.port||l(m.hostname)!==l(d.hostname))))return{refused:"origin"};if(!s(u.hostname)){let e=await Promise.race([c(u.hostname),o]);if(!e.length)throw Error("no address");if(e.some(n.W))return{refused:"blocked"}}r.throwIfAborted();let i=await (t.fetch??fetch)(u.toString(),{method:"GET",redirect:"manual",cache:"no-store",headers:{...t.headers,"User-Agent":t.userAgent??"OpsConsole-Uptime/1.0 (+https://watchbell.west-solutions.web.id)"},signal:r}),f=a.has(i.status)?i.headers.get("location"):null;if(null===f)return{res:i,url:u};if(await i.body?.cancel().catch(()=>void 0),e>=20)return{refused:"redirects"};try{u=new URL(f,u)}catch{return{refused:"blocked"}}}}function c(e){let t=new Promise((t,r)=>{e.aborted?r(e.reason):e.addEventListener("abort",()=>r(e.reason),{once:!0})});return t.catch(()=>void 0),t}function d(e,t){if(e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name))return`No answer within ${m(t)}`;let r=e instanceof TypeError&&e.cause instanceof Error?e.cause.message:"";return/redirect/i.test(r)?"Too many redirects":"Couldn't connect"}let m=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`,p="Redirected to another site",f={blocked:"Blocked address",redirects:"Too many redirects",origin:p},h="DEPLOYMENT_NOT_FOUND";async function g(e,t={}){let n=t.timeoutMs??5e3,a=t.clock??(()=>performance.now()),i=a(),s=AbortSignal.timeout(n);try{let l,d=await u(e,t,s,c(s));if("refused"in d)return"blocked"===d.refused?o:{ok:!1,statusCode:null,latencyMs:null,error:f[d.refused]};let p=Math.round(a()-i),g=d.res.status===(t.expectedStatus??200);if(!g||!t.body){let e;return await d.res.body?.cancel().catch(()=>void 0),{ok:g,statusCode:d.res.status,latencyMs:p,error:g?null:`HTTP ${d.res.status}${(e=d.res,/^vercel$/i.test(e.headers.get("server")?.trim()??"")&&e.headers.get("x-vercel-error")?.trim()===h)?` \xb7 ${h}`:""}`}}try{l=await k(d.res,r.Q,c(s))}catch(e){return{ok:!1,statusCode:d.res.status,latencyMs:p,error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`Body not read within ${m(n)}`:"Body couldn't be read"}}let y=(0,r.$)(t.body,new TextDecoder().decode(l.bytes),l.truncated);return{ok:null===y,statusCode:d.res.status,latencyMs:p,error:y}}catch(e){return{ok:!1,statusCode:null,latencyMs:null,error:d(e,n)}}}async function y(e,t={}){let r=t.timeoutMs??1e4,n=t.maxBytes??3145728,a=t.signal?AbortSignal.any([AbortSignal.timeout(r),t.signal]):AbortSignal.timeout(r),o=c(a);try{let r=await u(e,t,a,o);if("refused"in r)return{ok:!1,error:f[r.refused]};let{bytes:i,truncated:s}=await k(r.res,n,o),l=new TextDecoder().decode(i);return{ok:!0,status:r.res.status,url:r.url.toString(),body:l,truncated:s}}catch(e){return{ok:!1,error:d(e,r)}}}async function k(e,t,r){let n=e.body?.getReader(),a=[],o=0,i=!1;if(n)try{for(;;){let{done:e,value:s}=await Promise.race([n.read(),r]);if(e)break;let l=t-o;if(s.byteLength>l){a.push(s.subarray(0,l)),i=!0;break}if(a.push(s),(o+=s.byteLength)===t){i=!(await Promise.race([n.read(),r])).done;break}}}finally{n.cancel().catch(()=>void 0)}return{bytes:Buffer.concat(a),truncated:i}}async function b(e,t,r){let n=Array(e.length),a=0;async function o(){for(;a<e.length;){let t=a++;n[t]=await r(e[t])}}return await Promise.all(Array.from({length:Math.min(Math.max(1,t),e.length)},o)),n}e.s(["l",0,p,"X",0,c,"b",0,g,"P",0,b,"z",0,k,"K",0,y])},436357,521050,572134,e=>{var t=e.i(26972),r=e.i(427221),n=e.i(689963),a=e.i(811365),o=e.i(913822),i=e.i(191179),s=e.i(83931);let l=/^[A-Za-z0-9._-]{1,100}$/,u=e=>e.trim().replace(/^\.\//,"").split("/").filter(e=>""!==e&&"."!==e);function c(e){if("string"!=typeof e)return null;let t=u(e);if(!t.length||t.length>4||t.some(e=>".."===e||!l.test(e)))return null;let r=t.join("/");return r.length<=150?r:null}function d(e){if("string"!=typeof e||!u(e).length||null!==c(e))return null;let t=e.replace(/[\u0000-\u001f\u007f-\u009f]/g,"").trim();return t?t.length>80?`${t.slice(0,79)}…`:t:null}function m(e){let t=e.trim().replace(/^\.\//,"").replace(/\/+$/,"").split("**").map(e=>e.split("*").map(e=>e.replace(/[.+?^${}()|[\]\\]/g,"\\$&")).join("[^/]*")).join(".*");return RegExp(`^${t}$`)}e.s(["Q",0,c,"x",0,e=>e?`${e} (the Vercel project's Root Directory)`:"the repository root","H",0,(e,t)=>e?`${e}/${t}`:t,"p",0,function(e,t,r){if("npm"===e)try{let e=JSON.parse(t);return!!e.packages&&"object"==typeof e.packages&&Object.hasOwn(e.packages,r)}catch{return!1}if("pnpm"===e){let e=t.search(/^importers:\s*$/m);if(e<0)return!1;let n=t.slice(e).split(/\n(?=\S)/)[0],a=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&");return RegExp(`^ {2}['"]?${a}['"]?:\\s*$`,"m").test(n)}return!1},"l",0,d,"F",0,function(e,t){let r;if(!e)return!1;try{r=JSON.parse(e)}catch{return!1}let n=r&&"object"==typeof r&&!Array.isArray(r)?r.workspaces:void 0,a=(Array.isArray(n)?n:n&&"object"==typeof n&&Array.isArray(n.packages)?n.packages:[]).filter(e=>"string"==typeof e&&""!==e.trim()),o=a.filter(e=>e.trim().startsWith("!")).map(e=>e.trim().slice(1));return a.some(e=>!e.trim().startsWith("!")&&m(e).test(t))&&!o.some(e=>m(e).test(t))}],521050);let p="https://api.vercel.com";async function f(e,t,r){let n;try{n=await (r.fetch??fetch)(`${p}${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:"application/json"},signal:AbortSignal.timeout(r.timeoutMs??5e3),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?"Vercel didn't answer within 5 seconds.":"Couldn't reach Vercel."}}if(401===n.status||403===n.status)return{ok:!1,kind:"auth",status:n.status,error:`Vercel rejected this credential (${n.status}).`};if(429===n.status){let e=Number(n.headers.get("Retry-After"));return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60,error:"Vercel says there were too many requests."}}return n.ok?{ok:!0,data:await n.json().catch(()=>null)}:{ok:!1,kind:"transient",status:n.status,error:`Vercel returned an error (${n.status}).`}}async function h(e,n,a,o,i){let s;try{s=await (i.fetch??fetch)(`${p}${n}`,{method:e,headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...void 0===o?{}:{"Content-Type":"application/json"}},...void 0===o?{}:{body:JSON.stringify(o)},signal:AbortSignal.timeout(i.timeoutMs??5e3),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?"Vercel didn't answer within 5 seconds; the action may still have happened. Check the deployments in a minute.":"Couldn't reach Vercel."}}if(401===s.status)return{ok:!1,kind:"auth",status:401,error:"Vercel rejected this credential (401)."};if(403===s.status)return{ok:!1,kind:"scope",status:403,error:"Vercel refused this token for that project (403)."};if(429===s.status){let e;return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(e=Number(s.headers.get("Retry-After")))&&e>0?e:60,error:"Vercel says there were too many requests."}}let l=await s.json().catch(()=>null);if(!s.ok){let e=t.z.object({error:t.z.object({code:r.z.string().regex(/^[A-Za-z0-9_-]{1,60}$/)})}).safeParse(l);return{ok:!1,kind:"transient",status:s.status,error:`Vercel refused this (${s.status}${e.success?`, ${e.data.error.code}`:""}).`}}return{ok:!0,data:l}}let g=e=>`teamId=${encodeURIComponent(e)}`,y=encodeURIComponent,k=e=>({ok:!1,kind:"format",error:`Vercel answered ${e} in a format the console doesn't recognise.`});function b(e,t,r=[]){let n=e.filter(e=>!1!==e.verified&&!e.redirect&&!e.gitBranch&&!e.customEnvironmentId),a=new Set(r.map(e=>e.toLowerCase())),o=n.map((t,r)=>{let n;return{name:t.name,key:[...(n=t.name,[+!e.some(e=>e.redirect?.toLowerCase()===n.toLowerCase()),+!!n.endsWith(".vercel.app"),+!a.has(n.toLowerCase()),n.length]),r]}}).sort((e,t)=>{for(let r=0;r<e.key.length;r++)if(e.key[r]!==t.key[r])return e.key[r]-t.key[r];return 0});return o[0]?.name??`${t}.vercel.app`}let w=t.z.object({teams:n.z.array(t.z.object({id:r.z.string(),slug:r.z.string(),name:r.z.string().nullish()}))});async function z(e,t={}){let r=await f("/v2/teams?limit=100",e,t);if(!r.ok)return r;let n=w.safeParse(r.data);return n.success?{ok:!0,data:n.data.teams.map(e=>({id:e.id,slug:e.slug,name:e.name??e.slug}))}:k("the team list")}async function $(e,r={}){let n=await f("/v5/user/tokens/current",e,r);if(!n.ok)return n;let o=t.z.object({token:t.z.object({expiresAt:a.z.number().nullish()})}).safeParse(n.data);return o.success?{ok:!0,data:o.data.token.expiresAt?new Date(o.data.token.expiresAt):null}:k("the token details")}let j=t.z.object({id:r.z.string(),readyState:r.z.string().nullish(),createdAt:a.z.number().nullish().catch(null),alias:n.z.array(r.z.string()).nullish().catch(null)}).nullish(),A=t.z.object({type:r.z.string(),jobStatus:r.z.string(),toDeploymentId:r.z.string(),requestedAt:a.z.number()}).nullish().catch(null);function I(e,t){let r=e?.readyState==="READY"?e.id:null;return t&&"succeeded"===t.jobStatus&&("rollback"===t.type||"promote"===t.type&&"number"==typeof e?.createdAt&&e.createdAt<=t.requestedAt)?t.toDeploymentId:r}let C=t.z.object({id:r.z.string(),name:r.z.string(),framework:r.z.string().nullish(),createdAt:a.z.number(),link:t.z.object({productionBranch:r.z.string().nullish(),type:r.z.string().nullish(),org:r.z.string().nullish(),repo:r.z.string().nullish()}).nullish(),resourceConfig:t.z.object({functionDefaultRegions:n.z.array(r.z.string()).nullish()}).nullish(),targets:t.z.object({production:j}).nullish(),lastAliasRequest:A,rootDirectory:r.z.string().nullish().catch(null)}),D=t.z.object({projects:n.z.array(C),pagination:t.z.object({next:a.z.number().nullish()}).nullish()});async function v(e,t,r={}){let n,a=[];for(let o=0;o<10;o++){let o=await f(`/v10/projects?teamId=${encodeURIComponent(t.id)}&limit=100${n?`&until=${n}`:""}`,e,r);if(!o.ok)return o;let i=D.safeParse(o.data);if(!i.success)return k("the project list");for(let e of i.data.projects)a.push({id:e.id,name:e.name,team:t,framework:e.framework??null,createdAt:new Date(e.createdAt),productionBranch:e.link?.productionBranch??null,currentDeploymentId:I(e.targets?.production,e.lastAliasRequest),repo:e.link?.type&&e.link.org&&e.link.repo?{type:e.link.type,org:e.link.org,repo:e.link.repo}:null,functionRegions:e.resourceConfig?.functionDefaultRegions??[],rootDirectory:c(e.rootDirectory),rootDirectoryUnsupported:d(e.rootDirectory),productionAliases:e.targets?.production?.alias??[]});if(!(n=i.data.pagination?.next))break}return{ok:!0,data:a}}let S=t.z.object({uid:r.z.string(),projectId:r.z.string(),state:r.z.string().nullish(),readyState:r.z.string().nullish(),target:r.z.string().nullish(),source:r.z.string().nullish(),url:r.z.string().nullish(),createdAt:a.z.number().nullish(),created:a.z.number().nullish(),buildingAt:a.z.number().nullish(),ready:a.z.number().nullish(),meta:o.z.record(r.z.string(),i.z.unknown()).nullish(),gitSource:t.z.object({ref:r.z.string().nullish(),sha:r.z.string().nullish()}).nullish().catch(null)}),R=e=>"string"==typeof e&&e.length?e:null,E=e=>e?new Date(e):null;function P(e,t){var r,n;let a,o,i=e.readyState??e.state??"BUILDING",s=e.meta??{};return{id:t,projectId:e.projectId,state:"READY"===i?"ready":"ERROR"===i?"error":"CANCELED"===i?"canceled":"building",rawState:i,target:"production"===e.target?"production":"preview",branch:R(s.githubCommitRef)??R(s.gitCommitRef)??R(s.gitlabCommitRef)??R(s.bitbucketCommitRef)??R(e.gitSource?.ref),sha:R(s.githubCommitSha)??R(s.gitCommitSha)??R(s.gitlabCommitSha)??R(s.bitbucketCommitSha)??R(e.gitSource?.sha),message:R(s.githubCommitMessage)??R(s.gitCommitMessage)??R(s.gitlabCommitMessage)??R(s.bitbucketCommitMessage),source:e.source??null,url:e.url??null,createdAt:new Date(e.createdAt??e.created??0),buildingAt:E(e.buildingAt),readyAt:E(e.ready),...(r=s,n=e.gitSource?.ref,a=R(r.githubCommitRef)?"github":R(r.gitlabCommitRef)?"gitlab":R(r.bitbucketCommitRef)?"bitbucket":R(n)?"gitSource":R(r.gitCommitRef)?"cli":null,o="1"===r.gitDirty||1===r.gitDirty||!0===r.gitDirty,{...a?{branchFrom:a}:{},...o?{gitDirty:!0}:{}})}}async function T(e,r,a,o={}){let i=await f(`/v7/deployments?teamId=${encodeURIComponent(r.id)}&limit=${a.limit??100}${a.since?`&since=${a.since}`:""}`,e,o);if(!i.ok)return i;let s=t.z.object({deployments:n.z.array(S)}).safeParse(i.data);return s.success?{ok:!0,data:s.data.deployments.map(e=>P(e,e.uid))}:k("the deployment list")}let L=S.omit({uid:!0,projectId:!0}).extend({id:r.z.string(),projectId:r.z.string().nullish()});async function M(e,t,r,n={}){let a=await f(`/v13/deployments/${encodeURIComponent(r)}?teamId=${encodeURIComponent(t.id)}`,e,n);if(!a.ok)return a;let o=L.safeParse(a.data);return o.success?{ok:!0,data:P({...o.data,uid:o.data.id,projectId:o.data.projectId??""},o.data.id)}:k("the deployment")}let U=t.z.object({name:r.z.string(),targets:t.z.object({production:j}).nullish(),lastAliasRequest:A});async function x(e,t,r,n={}){let a=await f(`/v9/projects/${y(r)}?${g(t)}`,e,n);if(!a.ok)return a;let o=U.safeParse(a.data);return o.success?{ok:!0,data:{name:o.data.name,currentId:I(o.data.targets?.production,o.data.lastAliasRequest)}}:k("the project")}let O=t.z.object({deployments:n.z.array(S.extend({projectId:r.z.string().nullish()}))});async function N(e,t,r,n,a,o){let i=`projectId=${y(r)}&target=production&state=${n}&limit=${a}&${g(t)}`,s=await f(`/v6/deployments?${i}`,e,o);if(!s.ok)return s;let l=O.safeParse(s.data);return l.success?{ok:!0,data:l.data.deployments.map(e=>P({...e,projectId:e.projectId??r},e.uid))}:k("the deployment list")}async function B(e,t,r,n={}){return N(e,t,r,"READY",5,n)}async function V(e,t,r,n={}){let a=await N(e,t,r,"BUILDING,QUEUED,INITIALIZING",1,n);return a.ok?{ok:!0,data:a.data[0]??null}:a}async function q(e,n,a,o={}){let i=await h("POST",`/v13/deployments?${g(n)}`,e,{name:a.name,project:a.projectId,deploymentId:a.deploymentId,target:"production"},o);if(!i.ok)return i;let s=t.z.object({id:r.z.string()}).safeParse(i.data);return{ok:!0,data:{id:s.success?s.data.id:""}}}async function W(e,t,r,n,a={}){let o=await h("POST",`/v1/projects/${y(r)}/rollback/${y(n)}?${g(t)}`,e,void 0,a);return o.ok?{ok:!0,data:null}:o}async function _(e,t,r,n,a={}){let o=await h("POST",`/v10/projects/${y(r)}/promote/${y(n)}?${g(t)}`,e,{},a);return o.ok?{ok:!0,data:null}:o}async function F(e,n,a,o={}){let i=await h("POST",`/v13/deployments?${g(n)}`,e,{name:a.name,project:a.projectId,deploymentId:a.deploymentId,target:"production",meta:{action:"promote"}},o);if(!i.ok)return i;let s=t.z.object({id:r.z.string()}).safeParse(i.data);return{ok:!0,data:{id:s.success?s.data.id:""}}}async function Y(e,t,r,n={}){let a=await h("PATCH",`/v12/deployments/${y(r)}/cancel?${g(t)}`,e,void 0,n);return a.ok?{ok:!0,data:null}:a}let G=t.z.object({domains:n.z.array(t.z.object({name:r.z.string(),redirect:r.z.string().nullish(),verified:s.z.boolean().optional(),gitBranch:r.z.string().nullish(),customEnvironmentId:r.z.string().nullish().catch(null)})),pagination:t.z.object({next:a.z.number().nullish()}).nullish()});async function Q(e,t,r,n={}){let a,o=[];for(let i=0;i<10;i++){let i=await f(`/v9/projects/${encodeURIComponent(r)}/domains?teamId=${encodeURIComponent(t)}&limit=100${a?`&until=${a}`:""}`,e,n);if(!i.ok)return i;let s=G.safeParse(i.data);if(!s.success)return k("the domain list");for(let e of s.data.domains)o.push({name:e.name,redirect:e.redirect??null,verified:!1!==e.verified,gitBranch:e.gitBranch??null,customEnvironmentId:e.customEnvironmentId??null});if(!(a=s.data.pagination?.next))return{ok:!0,data:o}}return{ok:!1,kind:"transient",error:"The project has more than 1000 domains; Watchbell kept the domains it had."}}async function H(e,t,r,n,a={},o=[]){let i=await Q(e,t,r,a);return i.ok?{ok:!0,data:b(i.data,n,o)}:i}let J=t.z.object({misconfigured:s.z.boolean(),configuredBy:r.z.string().nullish(),recommendedIPv4:n.z.array(t.z.object({value:n.z.array(r.z.string())})).default([])});async function Z(e,t,r,n={}){let a=await f(`/v6/domains/${encodeURIComponent(r)}/config?teamId=${encodeURIComponent(t)}`,e,n);if(!a.ok)return a;let o=J.safeParse(a.data);return o.success?{ok:!0,data:{misconfigured:o.data.misconfigured,configuredBy:o.data.configuredBy??null,recommendedIps:o.data.recommendedIPv4.flatMap(e=>e.value)}}:k("the domain configuration")}async function K(e,t={}){let r=await z(e,t);if(!r.ok)return r;let n=[],a=[],o=[];for(let i of r.data){let r=await v(e,i,t);if(!r.ok){if(403===r.status){a.push(i.name),o.push(i.id);continue}return r}for(let e of r.data)n.push({externalId:e.id,name:e.name,meta:{teamId:i.id,teamSlug:i.slug,teamName:i.name,framework:e.framework,productionBranch:e.productionBranch,createdAt:e.createdAt.toISOString(),repo:e.repo?`${e.repo.org}/${e.repo.repo}`:null,repoType:e.repo?.type??null,functionRegions:e.functionRegions,rootDirectory:e.rootDirectory,...e.rootDirectoryUnsupported?{rootDirectoryUnsupported:e.rootDirectoryUnsupported}:{},...e.productionAliases.length?{productionAliases:e.productionAliases}:{}}})}return a.length===r.data.length?{ok:!1,kind:"auth",error:"This token can't read any of your Vercel teams. Create a token with access to them."}:{ok:!0,data:{apps:n,skippedTeams:a,skippedTeamIds:o}}}async function X(e,r,a,o,i={}){if(!/^[0-9a-f]{40}$/.test(o))return k("the commit");let s=new URLSearchParams({teamId:r,projectId:a,sha:o,limit:"10"}),l=await f(`/v6/deployments?${s}`,e,i);if(!l.ok)return l;let u=t.z.object({deployments:n.z.array(S)}).safeParse(l.data);return u.success?{ok:!0,data:u.data.deployments.map(e=>P(e,e.uid)).filter(e=>e.projectId===a&&(null===e.sha||e.sha===o)).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())}:k("the deployment list")}async function ee(e,t,r,n={}){let a=await f(`/v9/projects/${y(r)}?${g(t)}`,e,n);if(!a.ok)return a;let o=U.safeParse(a.data);if(!o.success)return k("the project");let i=o.data.targets?.production??null,s=o.data.lastAliasRequest??null;return{ok:!0,data:{currentId:I(i,s),latest:i?{id:i.id,readyState:i.readyState??null,createdAt:i.createdAt??null}:null,promote:s&&"promote"===s.type&&"succeeded"===s.jobStatus?{toDeploymentId:s.toDeploymentId,requestedAt:s.requestedAt}:null}}}e.s(["T",0,Y,"n",0,b,"c",0,x,"C",0,X,"G",0,K,"Q",0,Z,"S",0,M,"K",0,T,"M",0,Q,"W",0,v,"X",0,z,"r",0,B,"q",0,H,"k",0,ee,"u",0,_,"l",0,F,"L",0,q,"E",0,W,"N",0,V,"o",0,$],572134);let et=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0).map(e=>e.toLowerCase()):[];function er(e){let t="string"==typeof e?.primaryDomain&&e.primaryDomain?e.primaryDomain.toLowerCase():null;return t?{primaryDomain:t,domains:et(e?.domains),pastDomains:et(e?.pastDomains)}:null}function en(e){try{let t=new URL(e);return"https:"===t.protocol||"http:"===t.protocol?t.hostname.toLowerCase():null}catch{return null}}let ea=e=>/ · DEPLOYMENT_NOT_FOUND$/.test(e.lastError??"");function eo(e,t,r=[],n={}){let a=en(e),o=er(t.meta);return!(!a||!o||function(e,t,r=[]){let n=er(t.meta);if(!n)return!0;let a=e.toLowerCase();if(a===n.primaryDomain||n.domains.includes(a))return!0;let o=t.name.toLowerCase();return!!(!(a.endsWith(".vercel.app")&&r.some(e=>{let t=e.name.toLowerCase();return t!==o&&t.startsWith(`${o}-`)&&(a===`${t}.vercel.app`||a.startsWith(`${t}-`))}))&&(a===`${o}.vercel.app`||a.endsWith(".vercel.app")&&a.startsWith(`${o}-`)))||r.some(e=>{let t=er(e.meta);return null!==t&&(t.primaryDomain===a||t.domains.includes(a))})}(a,t,r))&&(o.pastDomains.includes(a)||ea(n))?{from:a,to:o.primaryDomain}:null}e.s(["Q",0,function(e,t,r=[],n){let a=[...new Set(e.map(e=>e.name.toLowerCase()))],o=new Set(a),i=[...new Set([...et(n?.pastDomains),...et(n?.domains)])].filter(e=>!o.has(e)).slice(-20);return{domains:a,primaryDomain:b(e,t,r).toLowerCase(),pastDomains:i}},"u",0,eo,"P",0,function(e,t){let r=new Map;for(let n of e){if("heartbeat"===n.kind)continue;let e=eo(n.url,{name:n.appName,meta:n.appMeta},t.filter(e=>e.id!==n.appId),{lastError:n.lastError});e&&r.set(n.id,e)}return r},"w",0,function(e,t){let r=new URL(e);if(r.protocol="https:",r.hostname=t,r.port="",r.hostname!==t.toLowerCase())throw Error("The new domain isn't a valid host name.");return r.toString()},"R",0,function(e,t){let r=new Map;for(let n of e){if("heartbeat"===n.kind||!ea({lastError:n.lastError}))continue;let e=er(n.appMeta),a=en(n.url);if(!e||!a)continue;let o=r.get(n.appId)??e.pastDomains;!o.includes(a)&&eo(n.url,{name:n.appName,meta:n.appMeta},t.filter(e=>e.id!==n.appId),{lastError:n.lastError})&&r.set(n.appId,[...o,a].slice(-20))}return r},"Y",0,er],436357)}]})();
2
+
3
+ //# sourceMappingURL=src_lib_0n-8zjgq6mcc7._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[646324,t=>{let e=t=>t?t.getTime():null;function r(t,e){return!t||"object"!=typeof t||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(t=>"string"==typeof t[1]&&new Date(t[1]).getTime()>e.getTime()))}t.s(["Q",0,function(t,e,r,n=new Set){let i=new Set(r.map(t=>`${t.resourceId}/${t.id}`));return t.flatMap(t=>{let r=e.get(t.externalId);return!r||n.has(r)||i.has(`${t.id}/${r}`)?[]:[{appId:t.id,deploymentId:r}]})},"E",0,function(t,r){return!t||t.state!==r.state||t.target!==r.target||t.branch!==r.branch||t.commitSha!==r.commitSha||t.commitMessage!==r.commitMessage||t.source!==r.source||t.url!==r.url||e(t.buildingAt)!==e(r.buildingAt)||e(t.readyAt)!==e(r.readyAt)},"Y",0,function(t,e,n){let i=new Date(n.getTime()+216e5).toISOString();return{...r(t,n),...Object.fromEntries(e.map(t=>[t,i]))}},"K",0,function(t){try{return new URL(t).pathname}catch{return"/"}},"a",0,function(t,e){let r=[...new Map(t.map(t=>[t.id,t])).values()].sort((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()),n=e??r[0]?.id??null,i=r.findIndex(t=>t.id===n);return{currentId:n,previousId:i>=0?r[i+1]?.id??null:null}},"S",0,(t,e)=>new Set(Object.keys(r(t,e)))])},469762,t=>{var e=t.i(245710);function r(t,e){let r=Math.max(0,e.getTime()-t.getTime());return r<6e4?"now":r<36e5?`${Math.floor(r/6e4)} min ago`:r<864e5?`${Math.floor(r/36e5)} h ago`:`${Math.floor(r/864e5)} d ago`}function n(t){let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;let r=Math.floor(e/60);return r<60?`${r}m ${String(e%60).padStart(2,"0")}s`:`${Math.floor(r/60)}h ${String(r%60).padStart(2,"0")}m`}t.s(["m",0,function(t,e){for(let t of e)try{let e=new URL(t);if("https:"!==e.protocol&&"http:"!==e.protocol||!e.host)continue;return e.host}catch{}return`${t}.vercel.app`},"W",0,function(t){return t?t.split(/\r?\n|\r/).map(t=>t.trim()).find(t=>""!==t)??"":""},"h",0,function(t,n){let i=n.getTime()-t.getTime();return i<36e5?r(t,n):(0,e.m)(t,n)?(0,e.U)(t):`${Math.max(1,Math.floor(i/864e5))} d ago`},"A",0,function(t,e){return"building"===t.state?`${n(e.getTime()-(t.buildingAt??t.createdAt).getTime())} elapsed`:t.readyAt&&t.buildingAt?n(t.readyAt.getTime()-t.buildingAt.getTime()):"—"},"v",0,function(t,r){return(0,e.m)(t,r)?(0,e.U)(t):`${(0,e.L)(t)} ${(0,e.U)(t)}`},"o",0,function(t,e){let r=Math.max(0,e.getTime()-t.getTime()),n=(t,e)=>`${t} ${e}${1===t?"":"s"}`;return r<36e5?n(Math.max(1,Math.floor(r/6e4)),"minute"):r<864e5?n(Math.floor(r/36e5),"hour"):n(Math.floor(r/864e5),"day")},"F",0,function(t){try{let e=new URL(t);return`${e.host}${e.pathname}`}catch{return t}},"$",0,function(t,i){if(!t)return"—";if("building"===t.state)return`building ${n(i.getTime()-(t.buildingAt??t.createdAt).getTime())}`;let a=t.readyAt??t.createdAt;return"error"===t.state?`failed ${(0,e.m)(a,i)?(0,e.U)(a):r(a,i)}`:"canceled"===t.state?`canceled ${r(a,i)}`:r(a,i)},"H",0,function(t){let{day:r,month:n,year:i}=(0,e.e)(t);return`${r} ${n} ${i}`},"p",0,t=>null===t?"—":`${Math.round(t)} ms`,"C",0,t=>null===t?"—":`${(Math.floor(100*t+1e-6)/100).toFixed(2)}%`,"J",0,r,"_",0,t=>t?t.slice(0,7):"—"])}]})();
2
+
3
+ //# sourceMappingURL=src_lib_1nkahiclbn55q._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[840784,e=>{var r=e.i(93321),t=e.i(530385),a=e.i(351674),n=e.i(548734),o=e.i(837137),i=e.i(436357),s=e.i(751263),d=e.i(850140),u=e.i(469762),l=e.i(631107),m=e.i(968715),c=e.i(910697),p=e.i(72019),y=e.i(519051),f=e.i(858806),g=e.i(601219),w=e.i(714530),I=e.i(513701),h=e.i(895176),A=e.i(242605);let v=e=>"string"==typeof e&&e?e:null;async function b(e,g){let b=await (0,n.f)().select({r:o.resources,s:o.snapshots,sec:o.appSecurity,accStatus:o.accounts.status}).from(o.resources).leftJoin(o.accounts,(0,r.u)(o.accounts.id,o.resources.accountId)).leftJoin(o.snapshots,(0,r.u)(o.snapshots.resourceId,o.resources.id)).leftJoin(o.appSecurity,(0,r.u)(o.appSecurity.resourceId,o.resources.id)).where((0,r.b)((0,r.u)(o.resources.kind,"app"),(0,r.u)(o.resources.monitored,!0),g?(0,r.u)(o.resources.id,g):void 0)).orderBy(o.resources.name).limit(c.O.apps);if(!b.length)return[];let k=b.map(e=>e.r.id),S=(await (0,n.f)().select().from(o.monitors).where((0,r.y)(o.monitors.resourceId,k)).orderBy(o.monitors.createdAt).limit(c.O.monitors)).map(h.M),D=await (0,n.f)().selectDistinctOn([o.deployments.resourceId]).from(o.deployments).where((0,r.b)((0,r.y)(o.deployments.resourceId,k),(0,r.u)(o.deployments.target,"production"),(0,r.F)((0,r.u)(o.deployments.isCurrent,!0),(0,r.c)(o.deployments.state,"ready"),a.B`${o.deployments.resourceId} not in (select serving.resource_id from ${o.deployments} as serving where serving.target = 'production' and serving.is_current)`))).orderBy(o.deployments.resourceId,(0,t.A)(o.deployments.createdAtProvider)),P=await (0,I._)(S.map(e=>e.id),e),B=new Map(b.map(e=>[e.r.id,e.r])),M=await (0,h.J)(S.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.appId,appName:B.get(e.appId)?.name??"",appMeta:B.get(e.appId)?.meta,lastError:e.lastError}))),x=new Map;for(let e of(await (0,n.f)().select({parentId:o.resources.parentId,name:o.resources.name,meta:o.resources.meta}).from(o.resources).where((0,r.b)((0,r.u)(o.resources.kind,"domain"),(0,r.y)(o.resources.parentId,k),(0,r.M)(o.resources.goneAt))))){if(!e.parentId)continue;let r=x.get(e.parentId)??{};r[e.name.toLowerCase()]={redirect:v(e.meta.redirect),verified:!1!==e.meta.verified},x.set(e.parentId,r)}let O=await (0,I.Q)(k,e),C=await (0,p.F)(k),J=S.length?await (0,w.w)():[];return b.map(({r,s:t,sec:a,accStatus:n})=>{let o=S.filter(e=>e.appId===r.id).map(r=>({...r,maintUntil:(0,y.x)(J,{monitorId:r.id,appId:r.appId},e)?.end??null,move:M.get(r.id)??null})),p=v(r.meta.createdAt),g=D.find(e=>e.resourceId===r.id);return{id:r.id,name:r.name,gone:null!==r.goneAt,state:t?.state??"unknown",stateSince:t?.stateSince??null,domain:(0,i.Y)(r.meta)?.primaryDomain??(0,u.m)(r.name,o.map(e=>e.url)),domainLines:(0,d.f)(r.meta,x.get(r.id)??{},(0,i.Y)(r.meta)?.primaryDomain??(0,u.m)(r.name,o.map(e=>e.url))),framework:v(r.meta.framework),productionBranch:v(r.meta.productionBranch),productionSource:(0,s.O)(r.meta.productionSource),createdAt:p?new Date(p):null,teamName:v(r.meta.teamName),teamSlug:v(r.meta.teamSlug),repo:v(r.meta.repo),repoType:v(r.meta.repoType),functionRegions:Array.isArray(r.meta.functionRegions)?r.meta.functionRegions.filter(e=>"string"==typeof e):[],monitors:o,lastDeploy:g?(0,f.u)(g):null,uptime30:(0,m.Y)(o.flatMap(r=>(0,m.w)(P.get(r.id),e,m.I))),response:O.get(r.id)??{hourly:Array.from({length:c.A.responseHours},()=>null),p95:null,p50:null},days:new Map(o.flatMap(e=>{let r=P.get(e.id);return r?[[e.id,r]]:[]})),security:a?(0,A.Z)(a):null,database:C.get(r.id)??null,dbPaused:t?.data.dbPaused===!0,pageViews:(0,l.G)(t?.data),pageViewsNote:(0,l.R)({gone:null!==r.goneAt,teamId:v(r.meta.teamId),accountOk:"ok"===n,hasProductionDeploy:void 0!==g})}})}async function k(e,r){return(await b(r,e))[0]??null}async function S(e,t){let[a]=await (0,n.f)().select({id:o.resources.id,name:o.resources.name}).from(o.resources).where((0,r.b)((0,r.u)(o.resources.id,e),(0,r.u)(o.resources.kind,"app"))).limit(1);return a?(await (0,n.f)().transaction(async n=>{let i=new Date;await n.update(o.resources).set({monitored:!1,updatedAt:i}).where((0,r.u)(o.resources.id,e)),await n.delete(o.monitors).where((0,r.u)(o.monitors.resourceId,e)),await n.delete(o.deployments).where((0,r.u)(o.deployments.resourceId,e)),await n.delete(o.snapshots).where((0,r.u)(o.snapshots.resourceId,e)),await n.delete(o.appSecurity).where((0,r.u)(o.appSecurity.resourceId,e)),await n.delete(o.resources).where((0,r.b)((0,r.u)(o.resources.kind,"domain"),(0,r.u)(o.resources.parentId,e))),await (0,g.f)([{type:"action",kind:"ok",message:`${a.name} removed from the console`,detail:null,resourceId:e,actorUserId:t}],n)}),{ok:!0,message:`${a.name} is no longer in the console. The Vercel project itself isn't touched.`}):{ok:!1,error:"That app is no longer in the console."}}e.s(["Z",0,k,"G",0,b,"a",0,S])},858806,e=>{var r=e.i(93321),t=e.i(530385),a=e.i(548734),n=e.i(837137),o=e.i(436357),i=e.i(910697);function s(e){return{id:e.id,externalId:e.externalId,state:e.state,target:e.target,branch:e.branch,commitSha:e.commitSha,commitMessage:e.commitMessage,url:e.url,createdAt:e.createdAtProvider,buildingAt:e.buildingAt,readyAt:e.readyAt,isCurrent:e.isCurrent,isPreviousProduction:e.isPreviousProduction}}async function d(e={}){return(await (0,a.f)().select({d:n.deployments,appName:n.resources.name,meta:n.resources.meta}).from(n.deployments).innerJoin(n.resources,(0,r.u)(n.resources.id,n.deployments.resourceId)).where((0,r.b)((0,r.u)(n.resources.monitored,!0),e.appId?(0,r.u)(n.deployments.resourceId,e.appId):void 0)).orderBy((0,t.A)(n.deployments.createdAtProvider)).limit(i.O.deployments)).map(({d:e,appName:r,meta:t})=>({...s(e),appId:e.resourceId,appName:r,primaryDomain:e.isCurrent&&"production"===e.target?(0,o.Y)(t)?.primaryDomain??null:null}))}async function u(e){let[o]=await (0,a.f)().select({id:n.deployments.externalId}).from(n.deployments).where((0,r.b)((0,r.u)(n.deployments.resourceId,e),(0,r.u)(n.deployments.isCurrent,!0),(0,r.u)(n.deployments.target,"production"))).orderBy((0,t.A)(n.deployments.createdAtProvider)).limit(1);return o?.id??null}async function l(e,t){let[o]=await (0,a.f)().select({id:n.deployments.id}).from(n.deployments).where((0,r.b)((0,r.u)(n.deployments.resourceId,e),(0,r.u)(n.deployments.externalId,t))).limit(1);return!!o}async function m(e,t){let[o]=await (0,a.f)().select({state:n.deployments.state}).from(n.deployments).where((0,r.b)((0,r.u)(n.deployments.resourceId,e),(0,r.u)(n.deployments.externalId,t))).limit(1);return o?.state??null}async function c(e){return(await (0,a.f)().select({d:n.deployments,appName:n.resources.name}).from(n.deployments).innerJoin(n.resources,(0,r.u)(n.resources.id,n.deployments.resourceId)).where((0,r.b)((0,r.u)(n.resources.monitored,!0),(0,r.u)(n.deployments.state,"building"),(0,r.B)(n.deployments.createdAtProvider,new Date(e.getTime()-36e5)))).orderBy((0,t.A)(n.deployments.createdAtProvider)).limit(i.O.ongoingBuilds)).map(({d:e,appName:r})=>({...s(e),appId:e.resourceId,appName:r}))}e.s(["R",0,u,"C",0,l,"p",0,m,"K",0,d,"O",0,c,"u",0,s])},850140,e=>{var r=e.i(436357);e.s(["f",0,function(e,t,a){let n=(0,r.Y)(e);if(!n)return{lines:[{name:a,tag:null,target:null}],more:0};let o=[n.primaryDomain,...n.domains.filter(e=>e!==n.primaryDomain)].filter((e,r,t)=>t.indexOf(e)===r),i=[...new Set(n.pastDomains)].filter(e=>!o.includes(e)).reverse(),s=o.map((e,r)=>{let a=t[e],n={name:e,target:a?.redirect?a.redirect.replace(/^https?:\/\//i,"").replace(/\/.*$/,"").toLowerCase():null};return 0===r?{...n,tag:o.length>1||i.length?"primary":null}:{...n,tag:a?.redirect?"redirect":a&&!a.verified?"pending":null}});return s.push(...i.slice(0,3).map(e=>({name:e,tag:"former",target:null}))),{lines:s,more:Math.max(0,i.length-3)}}])}]})();
2
+
3
+ //# sourceMappingURL=src_lib_1y5l54dwaet39._.js.map
@@ -0,0 +1,5 @@
1
+ (()=>{"use strict";module.exports=[109336,e=>{var t=e.i(312573),i=e.i(323878);let a={name:"ai-assist",max:20,windowSeconds:600};async function r(e){let r=await (0,i.C)(a,e);return r.allowed?null:`Too many AI requests. Try again in ${(0,t.H)(r.retryAfter)}.`}e.s(["A",0,r,"W",0,function(e){return e instanceof Error&&"GatewayError"===e.name?e.message.slice(0,300):"The AI provider couldn't answer. Try again."}])},918962,e=>{var t=e.i(484458),i=e.i(363652),a=e.i(501634),r=e.i(502330);async function n(e,t={}){let c=t.now??new Date,l=(0,r.u)(await (0,a.V)(c),e);if(t.context){let e=l[l.length-1];e.content=`${e.content}
2
+
3
+ Context: ${(0,r.O)(t.context,Math.min(t.contextMax??2e3,4e3))}`}let o=await (0,i.X)(l,{...t.model?{model:t.model,...t.fallback?{fallback:!0}:{}}:{},purpose:"console-chat",maxTokens:1500}),d=o.text.trim();if(!d)throw new s;return{text:d.length>8e3?`${d.slice(0,7999)}…`:d,model:o.model,ms:o.ms}}class s extends Error{constructor(){super("The model returned no text. Try again."),this.name="GatewayError"}}async function c(e=new Date){let[a,r]=await Promise.all([(0,t.y)(e).catch(()=>null),(0,i.M)().then(()=>!0,()=>!1)]),n=!!a&&(0,t.U)(a.report,e);return{agConnected:n,agEnabled:n&&a?(0,t._)(a.report,a.prefs,a.allowed):[],providerReady:r}}e.s(["q",0,"watchpost","L",0,n,"c",0,c])},779704,e=>{var t=e.i(93321),i=e.i(548734),a=e.i(837137),r=e.i(86657),n=e.i(502330),s=e.i(666680),c=e.i(26972),l=e.i(427221),o=e.i(811365);let d="advisor.ai_summary",u=c.z.object({text:l.z.string().min(1).max(1200),model:l.z.string().max(200),at:l.z.string(),count:o.z.number().int().min(0),hash:l.z.string().length(64)});function m(e){let t=e.map(e=>`${e.severity}\0${e.app}\0${e.title}`).sort();return(0,s.createHash)("sha256").update(t.join("\x01")).digest("hex")}async function p(){let[e]=await (0,i.f)().select({value:a.settings.value}).from(a.settings).where((0,t.u)(a.settings.key,d)).limit(1),r=u.safeParse(e?.value);return r.success?r.data:null}async function f(e,t){var s,c;if(!await r.f.provider())return{status:"no-provider"};let l=await r.f.advice(e),o=(s=await p(),c=t.force,l.length?!c&&s&&s.hash===m(l)?"skip-unchanged":"run":"skip-empty");if("skip-empty"===o)return{status:"empty"};if("skip-unchanged"===o)return{status:"unchanged"};let u=await r.f.complete((0,n.N)(l),{purpose:"summary",maxTokens:400}),f=u.text.trim().slice(0,1200);if(!f)throw Error("The model returned no text.");let w={text:f,model:u.model.slice(0,200),at:e.toISOString(),count:l.length,hash:m(l)};return await (0,i.f)().insert(a.settings).values({key:d,value:w}).onConflictDoUpdate({target:a.settings.key,set:{value:w,updatedAt:e}}),{status:"stored",summary:w}}e.s(["h",0,p,"E",0,f],779704)},920274,e=>{var t=e.i(93321),i=e.i(530385),a=e.i(548734),r=e.i(837137),n=e.i(142754);let s=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,c=e=>s.test(e);async function l(e,s=new Date){let o=null,d=new Map;if(void 0!==e){if(!c(e))return[];let[i]=await (0,a.f)().select({name:r.resources.name}).from(r.resources).where((0,t.u)(r.resources.id,e)).limit(1);o=i?[e,i.name]:[e],i&&(d=new Map([[e,i.name]]))}let u=new Date(s.getTime()-2592e6),m=(0,t.b)((0,t.M)(n.c.dismissedAt),(0,t.B)(n.c.createdAt,u)),p=await (0,a.f)().select({id:n.c.id,appId:n.c.appId,severity:n.c.severity,title:n.c.title,body:n.c.body,source:n.c.source,client:n.c.client,model:n.c.model,createdAt:n.c.createdAt}).from(n.c).where(o?(0,t.b)(m,(0,t.y)(n.c.appId,o)):m).orderBy((0,i.A)(n.c.createdAt)).limit(20);if(void 0===e){let e=[...new Set(p.map(e=>e.appId).filter(e=>!!e&&c(e)))];e.length&&(d=new Map((await (0,a.f)().select({id:r.resources.id,name:r.resources.name}).from(r.resources).where((0,t.y)(r.resources.id,e)).limit(e.length)).map(e=>[e.id,e.name])))}return p.map(e=>({id:e.id,appId:e.appId,appName:e.appId?d.get(e.appId)??(c(e.appId)?null:e.appId):null,severity:e.severity,title:e.title,body:e.body,from:e.client||e.source,model:e.model,at:e.createdAt}))}async function o(e,i,r){let[s]=await (0,a.f)().update(n.c).set({dismissedAt:r,dismissedBy:i}).where((0,t.b)((0,t.u)(n.c.id,e),(0,t.M)(n.c.dismissedAt))).returning({id:n.c.id,title:n.c.title,appId:n.c.appId,source:n.c.source,client:n.c.client});return s?{id:s.id,title:s.title,appId:s.appId,from:s.client||s.source}:null}async function d(e,i,r){return e.length?(await (0,a.f)().update(n.c).set({dismissedAt:r,dismissedBy:i}).where((0,t.b)((0,t.y)(n.c.id,e.slice(0,20)),(0,t.M)(n.c.dismissedAt))).returning({id:n.c.id})).length:0}e.s(["Z",0,20,"$",0,o,"d",0,d,"b",0,c,"N",0,l])}]})();
4
+
5
+ //# sourceMappingURL=src_private_0uwb-eyaxy9b3._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[861600,294965,598513,e=>{"use strict";var r=e.i(137936),t=e.i(118558),n=e.i(600079),a=e.i(109307),o=e.i(221084),i=e.i(312573),s=e.i(323878),d=e.i(920274),u=e.i(713095);async function l(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!(0,d.b)(e))return{ok:!1,error:"Something in that request wasn't valid."};let n=await (0,s.C)(i.t.monitorWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};let a=await (0,d.$)(e,r.userId,new Date);if(!a)return{ok:!1,error:"That note was already dismissed."};try{await (0,o.f)({kind:"ok",message:`AI note dismissed: ${a.title.slice(0,120)}`,detail:`AiNoteDismissed \xb7 from ${a.from.slice(0,60)}`,resourceId:a.appId&&(0,d.b)(a.appId)?a.appId:null,actorUserId:r.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:"Note dismissed."}},{requireActionMember:a.g},"local")}async function c(e){return(0,n.F)("owner",async r=>{if(!Array.isArray(e)||!e.length||e.length>d.Z||!e.every(e=>"string"==typeof e&&(0,d.b)(e)))return{ok:!1,error:"Something in that request wasn't valid."};let n=await (0,s.C)(i.t.monitorWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};let a=await (0,d.d)([...new Set(e)],r.userId,new Date);if(!a)return{ok:!1,error:"Those notes were already dismissed."};try{await (0,o.f)({kind:"ok",message:`${a} AI ${1===a?"note":"notes"} dismissed`,detail:"AiNotesDismissed",resourceId:null,actorUserId:r.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:1===a?"Note dismissed.":`${a} notes dismissed.`}},{requireActionMember:a.g},"local")}(0,u.ensureServerEntryExports)([l,c]),(0,r.registerServerReference)(l,"40afb05fcb02837269171008e42179d3fa3d20ad9e",null),(0,r.registerServerReference)(c,"40d348a686685b6c41d45bd201145ab5593321934f",null),e.s(["R",0,c,"B",0,l],861600);var f=e.i(462820);let m={name:"ai-assist",max:20,windowSeconds:600};var w=e.i(86657),y=e.i(502330),g=e.i(425238);let k="That model isn't available. Pick another one or Default.";var b=e.i(918962),v=e.i(962230),h=e.i(779704);let p={ok:!1,error:"Something in that request wasn't valid."},A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function I(e){let r=await (0,s.C)(m,e);return r.allowed?null:`Too many AI requests. Try again in ${(0,i.H)(r.retryAfter)}.`}function q(e){return e instanceof Error&&"GatewayError"===e.name?e.message.slice(0,300):"The AI provider couldn't answer. Try again."}async function S(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!A.test(e))return p;let t=await I(r.id);if(t)return{ok:!1,error:t};if(!await w.f.provider())return{ok:!1,error:f.B.noProvider};let n=await w.f.appSnapshot(e,new Date);if(!n)return{ok:!1,error:"That application wasn't found."};try{let e=await w.f.complete((0,y.r)(n),{purpose:"ask-ai",maxTokens:500}),r=e.text.trim();if(!r)return{ok:!1,error:"The model returned no text. Try again."};return{ok:!0,data:{text:r,model:e.model,ms:e.ms}}}catch(e){return{ok:!1,error:q(e)}}},{requireActionMember:a.g},"local")}async function T(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!A.test(e))return p;let n=await I(r.id);if(n)return{ok:!1,error:n};let a=new Date,i=await w.f.appSnapshot(e,a);if(!i)return{ok:!1,error:"That application wasn't found."};let s=(0,y.R)(i),d=await (0,b.c)(a);if(!d.agConnected)return d.providerReady?x({kind:"app",contextId:e,question:s,by:r.userId,askedAt:a}):{ok:!1,error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};let u=await (0,v._)({kind:"app",contextId:e,question:s,by:r.userId,now:a});if(!u.ok)return{ok:!1,error:u.error};if(!u.reused)try{await (0,o.f)({kind:"ok",message:f.B.queuedAudit(i.id.slice(0,80)),resourceId:e,actorUserId:r.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:u.reused?f.B.alreadyWaiting:f.B.sentApp,data:{id:u.id,status:"pending"}}},{requireActionMember:a.g})}async function x(e){let r;try{r=await (0,b.L)(e.question,{model:e.model,now:e.askedAt})}catch(e){return console.warn("ask: provider failed:",e instanceof Error?e.name:"unknown"),{ok:!1,error:q(e)}}let n=await (0,v.Y)({kind:e.kind,contextId:e.contextId,question:e.question,by:e.by,askedAt:e.askedAt,answeredAt:new Date,answer:r.text,client:b.q,model:r.model});return(0,t.refresh)(),{ok:!0,message:`Answered by ${r.model} in ${(r.ms/1e3).toFixed(1)} s.`,data:{id:n.id,status:"answered",text:r.text,model:r.model,ms:r.ms}}}async function $(e,r){return(0,n.F)("owner",async n=>{let a,i=(a="string"==typeof e?e.trim():"")?a.length>2e3?{ok:!1,error:"A question can be up to 2000 characters."}:(0,g.G)(a)?{ok:!1,error:"That looks like a key or token. Remove it before sending."}:{ok:!0,question:a}:{ok:!1,error:"Type a question first."};if(!i.ok)return{ok:!1,error:i.error};let s=new Date,d=function(e,r){let t="string"==typeof e?e.trim():"";if(!t)return r.providerReady?{via:"provider"}:r.agConnected?{via:"antigravity",model:null}:{via:"none",error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};if(t.length>200)return{via:"none",error:k};if(t.startsWith("ag/")){let e=t.slice(3);return r.agConnected&&r.agEnabled.includes(e)?{via:"antigravity",model:e}:{via:"none",error:k}}return r.agConnected&&r.agEnabled.includes(t)?{via:"antigravity",model:t}:{via:"provider",model:t}}(r,await (0,b.c)(s));if("none"===d.via)return{ok:!1,error:d.error};let u=await I(n.id);if(u)return{ok:!1,error:u};if("provider"===d.via)return x({kind:"general",contextId:null,question:i.question,by:n.userId,askedAt:s,model:d.model});let l=d.model,c=await (0,v._)({kind:"general",contextId:null,question:i.question,by:n.userId,now:s,model:l});if(!c.ok)return{ok:!1,error:c.error};if(!c.reused)try{await (0,o.f)({kind:"ok",message:f.B.queuedAudit("general"),resourceId:null,actorUserId:n.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:c.reused?f.B.alreadyWaiting:f.B.sentGeneral,data:{id:c.id,status:"pending"}}},{requireActionMember:a.g})}async function R(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!A.test(e))return p;let t=await (0,v.F)(e,r.userId,new Date);return t?{ok:!0,data:{status:t.status,answer:t.answer,model:t.model??t.requestedModel,answeredAt:t.answeredAt?t.answeredAt.toISOString():null}}:{ok:!1,error:"That question wasn't found. It may have been cleaned up."}},{requireActionMember:a.g})}async function C(){return(0,n.F)("owner",async e=>{let r=await I(e.id);if(r)return{ok:!1,error:r};try{let e=await (0,h.E)(new Date,{force:!0});if("no-provider"===e.status)return{ok:!1,error:"No AI provider is connected."};if("empty"===e.status)return{ok:!1,error:"There are no recommendations to summarise."}}catch(e){return{ok:!1,error:q(e)}}return(0,t.refresh)(),{ok:!0,message:"Summary updated."}},{requireActionMember:a.g})}(0,u.ensureServerEntryExports)([S,T,$,R,C]),(0,r.registerServerReference)(S,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",null),(0,r.registerServerReference)(T,"40170e8924094791a6435c13b6b044b33f39cf0395",null),(0,r.registerServerReference)($,"6014f0de7fffd8bb4e3ae7fa88b91384de46bd2109",null),(0,r.registerServerReference)(R,"40584cbe33c99b40d44a45839c07e58d66cb070813",null),(0,r.registerServerReference)(C,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",null),e.s(["G",0,T,"B",0,$,"T",0,S,"P",0,R,"E",0,C],294965);var E=e.i(94473),F=e.i(188282);let B={requireActionMember:e=>(0,a.g)(e)};async function D(e){return(0,n.F)("owner",async r=>{let n=await (0,s.C)(i.t.alertWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};try{let n=await (0,E.m)(e,r);(0,t.revalidatePath)("/settings");let a=Object.keys(e??{}),o=1===a.length&&F.H[a[0]]?.risk==="safe"?`${F.H[a[0]].label}: auto-run ${n[a[0]]?"on":"off"}.`:f.X.autoRunSaved;return{ok:!0,message:o,data:n}}catch(e){if(e instanceof E.s)return{ok:!1,error:"Something in that request wasn't valid."};throw e}},B,"local")}async function M(e){return(0,n.F)("owner",async r=>{let n=await (0,s.C)(i.t.alertWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};try{let n=await (0,E.C)(e,r);return(0,t.revalidatePath)("/settings"),{ok:!0,message:`Auto-rollback ${n.enabled?"on":"off"} \xb7 first ${n.windowMin} minutes.`,data:n}}catch(e){if(e instanceof E.s)return{ok:!1,error:"Something in that request wasn't valid."};throw e}},B,"local")}async function H(e){return(0,n.F)("owner",async r=>{let n=await (0,s.C)(i.t.alertWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};try{let n=await (0,E.o)(e,r);return(0,t.revalidatePath)("/settings"),{ok:!0,message:`Automatic security fixes ${n.enabled?"on":"off"}.`,data:n}}catch(e){if(e instanceof E.s)return{ok:!1,error:"Something in that request wasn't valid."};throw e}},B,"local")}(0,u.ensureServerEntryExports)([D,M,H]),(0,r.registerServerReference)(D,"40148874c05af4057e24edaba03b37b920ae65bbed",null),(0,r.registerServerReference)(M,"40682ba8a28a431f2e657c558dfb82f395c43592d0",null),(0,r.registerServerReference)(H,"40693305696e570a9e62eeac1e01b15301901debaa",null),e.s(["G",0,M,"m",0,D,"F",0,H],598513)}];
1
+ module.exports=[861600,294965,598513,e=>{"use strict";var r=e.i(137936),t=e.i(118558),n=e.i(600079),a=e.i(109307),o=e.i(221084),i=e.i(312573),s=e.i(323878),d=e.i(920274),u=e.i(713095);async function l(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!(0,d.b)(e))return{ok:!1,error:"Something in that request wasn't valid."};let n=await (0,s.C)(i.t.monitorWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};let a=await (0,d.$)(e,r.userId,new Date);if(!a)return{ok:!1,error:"That note was already dismissed."};try{await (0,o.f)({kind:"ok",message:`AI note dismissed: ${a.title.slice(0,120)}`,detail:`AiNoteDismissed \xb7 from ${a.from.slice(0,60)}`,resourceId:a.appId&&(0,d.b)(a.appId)?a.appId:null,actorUserId:r.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:"Note dismissed."}},{requireActionMember:a.g},"local")}async function c(e){return(0,n.F)("owner",async r=>{if(!Array.isArray(e)||!e.length||e.length>d.Z||!e.every(e=>"string"==typeof e&&(0,d.b)(e)))return{ok:!1,error:"Something in that request wasn't valid."};let n=await (0,s.C)(i.t.monitorWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};let a=await (0,d.d)([...new Set(e)],r.userId,new Date);if(!a)return{ok:!1,error:"Those notes were already dismissed."};try{await (0,o.f)({kind:"ok",message:`${a} AI ${1===a?"note":"notes"} dismissed`,detail:"AiNotesDismissed",resourceId:null,actorUserId:r.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:1===a?"Note dismissed.":`${a} notes dismissed.`}},{requireActionMember:a.g},"local")}(0,u.ensureServerEntryExports)([l,c]),(0,r.registerServerReference)(l,"40d6e085a7dbacafe30989762d10fda9030cde91c2",null),(0,r.registerServerReference)(c,"40e1189dc743ddc755237254db535784362d085c45",null),e.s(["R",0,c,"B",0,l],861600);var f=e.i(462820),m=e.i(109336),w=e.i(86657),y=e.i(502330),g=e.i(425238);let k="That model isn't available. Pick another one or Default.";var v=e.i(918962),h=e.i(962230),p=e.i(779704);let b={ok:!1,error:"Something in that request wasn't valid."},A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function I(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!A.test(e))return b;let t=await (0,m.A)(r.id);if(t)return{ok:!1,error:t};if(!await w.f.provider())return{ok:!1,error:f.B.noProvider};let n=await w.f.appSnapshot(e,new Date);if(!n)return{ok:!1,error:"That application wasn't found."};try{let e=await w.f.complete((0,y.r)(n),{purpose:"ask-ai",maxTokens:500}),r=e.text.trim();if(!r)return{ok:!1,error:"The model returned no text. Try again."};return{ok:!0,data:{text:r,model:e.model,ms:e.ms}}}catch(e){return{ok:!1,error:(0,m.W)(e)}}},{requireActionMember:a.g},"local")}async function q(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!A.test(e))return b;let n=await (0,m.A)(r.id);if(n)return{ok:!1,error:n};let a=new Date,i=await w.f.appSnapshot(e,a);if(!i)return{ok:!1,error:"That application wasn't found."};let s=(0,y.R)(i),d=await (0,v.c)(a);if(!d.agConnected)return d.providerReady?S({kind:"app",contextId:e,question:s,by:r.userId,askedAt:a}):{ok:!1,error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};let u=await (0,h._)({kind:"app",contextId:e,question:s,by:r.userId,now:a});if(!u.ok)return{ok:!1,error:u.error};if(!u.reused)try{await (0,o.f)({kind:"ok",message:f.B.queuedAudit(i.id.slice(0,80)),resourceId:e,actorUserId:r.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:u.reused?f.B.alreadyWaiting:f.B.sentApp,data:{id:u.id,status:"pending"}}},{requireActionMember:a.g})}async function S(e){let r;try{r=await (0,v.L)(e.question,{model:e.model,now:e.askedAt})}catch(e){return console.warn("ask: provider failed:",e instanceof Error?e.name:"unknown"),{ok:!1,error:(0,m.W)(e)}}let n=await (0,h.Y)({kind:e.kind,contextId:e.contextId,question:e.question,by:e.by,askedAt:e.askedAt,answeredAt:new Date,answer:r.text,client:v.q,model:r.model});return(0,t.refresh)(),{ok:!0,message:`Answered by ${r.model} in ${(r.ms/1e3).toFixed(1)} s.`,data:{id:n.id,status:"answered",text:r.text,model:r.model,ms:r.ms}}}async function T(e,r){return(0,n.F)("owner",async n=>{let a,i=(a="string"==typeof e?e.trim():"")?a.length>2e3?{ok:!1,error:"A question can be up to 2000 characters."}:(0,g.G)(a)?{ok:!1,error:"That looks like a key or token. Remove it before sending."}:{ok:!0,question:a}:{ok:!1,error:"Type a question first."};if(!i.ok)return{ok:!1,error:i.error};let s=new Date,d=function(e,r){let t="string"==typeof e?e.trim():"";if(!t)return r.providerReady?{via:"provider"}:r.agConnected?{via:"antigravity",model:null}:{via:"none",error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};if(t.length>200)return{via:"none",error:k};if(t.startsWith("ag/")){let e=t.slice(3);return r.agConnected&&r.agEnabled.includes(e)?{via:"antigravity",model:e}:{via:"none",error:k}}return r.agConnected&&r.agEnabled.includes(t)?{via:"antigravity",model:t}:{via:"provider",model:t}}(r,await (0,v.c)(s));if("none"===d.via)return{ok:!1,error:d.error};let u=await (0,m.A)(n.id);if(u)return{ok:!1,error:u};if("provider"===d.via)return S({kind:"general",contextId:null,question:i.question,by:n.userId,askedAt:s,model:d.model});let l=d.model,c=await (0,h._)({kind:"general",contextId:null,question:i.question,by:n.userId,now:s,model:l});if(!c.ok)return{ok:!1,error:c.error};if(!c.reused)try{await (0,o.f)({kind:"ok",message:f.B.queuedAudit("general"),resourceId:null,actorUserId:n.userId})}catch{console.warn("audit event failed")}return(0,t.refresh)(),{ok:!0,message:c.reused?f.B.alreadyWaiting:f.B.sentGeneral,data:{id:c.id,status:"pending"}}},{requireActionMember:a.g})}async function x(e){return(0,n.F)("owner",async r=>{if("string"!=typeof e||!A.test(e))return b;let t=await (0,h.F)(e,r.userId,new Date);return t?{ok:!0,data:{status:t.status,answer:t.answer,model:t.model??t.requestedModel,answeredAt:t.answeredAt?t.answeredAt.toISOString():null}}:{ok:!1,error:"That question wasn't found. It may have been cleaned up."}},{requireActionMember:a.g})}async function $(){return(0,n.F)("owner",async e=>{let r=await (0,m.A)(e.id);if(r)return{ok:!1,error:r};try{let e=await (0,p.E)(new Date,{force:!0});if("no-provider"===e.status)return{ok:!1,error:"No AI provider is connected."};if("empty"===e.status)return{ok:!1,error:"There are no recommendations to summarise."}}catch(e){return{ok:!1,error:(0,m.W)(e)}}return(0,t.refresh)(),{ok:!0,message:"Summary updated."}},{requireActionMember:a.g})}(0,u.ensureServerEntryExports)([I,q,T,x,$]),(0,r.registerServerReference)(I,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",null),(0,r.registerServerReference)(q,"40487004821d9fd78750c3cc1ac1949e8150ac442f",null),(0,r.registerServerReference)(T,"609f0e1891e6795515cf830ba0b2f89bd728db89f1",null),(0,r.registerServerReference)(x,"40bcdb3eabf879ab764bb03c210e33a976f8370caf",null),(0,r.registerServerReference)($,"00a4863b2759313b43afeff3df0a62d47e66017335",null),e.s(["G",0,q,"B",0,T,"T",0,I,"P",0,x,"E",0,$],294965);var R=e.i(94473),F=e.i(188282);let C={requireActionMember:e=>(0,a.g)(e)};async function B(e){return(0,n.F)("owner",async r=>{let n=await (0,s.C)(i.t.alertWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};try{let n=await (0,R.m)(e,r);(0,t.revalidatePath)("/settings");let a=Object.keys(e??{}),o=1===a.length&&F.H[a[0]]?.risk==="safe"?`${F.H[a[0]].label}: auto-run ${n[a[0]]?"on":"off"}.`:f.X.autoRunSaved;return{ok:!0,message:o,data:n}}catch(e){if(e instanceof R.s)return{ok:!1,error:"Something in that request wasn't valid."};throw e}},C,"local")}async function D(e){return(0,n.F)("owner",async r=>{let n=await (0,s.C)(i.t.alertWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};try{let n=await (0,R.C)(e,r);return(0,t.revalidatePath)("/settings"),{ok:!0,message:`Auto-rollback ${n.enabled?"on":"off"} \xb7 first ${n.windowMin} minutes.`,data:n}}catch(e){if(e instanceof R.s)return{ok:!1,error:"Something in that request wasn't valid."};throw e}},C,"local")}async function E(e){return(0,n.F)("owner",async r=>{let n=await (0,s.C)(i.t.alertWrite,r.id);if(!n.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,i.H)(n.retryAfter)}.`};try{let n=await (0,R.o)(e,r);return(0,t.revalidatePath)("/settings"),{ok:!0,message:`Automatic security fixes ${n.enabled?"on":"off"}.`,data:n}}catch(e){if(e instanceof R.s)return{ok:!1,error:"Something in that request wasn't valid."};throw e}},C,"local")}(0,u.ensureServerEntryExports)([B,D,E]),(0,r.registerServerReference)(B,"4040c40df6935ec6abb9fc2908703979ec9501cf05",null),(0,r.registerServerReference)(D,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",null),(0,r.registerServerReference)(E,"401ff14fa6430391d5b50044d749bd30ec1f181c47",null),e.s(["G",0,D,"m",0,B,"F",0,E],598513)}];
2
2
 
3
3
  //# sourceMappingURL=src_private_notes_notes-actions_ts_1g63g8u965fhc._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[271997,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(379416),k=a.i(427221),l=a.i(600079),m=a.i(109307),n=a.i(411350),o=a.i(249431),p=a.i(713095);let q={requireActionMember:m.g},r="That agent is already gone. It reappears with its next request.";async function s(a,b){return(0,l.F)("owner",async c=>{let d=j.z.uuid().safeParse(a);if(!d.success)return{ok:!1,error:r};let e=k.z.string().trim().regex(o.p).safeParse(b);return e.success?await (0,n.o)(d.data,e.data,c.id)?((0,i.revalidatePath)("/ai/agents"),{ok:!0,message:e.data?"Agent renamed.":"Agent name reset."}):{ok:!1,error:r}:{ok:!1,error:"Check the highlighted fields.",fieldErrors:{name:"Use up to 40 letters, digits, spaces, dots, dashes or underscores."}}},q,"local")}async function t(a){return(0,l.F)("owner",async b=>{let c=j.z.uuid().safeParse(a);return c.success&&await (0,n.U)(c.data,b.id)?((0,i.revalidatePath)("/ai/agents"),{ok:!0,message:"Agent forgotten. It reappears with its next request."}):{ok:!1,error:r}},q,"local")}(0,p.ensureServerEntryExports)([s,t]),(0,h.registerServerReference)(s,"609d96688571c4b15dbf2c5ca1ea7134cf17d77a71",null),(0,h.registerServerReference)(t,"40726a0f9a26441acbfac941fca96c872cffc41e91",null),a.s(["000282de87b7e9cf08100adac2e51428cfdd2bf2f0",()=>b.f,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",()=>g.f,"00cc644565302cc4783a579d62aed29b8a70171e57",()=>c.f,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",()=>e.E,"40148874c05af4057e24edaba03b37b920ae65bbed",()=>f.m,"40170e8924094791a6435c13b6b044b33f39cf0395",()=>e.G,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",()=>e.T,"40682ba8a28a431f2e657c558dfb82f395c43592d0",()=>f.G,"40693305696e570a9e62eeac1e01b15301901debaa",()=>f.F,"40726a0f9a26441acbfac941fca96c872cffc41e91",0,t,"40afb05fcb02837269171008e42179d3fa3d20ad9e",()=>d.B,"40d348a686685b6c41d45bd201145ab5593321934f",()=>d.R,"609d96688571c4b15dbf2c5ca1ea7134cf17d77a71",0,s],271997)}];
1
+ module.exports=[271997,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(379416),k=a.i(427221),l=a.i(600079),m=a.i(109307),n=a.i(411350),o=a.i(249431),p=a.i(713095);let q={requireActionMember:m.g},r="That agent is already gone. It reappears with its next request.";async function s(a,b){return(0,l.F)("owner",async c=>{let d=j.z.uuid().safeParse(a);if(!d.success)return{ok:!1,error:r};let e=k.z.string().trim().regex(o.p).safeParse(b);return e.success?await (0,n.o)(d.data,e.data,c.id)?((0,i.revalidatePath)("/ai/agents"),{ok:!0,message:e.data?"Agent renamed.":"Agent name reset."}):{ok:!1,error:r}:{ok:!1,error:"Check the highlighted fields.",fieldErrors:{name:"Use up to 40 letters, digits, spaces, dots, dashes or underscores."}}},q,"local")}async function t(a){return(0,l.F)("owner",async b=>{let c=j.z.uuid().safeParse(a);return c.success&&await (0,n.U)(c.data,b.id)?((0,i.revalidatePath)("/ai/agents"),{ok:!0,message:"Agent forgotten. It reappears with its next request."}):{ok:!1,error:r}},q,"local")}(0,p.ensureServerEntryExports)([s,t]),(0,h.registerServerReference)(s,"60f3def355e29e845f060f207760be662703d939f3",null),(0,h.registerServerReference)(t,"4061bd56e8a36cbbde27b714c9be7385eb33f52f3a",null),a.s(["003ab1931030324d4cb2fbd394c9db5154e22aac82",()=>c.f,"006cea3d9937b620c316d1469c81fc1117d96a8bef",()=>g.f,"00a4863b2759313b43afeff3df0a62d47e66017335",()=>e.E,"00ab4542a2cda573adf3ba39329a67751a4d7b2c2a",()=>b.f,"401ff14fa6430391d5b50044d749bd30ec1f181c47",()=>f.F,"4040c40df6935ec6abb9fc2908703979ec9501cf05",()=>f.m,"40487004821d9fd78750c3cc1ac1949e8150ac442f",()=>e.G,"4061bd56e8a36cbbde27b714c9be7385eb33f52f3a",0,t,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",()=>f.G,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",()=>e.T,"40d6e085a7dbacafe30989762d10fda9030cde91c2",()=>d.B,"40e1189dc743ddc755237254db535784362d085c45",()=>d.R,"60f3def355e29e845f060f207760be662703d939f3",0,s],271997)}];
2
2
 
3
3
  //# sourceMappingURL=1oeh_server_app_%28console%29_%28private%29_ai_agents_page_actions_21atz5tidps07.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[673841,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(804224),i=a.i(137936),j=a.i(118558),k=a.i(600079),l=a.i(109307),m=a.i(221084),n=a.i(683439),o=a.i(245710),p=a.i(312573),q=a.i(323878),r=a.i(93321),s=a.i(548734),t=a.i(61017),u=a.i(142754),v=a.i(337830),w=a.i(711672),x=a.i(208683);async function y(a,b,c,d,e=Date.now){let f=Array(a.length).fill(void 0),g=0,h=async()=>{for(;;){let b=g++;if(b>=a.length)return;let h=c-e();if(h<5e3)return;f[b]=await d(a[b],h)}};return await Promise.all(Array.from({length:Math.max(1,Math.min(b,a.length))},h)),f}async function z(a,b,c,d="Watchbell console (model test)"){var e,f;let g=Date.now(),h=await (0,v.K)(a,b.upstream,Math.min(45e3,c),512),i=h.ok?{ok:!0,ms:h.ms,at:new Date().toISOString()}:{ok:!1,ms:Date.now()-g,status:h.status,error:(e=h.status,f=h.errorClass,404===e?"model not found (404)":401===e?"key rejected (401)":403===e?"refused (403)":429===e?"rate limited (429)":400===e?"bad request (400)":408===e||/timeout/i.test(f)?"timed out":0===e?"unreachable":e>=500?`server error (${e})`:`failed (${e})`),at:new Date().toISOString()};return await (0,t.h)({at:new Date(g),keyId:null,client:{...t.q,userAgent:d},providerId:a.id,model:(0,x.q)(a,b),kind:"models",tool:null,tokensIn:null,tokensOut:null,latencyMs:i.ms,status:h.ok?200:h.status||502,errorClass:h.ok?null:`test \xb7 ${h.errorClass}`.slice(0,120),stream:!1},[]).catch(()=>{console.warn("model test usage not recorded")}),i}async function A(a,b,c=Date.now()){var d;let e,f=(await (0,w.J)(c,!0)).find(b=>b.id===a);if(!f)return{ok:!1,error:"That connection no longer exists, or its key can't be read."};let g=null===b?(d=f.models.filter(a=>!a.removed),e=a=>a.lastTest?Date.parse(a.lastTest.at)||0:-1,[...d].sort((a,b)=>e(a)-e(b))):f.models.filter(a=>b.includes(a.id));if(0===g.length)return{ok:!1,error:"That model isn't on this connection's list. Refresh the models first."};let h=(await y(g,4,c+5e4,async(a,b)=>({id:a.id,test:await z(f,a,b)}))).filter(a=>!!a);if(h.length){let b=(await (0,w.J)(Date.now(),!0)).find(b=>b.id===a);if(b){let c=new Map(h.map(a=>[a.id,a.test])),d=b.models.map(a=>c.has(a.id)?{...a,lastTest:c.get(a.id)}:a);await (0,s.f)().update(u.f).set({models:d,updatedAt:new Date}).where((0,r.u)(u.f.id,a)),(0,w.t)()}}return{ok:!0,tested:h,skipped:g.length-h.length}}var B=a.i(484458),C=a.i(330863),D=a.i(263972),E=a.i(777302),F=a.i(713095);let G="Something in that request wasn't valid.",H=async(a,b)=>{try{await (0,m.f)({kind:"ok",message:a,resourceId:null,actorUserId:b})}catch{console.warn("audit event failed")}};async function I(a,b,c){return(0,k.F)("owner",async d=>{if(!(0,n.f)(a)||"string"!=typeof b||b.length<1||b.length>200||"boolean"!=typeof c)return{ok:!1,error:G};let e=await (0,q.C)(p.t.alertWrite,d.id);if(!e.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,p.H)(e.retryAfter)}.`};let f=await (0,E.V)(a,b,c);return f.ok?(await H(`AI model ${c?"enabled":"disabled"}: ${b}`,d.userId),(0,j.refresh)(),{ok:!0,message:`${b} is ${c?"on":"off"}. Takes effect on the next request.`}):{ok:!1,error:f.error}},{requireActionMember:l.g})}async function J(a){return(0,k.F)("owner",async b=>{if("string"!=typeof a||a.length>240)return{ok:!1,error:G};let c=await (0,q.C)(p.t.alertWrite,b.id);if(!c.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,p.H)(c.retryAfter)}.`};let{rows:d}=await (0,D.Y)(),e=d.find(b=>b.publicId===a);return e&&e.enabled&&e.providerEnabled?(await (0,D.z)(a,new Date),await H(`AI default model: ${a}`,b.userId),(0,j.refresh)(),{ok:!0,message:`${a} is now the default model.`}):{ok:!1,error:"Turn the model on first."}},{requireActionMember:l.g})}async function K(){return(0,k.F)("owner",async a=>{let b=await (0,q.C)(p.t.refresh,a.id);if(!b.allowed)return{ok:!1,error:`Too many refreshes. Try again in ${(0,p.H)(b.retryAfter)}.`};let{providers:c}=await (0,D.Y)(),d=c.filter(a=>a.enabled);if(0===d.length)return{ok:!1,error:"No provider is connected."};let e=0;for(let a of d)try{!(await (0,E.D)(a.id)).ok&&e++}catch{e++}return(0,j.refresh)(),e===d.length?{ok:!1,error:"No provider answered. Check the connection under Bring your own key."}:{ok:!0,message:e?`Asked ${d.length-e} of ${d.length} providers for their model list.`:`Asked ${d.length} provider${1===d.length?"":"s"} for the model list.`}},{requireActionMember:l.g})}async function L(){return(0,k.F)("owner",async a=>{let b=await (0,q.C)(p.t.credential,a.id);if(!b.allowed)return{ok:!1,error:`Too many syncs. Try again in ${(0,p.H)(b.retryAfter)}.`};let c=Date.now(),d=await (0,B.X)(new Date(c),c+5e4);if((0,j.refresh)(),!d)return{ok:!1,error:"The sync stopped with an error. Try again."};if(0===d.conns.length)return{ok:!1,error:"No custom server is connected and on."};let e=d.conns.find(a=>!a.ok);if(e&&d.conns.every(a=>!a.ok))return{ok:!1,error:`${e.name}: ${e.error??"the sync failed"}.`};let f=d.summary,g=[`${f.listed} listed`,f.added&&`${f.added} new`,f.removed&&`${f.removed} removed`,f.returned&&`${f.returned} back`,`${f.tested} tested`,f.ready&&`${f.ready} turned on`].filter(Boolean);return{ok:!0,message:`Synced: ${g.join(", ")}.${d.pending?" Some new models wait for their test; the next run comes within minutes.":""}`}},{requireActionMember:l.g})}async function M(a,b){return(0,k.F)("owner",async c=>{if(!(0,n.f)(a)||null!==b&&("string"!=typeof b||b.length<1||b.length>200))return{ok:!1,error:G};let d=await (0,q.C)(p.t.credential,c.id);if(!d.allowed)return{ok:!1,error:`Too many tests. Try again in ${(0,p.H)(d.retryAfter)}.`};let e=await A(a,null===b?null:[b]);if(!e.ok)return{ok:!1,error:e.error};(0,j.refresh)();let f=e.tested.filter(a=>a.test.ok).length,g={tested:e.tested.length,working:f,skipped:e.skipped};if(null!==b){let a=e.tested[0]?.test;return a?.ok?{ok:!0,message:`${b} works (${(a.ms/1e3).toFixed(1)} s).`,data:g}:{ok:!1,error:`${b}: ${a?.error??"not tested"}.`}}return{ok:!0,message:`${f} of ${e.tested.length} model${1===e.tested.length?"":"s"} answered.${e.skipped?` ${e.skipped} not tested yet: run Scan all again.`:""}`,data:g}},{requireActionMember:l.g})}async function N(a,b){return M(a,"string"==typeof b?b:"")}async function O(a){return M(a,null)}async function P(a,b){return(0,k.F)("owner",async c=>{if("boolean"!=typeof a||null!==b&&("string"!=typeof b||b.length<1||b.length>200))return{ok:!1,error:G};let d=await (0,q.C)(p.t.alertWrite,c.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,p.H)(d.retryAfter)}.`};if(null!==b){let{rows:a}=await (0,D.Y)();if(!a.some(a=>a.publicId===b&&a.enabled&&a.providerEnabled))return{ok:!1,error:"Turn the model on first."}}return await (0,C.C)({enabled:a,model:b}),await H(`AI advisor notes ${a?"on":"off"}${b?` \xb7 ${b}`:""}`,c.userId),(0,j.refresh)(),{ok:!0,message:a?`Advisor notes are on (${b??"default model"}), at 07:00 and 19:00 ${(0,o.D)()}.`:"Advisor notes are off."}},{requireActionMember:l.g})}async function Q(){return(0,k.F)("owner",async a=>{let b=await (0,q.C)(p.t.credential,a.id);if(!b.allowed)return{ok:!1,error:`Too many runs. Try again in ${(0,p.H)(b.retryAfter)}.`};try{let a=await (0,C.K)(new Date,{force:!0,deadlineMs:45e3});if("skipped"===a.status){let b="no-provider"===a.reason?"No AI provider is connected.":"no-apps"===a.reason?"No watched app to write about.":"The model's answer had no usable note. Try again.";return{ok:!1,error:b}}return(0,j.refresh)(),{ok:!0,message:`${a.count} advisor note${1===a.count?"":"s"} written by ${a.model}.`,data:{count:a.count}}}catch(a){return{ok:!1,error:a instanceof Error&&"GatewayError"===a.name?a.message.slice(0,300):a instanceof Error&&"advisor deadline"===a.message?"The provider took too long. Try again.":"The AI provider couldn't answer. Try again."}}},{requireActionMember:l.g})}(0,F.ensureServerEntryExports)([I,J,K,L,N,O,P,Q]),(0,i.registerServerReference)(I,"706b1e2c1aa83d9f819d5434ed1a2dbf2d3daf7b09",null),(0,i.registerServerReference)(J,"408fe2e0e1c803bb0b9dd82ed3a53707245a974928",null),(0,i.registerServerReference)(K,"002bd56570f5afa6609f592376078c64f1f02c4f56",null),(0,i.registerServerReference)(L,"00d30c3aa3cc77af7e3d74b02978d2cf033a51342a",null),(0,i.registerServerReference)(N,"60482404cf83c4ffee83ed39ba70d0beecfac7a0e3",null),(0,i.registerServerReference)(O,"4091810355231db760deafdcfe281b29e41663f1cb",null),(0,i.registerServerReference)(P,"60109154e9bbb670963a19519c8c45513bfbf2b223",null),(0,i.registerServerReference)(Q,"00eb227220d82d61e85b5d9ec05ca6a6594e879689",null),a.s(["000282de87b7e9cf08100adac2e51428cfdd2bf2f0",()=>b.f,"002bd56570f5afa6609f592376078c64f1f02c4f56",0,K,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",()=>g.f,"00cc644565302cc4783a579d62aed29b8a70171e57",()=>c.f,"00d30c3aa3cc77af7e3d74b02978d2cf033a51342a",0,L,"00eb227220d82d61e85b5d9ec05ca6a6594e879689",0,Q,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",()=>e.E,"40148874c05af4057e24edaba03b37b920ae65bbed",()=>f.m,"40170e8924094791a6435c13b6b044b33f39cf0395",()=>e.G,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",()=>e.T,"40682ba8a28a431f2e657c558dfb82f395c43592d0",()=>f.G,"40693305696e570a9e62eeac1e01b15301901debaa",()=>f.F,"408fe2e0e1c803bb0b9dd82ed3a53707245a974928",0,J,"4091810355231db760deafdcfe281b29e41663f1cb",0,O,"40afb05fcb02837269171008e42179d3fa3d20ad9e",()=>d.B,"40d348a686685b6c41d45bd201145ab5593321934f",()=>d.R,"60109154e9bbb670963a19519c8c45513bfbf2b223",0,P,"60183f97bf4ffc829dd489de3a8170ec212d33a765",()=>h.O,"60408d7fe309e69adfc8e186be307ecde7e787517e",()=>h.z,"60482404cf83c4ffee83ed39ba70d0beecfac7a0e3",0,N,"706b1e2c1aa83d9f819d5434ed1a2dbf2d3daf7b09",0,I],673841)}];
1
+ module.exports=[673841,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(804224),i=a.i(137936),j=a.i(118558),k=a.i(600079),l=a.i(109307),m=a.i(221084),n=a.i(683439),o=a.i(245710),p=a.i(312573),q=a.i(323878),r=a.i(93321),s=a.i(548734),t=a.i(61017),u=a.i(142754),v=a.i(337830),w=a.i(711672),x=a.i(208683);async function y(a,b,c,d,e=Date.now){let f=Array(a.length).fill(void 0),g=0,h=async()=>{for(;;){let b=g++;if(b>=a.length)return;let h=c-e();if(h<5e3)return;f[b]=await d(a[b],h)}};return await Promise.all(Array.from({length:Math.max(1,Math.min(b,a.length))},h)),f}async function z(a,b,c,d="Watchbell console (model test)"){var e,f;let g=Date.now(),h=await (0,v.K)(a,b.upstream,Math.min(45e3,c),512),i=h.ok?{ok:!0,ms:h.ms,at:new Date().toISOString()}:{ok:!1,ms:Date.now()-g,status:h.status,error:(e=h.status,f=h.errorClass,404===e?"model not found (404)":401===e?"key rejected (401)":403===e?"refused (403)":429===e?"rate limited (429)":400===e?"bad request (400)":408===e||/timeout/i.test(f)?"timed out":0===e?"unreachable":e>=500?`server error (${e})`:`failed (${e})`),at:new Date().toISOString()};return await (0,t.h)({at:new Date(g),keyId:null,client:{...t.q,userAgent:d},providerId:a.id,model:(0,x.q)(a,b),kind:"models",tool:null,tokensIn:null,tokensOut:null,latencyMs:i.ms,status:h.ok?200:h.status||502,errorClass:h.ok?null:`test \xb7 ${h.errorClass}`.slice(0,120),stream:!1},[]).catch(()=>{console.warn("model test usage not recorded")}),i}async function A(a,b,c=Date.now()){var d;let e,f=(await (0,w.J)(c,!0)).find(b=>b.id===a);if(!f)return{ok:!1,error:"That connection no longer exists, or its key can't be read."};let g=null===b?(d=f.models.filter(a=>!a.removed),e=a=>a.lastTest?Date.parse(a.lastTest.at)||0:-1,[...d].sort((a,b)=>e(a)-e(b))):f.models.filter(a=>b.includes(a.id));if(0===g.length)return{ok:!1,error:"That model isn't on this connection's list. Refresh the models first."};let h=(await y(g,4,c+5e4,async(a,b)=>({id:a.id,test:await z(f,a,b)}))).filter(a=>!!a);if(h.length){let b=(await (0,w.J)(Date.now(),!0)).find(b=>b.id===a);if(b){let c=new Map(h.map(a=>[a.id,a.test])),d=b.models.map(a=>c.has(a.id)?{...a,lastTest:c.get(a.id)}:a);await (0,s.f)().update(u.f).set({models:d,updatedAt:new Date}).where((0,r.u)(u.f.id,a)),(0,w.t)()}}return{ok:!0,tested:h,skipped:g.length-h.length}}var B=a.i(484458),C=a.i(330863),D=a.i(263972),E=a.i(777302),F=a.i(713095);let G="Something in that request wasn't valid.",H=async(a,b)=>{try{await (0,m.f)({kind:"ok",message:a,resourceId:null,actorUserId:b})}catch{console.warn("audit event failed")}};async function I(a,b,c){return(0,k.F)("owner",async d=>{if(!(0,n.f)(a)||"string"!=typeof b||b.length<1||b.length>200||"boolean"!=typeof c)return{ok:!1,error:G};let e=await (0,q.C)(p.t.alertWrite,d.id);if(!e.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,p.H)(e.retryAfter)}.`};let f=await (0,E.V)(a,b,c);return f.ok?(await H(`AI model ${c?"enabled":"disabled"}: ${b}`,d.userId),(0,j.refresh)(),{ok:!0,message:`${b} is ${c?"on":"off"}. Takes effect on the next request.`}):{ok:!1,error:f.error}},{requireActionMember:l.g})}async function J(a){return(0,k.F)("owner",async b=>{if("string"!=typeof a||a.length>240)return{ok:!1,error:G};let c=await (0,q.C)(p.t.alertWrite,b.id);if(!c.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,p.H)(c.retryAfter)}.`};let{rows:d}=await (0,D.Y)(),e=d.find(b=>b.publicId===a);return e&&e.enabled&&e.providerEnabled?(await (0,D.z)(a,new Date),await H(`AI default model: ${a}`,b.userId),(0,j.refresh)(),{ok:!0,message:`${a} is now the default model.`}):{ok:!1,error:"Turn the model on first."}},{requireActionMember:l.g})}async function K(){return(0,k.F)("owner",async a=>{let b=await (0,q.C)(p.t.refresh,a.id);if(!b.allowed)return{ok:!1,error:`Too many refreshes. Try again in ${(0,p.H)(b.retryAfter)}.`};let{providers:c}=await (0,D.Y)(),d=c.filter(a=>a.enabled);if(0===d.length)return{ok:!1,error:"No provider is connected."};let e=0;for(let a of d)try{!(await (0,E.D)(a.id)).ok&&e++}catch{e++}return(0,j.refresh)(),e===d.length?{ok:!1,error:"No provider answered. Check the connection under Bring your own key."}:{ok:!0,message:e?`Asked ${d.length-e} of ${d.length} providers for their model list.`:`Asked ${d.length} provider${1===d.length?"":"s"} for the model list.`}},{requireActionMember:l.g})}async function L(){return(0,k.F)("owner",async a=>{let b=await (0,q.C)(p.t.credential,a.id);if(!b.allowed)return{ok:!1,error:`Too many syncs. Try again in ${(0,p.H)(b.retryAfter)}.`};let c=Date.now(),d=await (0,B.X)(new Date(c),c+5e4);if((0,j.refresh)(),!d)return{ok:!1,error:"The sync stopped with an error. Try again."};if(0===d.conns.length)return{ok:!1,error:"No custom server is connected and on."};let e=d.conns.find(a=>!a.ok);if(e&&d.conns.every(a=>!a.ok))return{ok:!1,error:`${e.name}: ${e.error??"the sync failed"}.`};let f=d.summary,g=[`${f.listed} listed`,f.added&&`${f.added} new`,f.removed&&`${f.removed} removed`,f.returned&&`${f.returned} back`,`${f.tested} tested`,f.ready&&`${f.ready} turned on`].filter(Boolean);return{ok:!0,message:`Synced: ${g.join(", ")}.${d.pending?" Some new models wait for their test; the next run comes within minutes.":""}`}},{requireActionMember:l.g})}async function M(a,b){return(0,k.F)("owner",async c=>{if(!(0,n.f)(a)||null!==b&&("string"!=typeof b||b.length<1||b.length>200))return{ok:!1,error:G};let d=await (0,q.C)(p.t.credential,c.id);if(!d.allowed)return{ok:!1,error:`Too many tests. Try again in ${(0,p.H)(d.retryAfter)}.`};let e=await A(a,null===b?null:[b]);if(!e.ok)return{ok:!1,error:e.error};(0,j.refresh)();let f=e.tested.filter(a=>a.test.ok).length,g={tested:e.tested.length,working:f,skipped:e.skipped};if(null!==b){let a=e.tested[0]?.test;return a?.ok?{ok:!0,message:`${b} works (${(a.ms/1e3).toFixed(1)} s).`,data:g}:{ok:!1,error:`${b}: ${a?.error??"not tested"}.`}}return{ok:!0,message:`${f} of ${e.tested.length} model${1===e.tested.length?"":"s"} answered.${e.skipped?` ${e.skipped} not tested yet: run Scan all again.`:""}`,data:g}},{requireActionMember:l.g})}async function N(a,b){return M(a,"string"==typeof b?b:"")}async function O(a){return M(a,null)}async function P(a,b){return(0,k.F)("owner",async c=>{if("boolean"!=typeof a||null!==b&&("string"!=typeof b||b.length<1||b.length>200))return{ok:!1,error:G};let d=await (0,q.C)(p.t.alertWrite,c.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,p.H)(d.retryAfter)}.`};if(null!==b){let{rows:a}=await (0,D.Y)();if(!a.some(a=>a.publicId===b&&a.enabled&&a.providerEnabled))return{ok:!1,error:"Turn the model on first."}}return await (0,C.C)({enabled:a,model:b}),await H(`AI advisor notes ${a?"on":"off"}${b?` \xb7 ${b}`:""}`,c.userId),(0,j.refresh)(),{ok:!0,message:a?`Advisor notes are on (${b??"default model"}), at 07:00 and 19:00 ${(0,o.D)()}.`:"Advisor notes are off."}},{requireActionMember:l.g})}async function Q(){return(0,k.F)("owner",async a=>{let b=await (0,q.C)(p.t.credential,a.id);if(!b.allowed)return{ok:!1,error:`Too many runs. Try again in ${(0,p.H)(b.retryAfter)}.`};try{let a=await (0,C.K)(new Date,{force:!0,deadlineMs:45e3});if("skipped"===a.status){let b="no-provider"===a.reason?"No AI provider is connected.":"no-apps"===a.reason?"No watched app to write about.":"The model's answer had no usable note. Try again.";return{ok:!1,error:b}}return(0,j.refresh)(),{ok:!0,message:`${a.count} advisor note${1===a.count?"":"s"} written by ${a.model}.`,data:{count:a.count}}}catch(a){return{ok:!1,error:a instanceof Error&&"GatewayError"===a.name?a.message.slice(0,300):a instanceof Error&&"advisor deadline"===a.message?"The provider took too long. Try again.":"The AI provider couldn't answer. Try again."}}},{requireActionMember:l.g})}(0,F.ensureServerEntryExports)([I,J,K,L,N,O,P,Q]),(0,i.registerServerReference)(I,"706b76a40c48dfbe400b576c34157ead579c52813a",null),(0,i.registerServerReference)(J,"401a986de7c91501e4a35bb59e265a7e0ae092ada8",null),(0,i.registerServerReference)(K,"00c0a38b180ad67b40945cd431f19bb78fcef5f514",null),(0,i.registerServerReference)(L,"00e4d7163ce72a9fb17d5bfc427a5fbb89207c799f",null),(0,i.registerServerReference)(N,"600868898716bb45ac1ef2d2b2387175dba9608cda",null),(0,i.registerServerReference)(O,"40e71a770bc09dc9e8fec333dc93aef8ccc0452d95",null),(0,i.registerServerReference)(P,"604fb8af8ce70d8658b5ca10a9661a9026b58a25f1",null),(0,i.registerServerReference)(Q,"006113337c24d89ccfa334a562697648808a2e7a08",null),a.s(["003ab1931030324d4cb2fbd394c9db5154e22aac82",()=>c.f,"006113337c24d89ccfa334a562697648808a2e7a08",0,Q,"006cea3d9937b620c316d1469c81fc1117d96a8bef",()=>g.f,"00a4863b2759313b43afeff3df0a62d47e66017335",()=>e.E,"00ab4542a2cda573adf3ba39329a67751a4d7b2c2a",()=>b.f,"00c0a38b180ad67b40945cd431f19bb78fcef5f514",0,K,"00e4d7163ce72a9fb17d5bfc427a5fbb89207c799f",0,L,"401a986de7c91501e4a35bb59e265a7e0ae092ada8",0,J,"401ff14fa6430391d5b50044d749bd30ec1f181c47",()=>f.F,"4040c40df6935ec6abb9fc2908703979ec9501cf05",()=>f.m,"40487004821d9fd78750c3cc1ac1949e8150ac442f",()=>e.G,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",()=>f.G,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",()=>e.T,"40d6e085a7dbacafe30989762d10fda9030cde91c2",()=>d.B,"40e1189dc743ddc755237254db535784362d085c45",()=>d.R,"40e71a770bc09dc9e8fec333dc93aef8ccc0452d95",0,O,"600868898716bb45ac1ef2d2b2387175dba9608cda",0,N,"600cf7231c126b62920c0bc45de68ff81c4dea68d6",()=>h.O,"604fb8af8ce70d8658b5ca10a9661a9026b58a25f1",0,P,"60725547a5dcc14653e3e6efb7e55f25a262dccf7c",()=>h.z,"706b76a40c48dfbe400b576c34157ead579c52813a",0,I],673841)}];
2
2
 
3
3
  //# sourceMappingURL=1oeh_server_app_%28console%29_%28private%29_ai_models_page_actions_0rvlzfa8rjyz_.js.map
@@ -1,4 +1,4 @@
1
1
  module.exports=[652820,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(600079),j=a.i(109307),k=a.i(312573),l=a.i(323878),m=a.i(263972),n=a.i(777302);let o={name:"playground",max:30,windowSeconds:600},p=a=>({ok:!1,error:a});async function q(a){return(0,i.F)("owner",async b=>{let c=function(a){if(!a||"object"!=typeof a)return p("Something in that request wasn't valid.");let b="console"===a.mode?"console":"plain"===a.mode?"plain":null;if(!b)return p("Pick Plain model or Ask the console.");let c="string"==typeof a.model?a.model.trim():"";if(c.length>200)return p("Something in that request wasn't valid.");let d="number"==typeof a.temperature?a.temperature:Number(a.temperature);if(!Number.isFinite(d)||d<0||d>2)return p("Temperature is a number from 0 to 2.");let e="number"==typeof a.maxTokens?a.maxTokens:Number(a.maxTokens);if(!Number.isInteger(e)||e<16||e>8192)return p(`Max output tokens is a whole number from 16 to ${8192..toLocaleString("en-US")}.`);let f="string"==typeof a.system?a.system:"";if(f.length>4e3)return p(`The system prompt is at most ${4e3.toLocaleString("en-US")} characters.`);if(!Array.isArray(a.messages)||a.messages.length<1||a.messages.length>20)return p("A conversation is 1 to 20 messages. Clear it to start over.");let g=[],h=0;for(let b of a.messages){let a=b??{};if("user"!==a.role&&"assistant"!==a.role||"string"!=typeof a.content||!a.content.trim())return p("Something in that request wasn't valid.");if(a.content.length>8e3)return p(`A message is at most ${8e3.toLocaleString("en-US")} characters.`);h+=a.content.length,g.push({role:a.role,content:a.content})}return h>4e4?p("The conversation is too long. Clear it to start over."):"user"!==g[g.length-1].role?p("The last message must be yours."):{ok:!0,value:{model:c,mode:b,temperature:d,maxTokens:e,system:f,messages:g}}}(a);if(!c.ok)return{ok:!1,error:c.error};let d=c.value,e=await (0,l.C)(o,b.id);if(!e.allowed)return{ok:!1,error:`Too many messages. Try again in ${(0,k.H)(e.retryAfter)}.`};let{rows:f,defaultModel:g}=await (0,m.Y)(),h=f.filter(a=>a.enabled&&a.providerEnabled);if(0===h.length)return{ok:!1,error:"No model is on. Connect a provider and turn a model on first."};let i=d.model||(h.some(a=>a.publicId===g)?g:null)||h[0].publicId;if(!h.some(a=>a.publicId===i))return{ok:!1,error:"That model isn't on. Pick another."};let j=[{role:"system",content:d.system.trim()||"You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."}];"console"===d.mode&&j.push({role:"system",content:`Console data (JSON, names aliased):
2
- ${await (0,n.u)(new Date)}`});try{let a=await (0,n.t)([...j,...d.messages],{model:i,maxTokens:d.maxTokens,temperature:d.temperature,purpose:"playground"});return{ok:!0,data:{text:a.text,model:a.model,tokensIn:a.usage.in,tokensOut:a.usage.out,ms:a.ms,grounded:"console"===d.mode}}}catch(b){let a;return console.warn("playground call failed:",b instanceof Error?b.name:"unknown"),{ok:!1,error:!(a=b instanceof Error?b.message.trim():"")||a.length>220||/w[bp]_|AIza|AQ\.|Bearer|sk-|gsk_|postgres|:\/\/|@/.test(a)?"The provider didn't answer. Check the connection under Bring your own key.":a}}},{requireActionMember:j.g})}(0,a.i(713095).ensureServerEntryExports)([q]),(0,h.registerServerReference)(q,"40d78d1d1061eaaee75e42d25cc7dfde3348aba4e5",null),a.s(["000282de87b7e9cf08100adac2e51428cfdd2bf2f0",()=>b.f,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",()=>g.f,"00cc644565302cc4783a579d62aed29b8a70171e57",()=>c.f,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",()=>e.E,"40148874c05af4057e24edaba03b37b920ae65bbed",()=>f.m,"40170e8924094791a6435c13b6b044b33f39cf0395",()=>e.G,"40584cbe33c99b40d44a45839c07e58d66cb070813",()=>e.P,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",()=>e.T,"40682ba8a28a431f2e657c558dfb82f395c43592d0",()=>f.G,"40693305696e570a9e62eeac1e01b15301901debaa",()=>f.F,"40afb05fcb02837269171008e42179d3fa3d20ad9e",()=>d.B,"40d348a686685b6c41d45bd201145ab5593321934f",()=>d.R,"40d78d1d1061eaaee75e42d25cc7dfde3348aba4e5",0,q,"6014f0de7fffd8bb4e3ae7fa88b91384de46bd2109",()=>e.B],652820)}];
2
+ ${await (0,n.u)(new Date)}`});try{let a=await (0,n.t)([...j,...d.messages],{model:i,maxTokens:d.maxTokens,temperature:d.temperature,purpose:"playground"});return{ok:!0,data:{text:a.text,model:a.model,tokensIn:a.usage.in,tokensOut:a.usage.out,ms:a.ms,grounded:"console"===d.mode}}}catch(b){let a;return console.warn("playground call failed:",b instanceof Error?b.name:"unknown"),{ok:!1,error:!(a=b instanceof Error?b.message.trim():"")||a.length>220||/w[bp]_|AIza|AQ\.|Bearer|sk-|gsk_|postgres|:\/\/|@/.test(a)?"The provider didn't answer. Check the connection under Bring your own key.":a}}},{requireActionMember:j.g})}(0,a.i(713095).ensureServerEntryExports)([q]),(0,h.registerServerReference)(q,"40ea030dcaf48d6e58fa61a319e7943226d7b1dc8d",null),a.s(["003ab1931030324d4cb2fbd394c9db5154e22aac82",()=>c.f,"006cea3d9937b620c316d1469c81fc1117d96a8bef",()=>g.f,"00a4863b2759313b43afeff3df0a62d47e66017335",()=>e.E,"00ab4542a2cda573adf3ba39329a67751a4d7b2c2a",()=>b.f,"401ff14fa6430391d5b50044d749bd30ec1f181c47",()=>f.F,"4040c40df6935ec6abb9fc2908703979ec9501cf05",()=>f.m,"40487004821d9fd78750c3cc1ac1949e8150ac442f",()=>e.G,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",()=>f.G,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",()=>e.T,"40bcdb3eabf879ab764bb03c210e33a976f8370caf",()=>e.P,"40d6e085a7dbacafe30989762d10fda9030cde91c2",()=>d.B,"40e1189dc743ddc755237254db535784362d085c45",()=>d.R,"40ea030dcaf48d6e58fa61a319e7943226d7b1dc8d",0,q,"609f0e1891e6795515cf830ba0b2f89bd728db89f1",()=>e.B],652820)}];
3
3
 
4
4
  //# sourceMappingURL=1oeh_server_app_%28console%29_%28private%29_ai_playground_page_actions_01ejc1xilpuh4.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[821814,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(600079),k=a.i(109307),l=a.i(221084),m=a.i(683439),n=a.i(312573),o=a.i(323878),p=a.i(777302);let q=["requests","tokens"],r=["minute","day","week"],s=/^[A-Za-z0-9._:-]{1,80}$/;async function t(a,b){return(0,j.F)("owner",async c=>{if(!(0,m.f)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=function(a){if(!Array.isArray(a))return{ok:!1,error:"Something in that request wasn't valid."};if(a.length>10)return{ok:!1,error:"At most 10 limits per connection."};let b=[],c=new Set;for(let d of a){let a=d??{},e=q.find(b=>b===a.metric),f=r.find(b=>b===a.window),g="string"==typeof a.scope&&a.scope.trim()?a.scope.trim():"all",h="string"==typeof a.limit?Number(a.limit.replace(/[,_\s]/g,"")):a.limit;if(!e||!f)return{ok:!1,error:"Pick requests or tokens and a window for every limit."};if(!s.test(g))return{ok:!1,error:"A model name may only use letters, digits and . _ : -."};if("number"!=typeof h||!Number.isInteger(h)||h<1||h>2e9)return{ok:!1,error:"A limit is a whole number from 1 to 2,000,000,000."};let i=`${e}|${g}|${f}`;if(c.has(i))return{ok:!1,error:"Two limits are the same metric, model and window."};c.add(i),b.push({metric:e,scope:g,limit:h,window:f})}return{ok:!0,value:b}}(b);if(!d.ok)return{ok:!1,error:d.error};let e=await (0,o.C)(n.t.credential,c.id);if(!e.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,n.H)(e.retryAfter)}.`};let f=await (0,p.F)(a,d.value);if(!f.ok)return{ok:!1,error:f.error};try{await (0,l.f)({kind:"ok",message:"AI provider limits changed",detail:`${d.value.length} limit${1===d.value.length?"":"s"}`,resourceId:null,actorUserId:c.userId})}catch{console.warn("audit event failed")}return(0,i.refresh)(),{ok:!0,message:"Limits saved."}},{requireActionMember:k.g})}(0,a.i(713095).ensureServerEntryExports)([t]),(0,h.registerServerReference)(t,"608d18e5229ab144023a51722994fee39a00eccf38",null),a.s(["000282de87b7e9cf08100adac2e51428cfdd2bf2f0",()=>b.f,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",()=>g.f,"00cc644565302cc4783a579d62aed29b8a70171e57",()=>c.f,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",()=>e.E,"40148874c05af4057e24edaba03b37b920ae65bbed",()=>f.m,"40170e8924094791a6435c13b6b044b33f39cf0395",()=>e.G,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",()=>e.T,"40682ba8a28a431f2e657c558dfb82f395c43592d0",()=>f.G,"40693305696e570a9e62eeac1e01b15301901debaa",()=>f.F,"40afb05fcb02837269171008e42179d3fa3d20ad9e",()=>d.B,"40d348a686685b6c41d45bd201145ab5593321934f",()=>d.R,"608d18e5229ab144023a51722994fee39a00eccf38",0,t],821814)}];
1
+ module.exports=[821814,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(600079),k=a.i(109307),l=a.i(221084),m=a.i(683439),n=a.i(312573),o=a.i(323878),p=a.i(777302);let q=["requests","tokens"],r=["minute","day","week"],s=/^[A-Za-z0-9._:-]{1,80}$/;async function t(a,b){return(0,j.F)("owner",async c=>{if(!(0,m.f)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=function(a){if(!Array.isArray(a))return{ok:!1,error:"Something in that request wasn't valid."};if(a.length>10)return{ok:!1,error:"At most 10 limits per connection."};let b=[],c=new Set;for(let d of a){let a=d??{},e=q.find(b=>b===a.metric),f=r.find(b=>b===a.window),g="string"==typeof a.scope&&a.scope.trim()?a.scope.trim():"all",h="string"==typeof a.limit?Number(a.limit.replace(/[,_\s]/g,"")):a.limit;if(!e||!f)return{ok:!1,error:"Pick requests or tokens and a window for every limit."};if(!s.test(g))return{ok:!1,error:"A model name may only use letters, digits and . _ : -."};if("number"!=typeof h||!Number.isInteger(h)||h<1||h>2e9)return{ok:!1,error:"A limit is a whole number from 1 to 2,000,000,000."};let i=`${e}|${g}|${f}`;if(c.has(i))return{ok:!1,error:"Two limits are the same metric, model and window."};c.add(i),b.push({metric:e,scope:g,limit:h,window:f})}return{ok:!0,value:b}}(b);if(!d.ok)return{ok:!1,error:d.error};let e=await (0,o.C)(n.t.credential,c.id);if(!e.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,n.H)(e.retryAfter)}.`};let f=await (0,p.F)(a,d.value);if(!f.ok)return{ok:!1,error:f.error};try{await (0,l.f)({kind:"ok",message:"AI provider limits changed",detail:`${d.value.length} limit${1===d.value.length?"":"s"}`,resourceId:null,actorUserId:c.userId})}catch{console.warn("audit event failed")}return(0,i.refresh)(),{ok:!0,message:"Limits saved."}},{requireActionMember:k.g})}(0,a.i(713095).ensureServerEntryExports)([t]),(0,h.registerServerReference)(t,"606956c3f7a75b9830aa63cc4b4cc4ef0868e4fb4b",null),a.s(["003ab1931030324d4cb2fbd394c9db5154e22aac82",()=>c.f,"006cea3d9937b620c316d1469c81fc1117d96a8bef",()=>g.f,"00a4863b2759313b43afeff3df0a62d47e66017335",()=>e.E,"00ab4542a2cda573adf3ba39329a67751a4d7b2c2a",()=>b.f,"401ff14fa6430391d5b50044d749bd30ec1f181c47",()=>f.F,"4040c40df6935ec6abb9fc2908703979ec9501cf05",()=>f.m,"40487004821d9fd78750c3cc1ac1949e8150ac442f",()=>e.G,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",()=>f.G,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",()=>e.T,"40d6e085a7dbacafe30989762d10fda9030cde91c2",()=>d.B,"40e1189dc743ddc755237254db535784362d085c45",()=>d.R,"606956c3f7a75b9830aa63cc4b4cc4ef0868e4fb4b",0,t],821814)}];
2
2
 
3
3
  //# sourceMappingURL=1oeh_server_app_%28console%29_%28private%29_ai_quota_page_actions_0iki29gyi8cwa.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[810908,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(600079),k=a.i(109307),l=a.i(462820),m=a.i(221084),n=a.i(312573),o=a.i(323878),p=a.i(690041),q=a.i(849423);async function r(a){return(0,j.F)("owner",async b=>{let c={...p.m};for(let b of p.T){let d=(0,p.S)(a.get(b.key));if(!d.ok)return{ok:!1,error:`${b.label}: enter a whole number of tokens, or leave it blank.`};c[b.key]=d.value}let d=await (0,o.C)(n.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,n.H)(d.retryAfter)}.`};await (0,q.u)(c,new Date);try{await (0,m.f)({kind:"ok",message:l.W.limitsAudit,resourceId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,i.refresh)(),{ok:!0,message:"Quota estimates saved."}},{requireActionMember:k.g})}(0,a.i(713095).ensureServerEntryExports)([r]),(0,h.registerServerReference)(r,"40bd24b690c5bb75278d7a66cb139228b848e59a16",null),a.s(["000282de87b7e9cf08100adac2e51428cfdd2bf2f0",()=>b.f,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",()=>g.f,"00cc644565302cc4783a579d62aed29b8a70171e57",()=>c.f,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",()=>e.E,"40148874c05af4057e24edaba03b37b920ae65bbed",()=>f.m,"40170e8924094791a6435c13b6b044b33f39cf0395",()=>e.G,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",()=>e.T,"40682ba8a28a431f2e657c558dfb82f395c43592d0",()=>f.G,"40693305696e570a9e62eeac1e01b15301901debaa",()=>f.F,"40afb05fcb02837269171008e42179d3fa3d20ad9e",()=>d.B,"40bd24b690c5bb75278d7a66cb139228b848e59a16",0,r,"40d348a686685b6c41d45bd201145ab5593321934f",()=>d.R],810908)}];
1
+ module.exports=[810908,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(600079),k=a.i(109307),l=a.i(462820),m=a.i(221084),n=a.i(312573),o=a.i(323878),p=a.i(690041),q=a.i(849423);async function r(a){return(0,j.F)("owner",async b=>{let c={...p.m};for(let b of p.T){let d=(0,p.S)(a.get(b.key));if(!d.ok)return{ok:!1,error:`${b.label}: enter a whole number of tokens, or leave it blank.`};c[b.key]=d.value}let d=await (0,o.C)(n.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,n.H)(d.retryAfter)}.`};await (0,q.u)(c,new Date);try{await (0,m.f)({kind:"ok",message:l.W.limitsAudit,resourceId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,i.refresh)(),{ok:!0,message:"Quota estimates saved."}},{requireActionMember:k.g})}(0,a.i(713095).ensureServerEntryExports)([r]),(0,h.registerServerReference)(r,"40b5d5a4675e89c293da740ff3027420414e640eb1",null),a.s(["003ab1931030324d4cb2fbd394c9db5154e22aac82",()=>c.f,"006cea3d9937b620c316d1469c81fc1117d96a8bef",()=>g.f,"00a4863b2759313b43afeff3df0a62d47e66017335",()=>e.E,"00ab4542a2cda573adf3ba39329a67751a4d7b2c2a",()=>b.f,"401ff14fa6430391d5b50044d749bd30ec1f181c47",()=>f.F,"4040c40df6935ec6abb9fc2908703979ec9501cf05",()=>f.m,"40487004821d9fd78750c3cc1ac1949e8150ac442f",()=>e.G,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",()=>f.G,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",()=>e.T,"40b5d5a4675e89c293da740ff3027420414e640eb1",0,r,"40d6e085a7dbacafe30989762d10fda9030cde91c2",()=>d.B,"40e1189dc743ddc755237254db535784362d085c45",()=>d.R],810908)}];
2
2
 
3
3
  //# sourceMappingURL=1oeh_server_app_%28console%29_%28private%29_ai_usage_page_actions_1c99h-kwdnep7.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[964005,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(843405),k=a.i(600079),l=a.i(109307),m=a.i(342634),n=a.i(875034),o=a.i(713095);let p={requireActionMember:l.g};async function q(a,b){return(0,k.F)("owner",async c=>{let d;if(!(0,m.b)(a)||"approve"!==b&&"reject"!==b)return{ok:!1,error:"Something in that request wasn't valid."};try{d=await (0,n.f)(a,b,{id:c.id,userId:c.userId},new Date)}catch(a){return console.warn("auto-actions decide failed:",a instanceof Error?a.name:"error"),(0,i.refresh)(),{ok:!1,error:"The console couldn't confirm what happened. The proposal may already be approved or running, so check History before doing anything else."}}if("missing"===d.status)return{ok:!1,error:"Unknown proposal."};(0,i.refresh)(),"ok"===d.status&&d.flushHistory&&(0,j.after)(d.flushHistory);let e=d.proposal;return"conflict"===d.status?{ok:!1,error:"pending"===e.status?"This proposal has expired.":`This proposal is already ${e.status}.`}:"rejected"===e.status?{ok:!0,message:"Rejected."}:"failed"===e.status?{ok:!1,error:e.result??"It didn't run."}:{ok:!0,message:e.result??"Approved. It's running."}},p,"local")}async function r(a,b){let c=a=>{let c=b.get(a);return"string"==typeof c?c:""};return q(c("id"),c("decision"))}(0,o.ensureServerEntryExports)([q,r]),(0,h.registerServerReference)(q,"60a2e5505279916a7dbfe516cb3b3ba069057acb20",null),(0,h.registerServerReference)(r,"60d122776d99a003fa16739f7845e4851c360a30c1",null),a.s(["000282de87b7e9cf08100adac2e51428cfdd2bf2f0",()=>b.f,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",()=>g.f,"00cc644565302cc4783a579d62aed29b8a70171e57",()=>c.f,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",()=>e.E,"40148874c05af4057e24edaba03b37b920ae65bbed",()=>f.m,"40170e8924094791a6435c13b6b044b33f39cf0395",()=>e.G,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",()=>e.T,"40682ba8a28a431f2e657c558dfb82f395c43592d0",()=>f.G,"40693305696e570a9e62eeac1e01b15301901debaa",()=>f.F,"40afb05fcb02837269171008e42179d3fa3d20ad9e",()=>d.B,"40d348a686685b6c41d45bd201145ab5593321934f",()=>d.R,"60d122776d99a003fa16739f7845e4851c360a30c1",0,r],964005)}];
1
+ module.exports=[964005,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(843405),k=a.i(600079),l=a.i(109307),m=a.i(342634),n=a.i(875034),o=a.i(713095);let p={requireActionMember:l.g};async function q(a,b){return(0,k.F)("owner",async c=>{let d;if(!(0,m.b)(a)||"approve"!==b&&"reject"!==b)return{ok:!1,error:"Something in that request wasn't valid."};try{d=await (0,n.f)(a,b,{id:c.id,userId:c.userId},new Date)}catch(a){return console.warn("auto-actions decide failed:",a instanceof Error?a.name:"error"),(0,i.refresh)(),{ok:!1,error:"The console couldn't confirm what happened. The proposal may already be approved or running, so check History before doing anything else."}}if("missing"===d.status)return{ok:!1,error:"Unknown proposal."};(0,i.refresh)(),"ok"===d.status&&d.flushHistory&&(0,j.after)(d.flushHistory);let e=d.proposal;return"conflict"===d.status?{ok:!1,error:"pending"===e.status?"This proposal has expired.":`This proposal is already ${e.status}.`}:"rejected"===e.status?{ok:!0,message:"Rejected."}:"failed"===e.status?{ok:!1,error:e.result??"It didn't run."}:{ok:!0,message:e.result??"Approved. It's running."}},p,"local")}async function r(a,b){let c=a=>{let c=b.get(a);return"string"==typeof c?c:""};return q(c("id"),c("decision"))}(0,o.ensureServerEntryExports)([q,r]),(0,h.registerServerReference)(q,"60b2b53ae66016ebf36cb3c53452ea139603f3f060",null),(0,h.registerServerReference)(r,"60f9b5735d46836f434f89ef9dcbb6abb343cacbc1",null),a.s(["003ab1931030324d4cb2fbd394c9db5154e22aac82",()=>c.f,"006cea3d9937b620c316d1469c81fc1117d96a8bef",()=>g.f,"00a4863b2759313b43afeff3df0a62d47e66017335",()=>e.E,"00ab4542a2cda573adf3ba39329a67751a4d7b2c2a",()=>b.f,"401ff14fa6430391d5b50044d749bd30ec1f181c47",()=>f.F,"4040c40df6935ec6abb9fc2908703979ec9501cf05",()=>f.m,"40487004821d9fd78750c3cc1ac1949e8150ac442f",()=>e.G,"406da08263fcff6d3dfa6749c103f2e3991b282d4c",()=>f.G,"4089ec00f7455d966137fbcd1ad12114aa1937e9bf",()=>e.T,"40d6e085a7dbacafe30989762d10fda9030cde91c2",()=>d.B,"40e1189dc743ddc755237254db535784362d085c45",()=>d.R,"60f9b5735d46836f434f89ef9dcbb6abb343cacbc1",0,r],964005)}];
2
2
 
3
3
  //# sourceMappingURL=1oeh_server_app_%28console%29_%28private%29_auto-actions_page_actions_1kw4ce6-efkr1.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[260815,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_fs_promises_03norioyty3bq._.js"].map(b=>a.l(b))).then(()=>b(924868)))},12147,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_module_1ddxq771bq236._.js"].map(b=>a.l(b))).then(()=>b(362562)))},534777,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_util_1jlmhhygpp07l._.js"].map(b=>a.l(b))).then(()=>b(224361)))},534107,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_zlib_0o2m2z71hzc7c._.js"].map(b=>a.l(b))).then(()=>b(406461)))}];
2
2
 
3
- //# sourceMappingURL=%5Bexternals%5D__0d7rvi3tmo9zf._.js.map
3
+ //# sourceMappingURL=%5Bexternals%5D__02s9k1gg9qqkm._.js.map