watchbell 1.2.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/{_07f-svx_l12lw._.js → _09arvqnznfrzl._.js} +2 -2
  280. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  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/{_1bc69myq83woe._.js → _0f11sdi6yislb._.js} +2 -2
  291. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  292. package/server/.next/server/chunks/ssr/{_0-wc6f6p0c8lv._.js → _0gmw45sb1llld._.js} +2 -2
  293. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  294. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  295. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +4 -0
  296. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  297. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  298. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  299. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  300. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  301. package/server/.next/server/chunks/ssr/{_1476vtrt9101m._.js → _0rw2pberdmaa5._.js} +2 -2
  302. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.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/_1-4401bfn50mf._.js +4 -0
  309. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  310. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  311. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  312. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  313. package/server/.next/server/chunks/ssr/_12wjuabpo0ofk._.js +3 -0
  314. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  315. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  316. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  317. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  318. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  319. package/server/.next/server/chunks/ssr/_1dp5bgqob29-f._.js +3 -0
  320. package/server/.next/server/chunks/ssr/{_1j61tfpfj2t9d._.js → _1er-95g7emfdz._.js} +2 -2
  321. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  322. package/server/.next/server/chunks/ssr/_1fj4vzjpusyn8._.js +5 -0
  323. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  324. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  325. package/server/.next/server/chunks/ssr/{_07-dfx0qix52k._.js → _1h7x73oxtp7h5._.js} +2 -2
  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/{_0jqrjb30bblvy._.js → _1jl374mbl90fb._.js} +2 -2
  330. package/server/.next/server/chunks/ssr/{_1r7o1vx4875hu._.js → _1ktvwngz0lzjr._.js} +2 -2
  331. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  332. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  333. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  334. package/server/.next/server/chunks/ssr/_1rskctyr7yt-b._.js +3 -0
  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)_0u4_y9-b7g971._.js +3 -0
  377. package/server/.next/server/chunks/ssr/{src_app_(console)_0e832kna-734m._.js → src_app_(console)_11o_ga_rurg55._.js} +2 -2
  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_0u6eoxbd8ttqy._.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/{243ijh4fs2zsq.js → 06o7zhf9tv649.js} +1 -1
  429. package/server/.next/static/chunks/{2hscqr4n7hu7n.js → 0bkm_mj9zqjdn.js} +1 -1
  430. package/server/.next/static/chunks/0bqipdtnu2hws.js +1 -0
  431. package/server/.next/static/chunks/0d609c7qn6uke.js +1 -0
  432. package/server/.next/static/chunks/0ghhg0xs85ipn.js +1 -0
  433. package/server/.next/static/chunks/{1eeqy_pc_llv4.js → 0inb7hk8o9yz-.js} +1 -1
  434. package/server/.next/static/chunks/{2jdlcu25qy00d.js → 0lgt6mz4u8rzx.js} +1 -1
  435. package/server/.next/static/chunks/{2y05vm9r_wxds.js → 0r-etc_jv_08f.js} +1 -1
  436. package/server/.next/static/chunks/{041ko45qawas9.js → 0un8ttgrt0gtq.js} +1 -1
  437. package/server/.next/static/chunks/{0-ett1b-o34r0.js → 0v5xmga7srjvl.js} +1 -1
  438. package/server/.next/static/chunks/{3hpyrqm98toxv.js → 0zzbinjpe41vj.js} +1 -1
  439. package/server/.next/static/chunks/{3r3-9oir5c1ul.js → 12vmyliqgjlbi.js} +1 -1
  440. package/server/.next/static/chunks/{1muk1ubaswhlj.js → 131_xlsbuxnhr.js} +1 -1
  441. package/server/.next/static/chunks/{1g3u_ngexgvss.js → 146uoz7wc8q2y.js} +1 -1
  442. package/server/.next/static/chunks/{0-fov5gyz32mj.js → 1crspgs6bd_rg.js} +1 -1
  443. package/server/.next/static/chunks/{3kqiccrh_bnpl.js → 1h0025pjnwxmg.js} +2 -2
  444. package/server/.next/static/chunks/{35ua22np4u9jr.js → 1ot9e084ramy3.js} +1 -1
  445. package/server/.next/static/chunks/{4545xu4sehvxc.js → 1ouf289jk00f3.js} +1 -1
  446. package/server/.next/static/chunks/{2kurh5s5u8_4-.js → 1sds57ddvk_30.js} +1 -1
  447. package/server/.next/static/chunks/{3oe302ug_esoe.js → 1sexa68j4kb7d.js} +1 -1
  448. package/server/.next/static/chunks/1t9iq0wi3ykuc.js +1 -0
  449. package/server/.next/static/chunks/{442t8i7d46g9y.js → 1u4r7ru8i619_.js} +2 -2
  450. package/server/.next/static/chunks/{0zj507c7ui4jt.js → 1vuqw31-hmrxb.js} +1 -1
  451. package/server/.next/static/chunks/{20ujg0hz_need.js → 1xhyfwwelhzu1.js} +1 -1
  452. package/server/.next/static/chunks/{1vyf467_8v-cw.js → 1z85thzinc0kx.js} +1 -1
  453. package/server/.next/static/chunks/{11_iva96ceble.js → 25erhrojc-1fi.js} +1 -1
  454. package/server/.next/static/chunks/{0x1xj431cbkfa.js → 29sduk6krs_b1.js} +1 -1
  455. package/server/.next/static/chunks/{1z8byc-won_tq.js → 29v9jg7vw7brb.js} +1 -1
  456. package/server/.next/static/chunks/2dbx53nx6f-9f.js +7 -0
  457. package/server/.next/static/chunks/{3-xb6vd_khwfo.js → 2e195xkcjq72y.js} +1 -1
  458. package/server/.next/static/chunks/{1urtw14pwufsv.js → 2f07frmj7udob.js} +1 -1
  459. package/server/.next/static/chunks/{2t30gqjhercob.js → 2fp4pmte8dtbb.js} +1 -1
  460. package/server/.next/static/chunks/{2seth6dz7lydu.js → 2gv1tg_m49u9m.js} +1 -1
  461. package/server/.next/static/chunks/{3ymogjp57edbj.js → 2ockms4mqiec_.js} +1 -1
  462. package/server/.next/static/chunks/{1jc9qa7xb63lp.js → 2p-ty5g5uq133.js} +1 -1
  463. package/server/.next/static/chunks/{299jy1-g0cm8n.js → 2tnbp3f6x0jv_.js} +1 -1
  464. package/server/.next/static/chunks/{36e9fpbpqndu5.js → 2uu38i0lq_wlc.js} +1 -1
  465. package/server/.next/static/chunks/2uufhbm18_cri.js +1 -0
  466. package/server/.next/static/chunks/{1ghfc_9g9io17.js → 2vxmvnntekclp.js} +1 -1
  467. package/server/.next/static/chunks/{3wl06e5yyzlwh.js → 2xhqwi0hiv_70.js} +1 -1
  468. package/server/.next/static/chunks/{1qug5gmo2rbaf.js → 3-8by5unw1j-r.js} +1 -1
  469. package/server/.next/static/chunks/{1gw40u38oaj6z.js → 310xe703zu_qp.js} +1 -1
  470. package/server/.next/static/chunks/{0x6eipkda93fh.js → 33z05hmv7hw1s.js} +1 -1
  471. package/server/.next/static/chunks/{3xbsyym_tfj0u.js → 36wyyf_gobe7n.js} +1 -1
  472. package/server/.next/static/chunks/{0m40tf7-fh2ht.js → 3_5xff9sl-2e3.js} +1 -1
  473. package/server/.next/static/chunks/{3zx1pe40m_ddz.js → 3b0xtqo5kfyuj.js} +1 -1
  474. package/server/.next/static/chunks/{3cjokqd7600_0.js → 3cvrxnnojhvxz.js} +1 -1
  475. package/server/.next/static/chunks/{1e0iyxugtm7b0.js → 3fais-5rzury8.js} +2 -2
  476. package/server/.next/static/chunks/{1zhnm25vt6hu8.js → 3gj8dc0o09zl6.js} +1 -1
  477. package/server/.next/static/chunks/{422gxqrwveuyc.js → 3s3unktz7g7f0.js} +1 -1
  478. package/server/.next/static/chunks/{2j9fpx77gfesr.js → 3w26qimof6fnj.js} +1 -1
  479. package/server/.next/static/chunks/{0o6_y6xu__s6q.js → 3z70obsntezy0.js} +1 -1
  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/2ziborutqth-2.js +0 -1
  522. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → WqHYD3Noq8qkEPXvfVDGQ}/_buildManifest.js +0 -0
  523. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → WqHYD3Noq8qkEPXvfVDGQ}/_clientMiddlewareManifest.js +0 -0
  524. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → WqHYD3Noq8qkEPXvfVDGQ}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[949663,912283,876808,747556,a=>{var b=a.i(927262),c=a.i(201516),d=a.i(273133),e=a.i(120213),f=a.i(84979),g=a.i(84877),h=a.i(679662);let i=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function j(a,b){let c=i.exec(a.trim()),d=i.exec(b.trim());return!!c&&!!d&&c[1]===d[1]&&("0"!==c[1]||c[2]===d[2])&&(0,g.f)(b,a)>=0}let k=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,l=a=>k.exec(a)?.[1]??null;a.s(["M",0,a=>`Lockfile tertinggal — jalankan npm install (${a.slice(0,5).join(", ")}${a.length>5?`, +${a.length-5}`:""}).`,"a",0,function(a,b,c){if(!a.length)return{ok:!1,why:"nothing"};let d=a.filter(a=>c.includes(a.severity)&&!("moderate"===a.severity&&a.dev));if(!d.length)return{ok:!1,why:"severity"};for(let a of d){let c=b.get(a.package);if(!c||!j(c,a.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:d}},"m",0,function(a,b){if(!b)return{deps:a,stale:[]};let c=[...Object.entries(b.dependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.optionalDependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.devDependencies).map(([a,b])=>[a,b,!0])],d=[...a],e=[];for(let[a,b,f]of c){let c=(0,h.Y)(b);if(!c||!(0,h.C)(c))continue;let i=d.filter(b=>b.name===a);!i.length||i.some(a=>(0,g.f)(a.version,c)>=0)||((d=d.filter(b=>b.name!==a)).push({name:a,version:c,dev:i.every(a=>a.dev)&&f}),e.push(a))}return{deps:d,stale:e}},"D",0,function(a){let b=new Map;for(let c of a){if(!c.direct)continue;let a=b.get(c.package);(!a||0>(0,g.f)(c.installedVersion,a))&&b.set(c.package,c.installedVersion)}return b},"U",0,function(a,b,c=null){for(let d of b){if(l(d.title)!==c)continue;let b=function(a){if(a.packages?.length)return a.packages;let b=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(a.title);return b?[b[1]]:"all"}(d);if("all"===b||a.some(a=>b.includes(a)))return d}return null},"J",0,j],912283);let m=["next","eslint-config-next"],n={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function o(a,b){if(!a||!(0,h.C)(a))return null;let c=b.map(a=>a.fixed).filter(b=>!!b&&(0,h.C)(b)&&(0,g.f)(b,a)>0);if(!c.length)return null;let d=c.filter(b=>j(a,b));return(d.length?d:c).reduce((a,b)=>(0,g.f)(b,a)>0?b:a)}function p(a,b){let c=o(a,b),d=c?b.map(a=>a.fixed).filter(a=>!!a&&(0,h.C)(a)&&(0,g.f)(a,c)>0):[],e=d.reduce((a,b)=>null===a||(0,g.f)(b,a)>0?b:a,null),i=e?` (${1===d.length?"one fix needs":"some fixes need"} Next.js ${e.split(".")[0]})`:"";return`Next.js ${a??"(unknown version)"} has ${(0,f.q)(b.length)} (${(0,f.N)(b).toLowerCase()}), ${c?`fixed in ${c}${i}`:"no fix yet"}.`}a.s(["P",0,p,"p",0,function(a){if(!a||"vulnerable"!==a.status||!a.findings.length||!a.version)return null;let b=o(a.version,a.findings);if(!b)return null;let c=n[(0,f.N)(a.findings)],d=[...new Set(a.findings.map(a=>a.id))],e=[...new Set(a.findings.flatMap(a=>a.cve?[a.cve]:[]))];return{from:a.version,to:b,upgrades:[{package:"next",to:b,vulnIds:d,cves:e,severity:c},{package:"eslint-config-next",to:b,vulnIds:[],cves:[],severity:c,companionOf:"next"}],installed:new Map(m.map(b=>[b,a.version]))}},"F",0,function(a){let b=a.find(a=>"next"===a.package&&!a.companionOf);return!b||a.some(a=>"eslint-config-next"===a.package)?a:[...a,{package:"eslint-config-next",to:b.to,vulnIds:[],cves:[],severity:b.severity,companionOf:"next"}]}],876808);let q=a=>Math.round(a).toLocaleString("en-US"),r=(a,b)=>Math.floor((a.getTime()-b.getTime())/864e5),s=(a,b)=>`${a} ${b}${1===a?"":"s"}`,t=a=>{try{let b=new URL(a);return`${b.host}${b.pathname}`}catch{return a}},u=a=>{try{return new URL(a).host}catch{return a}},v=a=>{try{return new URL(a).pathname}catch{return"/"}},w="Down · ",x=(a,b,c)=>({rule:a,subject:b,status:"unknown",resourceId:null,accountId:null,title:b,message:"",provider:null,sampleAt:null,...c}),y=a=>"firestore"===a.provider?"firebase":"d1"===a.provider?"cloudflare":a.provider,z=new Set(["turso","upstash","d1"]),A={MonitorDown:(a,b)=>a.monitors.map(a=>{let d=x("MonitorDown",a.id,{resourceId:a.appId,title:`${a.appName} ${"heartbeat"===a.kind?a.url:v(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt}),e=b??3;if("heartbeat"===a.kind){let b;return{...d,status:"err"===a.state?"firing":"ok"===a.state?"ok":"unknown",message:`${a.appName} \xb7 ${a.url}: ${b=a.lastError,b?.startsWith(w)?b.slice(w.length):"no ping in time"}.`}}return a.movedTo?{...d,status:"ok",message:`${u(a.url)} moved to ${a.movedTo}; MonitorDomainMoved takes over.`}:a.failStreak>=e?{...d,status:"firing",message:(0,c.H)(a)?`${t(a.url)} failed its check (${(0,c.H)(a)}) on ${e} consecutive checks.`:`${t(a.url)} returned ${a.lastStatus?`HTTP ${a.lastStatus}`:"no answer"} on ${e} consecutive checks.`}:{...d,status:0===a.failStreak&&a.lastCheckedAt?"ok":"unknown",message:`${t(a.url)} answers again.`}}),MonitorDomainMoved:a=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let b=x("MonitorDomainMoved",a.id,{resourceId:a.appId,title:`${a.appName} ${v(a.url)}`,provider:"vercel"});return a.movedTo?{...b,status:"firing",message:`${u(a.url)} is no longer a domain of ${a.appName}; production is on ${a.movedTo}.`}:{...b,status:"ok",message:`The monitor checks ${u(a.url)}, a domain of ${a.appName}.`}}),CollectorStale:(a,b)=>{let c=a.lastMinuteRunAt;return[x("CollectorStale","collector",{status:!c||a.now.getTime()-c.getTime()>(b??5)*6e4?"firing":"ok",title:"collector",message:c?`The last minute run finished ${q((a.now.getTime()-c.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(a,b)=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let c=x("HighLatency",a.id,{resourceId:a.appId,title:`${a.appName} ${v(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt});if(a.checksLast10<5||null===a.p95Last10)return c;let d=b??1500;return{...c,status:a.p95Last10>d?"firing":"ok",message:`p95 ${q(a.p95Last10)} ms over the last 10 minutes (limit ${q(d)} ms).`}}),DeploymentFailed:a=>a.apps.map(a=>{let b=x("DeploymentFailed",a.id,{resourceId:a.id,title:a.name,provider:"vercel"}),c=a.latestProduction;return c?"error"===c.state?{...b,status:"firing",message:`Production deployment ${c.sha?c.sha.slice(0,7):"(no commit)"} failed.`}:{...b,status:"building"===c.state?"unknown":"ok"}:{...b,status:"ok"}}),DatabasePaused:a=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(a=>x("DatabasePaused",a.id,{resourceId:a.id,title:a.name,provider:"supabase",status:"unknown"===a.state?"unknown":"paused"===a.state?"firing":"ok",message:`Supabase project ${a.name} is paused.`})),CertExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=x("CertExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.tlsNotAfter)return d;let e=r(c.tlsNotAfter,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:`The TLS certificate of ${c.name} expires in ${s(e,"day")}.`}}),DomainExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=x("DomainExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.expiresAt)return d;let e=r(c.expiresAt,a.now);return{...d,status:e<(b??30)?"firing":"ok",message:`${c.name} expires in ${s(e,"day")}.`}}),StorageAlmostFull:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"!==a.provider).map(a=>{let c=x("StorageAlmostFull",a.id,{resourceId:a.id,title:a.name,provider:y(a)});if(null===a.sizeBytes||!a.sizeLimitBytes)return c;let d=a.sizeBytes/a.sizeLimitBytes*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} uses ${q(a.sizeBytes/1e6)} MB of ${q(a.sizeLimitBytes/1e6)} MB (${q(d)}%).`}}),NeonComputeHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"neon"===a.provider).map(a=>{let c=x("NeonComputeHigh",a.id,{resourceId:a.id,title:a.name,provider:"neon"});return null===a.cuHours?c:{...c,status:a.cuHours>(b??80)?"firing":"ok",message:`${a.name} used ${q(a.cuHours)} of ${q(a.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"===a.provider).map(a=>{let c=x("FirestoreQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:"firebase"});if(a.quotaExhausted)return{...c,status:"firing",message:`${a.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===a.readsToday||!a.readsLimit)return!1===a.quotaExhausted?{...c,status:"ok"}:c;let d=a.readsToday/a.readsLimit*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} read ${q(a.readsToday)} of ${q(a.readsLimit)} documents today (${q(d)}%).`}}),AutoPauseRisk:(a,b)=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(c=>{let d=x("AutoPauseRisk",c.id,{resourceId:c.id,title:c.name,provider:"supabase"});if("paused"===c.state)return{...d,status:"ok"};if(!c.lastApiAt)return d;let e=Math.floor((a.now.getTime()-c.lastApiAt.getTime())/864e5);return{...d,status:e>=(b??4)?"firing":"ok",message:`No API traffic for ${s(e,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:a=>a.dns&&a.dns.map(a=>x("DnsProxiedToVercel",a.id,{resourceId:a.resourceId,title:a.name,provider:"cloudflare",status:a.proxied&&a.pointsToVercel?"firing":"ok",message:`${a.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>z.has(a.provider)).map(a=>{let c=x("DbQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:y(a)});return null==a.quotaPct?c:{...c,status:a.quotaPct>(b??80)?"firing":"ok",message:`${a.name}: ${a.quotaLabel??"usage"} at ${q(a.quotaPct)}% of the free plan.`}}),ComputeHigh:(a,b)=>a.compute?a.compute.map(c=>{let e=x("ComputeHigh",c.id,{resourceId:c.id,title:c.name,provider:"supabase",sampleAt:c.latest?new Date(c.latest.at):null}),f=(0,d.B)(c.latest,(0,d.V)(b),a.now);return null===f?e:{...e,status:f.length?"firing":"ok",message:f.length?`${c.name}: ${f.join(", ")}.`:`${c.name} compute is back under the limits.`}}):null,CredentialExpiring:(a,b)=>a.accounts.map(c=>{let d=x("CredentialExpiring",c.id,{accountId:c.id,title:`${c.provider} \xb7 ${c.label}`,provider:c.provider});if("drive"===c.provider&&"error"===c.status&&c.lastError?.includes("invalid_grant"))return{...d,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!c.expiresAt)return{...d,status:"ok"};let e=r(c.expiresAt,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:e<0?`The ${c.provider} credential ${c.label} has expired.`:`The ${c.provider} credential ${c.label} expires in ${s(e,"day")}.`}}),VulnerableDependency:a=>a.deps?a.deps.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=x("VulnerableDependency",b.appId,{resourceId:b.appId,title:c.name,provider:"github"});if(b.error)return[d];let f=(0,e.g)(b.vulns);return f?[{...d,status:"firing",message:(0,e.L)(b.vulns),..."critical"===f?{severity:"critical"}:{}}]:[{...d,status:"ok",message:`${c.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:a=>a.frameworks?a.frameworks.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=x("FrameworkVulnerable",b.appId,{resourceId:b.appId,title:c.name});return"ok"===b.status?[{...d,status:"ok",message:`${c.name} runs Next.js ${b.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===b.status&&b.findings.length?[{...d,status:"firing",message:p(b.version,b.findings),..."CRITICAL"===(0,f.N)(b.findings)?{severity:"critical"}:{}}]:[d]}):null};a.s(["f",0,function(a,c,d){let e=[],f=new Set;for(let g of c){if(!g.enabled||d&&!d.includes(g.key)||!b._[g.key])continue;let c=A[g.key](a,g.threshold);c&&(f.add(g.key),e.push(...c))}return{observations:e,evaluated:f}}],949663);let B=["MonitorDown","HighLatency"],C=["telegram","discord","webhook","smtp"],D=a=>a.channels.some(a=>C.includes(a));function E(a,b){return b.collectorStale&&"CollectorStale"!==a.rule?"CollectorStale":a.resourceId&&B.includes(a.rule)?b.mutedApps.get(a.resourceId)??null:null}let F=(a,b)=>"critical"===b&&"warning"===a?"critical":a,G=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),H=(a,b)=>`${a}|${b}`;a.s(["f",0,function(a,c,d,e,f){let g={open:[],touch:[],resolve:[]},h=new Map(e.map(a=>[a.key,a])),i=new Map(c.map(a=>[H(a.rule,a.subject),a])),j=new Set(a.map(a=>H(a.ruleKey,a.subject))),k=a=>g.resolve.push({id:a.id,pending:a.notifiedOpen?"resolve":null});for(let c of a){let a=h.get(c.ruleKey),e=i.get(H(c.ruleKey,c.subject));if(!a||!a.enabled){g.resolve.push({id:c.id,pending:null});continue}if(!d.has(c.ruleKey))continue;if(!e){g.resolve.push({id:c.id,pending:null});continue}if("unknown"===e.status)continue;let j=e.provider?f.incidents.get(e.provider)??null:null;if("firing"===e.status){let b=E(e,f),d=c.notifiedOpen&&null!==c.lastNotifiedAt&&f.now.getTime()-c.lastNotifiedAt.getTime()>=216e5,h={id:c.id,okStreak:0,lastSampleAt:e.sampleAt??c.lastSampleAt,lastSeenAt:f.now,message:e.message,causedBy:b,providerIncident:j},i=!c.notifiedOpen&&(!c.pendingSince||f.now.getTime()-c.pendingSince.getTime()>=216e5);(d||i)&&!G(c,f.now)&&!b&&null===c.pending&&D(a)&&(h.pending=d?"repeat":"open"),g.touch.push(h);continue}if(!b._[c.ruleKey].sampled||null===e.sampleAt){k(c);continue}if(!(null===c.lastSampleAt||e.sampleAt.getTime()>c.lastSampleAt.getTime()))continue;let l=c.okStreak+1;l>=2?k(c):g.touch.push({id:c.id,okStreak:l,lastSampleAt:e.sampleAt})}for(let a of c){if("firing"!==a.status||j.has(H(a.rule,a.subject))||f.maintenance.has(a.subject)||a.resourceId&&f.maintenance.has(a.resourceId))continue;let b=h.get(a.rule);if(!b)continue;let c=E(a,f);g.open.push({ruleKey:a.rule,subject:a.subject,resourceId:a.resourceId,accountId:a.accountId,severity:F(b.severity,a.severity),title:a.title,message:a.message,startedAt:f.now,lastSeenAt:f.now,lastSampleAt:a.sampleAt,causedBy:c,providerIncident:a.provider?f.incidents.get(a.provider)??null:null,pending:c||!D(b)?null:"open"})}return g}],747556)},708621,a=>{let b=["status","severity","rule","target","detail","cause","step","since","threshold"],c=["id","en"],d={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}"},e=/\{([a-zA-Z_]+)\}/g,f=a=>a.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function g(a){if(a.length>1e3)return`Keep it under ${1e3.toLocaleString("en-US")} characters.`;for(let[,c]of a.matchAll(e))if(!b.includes(c))return`{${c}} isn't a field. Use ${b.map(a=>`{${a}}`).join(", ")}.`;return null}a.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,c,"_",0,function(a){if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let[d,e]of Object.entries(a)){if(!e||"object"!=typeof e)continue;let a={};for(let b of c){let c=e[b];"string"==typeof c&&c.trim()&&null===g(c)&&(a[b]=c)}Object.keys(a).length&&(b[d]=a)}return b},"l",0,function(a,b){return f(a).split("\n").flatMap(a=>{let c=[...a.matchAll(e)].map(a=>a[1]).filter(a=>Object.hasOwn(b,a));return c.length&&c.every(a=>!b[a].trim())?[]:[a.replace(e,(a,c)=>Object.hasOwn(b,c)?b[c]:a)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim()},"F",0,function(a,b){let c="string"==typeof a?f(a):"";return c&&c!==d[b]?c:null},"m",0,g])},455317,71575,569057,930270,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(927262),h=a.i(949663),i=a.i(747556),j=a.i(708621),k=a.i(519051),l=a.i(160147),m=a.i(245710);function n(a,b){return"1h"===a?{silencedUntil:new Date(b.getTime()+36e5),silencedUntilResolved:!1}:{silencedUntil:null,silencedUntilResolved:!0}}a.s(["_",0,[["critical","Critical"],["warning","Warning"],["info","Info"]],"O",0,function(a,b){return a.silencedUntilResolved?{state:"off",text:"Silenced until resolved"}:a.silencedUntil&&a.silencedUntil.getTime()>b.getTime()?{state:"off",text:`Silenced until ${(0,m.U)(a.silencedUntil)}`}:"open"===a.pending||"repeat"===a.pending?{state:"build",text:"Sending…"}:a.causedBy&&!a.notifiedOpen?{state:"off",text:"Muted"}:a.lastNotifiedAt?{state:"ok",text:`Sent ${(0,m.U)(a.lastNotifiedAt)}`}:{state:"off",text:"Digest only"}},"G",0,function(a){return a.enabled?a.firing?{state:"err",text:`Firing \xb7 ${a.firing}`}:a.hasData?{state:"off",text:"Inactive"}:{state:"unknown",text:"No data yet"}:{state:"off",text:"Disabled"}},"A",0,n,"M",0,function(a,b){let c=Math.max(1,Math.round((b.getTime()-a.getTime())/6e4));if(c<60)return`${c} min`;let d=Math.floor(c/60);return d<24?`${d} h ${c%60} min`:`${Math.floor(d/24)} d ${d%24} h`}],71575);var o=a.i(639271),p=a.i(656298),q=a.i(688275),r=a.i(893893),s=a.i(672319),t=a.i(188546),u=a.i(233711),v=a.i(460565);async function w(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}async function x(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}async function y(){let[a]=await (0,e.f)().select({threshold:f.alertRules.threshold}).from(f.alertRules).where((0,b.u)(f.alertRules.key,"CollectorStale")).limit(1);return(0,v.X)(a?.threshold)}a.s(["o",0,y,"D",0,w,"d",0,x],569057);var z=a.i(367247),A=a.i(436357),B=a.i(912283),C=a.i(358179),D=a.i(492665),E=a.i(683439),F=a.i(679662),G=a.i(852539),H=a.i(33135),I=a.i(533957);let J="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function K(a,b,c,d){let e=d.deadline-Date.now();if(e<500)return{ok:!1,error:"No time left for OSV.dev"};let f=AbortSignal.timeout(e);return M(a,{method:"POST",headers:{"content-type":"application/json","user-agent":J},body:JSON.stringify(b),signal:f},c,f,d)}async function L(a,b,c){let d=c.deadline-Date.now();if(d<500)return{ok:!1,error:"No time left for OSV.dev"};let e=AbortSignal.timeout(Math.min(d,8e3));return M(a,{method:"GET",headers:{"user-agent":J},signal:e},b,e,c)}async function M(a,b,c,d,e){let f;try{f=await (e.fetch??fetch)(a,{...b,redirect:"error",cache:"no-store"})}catch(a){return{ok:!1,error:(0,I.t)(a)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!f.ok)return await f.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${f.status}`};try{let{bytes:a,truncated:b}=await (0,H.z)(f,c,(0,H.X)(d));if(b)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(a))}}catch(a){return{ok:!1,error:(0,I.t)(a)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function N(a,b){let c=[];for(let d of(0,G.f)(a)){let a=await K(G.n,d,4194304,b);if(!a.ok)return a;let e=(0,G.j)(a.body,d.queries.length);if(!e)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};c.push(...e)}return{ok:!0,ids:c}}async function O(a,b){let c=[...new Set(a)].filter(G.G);if(c.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${c.length})`};let d=new Map,e=null;for(let a=0;a<c.length&&!e;a+=8)await Promise.all(c.slice(a,a+8).map(async a=>{let c=await L(`${G.W}${encodeURIComponent(a)}`,1048576,b),f=c.ok?(0,G.O)(c.body):null;f?d.set(a,f):e??=c.ok?"OSV.dev sent an advisory we couldn't read":c.error}));return e?{ok:!1,error:e}:{ok:!0,map:d}}var P=a.i(521050),Q=a.i(120213),R=a.i(689963),S=a.i(26972),T=a.i(427221),U=a.i(811365),V=a.i(760417);let W=R.z.array(S.z.object({name:T.z.string(),type:T.z.string(),sha:T.z.string(),size:U.z.number().optional()}));async function X(a,b,c,d={},e=null){if(!(0,V.M)(b)||!(0,V.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==e&&(0,P.Q)(e)!==e)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let f=e?e.split("/").map(encodeURIComponent).join("/"):"",g=await (0,V.j)(`/repos/${(0,V.f)(b)}/contents/${f}?ref=${encodeURIComponent(c)}`,a,d);if(!g.ok)return g;let h=W.safeParse(g.data);return h.success?{ok:!0,data:h.data.filter(a=>"file"===a.type&&/^[0-9a-f]{40}$/.test(a.sha)).map(a=>({name:a.name,sha:a.sha,size:a.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function Y(a,b,c,d={}){if(!(0,V.M)(b)||!(0,V.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let e=await (0,V.j)(`/repos/${(0,V.f)(b)}/git/ref/heads/${c.split("/").map(encodeURIComponent).join("/")}`,a,d);return e.ok?{ok:!0,data:!0}:"missing"===e.kind?{ok:!0,data:!1}:e}function Z(a,b,c,d,e,f={}){return(0,V.V)(a,b,c,d,e,f)}async function $(a,b,c={}){if(!(0,V.M)(b))return{ok:!1,kind:"format",error:"That isn't a repository name."};let d=await (0,V.j)(`/repos/${(0,V.f)(b)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,a,c);if(!d.ok)return"scope"===d.kind||"missing"===d.kind?{ok:!0,data:{denied:!0}}:d;let e=(0,Q.E)(d.data);return e?{ok:!0,data:{alerts:e}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var _=a.i(751263);async function aa(){let[a]=await (0,e.f)().select().from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).orderBy((0,c.M)(f.accounts.createdAt)).limit(1);if(!a)return{error:"GitHub isn't connected."};let d=(0,C.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,D.f)().OPS_ENCRYPTION_KEY);return d?{token:d,accountId:a.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function ab(){let[a]=await (0,e.f)().select({value:f.settings.value}).from(f.settings).where((0,b.u)(f.settings.key,"deps.scanAll")).limit(1);return a?.value===!0}let ac=a=>{let b=(0,_.w)(a);return{dir:(0,P.Q)((a??{}).rootDirectory),unsupported:(0,P.l)((a??{}).rootDirectoryUnsupported),branch:(0,_.i)((0,_.V)(a),null),...b?{fallback:b}:{}}};async function ad(a){let c=[...new Set(a.filter(E.f))],d=new Map;if(!c.length)return d;let g=await (0,e.f)().select({repoId:f.appRepos.repoId,name:f.resources.name,monitored:f.resources.monitored,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.b)((0,b.y)(f.appRepos.repoId,c),(0,b.M)(f.resources.goneAt))).limit(1e3);for(let a of(g.sort((a,b)=>Number(!!b.monitored)-Number(!!a.monitored)||(a.name<b.name?-1:+(a.name>b.name))),g))d.has(a.repoId)||d.set(a.repoId,ac(a.meta));return d}async function ae(){let a={id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,scannedAt:f.dependencyScans.scannedAt},c=(0,b.b)((0,b.M)(f.githubRepos.goneAt),(0,b.u)(f.githubRepos.archived,!1)),d=await ab()?await (0,e.f)().select(a).from(f.githubRepos).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500):await (0,e.f)().selectDistinct(a).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500),g=d.length?await ad(d.map(a=>a.id)):new Map;return(0,Q.M)(d.map(a=>{let b=g.get(a.id);return{...a,rootDir:b?.dir??null,rootDirUnsupported:b?.unsupported??null,prodBranch:b?.branch??null,...b?.fallback?{prodFallback:b.fallback}:{}}}))}let af=(a,b)=>a.length>b?`${a.slice(0,b-1)}…`:a;async function ag(a,b){let c=new Date;await (0,e.f)().insert(f.dependencyScans).values({repoId:a,...b,updatedAt:c}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{...b,updatedAt:c}})}async function ah(a){return(0,e.f)().select({id:f.dependencyVulns.id,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,source:f.dependencyVulns.source}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,a),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3)}function ai(a,b){for(let c of F.a){let d=a.find(a=>a.name===c.path);if(d)return{path:(0,P.H)(b,c.path),kind:c.kind,sha:d.sha}}return null}async function aj(a,c,d,g={}){let h=()=>({...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),1e4))}),i=async a=>(await ag(c.id,{error:af(a,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:a}),j=c.defaultBranch??"HEAD",k=null;for(let b of[c.prodBranch,c.prodFallback]){if(b&&b===c.defaultBranch)break;let d=(0,_.i)(b,c.defaultBranch);if(!d)continue;let e=await Y(a,c.fullName,d,h());if(!e.ok)return i(e.error);if(e.data){k=d;break}}let l=null!==k;k&&(j=k);let m=l?`Scanned ${k}, the branch production is built from.`:null,n=(0,P.Q)(c.rootDir),o=n?null:(0,P.l)(c.rootDirUnsupported),p=o?`The Vercel Root Directory "${o}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,q=await X(a,c.fullName,j,h(),n);if(!q.ok)return i(n&&"missing"===q.kind?`The folder ${(0,P.x)(n)} isn't in ${c.fullName} on ${j}.`:q.error);let r=ai(q.data,n),s=q.data.find(a=>"package.json"===a.name)??null,t=!1,u=null;if(n&&s&&!r){let b=await X(a,c.fullName,j,h());if(!b.ok)return i(b.error);t=null!==(r=ai(u=b.data,null))}let v=r?r.sha:s?`pkg:${s.sha}`:null,w=v&&n?`${n}:${v}${t&&s?`+${s.sha}`:""}`:v&&o?`odd:${v}`:v,x=w&&l?`br:${k}:${w}`:w,[y]=await (0,e.f)().select().from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,c.id)).limit(1),z=new Date;if(!(0,Q.U)(y??null,x,z,g.force))return{status:"unchanged"};if(!x){let a=await ah(c.id);return a.length&&await (0,e.f)().update(f.dependencyVulns).set({resolvedAt:z}).where((0,b.y)(f.dependencyVulns.id,a.map(a=>a.id))),await ag(c.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:z,queriedAt:z,error:null,note:af([m,p,`No package.json or lockfile ${n?"in":"at"} ${(0,P.x)(n)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let A=(0,P.H)(n,"package.json"),C=s?await Z(a,c.fullName,A,j,V.$,h()):null;if(C&&!C.ok)return i(C.error);let D=C?.ok&&C.data?(0,F.b)(C.data):null,E=null,H="package-json",I=t&&r?`Scanned ${(0,P.x)(n)} with the repository root's ${r.path} (workspaces).`:null;if(r){if(2e3>d-Date.now())return i("Time budget used before the lockfile was read; the next run tries again.");let b=await Z(a,c.fullName,r.path,j,0xf00000,{...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),2e4))});if(!b.ok)return i(b.error);let e=!0;if(t&&n&&b.data&&!(0,P.p)(r.kind,b.data,n)){let b=u?.some(a=>"package.json"===a.name)?await Z(a,c.fullName,"package.json",j,V.$,h()):null;if(b&&!b.ok)return i(b.error);e=(0,P.F)(b?.data??null,n)}e?(E=b.data?(0,F.D)(r.kind,b.data):null,H=r.kind,E||(I=[I,`${r.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(I=`The repository root's ${r.path} isn't a workspace that includes ${n}, so the versions come from ${A} ranges (approximate).`,r=null)}if(E){let a=(0,B.m)(E,D);E=a.deps,a.stale.length&&(I=[I,(0,B.M)(a.stale)].filter(Boolean).join(" "))}else E=D?(0,F.e)(D):[],H="package-json",I??=r?null:"No lockfile: the versions come from package.json ranges (approximate).";let J=await ah(c.id),K=[];if(E.length){let a=await N(E,{fetch:g.fetch,deadline:d});if(!a.ok)return i(a.error);let b=(0,Q.A)(J,!0===g.force),c=await O((0,Q.z)(E,a.ids,b),{fetch:g.fetch,deadline:d});if(!c.ok)return i(c.error);K=(0,G.i)(E,a.ids,c.map,b)}if(d-Date.now()>1500){let b=await $(a,c.fullName,h());b.ok&&"alerts"in b.data?K=(0,Q.R)(K,b.data.alerts,E):b.ok&&(I=[I,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let L=(0,Q.h)(J,K,(0,F.K)(D));I=[m,p,I].filter(Boolean).join(" ")||null;let M=new Date;return await (0,e.f)().transaction(async a=>{for(let d of(L.insert.length&&await a.insert(f.dependencyVulns).values(L.insert.map(a=>({repoId:c.id,package:a.package,installedVersion:a.installedVersion,vulnId:a.vulnId,aliases:a.aliases,severity:a.severity,fixedVersion:a.fixedVersion,summary:a.summary,direct:a.direct,dev:a.dev,source:a.source,firstSeenAt:M,lastSeenAt:M}))).onConflictDoNothing(),L.update))await a.update(f.dependencyVulns).set({severity:d.severity,fixedVersion:d.fixedVersion,summary:d.summary,aliases:d.aliases,dev:d.dev,direct:d.direct,lastSeenAt:M}).where((0,b.u)(f.dependencyVulns.id,d.id));L.resolve.length&&await a.update(f.dependencyVulns).set({resolvedAt:M}).where((0,b.b)((0,b.y)(f.dependencyVulns.id,L.resolve),(0,b.M)(f.dependencyVulns.resolvedAt))),await a.insert(f.dependencyScans).values({repoId:c.id,lockfilePath:r?.path??(s?A:null),lockfileSha:x,packageCount:E.length,scannedAt:M,queriedAt:M,error:null,note:I?af(I,300):null,updatedAt:M}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{lockfilePath:r?.path??(s?A:null),lockfileSha:x,packageCount:E.length,scannedAt:M,queriedAt:M,error:null,note:I?af(I,300):null,updatedAt:M}})}),{status:"scanned",vulns:L.insert.length+L.update.length,packages:E.length,note:"package-json"===H?I:null}}async function ak(a,c={}){var d,g;let h,i,j,k,l=await aa();if("error"in l)return{error:l.error};let{first:m,only:n,skip:o,...p}=c,q=(d=await ae(),h=(g={first:m,only:n,skip:o}).only?new Set(g.only):null,i=new Set(g.skip??[]),j=(h?d.filter(a=>h.has(a.id)):d).filter(a=>!i.has(a.id)),k=new Set(g.first??[]),[...j.filter(a=>k.has(a.id)),...j.filter(a=>!k.has(a.id))]),r={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:q.map(a=>a.id)};for(let[b,c]of q.entries()){if(a-Date.now()<4e3){r.left=q.length-b;break}r.done.push(c.id);try{let b=await aj(l.token,c,a,p);"scanned"===b.status?r.scanned++:"unchanged"===b.status?r.unchanged++:r.failed.push(`${c.fullName}: ${b.error}`)}catch(a){r.failed.push(`${c.fullName}: ${a instanceof Error?a.name:"error"}`)}}return await (0,e.f)().delete(f.dependencyVulns).where((0,b.b)((0,b.E)(f.dependencyVulns.resolvedAt),(0,b.S)(f.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),r}let al=async()=>(await (0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).limit(1)).length>0;async function am(a,c,d={}){let g,h,i,{marked:j,onlyMarked:k}=c;if(!await al())return{problem:null,settled:[...j],done:[],complete:!0};let l=j.filter(E.f),m=l.length?await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,l)).limit(5*l.length):[],n=[...new Set(m.map(a=>a.repoId))],o=a=>m.filter(b=>b.appId===a).map(a=>a.repoId),p=j.filter(a=>!o(a).length);if(k&&!n.length)return{problem:null,settled:[...j],done:[],complete:!0};if(a-Date.now()<4e3)return{problem:null,settled:p,done:[],complete:!1};let q=(c.skip??[]).filter(a=>!n.includes(a)),r=await ak(a,{...d,first:n,...k?{only:n}:{skip:q}});if("error"in r){let a;return{problem:(a=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(a))?null:r.error,settled:[...j],done:[],complete:!0}}let s=new Set([...r.done,...n.filter(a=>!r.listed.includes(a))]);return{problem:(g=r.failed.filter(a=>!/didn't answer in time|no time left|time budget|rate limit/i.test(a)),(h=r.failed.length-g.length+(r.left??0))&&console.info(`deps: ${h} repositor${1===h?"y":"ies"} wait for the next run`),i=g.slice(0,3),g.length>3&&i.push(`+${g.length-3} more`),i.length?i.join("; "):null),settled:j.filter(a=>o(a).every(a=>s.has(a))),done:r.done,complete:0===r.left}}async function an(a){let d={repo:null,scan:null,vulns:[],writeConnected:!1};if(!(0,E.f)(a))return d;let[g]=await (0,e.f)().select({id:f.githubRepos.id,fullName:f.githubRepos.fullName}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return d;let[[h],i,[j]]=await Promise.all([(0,e.f)().select({scannedAt:f.dependencyScans.scannedAt,lockfilePath:f.dependencyScans.lockfilePath,packageCount:f.dependencyScans.packageCount,error:f.dependencyScans.error,note:f.dependencyScans.note}).from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,g.id)).limit(1),(0,e.f)().select({package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,firstSeenAt:f.dependencyVulns.firstSeenAt}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3),(0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github_write")).limit(1)]);i.sort((a,b)=>(0,Q.t)(a.severity)-(0,Q.t)(b.severity)||(a.package<b.package?-1:+(a.package>b.package))||(a.vulnId<b.vulnId?-1:1));let k=await (0,e.f)().select({number:f.dependencyPrs.number,stage:f.dependencyPrs.stage,stageText:f.dependencyPrs.stageText,openedAt:f.dependencyPrs.openedAt}).from(f.dependencyPrs).where((0,b.b)((0,b.u)(f.dependencyPrs.repoId,g.id),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)))).orderBy((0,c.A)(f.dependencyPrs.openedAt)).limit(5).catch(()=>[]);return{repo:g,scan:h??null,vulns:i,writeConnected:!!j,prs:(k??[]).map(a=>({...a,fullName:g.fullName}))}}async function ao(a,c={}){if(!(0,E.f)(a))return{ok:!1,error:"That app no longer exists."};let[g]=await (0,e.f)().select({app:f.resources.name,id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,goneAt:f.githubRepos.goneAt,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return{ok:!1,error:"Link a repository first."};if(g.goneAt)return{ok:!1,error:"That repository is no longer shared with the GitHub token."};let h=await aa();if("error"in h)return{ok:!1,error:h.error};let i=ac(g.meta),j=await aj(h.token,{id:g.id,fullName:g.fullName,defaultBranch:g.defaultBranch,scannedAt:null,rootDir:i.dir,rootDirUnsupported:i.unsupported,prodBranch:i.branch,prodFallback:i.fallback??null},Date.now()+4e4,{...c,force:!0});if("failed"===j.status)return{ok:!1,error:`The scan failed: ${j.error}`};let[k]=await (0,e.f)().select({n:d.B`count(*)::int`}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))),l=k?.n??0;return{ok:!0,app:g.app,repo:g.fullName,vulns:l,message:l?`${l} known vulnerabilit${1===l?"y":"ies"} in ${j.packages??0} packages.`:`No known vulnerabilities in ${j.packages??0} packages.`}}async function ap(a){let c=a.filter(E.f);if(!c.length)return[];let d=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId,error:f.dependencyScans.error}).from(f.appRepos).innerJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.appRepos.repoId)).where((0,b.b)((0,b.y)(f.appRepos.appId,c),(0,b.E)(f.dependencyScans.scannedAt)));if(!d.length)return[];let g=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,severity:f.dependencyVulns.severity,summary:f.dependencyVulns.summary,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(d.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(1e4);return d.map(a=>({appId:a.appId,repoId:a.repoId,error:a.error,vulns:g.filter(b=>b.repoId===a.repoId).map(a=>({package:a.package,installedVersion:a.installedVersion,fixedVersion:a.fixedVersion,severity:a.severity,summary:a.summary,dev:a.dev,direct:a.direct}))}))}async function aq(a,c=new Set){let g=a.filter(E.f),h=new Map;if(!g.length)return h;let i=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,g));if(!i.length)return h;let j=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,vulnId:f.dependencyVulns.vulnId,aliases:f.dependencyVulns.aliases,severity:f.dependencyVulns.severity,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(i.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt),(0,b.u)(f.dependencyVulns.direct,!0),(0,b.E)(f.dependencyVulns.fixedVersion))).limit(2e3),k=j.some(a=>"next"===a.package)?new Set((await (0,e.f)().selectDistinct({appId:f.dependencyPrs.appId}).from(f.dependencyPrs).where((0,b.b)((0,b.y)(f.dependencyPrs.appId,g),(0,b.$)(f.dependencyPrs.stage,["merged","closed"]),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),d.B`${f.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(g.length)).map(a=>a.appId)):new Set;for(let a of i){let b=c.has(a.appId)||k.has(a.appId);(0,Q.B)(j.filter(c=>c.repoId===a.repoId&&!(b&&"next"===c.package))).length&&h.set(a.appId,a.repoId)}return h}a.s(["o",0,12e3,"d",0,4e3,"j",0,an,"O",0,am,"C",0,aq,"a",0,ap,"h",0,ao],930270);var ar=a.i(242605);async function as(){return(0,e.f)().select({appId:f.links.fromResourceId,dbId:f.links.toResourceId}).from(f.links).where((0,b.u)(f.links.kind,"uses_db")).limit(500)}async function at(a){let g=(0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)),[h,i,j,k,l]=await Promise.all([x(),w(),(0,e.f)().select({m:f.monitors,appName:f.resources.name,appMeta:f.resources.meta}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)(g,(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1))),(0,e.f)().select({id:f.resources.id,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)(g,(0,b.u)(f.resources.kind,"app"))),(0,e.f)().select({id:f.accounts.id,provider:f.accounts.provider,label:f.accounts.label,expiresAt:f.accounts.expiresAt,status:f.accounts.status,lastError:f.accounts.lastError}).from(f.accounts)]),m=j.map(a=>a.m.id),n=m.length?await (0,e.f)().select({id:f.checks.monitorId,n:d.B`count(*)::int`,p95:d.B`percentile_cont(0.95) within group (order by ${f.checks.latencyMs})::float8`}).from(f.checks).where((0,b.b)((0,b.y)(f.checks.monitorId,m),(0,b.B)(f.checks.at,new Date(a.getTime()-6e5)),(0,b.u)(f.checks.inMaintenance,!1))).groupBy(f.checks.monitorId):[],v=k.map(a=>a.id),y=v.length?await (0,e.f)().selectDistinctOn([f.deployments.resourceId],{appId:f.deployments.resourceId,state:f.deployments.state,sha:f.deployments.commitSha,createdAt:f.deployments.createdAtProvider}).from(f.deployments).where((0,b.b)((0,b.y)(f.deployments.resourceId,v),(0,b.u)(f.deployments.target,"production"))).orderBy(f.deployments.resourceId,(0,c.A)(f.deployments.createdAtProvider)):[],B=await (0,e.f)().select({id:f.resources.id,name:f.resources.name,kind:f.resources.kind,state:f.snapshots.state,data:f.snapshots.data}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)(g,(0,b.y)(f.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),C=a=>B.filter(b=>b.kind===a),D=B.filter(a=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(a.kind)),E=C("zone"),F=C("domain"),G=await as(),H=await (0,z.Y)().catch(()=>null),I=v.length?await ap(v).catch(()=>null):null,J=v.length?await (0,ar.F)(v).catch(()=>null):null;return{now:a,lastMinuteRunAt:h,lastAnyRunAt:i,monitors:j.map(({m:a,appName:b,appMeta:c})=>{let d=n.find(b=>b.id===a.id),e="heartbeat"===a.kind;return{id:a.id,appId:a.resourceId,appName:b,url:e?a.name??"heartbeat":a.url,kind:e?"heartbeat":"http",state:a.state,failStreak:a.failStreak,lastStatus:a.lastStatus,lastError:a.lastError,lastCheckedAt:a.lastCheckedAt,p95Last10:d?.p95??null,checksLast10:d?.n??0,movedTo:e?null:(0,A.u)(a.url,{name:b,meta:c},k.filter(b=>b.id!==a.resourceId),{lastError:a.lastError})?.to??null}}),apps:k.map(a=>{let b=y.find(b=>b.appId===a.id);return{id:a.id,name:a.name,latestProduction:b?{state:b.state,sha:b.sha,createdAt:b.createdAt}:null}}),accounts:l,dbs:D.length?D.map(b=>(function(a,b){let c={id:a.id,name:a.name,state:a.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===a.kind){let b=(0,r.k)(r.B,a.data),d=(0,u.Z)(b.lastTrafficAt),e=(0,u.Z)(b.trafficAt),f=d??(e&&!b.trafficError?new Date(e.getTime()-6048e5):null);return{...c,provider:"supabase",sizeBytes:b.sizeBytes??null,sizeLimitBytes:s.R,lastApiAt:f}}if("neon_project"===a.kind){let b=(0,r.k)(r.s,a.data),d=(b.branches??[]).map(a=>a.logicalSize).filter(a=>"number"==typeof a);return{...c,provider:"neon",cuHours:null==b.computeSeconds?null:b.computeSeconds/3600,cuLimit:q.a.cuHours,sizeBytes:d.length?d.reduce((a,b)=>a+b,0):null,sizeLimitBytes:q.a.storageBytes}}if("firestore"===a.kind){let d=(0,r.k)(r.w,a.data),e=(0,u.Z)(d.opsAt),f=null!=d.reads&&e&&e.getTime()>=(0,p.a)(b).getTime()?d.reads:null,g=null!=d.latencyMs||null!=d.pingError;return{...c,provider:"firestore",readsToday:f,readsLimit:p.T.reads,quotaExhausted:g?"RESOURCE_EXHAUSTED"===d.pingReason:null}}if("turso_database"===a.kind){let d=(0,r.k)(r.N,a.data),e=(0,o.u)((0,o.G)(d,b));return{...c,provider:"turso",sizeBytes:d.orgStorageBytes??null,sizeLimitBytes:o.g.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("upstash_redis"===a.kind){let d=(0,r.k)(r.e,a.data),e=(0,o.u)((0,o.$)(d,b));return{...c,provider:"upstash",sizeBytes:d.storageBytes??null,sizeLimitBytes:o.W.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("d1_database"===a.kind){let d=(0,r.k)(r.x,a.data),e=(0,o.u)((0,o.I)(d,b));return{...c,provider:"d1",sizeBytes:d.sizeBytes??null,sizeLimitBytes:o.M.dbBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}return null})(b,a)).filter(a=>null!==a):null,domains:E.length||F.length?[...E.map(a=>({id:a.id,name:a.name,tlsNotAfter:null,expiresAt:(0,u.Z)((0,t.q)(a.data).rdap?.expiresAt)})),...F.map(a=>({id:a.id,name:a.name,tlsNotAfter:(0,u.Z)((0,t.q)(a.data).tls?.notAfter),expiresAt:null}))]:null,dns:function(a,b){let c=a.filter(a=>Array.isArray(a.data.records));if(!c.length)return null;let d=a.map(a=>a.name),e=[];for(let a of c){let c=b.filter(b=>(0,u.J)(b.name,d)===a.name.toLowerCase().replace(/\.$/,"")),f=[...new Set(c.flatMap(a=>(0,t.q)(a.data).vercel?.recommendedIps??[]))];for(let b of(0,t.q)(a.data).records){if(!(0,u.l)(b,f))continue;let d=b.name.toLowerCase().replace(/\.$/,""),g=c.find(a=>a.name.toLowerCase().replace(/\.$/,"")===d);e.push({id:`${a.id}:${b.id}`,resourceId:g?.id??a.id,name:b.name,proxied:b.proxied,pointsToVercel:!0})}}return e}(E,F),links:G,compute:H,deps:I&&I.length?I:null,frameworks:J&&J.length?J:null}}var au=a.i(714530),av=a.i(396667);let aw={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function ax(){return(await (0,e.f)().select().from(f.alertRules)).filter(a=>(0,g.h)(a.key)).map(a=>({key:a.key,severity:a.severity,threshold:a.threshold,enabled:a.enabled,channels:a.channels}))}async function ay(a,c={}){let[d,j,m,n,o,p]=await Promise.all([at(a),ax(),(0,e.f)().select().from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)),(0,e.f)().select({provider:f.providerStatus.provider,state:f.providerStatus.state}).from(f.providerStatus),(0,au.w)(),(0,av.I)()]),q=new Map(d.accounts.map(a=>[a.id,a.provider])),r=m.filter(a=>!(0,l.O)(p,a.ruleKey,a.accountId?q.get(a.accountId):null)),s=(0,h.f)(d,j,c.only),t=s.evaluated,u=s.observations.filter(a=>!(0,l.O)(p,a.rule,a.provider)),v=j.find(a=>"CollectorStale"===a.key),w=void 0===d.lastAnyRunAt?d.lastMinuteRunAt:d.lastAnyRunAt,x=!!v?.enabled&&(!w||a.getTime()-w.getTime()>(v.threshold??5)*6e4),y=new Map((d.dbs??[]).filter(a=>"paused"===a.state).map(a=>[a.id,a.name])),z=new Map(d.links.filter(a=>y.has(a.dbId)).map(a=>[a.appId,`DatabasePaused \xb7 ${y.get(a.dbId)}`])),A=new Map(n.filter(a=>"warn"===a.state||"err"===a.state).map(a=>["gcp"===a.provider?"firebase":a.provider,aw[a.provider]??a.provider])),B=(0,k.u)(o,d.monitors.map(a=>({id:a.id,appId:a.appId})),a,d.apps.map(a=>a.id)),C=r.filter(a=>(0,g.h)(a.ruleKey)).map(a=>({id:a.id,ruleKey:a.ruleKey,subject:a.subject,okStreak:a.okStreak,lastSampleAt:a.lastSampleAt,silencedUntil:a.silencedUntil,silencedUntilResolved:a.silencedUntilResolved,notifiedOpen:a.notifiedOpen,lastNotifiedAt:a.lastNotifiedAt,pending:a.pending,pendingSince:a.pendingSince})),D=(0,i.f)(C,u,t,j,{now:a,collectorStale:x,mutedApps:z,incidents:A,maintenance:B});return D.open.length||D.touch.length||D.resolve.length?(await (0,e.f)().transaction(async c=>{for(let b of D.open)await c.insert(f.alerts).values({...b,pendingSince:b.pending?a:null}).onConflictDoNothing();for(let d of D.touch){let{id:e,pending:g,...h}=d;await c.update(f.alerts).set({...h,...g?{pending:g,pendingSince:a}:{}}).where((0,b.b)((0,b.u)(f.alerts.id,e),(0,b.M)(f.alerts.resolvedAt)))}for(let d of D.resolve)await c.update(f.alerts).set({resolvedAt:a,pending:d.pending,pendingSince:d.pending?a:null}).where((0,b.b)((0,b.u)(f.alerts.id,d.id),(0,b.M)(f.alerts.resolvedAt)))}),{opened:D.open.length,resolved:D.resolve.length}):{opened:0,resolved:0}}async function az(){let[a,c]=await Promise.all([(0,av.I)(),(0,e.f)().select({ruleKey:f.alerts.ruleKey,provider:f.accounts.provider,n:d.B`count(*)::int`}).from(f.alerts).leftJoin(f.accounts,(0,b.u)(f.accounts.id,f.alerts.accountId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,b.y)(f.alerts.severity,["critical","warning"]))).groupBy(f.alerts.ruleKey,f.accounts.provider)]);return c.reduce((b,c)=>b+((0,l.O)(a,c.ruleKey,c.provider)?0:Number(c.n)),0)}let aA=d.B`case ${f.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function aB(a=new Set){return(await (0,e.f)().select({a:f.alerts,name:f.resources.name,kind:f.resources.kind}).from(f.alerts).leftJoin(f.resources,(0,b.u)(f.resources.id,f.alerts.resourceId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,av.s)(a))).orderBy(aA,(0,c.A)(f.alerts.startedAt)).limit(200)).map(({a,name:b,kind:c})=>({...a,resourceName:b??null,resourceKind:c??null}))}async function aC(){return aB(await (0,av.I)())}async function aD(a){return(await (0,e.f)().select({id:f.alerts.id,ruleKey:f.alerts.ruleKey,severity:f.alerts.severity,title:f.alerts.title,resourceId:f.alerts.resourceId,startedAt:f.alerts.startedAt,resolvedAt:f.alerts.resolvedAt}).from(f.alerts).where((0,b.b)((0,b.E)(f.alerts.resolvedAt),(0,b.B)(f.alerts.resolvedAt,new Date(a.getTime()-6048e5)))).orderBy((0,c.A)(f.alerts.resolvedAt)).limit(50)).flatMap(a=>a.resolvedAt?[{...a,resolvedAt:a.resolvedAt}]:[])}async function aE(){let[a,c,h]=await Promise.all([ax(),(0,e.f)().select({key:f.alerts.ruleKey,n:d.B`count(*)::int`}).from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)).groupBy(f.alerts.ruleKey),(0,e.f)().select({kind:f.resources.kind}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).groupBy(f.resources.kind)]),i=new Set(h.map(a=>a.kind)),j={databases:["supabase_project","neon_project","firestore"].some(a=>i.has(a)),domains:i.has("domain")||i.has("zone"),dns:i.has("zone")};return g.u.flatMap(b=>{let d=a.find(a=>a.key===b);if(!d)return[];let e=g._[b].needs;return[{rule:d,firing:c.find(a=>a.key===b)?.n??0,hasData:null===e||j[e]}]})}async function aF(a,c,d,g){let h="off"===c?{silencedUntil:null,silencedUntilResolved:!1,silencedBy:null}:{...n(c,g),silencedBy:d},[i]=await (0,e.f)().update(f.alerts).set(h).where((0,b.b)((0,b.u)(f.alerts.id,a),(0,b.M)(f.alerts.resolvedAt))).returning({ruleKey:f.alerts.ruleKey,title:f.alerts.title,resourceId:f.alerts.resourceId});return i??null}async function aG(a,c){return(await (0,e.f)().update(f.alertRules).set({...c,updatedAt:new Date}).where((0,b.u)(f.alertRules.key,a)).returning({key:f.alertRules.key})).length>0}async function aH(){try{let[a]=await (0,e.f)().select({value:f.settings.value}).from(f.settings).where((0,b.u)(f.settings.key,j.z)).limit(1);return(0,j._)(a?.value)}catch{return{}}}async function aI(a,b){let c=await aH();Object.keys(b).length?c[a]=b:delete c[a],await (0,e.f)().insert(f.settings).values({key:j.z,value:c}).onConflictDoUpdate({target:f.settings.key,set:{value:c,updatedAt:new Date}})}a.s(["$",0,ay,"q",0,aB,"I",0,aD,"i",0,aC,"X",0,az,"w",0,aH,"y",0,aE,"z",0,aG,"_",0,aI,"N",0,aF],455317)}]})();
1
+ (()=>{"use strict";module.exports=[949663,912283,876808,747556,a=>{var b=a.i(927262),c=a.i(201516),d=a.i(273133),e=a.i(120213),f=a.i(84979),g=a.i(84877),h=a.i(679662);let i=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function j(a,b){let c=i.exec(a.trim()),d=i.exec(b.trim());return!!c&&!!d&&c[1]===d[1]&&("0"!==c[1]||c[2]===d[2])&&(0,g.f)(b,a)>=0}let k=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,l=a=>k.exec(a)?.[1]??null;a.s(["M",0,a=>`Lockfile tertinggal — jalankan npm install (${a.slice(0,5).join(", ")}${a.length>5?`, +${a.length-5}`:""}).`,"a",0,function(a,b,c){if(!a.length)return{ok:!1,why:"nothing"};let d=a.filter(a=>c.includes(a.severity)&&!("moderate"===a.severity&&a.dev));if(!d.length)return{ok:!1,why:"severity"};for(let a of d){let c=b.get(a.package);if(!c||!j(c,a.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:d}},"m",0,function(a,b){if(!b)return{deps:a,stale:[]};let c=[...Object.entries(b.dependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.optionalDependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.devDependencies).map(([a,b])=>[a,b,!0])],d=[...a],e=[];for(let[a,b,f]of c){let c=(0,h.Y)(b);if(!c||!(0,h.C)(c))continue;let i=d.filter(b=>b.name===a);!i.length||i.some(a=>(0,g.f)(a.version,c)>=0)||((d=d.filter(b=>b.name!==a)).push({name:a,version:c,dev:i.every(a=>a.dev)&&f}),e.push(a))}return{deps:d,stale:e}},"D",0,function(a){let b=new Map;for(let c of a){if(!c.direct)continue;let a=b.get(c.package);(!a||0>(0,g.f)(c.installedVersion,a))&&b.set(c.package,c.installedVersion)}return b},"U",0,function(a,b,c=null){for(let d of b){if(l(d.title)!==c)continue;let b=function(a){if(a.packages?.length)return a.packages;let b=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(a.title);return b?[b[1]]:"all"}(d);if("all"===b||a.some(a=>b.includes(a)))return d}return null},"J",0,j],912283);let m=["next","eslint-config-next"],n={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function o(a,b){if(!a||!(0,h.C)(a))return null;let c=b.map(a=>a.fixed).filter(b=>!!b&&(0,h.C)(b)&&(0,g.f)(b,a)>0);if(!c.length)return null;let d=c.filter(b=>j(a,b));return(d.length?d:c).reduce((a,b)=>(0,g.f)(b,a)>0?b:a)}function p(a,b){let c=o(a,b),d=c?b.map(a=>a.fixed).filter(a=>!!a&&(0,h.C)(a)&&(0,g.f)(a,c)>0):[],e=d.reduce((a,b)=>null===a||(0,g.f)(b,a)>0?b:a,null),i=e?` (${1===d.length?"one fix needs":"some fixes need"} Next.js ${e.split(".")[0]})`:"";return`Next.js ${a??"(unknown version)"} has ${(0,f.q)(b.length)} (${(0,f.N)(b).toLowerCase()}), ${c?`fixed in ${c}${i}`:"no fix yet"}.`}a.s(["P",0,p,"p",0,function(a){if(!a||"vulnerable"!==a.status||!a.findings.length||!a.version)return null;let b=o(a.version,a.findings);if(!b)return null;let c=n[(0,f.N)(a.findings)],d=[...new Set(a.findings.map(a=>a.id))],e=[...new Set(a.findings.flatMap(a=>a.cve?[a.cve]:[]))];return{from:a.version,to:b,upgrades:[{package:"next",to:b,vulnIds:d,cves:e,severity:c},{package:"eslint-config-next",to:b,vulnIds:[],cves:[],severity:c,companionOf:"next"}],installed:new Map(m.map(b=>[b,a.version]))}},"F",0,function(a){let b=a.find(a=>"next"===a.package&&!a.companionOf);return!b||a.some(a=>"eslint-config-next"===a.package)?a:[...a,{package:"eslint-config-next",to:b.to,vulnIds:[],cves:[],severity:b.severity,companionOf:"next"}]}],876808);let q=a=>Math.round(a).toLocaleString("en-US"),r=(a,b)=>Math.floor((a.getTime()-b.getTime())/864e5),s=(a,b)=>`${a} ${b}${1===a?"":"s"}`,t=a=>{try{let b=new URL(a);return`${b.host}${b.pathname}`}catch{return a}},u=a=>{try{return new URL(a).host}catch{return a}},v=a=>{try{return new URL(a).pathname}catch{return"/"}},w="Down · ",x=(a,b,c)=>({rule:a,subject:b,status:"unknown",resourceId:null,accountId:null,title:b,message:"",provider:null,sampleAt:null,...c}),y=a=>"firestore"===a.provider?"firebase":"d1"===a.provider?"cloudflare":a.provider,z=new Set(["turso","upstash","d1"]),A={MonitorDown:(a,b)=>a.monitors.map(a=>{let d=x("MonitorDown",a.id,{resourceId:a.appId,title:`${a.appName} ${"heartbeat"===a.kind?a.url:v(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt}),e=b??3;if("heartbeat"===a.kind){let b;return{...d,status:"err"===a.state?"firing":"ok"===a.state?"ok":"unknown",message:`${a.appName} \xb7 ${a.url}: ${b=a.lastError,b?.startsWith(w)?b.slice(w.length):"no ping in time"}.`}}return a.movedTo?{...d,status:"ok",message:`${u(a.url)} moved to ${a.movedTo}; MonitorDomainMoved takes over.`}:a.failStreak>=e?{...d,status:"firing",message:(0,c.H)(a)?`${t(a.url)} failed its check (${(0,c.H)(a)}) on ${e} consecutive checks.`:`${t(a.url)} returned ${a.lastStatus?`HTTP ${a.lastStatus}`:"no answer"} on ${e} consecutive checks.`}:{...d,status:0===a.failStreak&&a.lastCheckedAt?"ok":"unknown",message:`${t(a.url)} answers again.`}}),MonitorDomainMoved:a=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let b=x("MonitorDomainMoved",a.id,{resourceId:a.appId,title:`${a.appName} ${v(a.url)}`,provider:"vercel"});return a.movedTo?{...b,status:"firing",message:`${u(a.url)} is no longer a domain of ${a.appName}; production is on ${a.movedTo}.`}:{...b,status:"ok",message:`The monitor checks ${u(a.url)}, a domain of ${a.appName}.`}}),CollectorStale:(a,b)=>{let c=a.lastMinuteRunAt;return[x("CollectorStale","collector",{status:!c||a.now.getTime()-c.getTime()>(b??5)*6e4?"firing":"ok",title:"collector",message:c?`The last minute run finished ${q((a.now.getTime()-c.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(a,b)=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let c=x("HighLatency",a.id,{resourceId:a.appId,title:`${a.appName} ${v(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt});if(a.checksLast10<5||null===a.p95Last10)return c;let d=b??1500;return{...c,status:a.p95Last10>d?"firing":"ok",message:`p95 ${q(a.p95Last10)} ms over the last 10 minutes (limit ${q(d)} ms).`}}),DeploymentFailed:a=>a.apps.map(a=>{let b=x("DeploymentFailed",a.id,{resourceId:a.id,title:a.name,provider:"vercel"}),c=a.latestProduction;return c?"error"===c.state?{...b,status:"firing",message:`Production deployment ${c.sha?c.sha.slice(0,7):"(no commit)"} failed.`}:{...b,status:"building"===c.state?"unknown":"ok"}:{...b,status:"ok"}}),DatabasePaused:a=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(a=>x("DatabasePaused",a.id,{resourceId:a.id,title:a.name,provider:"supabase",status:"unknown"===a.state?"unknown":"paused"===a.state?"firing":"ok",message:`Supabase project ${a.name} is paused.`})),CertExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=x("CertExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.tlsNotAfter)return d;let e=r(c.tlsNotAfter,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:`The TLS certificate of ${c.name} expires in ${s(e,"day")}.`}}),DomainExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=x("DomainExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.expiresAt)return d;let e=r(c.expiresAt,a.now);return{...d,status:e<(b??30)?"firing":"ok",message:`${c.name} expires in ${s(e,"day")}.`}}),StorageAlmostFull:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"!==a.provider).map(a=>{let c=x("StorageAlmostFull",a.id,{resourceId:a.id,title:a.name,provider:y(a)});if(null===a.sizeBytes||!a.sizeLimitBytes)return c;let d=a.sizeBytes/a.sizeLimitBytes*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} uses ${q(a.sizeBytes/1e6)} MB of ${q(a.sizeLimitBytes/1e6)} MB (${q(d)}%).`}}),NeonComputeHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"neon"===a.provider).map(a=>{let c=x("NeonComputeHigh",a.id,{resourceId:a.id,title:a.name,provider:"neon"});return null===a.cuHours?c:{...c,status:a.cuHours>(b??80)?"firing":"ok",message:`${a.name} used ${q(a.cuHours)} of ${q(a.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"===a.provider).map(a=>{let c=x("FirestoreQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:"firebase"});if(a.quotaExhausted)return{...c,status:"firing",message:`${a.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===a.readsToday||!a.readsLimit)return!1===a.quotaExhausted?{...c,status:"ok"}:c;let d=a.readsToday/a.readsLimit*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} read ${q(a.readsToday)} of ${q(a.readsLimit)} documents today (${q(d)}%).`}}),AutoPauseRisk:(a,b)=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(c=>{let d=x("AutoPauseRisk",c.id,{resourceId:c.id,title:c.name,provider:"supabase"});if("paused"===c.state)return{...d,status:"ok"};if(!c.lastApiAt)return d;let e=Math.floor((a.now.getTime()-c.lastApiAt.getTime())/864e5);return{...d,status:e>=(b??4)?"firing":"ok",message:`No API traffic for ${s(e,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:a=>a.dns&&a.dns.map(a=>x("DnsProxiedToVercel",a.id,{resourceId:a.resourceId,title:a.name,provider:"cloudflare",status:a.proxied&&a.pointsToVercel?"firing":"ok",message:`${a.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>z.has(a.provider)).map(a=>{let c=x("DbQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:y(a)});return null==a.quotaPct?c:{...c,status:a.quotaPct>(b??80)?"firing":"ok",message:`${a.name}: ${a.quotaLabel??"usage"} at ${q(a.quotaPct)}% of the free plan.`}}),ComputeHigh:(a,b)=>a.compute?a.compute.map(c=>{let e=x("ComputeHigh",c.id,{resourceId:c.id,title:c.name,provider:"supabase",sampleAt:c.latest?new Date(c.latest.at):null}),f=(0,d.B)(c.latest,(0,d.V)(b),a.now);return null===f?e:{...e,status:f.length?"firing":"ok",message:f.length?`${c.name}: ${f.join(", ")}.`:`${c.name} compute is back under the limits.`}}):null,CredentialExpiring:(a,b)=>a.accounts.map(c=>{let d=x("CredentialExpiring",c.id,{accountId:c.id,title:`${c.provider} \xb7 ${c.label}`,provider:c.provider});if("drive"===c.provider&&"error"===c.status&&c.lastError?.includes("invalid_grant"))return{...d,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!c.expiresAt)return{...d,status:"ok"};let e=r(c.expiresAt,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:e<0?`The ${c.provider} credential ${c.label} has expired.`:`The ${c.provider} credential ${c.label} expires in ${s(e,"day")}.`}}),VulnerableDependency:a=>a.deps?a.deps.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=x("VulnerableDependency",b.appId,{resourceId:b.appId,title:c.name,provider:"github"});if(b.error)return[d];let f=(0,e.g)(b.vulns);return f?[{...d,status:"firing",message:(0,e.L)(b.vulns),..."critical"===f?{severity:"critical"}:{}}]:[{...d,status:"ok",message:`${c.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:a=>a.frameworks?a.frameworks.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=x("FrameworkVulnerable",b.appId,{resourceId:b.appId,title:c.name});return"ok"===b.status?[{...d,status:"ok",message:`${c.name} runs Next.js ${b.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===b.status&&b.findings.length?[{...d,status:"firing",message:p(b.version,b.findings),..."CRITICAL"===(0,f.N)(b.findings)?{severity:"critical"}:{}}]:[d]}):null};a.s(["f",0,function(a,c,d){let e=[],f=new Set;for(let g of c){if(!g.enabled||d&&!d.includes(g.key)||!b._[g.key])continue;let c=A[g.key](a,g.threshold);c&&(f.add(g.key),e.push(...c))}return{observations:e,evaluated:f}}],949663);let B=["MonitorDown","HighLatency"],C=["telegram","discord","webhook","smtp"],D=a=>a.channels.some(a=>C.includes(a));function E(a,b){return b.collectorStale&&"CollectorStale"!==a.rule?"CollectorStale":a.resourceId&&B.includes(a.rule)?b.mutedApps.get(a.resourceId)??null:null}let F=(a,b)=>"critical"===b&&"warning"===a?"critical":a,G=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),H=(a,b)=>`${a}|${b}`;a.s(["f",0,function(a,c,d,e,f){let g={open:[],touch:[],resolve:[]},h=new Map(e.map(a=>[a.key,a])),i=new Map(c.map(a=>[H(a.rule,a.subject),a])),j=new Set(a.map(a=>H(a.ruleKey,a.subject))),k=a=>g.resolve.push({id:a.id,pending:a.notifiedOpen?"resolve":null});for(let c of a){let a=h.get(c.ruleKey),e=i.get(H(c.ruleKey,c.subject));if(!a||!a.enabled){g.resolve.push({id:c.id,pending:null});continue}if(!d.has(c.ruleKey))continue;if(!e){g.resolve.push({id:c.id,pending:null});continue}if("unknown"===e.status)continue;let j=e.provider?f.incidents.get(e.provider)??null:null;if("firing"===e.status){let b=E(e,f),d=c.notifiedOpen&&null!==c.lastNotifiedAt&&f.now.getTime()-c.lastNotifiedAt.getTime()>=216e5,h={id:c.id,okStreak:0,lastSampleAt:e.sampleAt??c.lastSampleAt,lastSeenAt:f.now,message:e.message,causedBy:b,providerIncident:j},i=!c.notifiedOpen&&(!c.pendingSince||f.now.getTime()-c.pendingSince.getTime()>=216e5);(d||i)&&!G(c,f.now)&&!b&&null===c.pending&&D(a)&&(h.pending=d?"repeat":"open"),g.touch.push(h);continue}if(!b._[c.ruleKey].sampled||null===e.sampleAt){k(c);continue}if(!(null===c.lastSampleAt||e.sampleAt.getTime()>c.lastSampleAt.getTime()))continue;let l=c.okStreak+1;l>=2?k(c):g.touch.push({id:c.id,okStreak:l,lastSampleAt:e.sampleAt})}for(let a of c){if("firing"!==a.status||j.has(H(a.rule,a.subject))||f.maintenance.has(a.subject)||a.resourceId&&f.maintenance.has(a.resourceId))continue;let b=h.get(a.rule);if(!b)continue;let c=E(a,f);g.open.push({ruleKey:a.rule,subject:a.subject,resourceId:a.resourceId,accountId:a.accountId,severity:F(b.severity,a.severity),title:a.title,message:a.message,startedAt:f.now,lastSeenAt:f.now,lastSampleAt:a.sampleAt,causedBy:c,providerIncident:a.provider?f.incidents.get(a.provider)??null:null,pending:c||!D(b)?null:"open"})}return g}],747556)},708621,a=>{let b=["status","severity","rule","target","detail","cause","step","since","threshold"],c=["id","en"],d={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}"},e=/\{([a-zA-Z_]+)\}/g,f=a=>a.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function g(a){if(a.length>1e3)return`Keep it under ${1e3.toLocaleString("en-US")} characters.`;for(let[,c]of a.matchAll(e))if(!b.includes(c))return`{${c}} isn't a field. Use ${b.map(a=>`{${a}}`).join(", ")}.`;return null}a.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,c,"_",0,function(a){if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let[d,e]of Object.entries(a)){if(!e||"object"!=typeof e)continue;let a={};for(let b of c){let c=e[b];"string"==typeof c&&c.trim()&&null===g(c)&&(a[b]=c)}Object.keys(a).length&&(b[d]=a)}return b},"l",0,function(a,b){return f(a).split("\n").flatMap(a=>{let c=[...a.matchAll(e)].map(a=>a[1]).filter(a=>Object.hasOwn(b,a));return c.length&&c.every(a=>!b[a].trim())?[]:[a.replace(e,(a,c)=>Object.hasOwn(b,c)?b[c]:a)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim()},"F",0,function(a,b){let c="string"==typeof a?f(a):"";return c&&c!==d[b]?c:null},"m",0,g])},455317,71575,569057,930270,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(927262),h=a.i(949663),i=a.i(747556),j=a.i(708621),k=a.i(519051),l=a.i(160147),m=a.i(245710);function n(a,b){return"1h"===a?{silencedUntil:new Date(b.getTime()+36e5),silencedUntilResolved:!1}:{silencedUntil:null,silencedUntilResolved:!0}}a.s(["_",0,[["critical","Critical"],["warning","Warning"],["info","Info"]],"O",0,function(a,b){return a.silencedUntilResolved?{state:"off",text:"Silenced until resolved"}:a.silencedUntil&&a.silencedUntil.getTime()>b.getTime()?{state:"off",text:`Silenced until ${(0,m.U)(a.silencedUntil)}`}:"open"===a.pending||"repeat"===a.pending?{state:"build",text:"Sending…"}:a.causedBy&&!a.notifiedOpen?{state:"off",text:"Muted"}:a.lastNotifiedAt?{state:"ok",text:`Sent ${(0,m.U)(a.lastNotifiedAt)}`}:{state:"off",text:"Digest only"}},"G",0,function(a){return a.enabled?a.firing?{state:"err",text:`Firing \xb7 ${a.firing}`}:a.hasData?{state:"off",text:"Inactive"}:{state:"unknown",text:"No data yet"}:{state:"off",text:"Disabled"}},"A",0,n,"M",0,function(a,b){let c=Math.max(1,Math.round((b.getTime()-a.getTime())/6e4));if(c<60)return`${c} min`;let d=Math.floor(c/60);return d<24?`${d} h ${c%60} min`:`${Math.floor(d/24)} d ${d%24} h`}],71575);var o=a.i(639271),p=a.i(656298),q=a.i(688275),r=a.i(893893),s=a.i(672319),t=a.i(188546),u=a.i(233711),v=a.i(460565);async function w(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}async function x(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}async function y(){let[a]=await (0,e.f)().select({threshold:f.alertRules.threshold}).from(f.alertRules).where((0,b.u)(f.alertRules.key,"CollectorStale")).limit(1);return(0,v.X)(a?.threshold)}a.s(["o",0,y,"D",0,w,"d",0,x],569057);var z=a.i(367247),A=a.i(436357),B=a.i(912283),C=a.i(358179),D=a.i(492665),E=a.i(683439),F=a.i(679662),G=a.i(852539),H=a.i(33135),I=a.i(533957);let J="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function K(a,b,c,d){let e=d.deadline-Date.now();if(e<500)return{ok:!1,error:"No time left for OSV.dev"};let f=AbortSignal.timeout(e);return M(a,{method:"POST",headers:{"content-type":"application/json","user-agent":J},body:JSON.stringify(b),signal:f},c,f,d)}async function L(a,b,c){let d=c.deadline-Date.now();if(d<500)return{ok:!1,error:"No time left for OSV.dev"};let e=AbortSignal.timeout(Math.min(d,8e3));return M(a,{method:"GET",headers:{"user-agent":J},signal:e},b,e,c)}async function M(a,b,c,d,e){let f;try{f=await (e.fetch??fetch)(a,{...b,redirect:"error",cache:"no-store"})}catch(a){return{ok:!1,error:(0,I.t)(a)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!f.ok)return await f.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${f.status}`};try{let{bytes:a,truncated:b}=await (0,H.z)(f,c,(0,H.X)(d));if(b)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(a))}}catch(a){return{ok:!1,error:(0,I.t)(a)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function N(a,b){let c=[];for(let d of(0,G.f)(a)){let a=await K(G.n,d,4194304,b);if(!a.ok)return a;let e=(0,G.j)(a.body,d.queries.length);if(!e)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};c.push(...e)}return{ok:!0,ids:c}}async function O(a,b){let c=[...new Set(a)].filter(G.G);if(c.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${c.length})`};let d=new Map,e=null;for(let a=0;a<c.length&&!e;a+=8)await Promise.all(c.slice(a,a+8).map(async a=>{let c=await L(`${G.W}${encodeURIComponent(a)}`,1048576,b),f=c.ok?(0,G.O)(c.body):null;f?d.set(a,f):e??=c.ok?"OSV.dev sent an advisory we couldn't read":c.error}));return e?{ok:!1,error:e}:{ok:!0,map:d}}var P=a.i(521050),Q=a.i(120213),R=a.i(689963),S=a.i(26972),T=a.i(427221),U=a.i(811365),V=a.i(760417);let W=R.z.array(S.z.object({name:T.z.string(),type:T.z.string(),sha:T.z.string(),size:U.z.number().optional()}));async function X(a,b,c,d={},e=null){if(!(0,V.M)(b)||!(0,V.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==e&&(0,P.Q)(e)!==e)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let f=e?e.split("/").map(encodeURIComponent).join("/"):"",g=await (0,V.j)(`/repos/${(0,V.f)(b)}/contents/${f}?ref=${encodeURIComponent(c)}`,a,d);if(!g.ok)return g;let h=W.safeParse(g.data);return h.success?{ok:!0,data:h.data.filter(a=>"file"===a.type&&/^[0-9a-f]{40}$/.test(a.sha)).map(a=>({name:a.name,sha:a.sha,size:a.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function Y(a,b,c,d={}){if(!(0,V.M)(b)||!(0,V.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let e=await (0,V.j)(`/repos/${(0,V.f)(b)}/git/ref/heads/${c.split("/").map(encodeURIComponent).join("/")}`,a,d);return e.ok?{ok:!0,data:!0}:"missing"===e.kind?{ok:!0,data:!1}:e}function Z(a,b,c,d,e,f={}){return(0,V.V)(a,b,c,d,e,f)}async function $(a,b,c={}){if(!(0,V.M)(b))return{ok:!1,kind:"format",error:"That isn't a repository name."};let d=await (0,V.j)(`/repos/${(0,V.f)(b)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,a,c);if(!d.ok)return"scope"===d.kind||"missing"===d.kind?{ok:!0,data:{denied:!0}}:d;let e=(0,Q.E)(d.data);return e?{ok:!0,data:{alerts:e}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var _=a.i(751263);async function aa(){let[a]=await (0,e.f)().select().from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).orderBy((0,c.M)(f.accounts.createdAt)).limit(1);if(!a)return{error:"GitHub isn't connected."};let d=(0,C.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,D.f)().OPS_ENCRYPTION_KEY);return d?{token:d,accountId:a.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function ab(){let[a]=await (0,e.f)().select({value:f.settings.value}).from(f.settings).where((0,b.u)(f.settings.key,"deps.scanAll")).limit(1);return a?.value===!0}let ac=a=>{let b=(0,_.w)(a);return{dir:(0,P.Q)((a??{}).rootDirectory),unsupported:(0,P.l)((a??{}).rootDirectoryUnsupported),branch:(0,_.i)((0,_.V)(a),null),...b?{fallback:b}:{}}};async function ad(a){let c=[...new Set(a.filter(E.f))],d=new Map;if(!c.length)return d;let g=await (0,e.f)().select({repoId:f.appRepos.repoId,name:f.resources.name,monitored:f.resources.monitored,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.b)((0,b.y)(f.appRepos.repoId,c),(0,b.M)(f.resources.goneAt))).limit(1e3);for(let a of(g.sort((a,b)=>Number(!!b.monitored)-Number(!!a.monitored)||(a.name<b.name?-1:+(a.name>b.name))),g))d.has(a.repoId)||d.set(a.repoId,ac(a.meta));return d}async function ae(){let a={id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,scannedAt:f.dependencyScans.scannedAt},c=(0,b.b)((0,b.M)(f.githubRepos.goneAt),(0,b.u)(f.githubRepos.archived,!1)),d=await ab()?await (0,e.f)().select(a).from(f.githubRepos).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500):await (0,e.f)().selectDistinct(a).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500),g=d.length?await ad(d.map(a=>a.id)):new Map;return(0,Q.M)(d.map(a=>{let b=g.get(a.id);return{...a,rootDir:b?.dir??null,rootDirUnsupported:b?.unsupported??null,prodBranch:b?.branch??null,...b?.fallback?{prodFallback:b.fallback}:{}}}))}let af=(a,b)=>a.length>b?`${a.slice(0,b-1)}…`:a;async function ag(a,b){let c=new Date;await (0,e.f)().insert(f.dependencyScans).values({repoId:a,...b,updatedAt:c}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{...b,updatedAt:c}})}async function ah(a){return(0,e.f)().select({id:f.dependencyVulns.id,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,source:f.dependencyVulns.source}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,a),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3)}function ai(a,b){for(let c of F.a){let d=a.find(a=>a.name===c.path);if(d)return{path:(0,P.H)(b,c.path),kind:c.kind,sha:d.sha}}return null}async function aj(a,c,d,g={}){let h=()=>({...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),1e4))}),i=async a=>(await ag(c.id,{error:af(a,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:a}),j=c.defaultBranch??"HEAD",k=null;for(let b of[c.prodBranch,c.prodFallback]){if(b&&b===c.defaultBranch)break;let d=(0,_.i)(b,c.defaultBranch);if(!d)continue;let e=await Y(a,c.fullName,d,h());if(!e.ok)return i(e.error);if(e.data){k=d;break}}let l=null!==k;k&&(j=k);let m=l?`Scanned ${k}, the branch production is built from.`:null,n=(0,P.Q)(c.rootDir),o=n?null:(0,P.l)(c.rootDirUnsupported),p=o?`The Vercel Root Directory "${o}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,q=await X(a,c.fullName,j,h(),n);if(!q.ok)return i(n&&"missing"===q.kind?`The folder ${(0,P.x)(n)} isn't in ${c.fullName} on ${j}.`:q.error);let r=ai(q.data,n),s=q.data.find(a=>"package.json"===a.name)??null,t=!1,u=null;if(n&&s&&!r){let b=await X(a,c.fullName,j,h());if(!b.ok)return i(b.error);t=null!==(r=ai(u=b.data,null))}let v=r?r.sha:s?`pkg:${s.sha}`:null,w=v&&n?`${n}:${v}${t&&s?`+${s.sha}`:""}`:v&&o?`odd:${v}`:v,x=w&&l?`br:${k}:${w}`:w,[y]=await (0,e.f)().select().from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,c.id)).limit(1),z=new Date;if(!(0,Q.U)(y??null,x,z,g.force))return{status:"unchanged"};if(!x){let a=await ah(c.id);return a.length&&await (0,e.f)().update(f.dependencyVulns).set({resolvedAt:z}).where((0,b.y)(f.dependencyVulns.id,a.map(a=>a.id))),await ag(c.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:z,queriedAt:z,error:null,note:af([m,p,`No package.json or lockfile ${n?"in":"at"} ${(0,P.x)(n)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let A=(0,P.H)(n,"package.json"),C=s?await Z(a,c.fullName,A,j,V.$,h()):null;if(C&&!C.ok)return i(C.error);let D=C?.ok&&C.data?(0,F.b)(C.data):null,E=null,H="package-json",I=t&&r?`Scanned ${(0,P.x)(n)} with the repository root's ${r.path} (workspaces).`:null;if(r){if(2e3>d-Date.now())return i("Time budget used before the lockfile was read; the next run tries again.");let b=await Z(a,c.fullName,r.path,j,0xf00000,{...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),2e4))});if(!b.ok)return i(b.error);let e=!0;if(t&&n&&b.data&&!(0,P.p)(r.kind,b.data,n)){let b=u?.some(a=>"package.json"===a.name)?await Z(a,c.fullName,"package.json",j,V.$,h()):null;if(b&&!b.ok)return i(b.error);e=(0,P.F)(b?.data??null,n)}e?(E=b.data?(0,F.D)(r.kind,b.data):null,H=r.kind,E||(I=[I,`${r.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(I=`The repository root's ${r.path} isn't a workspace that includes ${n}, so the versions come from ${A} ranges (approximate).`,r=null)}if(E){let a=(0,B.m)(E,D);E=a.deps,a.stale.length&&(I=[I,(0,B.M)(a.stale)].filter(Boolean).join(" "))}else E=D?(0,F.e)(D):[],H="package-json",I??=r?null:"No lockfile: the versions come from package.json ranges (approximate).";let J=await ah(c.id),K=[];if(E.length){let a=await N(E,{fetch:g.fetch,deadline:d});if(!a.ok)return i(a.error);let b=(0,Q.A)(J,!0===g.force),c=await O((0,Q.z)(E,a.ids,b),{fetch:g.fetch,deadline:d});if(!c.ok)return i(c.error);K=(0,G.i)(E,a.ids,c.map,b)}if(d-Date.now()>1500){let b=await $(a,c.fullName,h());b.ok&&"alerts"in b.data?K=(0,Q.R)(K,b.data.alerts,E):b.ok&&(I=[I,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let L=(0,Q.h)(J,K,(0,F.K)(D));I=[m,p,I].filter(Boolean).join(" ")||null;let M=new Date;return await (0,e.f)().transaction(async a=>{for(let d of(L.insert.length&&await a.insert(f.dependencyVulns).values(L.insert.map(a=>({repoId:c.id,package:a.package,installedVersion:a.installedVersion,vulnId:a.vulnId,aliases:a.aliases,severity:a.severity,fixedVersion:a.fixedVersion,summary:a.summary,direct:a.direct,dev:a.dev,source:a.source,firstSeenAt:M,lastSeenAt:M}))).onConflictDoNothing(),L.update))await a.update(f.dependencyVulns).set({severity:d.severity,fixedVersion:d.fixedVersion,summary:d.summary,aliases:d.aliases,dev:d.dev,direct:d.direct,lastSeenAt:M}).where((0,b.u)(f.dependencyVulns.id,d.id));L.resolve.length&&await a.update(f.dependencyVulns).set({resolvedAt:M}).where((0,b.b)((0,b.y)(f.dependencyVulns.id,L.resolve),(0,b.M)(f.dependencyVulns.resolvedAt))),await a.insert(f.dependencyScans).values({repoId:c.id,lockfilePath:r?.path??(s?A:null),lockfileSha:x,packageCount:E.length,scannedAt:M,queriedAt:M,error:null,note:I?af(I,300):null,updatedAt:M}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{lockfilePath:r?.path??(s?A:null),lockfileSha:x,packageCount:E.length,scannedAt:M,queriedAt:M,error:null,note:I?af(I,300):null,updatedAt:M}})}),{status:"scanned",vulns:L.insert.length+L.update.length,packages:E.length,note:"package-json"===H?I:null}}async function ak(a,c={}){var d,g;let h,i,j,k,l=await aa();if("error"in l)return{error:l.error};let{first:m,only:n,skip:o,...p}=c,q=(d=await ae(),h=(g={first:m,only:n,skip:o}).only?new Set(g.only):null,i=new Set(g.skip??[]),j=(h?d.filter(a=>h.has(a.id)):d).filter(a=>!i.has(a.id)),k=new Set(g.first??[]),[...j.filter(a=>k.has(a.id)),...j.filter(a=>!k.has(a.id))]),r={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:q.map(a=>a.id)};for(let[b,c]of q.entries()){if(a-Date.now()<4e3){r.left=q.length-b;break}r.done.push(c.id);try{let b=await aj(l.token,c,a,p);"scanned"===b.status?r.scanned++:"unchanged"===b.status?r.unchanged++:r.failed.push(`${c.fullName}: ${b.error}`)}catch(a){r.failed.push(`${c.fullName}: ${a instanceof Error?a.name:"error"}`)}}return await (0,e.f)().delete(f.dependencyVulns).where((0,b.b)((0,b.E)(f.dependencyVulns.resolvedAt),(0,b.S)(f.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),r}let al=async()=>(await (0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).limit(1)).length>0;async function am(a,c,d={}){let g,h,i,{marked:j,onlyMarked:k}=c;if(!await al())return{problem:null,settled:[...j],done:[],complete:!0};let l=j.filter(E.f),m=l.length?await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,l)).limit(5*l.length):[],n=[...new Set(m.map(a=>a.repoId))],o=a=>m.filter(b=>b.appId===a).map(a=>a.repoId),p=j.filter(a=>!o(a).length);if(k&&!n.length)return{problem:null,settled:[...j],done:[],complete:!0};if(a-Date.now()<4e3)return{problem:null,settled:p,done:[],complete:!1};let q=(c.skip??[]).filter(a=>!n.includes(a)),r=await ak(a,{...d,first:n,...k?{only:n}:{skip:q}});if("error"in r){let a;return{problem:(a=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(a))?null:r.error,settled:[...j],done:[],complete:!0}}let s=new Set([...r.done,...n.filter(a=>!r.listed.includes(a))]);return{problem:(g=r.failed.filter(a=>!/didn't answer in time|no time left|time budget|rate limit/i.test(a)),(h=r.failed.length-g.length+(r.left??0))&&console.info(`deps: ${h} repositor${1===h?"y":"ies"} wait for the next run`),i=g.slice(0,3),g.length>3&&i.push(`+${g.length-3} more`),i.length?i.join("; "):null),settled:j.filter(a=>o(a).every(a=>s.has(a))),done:r.done,complete:0===r.left}}async function an(a){let d={repo:null,scan:null,vulns:[],writeConnected:!1};if(!(0,E.f)(a))return d;let[g]=await (0,e.f)().select({id:f.githubRepos.id,fullName:f.githubRepos.fullName}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return d;let[[h],i,[j]]=await Promise.all([(0,e.f)().select({scannedAt:f.dependencyScans.scannedAt,lockfilePath:f.dependencyScans.lockfilePath,packageCount:f.dependencyScans.packageCount,error:f.dependencyScans.error,note:f.dependencyScans.note}).from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,g.id)).limit(1),(0,e.f)().select({package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,firstSeenAt:f.dependencyVulns.firstSeenAt}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3),(0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github_write")).limit(1)]);i.sort((a,b)=>(0,Q.t)(a.severity)-(0,Q.t)(b.severity)||(a.package<b.package?-1:+(a.package>b.package))||(a.vulnId<b.vulnId?-1:1));let k=await (0,e.f)().select({number:f.dependencyPrs.number,stage:f.dependencyPrs.stage,stageText:f.dependencyPrs.stageText,openedAt:f.dependencyPrs.openedAt}).from(f.dependencyPrs).where((0,b.b)((0,b.u)(f.dependencyPrs.repoId,g.id),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)))).orderBy((0,c.A)(f.dependencyPrs.openedAt)).limit(5).catch(()=>[]);return{repo:g,scan:h??null,vulns:i,writeConnected:!!j,prs:(k??[]).map(a=>({...a,fullName:g.fullName}))}}async function ao(a,c={}){if(!(0,E.f)(a))return{ok:!1,error:"That app no longer exists."};let[g]=await (0,e.f)().select({app:f.resources.name,id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,goneAt:f.githubRepos.goneAt,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return{ok:!1,error:"Link a repository first."};if(g.goneAt)return{ok:!1,error:"That repository is no longer shared with the GitHub token."};let h=await aa();if("error"in h)return{ok:!1,error:h.error};let i=ac(g.meta),j=await aj(h.token,{id:g.id,fullName:g.fullName,defaultBranch:g.defaultBranch,scannedAt:null,rootDir:i.dir,rootDirUnsupported:i.unsupported,prodBranch:i.branch,prodFallback:i.fallback??null},Date.now()+4e4,{...c,force:!0});if("failed"===j.status)return{ok:!1,error:`The scan failed: ${j.error}`};let[k]=await (0,e.f)().select({n:d.B`count(*)::int`}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))),l=k?.n??0;return{ok:!0,app:g.app,repo:g.fullName,vulns:l,message:l?`${l} known vulnerabilit${1===l?"y":"ies"} in ${j.packages??0} packages.`:`No known vulnerabilities in ${j.packages??0} packages.`}}async function ap(a){let c=a.filter(E.f);if(!c.length)return[];let d=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId,error:f.dependencyScans.error}).from(f.appRepos).innerJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.appRepos.repoId)).where((0,b.b)((0,b.y)(f.appRepos.appId,c),(0,b.E)(f.dependencyScans.scannedAt)));if(!d.length)return[];let g=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,severity:f.dependencyVulns.severity,summary:f.dependencyVulns.summary,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(d.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(1e4);return d.map(a=>({appId:a.appId,repoId:a.repoId,error:a.error,vulns:g.filter(b=>b.repoId===a.repoId).map(a=>({package:a.package,installedVersion:a.installedVersion,fixedVersion:a.fixedVersion,severity:a.severity,summary:a.summary,dev:a.dev,direct:a.direct}))}))}async function aq(a,c=new Set){let g=a.filter(E.f),h=new Map;if(!g.length)return h;let i=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,g));if(!i.length)return h;let j=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,vulnId:f.dependencyVulns.vulnId,aliases:f.dependencyVulns.aliases,severity:f.dependencyVulns.severity,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(i.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt),(0,b.u)(f.dependencyVulns.direct,!0),(0,b.E)(f.dependencyVulns.fixedVersion))).limit(2e3),k=j.some(a=>"next"===a.package)?new Set((await (0,e.f)().selectDistinct({appId:f.dependencyPrs.appId}).from(f.dependencyPrs).where((0,b.b)((0,b.y)(f.dependencyPrs.appId,g),(0,b.$)(f.dependencyPrs.stage,["merged","closed"]),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),d.B`${f.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(g.length)).map(a=>a.appId)):new Set;for(let a of i){let b=c.has(a.appId)||k.has(a.appId);(0,Q.B)(j.filter(c=>c.repoId===a.repoId&&!(b&&"next"===c.package))).length&&h.set(a.appId,a.repoId)}return h}a.s(["o",0,12e3,"d",0,4e3,"j",0,an,"O",0,am,"C",0,aq,"M",0,aa,"a",0,ap,"h",0,ao],930270);var ar=a.i(242605);async function as(){return(0,e.f)().select({appId:f.links.fromResourceId,dbId:f.links.toResourceId}).from(f.links).where((0,b.u)(f.links.kind,"uses_db")).limit(500)}async function at(a){let g=(0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)),[h,i,j,k,l]=await Promise.all([x(),w(),(0,e.f)().select({m:f.monitors,appName:f.resources.name,appMeta:f.resources.meta}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)(g,(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1))),(0,e.f)().select({id:f.resources.id,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)(g,(0,b.u)(f.resources.kind,"app"))),(0,e.f)().select({id:f.accounts.id,provider:f.accounts.provider,label:f.accounts.label,expiresAt:f.accounts.expiresAt,status:f.accounts.status,lastError:f.accounts.lastError}).from(f.accounts)]),m=j.map(a=>a.m.id),n=m.length?await (0,e.f)().select({id:f.checks.monitorId,n:d.B`count(*)::int`,p95:d.B`percentile_cont(0.95) within group (order by ${f.checks.latencyMs})::float8`}).from(f.checks).where((0,b.b)((0,b.y)(f.checks.monitorId,m),(0,b.B)(f.checks.at,new Date(a.getTime()-6e5)),(0,b.u)(f.checks.inMaintenance,!1))).groupBy(f.checks.monitorId):[],v=k.map(a=>a.id),y=v.length?await (0,e.f)().selectDistinctOn([f.deployments.resourceId],{appId:f.deployments.resourceId,state:f.deployments.state,sha:f.deployments.commitSha,createdAt:f.deployments.createdAtProvider}).from(f.deployments).where((0,b.b)((0,b.y)(f.deployments.resourceId,v),(0,b.u)(f.deployments.target,"production"))).orderBy(f.deployments.resourceId,(0,c.A)(f.deployments.createdAtProvider)):[],B=await (0,e.f)().select({id:f.resources.id,name:f.resources.name,kind:f.resources.kind,state:f.snapshots.state,data:f.snapshots.data}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)(g,(0,b.y)(f.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),C=a=>B.filter(b=>b.kind===a),D=B.filter(a=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(a.kind)),E=C("zone"),F=C("domain"),G=await as(),H=await (0,z.Y)().catch(()=>null),I=v.length?await ap(v).catch(()=>null):null,J=v.length?await (0,ar.F)(v).catch(()=>null):null;return{now:a,lastMinuteRunAt:h,lastAnyRunAt:i,monitors:j.map(({m:a,appName:b,appMeta:c})=>{let d=n.find(b=>b.id===a.id),e="heartbeat"===a.kind;return{id:a.id,appId:a.resourceId,appName:b,url:e?a.name??"heartbeat":a.url,kind:e?"heartbeat":"http",state:a.state,failStreak:a.failStreak,lastStatus:a.lastStatus,lastError:a.lastError,lastCheckedAt:a.lastCheckedAt,p95Last10:d?.p95??null,checksLast10:d?.n??0,movedTo:e?null:(0,A.u)(a.url,{name:b,meta:c},k.filter(b=>b.id!==a.resourceId),{lastError:a.lastError})?.to??null}}),apps:k.map(a=>{let b=y.find(b=>b.appId===a.id);return{id:a.id,name:a.name,latestProduction:b?{state:b.state,sha:b.sha,createdAt:b.createdAt}:null}}),accounts:l,dbs:D.length?D.map(b=>(function(a,b){let c={id:a.id,name:a.name,state:a.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===a.kind){let b=(0,r.k)(r.B,a.data),d=(0,u.Z)(b.lastTrafficAt),e=(0,u.Z)(b.trafficAt),f=d??(e&&!b.trafficError?new Date(e.getTime()-6048e5):null);return{...c,provider:"supabase",sizeBytes:b.sizeBytes??null,sizeLimitBytes:s.R,lastApiAt:f}}if("neon_project"===a.kind){let b=(0,r.k)(r.s,a.data),d=(b.branches??[]).map(a=>a.logicalSize).filter(a=>"number"==typeof a);return{...c,provider:"neon",cuHours:null==b.computeSeconds?null:b.computeSeconds/3600,cuLimit:q.a.cuHours,sizeBytes:d.length?d.reduce((a,b)=>a+b,0):null,sizeLimitBytes:q.a.storageBytes}}if("firestore"===a.kind){let d=(0,r.k)(r.w,a.data),e=(0,u.Z)(d.opsAt),f=null!=d.reads&&e&&e.getTime()>=(0,p.a)(b).getTime()?d.reads:null,g=null!=d.latencyMs||null!=d.pingError;return{...c,provider:"firestore",readsToday:f,readsLimit:p.T.reads,quotaExhausted:g?"RESOURCE_EXHAUSTED"===d.pingReason:null}}if("turso_database"===a.kind){let d=(0,r.k)(r.N,a.data),e=(0,o.u)((0,o.G)(d,b));return{...c,provider:"turso",sizeBytes:d.orgStorageBytes??null,sizeLimitBytes:o.g.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("upstash_redis"===a.kind){let d=(0,r.k)(r.e,a.data),e=(0,o.u)((0,o.$)(d,b));return{...c,provider:"upstash",sizeBytes:d.storageBytes??null,sizeLimitBytes:o.W.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("d1_database"===a.kind){let d=(0,r.k)(r.x,a.data),e=(0,o.u)((0,o.I)(d,b));return{...c,provider:"d1",sizeBytes:d.sizeBytes??null,sizeLimitBytes:o.M.dbBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}return null})(b,a)).filter(a=>null!==a):null,domains:E.length||F.length?[...E.map(a=>({id:a.id,name:a.name,tlsNotAfter:null,expiresAt:(0,u.Z)((0,t.q)(a.data).rdap?.expiresAt)})),...F.map(a=>({id:a.id,name:a.name,tlsNotAfter:(0,u.Z)((0,t.q)(a.data).tls?.notAfter),expiresAt:null}))]:null,dns:function(a,b){let c=a.filter(a=>Array.isArray(a.data.records));if(!c.length)return null;let d=a.map(a=>a.name),e=[];for(let a of c){let c=b.filter(b=>(0,u.J)(b.name,d)===a.name.toLowerCase().replace(/\.$/,"")),f=[...new Set(c.flatMap(a=>(0,t.q)(a.data).vercel?.recommendedIps??[]))];for(let b of(0,t.q)(a.data).records){if(!(0,u.l)(b,f))continue;let d=b.name.toLowerCase().replace(/\.$/,""),g=c.find(a=>a.name.toLowerCase().replace(/\.$/,"")===d);e.push({id:`${a.id}:${b.id}`,resourceId:g?.id??a.id,name:b.name,proxied:b.proxied,pointsToVercel:!0})}}return e}(E,F),links:G,compute:H,deps:I&&I.length?I:null,frameworks:J&&J.length?J:null}}var au=a.i(714530),av=a.i(396667);let aw={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function ax(){return(await (0,e.f)().select().from(f.alertRules)).filter(a=>(0,g.h)(a.key)).map(a=>({key:a.key,severity:a.severity,threshold:a.threshold,enabled:a.enabled,channels:a.channels}))}async function ay(a,c={}){let[d,j,m,n,o,p]=await Promise.all([at(a),ax(),(0,e.f)().select().from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)),(0,e.f)().select({provider:f.providerStatus.provider,state:f.providerStatus.state}).from(f.providerStatus),(0,au.w)(),(0,av.I)()]),q=new Map(d.accounts.map(a=>[a.id,a.provider])),r=m.filter(a=>!(0,l.O)(p,a.ruleKey,a.accountId?q.get(a.accountId):null)),s=(0,h.f)(d,j,c.only),t=s.evaluated,u=s.observations.filter(a=>!(0,l.O)(p,a.rule,a.provider)),v=j.find(a=>"CollectorStale"===a.key),w=void 0===d.lastAnyRunAt?d.lastMinuteRunAt:d.lastAnyRunAt,x=!!v?.enabled&&(!w||a.getTime()-w.getTime()>(v.threshold??5)*6e4),y=new Map((d.dbs??[]).filter(a=>"paused"===a.state).map(a=>[a.id,a.name])),z=new Map(d.links.filter(a=>y.has(a.dbId)).map(a=>[a.appId,`DatabasePaused \xb7 ${y.get(a.dbId)}`])),A=new Map(n.filter(a=>"warn"===a.state||"err"===a.state).map(a=>["gcp"===a.provider?"firebase":a.provider,aw[a.provider]??a.provider])),B=(0,k.u)(o,d.monitors.map(a=>({id:a.id,appId:a.appId})),a,d.apps.map(a=>a.id)),C=r.filter(a=>(0,g.h)(a.ruleKey)).map(a=>({id:a.id,ruleKey:a.ruleKey,subject:a.subject,okStreak:a.okStreak,lastSampleAt:a.lastSampleAt,silencedUntil:a.silencedUntil,silencedUntilResolved:a.silencedUntilResolved,notifiedOpen:a.notifiedOpen,lastNotifiedAt:a.lastNotifiedAt,pending:a.pending,pendingSince:a.pendingSince})),D=(0,i.f)(C,u,t,j,{now:a,collectorStale:x,mutedApps:z,incidents:A,maintenance:B});return D.open.length||D.touch.length||D.resolve.length?(await (0,e.f)().transaction(async c=>{for(let b of D.open)await c.insert(f.alerts).values({...b,pendingSince:b.pending?a:null}).onConflictDoNothing();for(let d of D.touch){let{id:e,pending:g,...h}=d;await c.update(f.alerts).set({...h,...g?{pending:g,pendingSince:a}:{}}).where((0,b.b)((0,b.u)(f.alerts.id,e),(0,b.M)(f.alerts.resolvedAt)))}for(let d of D.resolve)await c.update(f.alerts).set({resolvedAt:a,pending:d.pending,pendingSince:d.pending?a:null}).where((0,b.b)((0,b.u)(f.alerts.id,d.id),(0,b.M)(f.alerts.resolvedAt)))}),{opened:D.open.length,resolved:D.resolve.length}):{opened:0,resolved:0}}async function az(){let[a,c]=await Promise.all([(0,av.I)(),(0,e.f)().select({ruleKey:f.alerts.ruleKey,provider:f.accounts.provider,n:d.B`count(*)::int`}).from(f.alerts).leftJoin(f.accounts,(0,b.u)(f.accounts.id,f.alerts.accountId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,b.y)(f.alerts.severity,["critical","warning"]))).groupBy(f.alerts.ruleKey,f.accounts.provider)]);return c.reduce((b,c)=>b+((0,l.O)(a,c.ruleKey,c.provider)?0:Number(c.n)),0)}let aA=d.B`case ${f.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function aB(a=new Set){return(await (0,e.f)().select({a:f.alerts,name:f.resources.name,kind:f.resources.kind}).from(f.alerts).leftJoin(f.resources,(0,b.u)(f.resources.id,f.alerts.resourceId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,av.s)(a))).orderBy(aA,(0,c.A)(f.alerts.startedAt)).limit(200)).map(({a,name:b,kind:c})=>({...a,resourceName:b??null,resourceKind:c??null}))}async function aC(){return aB(await (0,av.I)())}async function aD(a){return(await (0,e.f)().select({id:f.alerts.id,ruleKey:f.alerts.ruleKey,severity:f.alerts.severity,title:f.alerts.title,resourceId:f.alerts.resourceId,startedAt:f.alerts.startedAt,resolvedAt:f.alerts.resolvedAt}).from(f.alerts).where((0,b.b)((0,b.E)(f.alerts.resolvedAt),(0,b.B)(f.alerts.resolvedAt,new Date(a.getTime()-6048e5)))).orderBy((0,c.A)(f.alerts.resolvedAt)).limit(50)).flatMap(a=>a.resolvedAt?[{...a,resolvedAt:a.resolvedAt}]:[])}async function aE(){let[a,c,h]=await Promise.all([ax(),(0,e.f)().select({key:f.alerts.ruleKey,n:d.B`count(*)::int`}).from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)).groupBy(f.alerts.ruleKey),(0,e.f)().select({kind:f.resources.kind}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).groupBy(f.resources.kind)]),i=new Set(h.map(a=>a.kind)),j={databases:["supabase_project","neon_project","firestore"].some(a=>i.has(a)),domains:i.has("domain")||i.has("zone"),dns:i.has("zone")};return g.u.flatMap(b=>{let d=a.find(a=>a.key===b);if(!d)return[];let e=g._[b].needs;return[{rule:d,firing:c.find(a=>a.key===b)?.n??0,hasData:null===e||j[e]}]})}async function aF(a,c,d,g){let h="off"===c?{silencedUntil:null,silencedUntilResolved:!1,silencedBy:null}:{...n(c,g),silencedBy:d},[i]=await (0,e.f)().update(f.alerts).set(h).where((0,b.b)((0,b.u)(f.alerts.id,a),(0,b.M)(f.alerts.resolvedAt))).returning({ruleKey:f.alerts.ruleKey,title:f.alerts.title,resourceId:f.alerts.resourceId});return i??null}async function aG(a,c){return(await (0,e.f)().update(f.alertRules).set({...c,updatedAt:new Date}).where((0,b.u)(f.alertRules.key,a)).returning({key:f.alertRules.key})).length>0}async function aH(){try{let[a]=await (0,e.f)().select({value:f.settings.value}).from(f.settings).where((0,b.u)(f.settings.key,j.z)).limit(1);return(0,j._)(a?.value)}catch{return{}}}async function aI(a,b){let c=await aH();Object.keys(b).length?c[a]=b:delete c[a],await (0,e.f)().insert(f.settings).values({key:j.z,value:c}).onConflictDoUpdate({target:f.settings.key,set:{value:c,updatedAt:new Date}})}a.s(["$",0,ay,"q",0,aB,"I",0,aD,"i",0,aC,"X",0,az,"w",0,aH,"y",0,aE,"z",0,aG,"_",0,aI,"N",0,aF],455317)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_1eioo4oodq-8h._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[840784,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(436357),h=a.i(751263),i=a.i(850140),j=a.i(469762),k=a.i(631107),l=a.i(968715),m=a.i(910697),n=a.i(72019),o=a.i(519051),p=a.i(858806),q=a.i(601219),r=a.i(714530),s=a.i(513701),t=a.i(895176),u=a.i(242605);let v=a=>"string"==typeof a&&a?a:null;async function w(a,q){let w=await (0,e.f)().select({r:f.resources,s:f.snapshots,sec:f.appSecurity,accStatus:f.accounts.status}).from(f.resources).leftJoin(f.accounts,(0,b.u)(f.accounts.id,f.resources.accountId)).leftJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).leftJoin(f.appSecurity,(0,b.u)(f.appSecurity.resourceId,f.resources.id)).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0),q?(0,b.u)(f.resources.id,q):void 0)).orderBy(f.resources.name).limit(m.O.apps);if(!w.length)return[];let x=w.map(a=>a.r.id),y=(await (0,e.f)().select().from(f.monitors).where((0,b.y)(f.monitors.resourceId,x)).orderBy(f.monitors.createdAt).limit(m.O.monitors)).map(t.M),z=await (0,e.f)().selectDistinctOn([f.deployments.resourceId]).from(f.deployments).where((0,b.b)((0,b.y)(f.deployments.resourceId,x),(0,b.u)(f.deployments.target,"production"),(0,b.F)((0,b.u)(f.deployments.isCurrent,!0),(0,b.c)(f.deployments.state,"ready"),d.B`${f.deployments.resourceId} not in (select serving.resource_id from ${f.deployments} as serving where serving.target = 'production' and serving.is_current)`))).orderBy(f.deployments.resourceId,(0,c.A)(f.deployments.createdAtProvider)),A=await (0,s._)(y.map(a=>a.id),a),B=new Map(w.map(a=>[a.r.id,a.r])),C=await (0,t.J)(y.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.appId,appName:B.get(a.appId)?.name??"",appMeta:B.get(a.appId)?.meta,lastError:a.lastError}))),D=new Map;for(let a of(await (0,e.f)().select({parentId:f.resources.parentId,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.kind,"domain"),(0,b.y)(f.resources.parentId,x),(0,b.M)(f.resources.goneAt))))){if(!a.parentId)continue;let b=D.get(a.parentId)??{};b[a.name.toLowerCase()]={redirect:v(a.meta.redirect),verified:!1!==a.meta.verified},D.set(a.parentId,b)}let E=await (0,s.Q)(x,a),F=await (0,n.F)(x),G=y.length?await (0,r.w)():[];return w.map(({r:b,s:c,sec:d,accStatus:e})=>{let f=y.filter(a=>a.appId===b.id).map(b=>({...b,maintUntil:(0,o.x)(G,{monitorId:b.id,appId:b.appId},a)?.end??null,move:C.get(b.id)??null})),n=v(b.meta.createdAt),q=z.find(a=>a.resourceId===b.id);return{id:b.id,name:b.name,gone:null!==b.goneAt,state:c?.state??"unknown",stateSince:c?.stateSince??null,domain:(0,g.Y)(b.meta)?.primaryDomain??(0,j.m)(b.name,f.map(a=>a.url)),domainLines:(0,i.f)(b.meta,D.get(b.id)??{},(0,g.Y)(b.meta)?.primaryDomain??(0,j.m)(b.name,f.map(a=>a.url))),framework:v(b.meta.framework),productionBranch:v(b.meta.productionBranch),productionSource:(0,h.O)(b.meta.productionSource),createdAt:n?new Date(n):null,teamName:v(b.meta.teamName),teamSlug:v(b.meta.teamSlug),repo:v(b.meta.repo),repoType:v(b.meta.repoType),functionRegions:Array.isArray(b.meta.functionRegions)?b.meta.functionRegions.filter(a=>"string"==typeof a):[],monitors:f,lastDeploy:q?(0,p.u)(q):null,uptime30:(0,l.Y)(f.flatMap(b=>(0,l.w)(A.get(b.id),a,l.I))),response:E.get(b.id)??{hourly:Array.from({length:m.A.responseHours},()=>null),p95:null,p50:null},days:new Map(f.flatMap(a=>{let b=A.get(a.id);return b?[[a.id,b]]:[]})),security:d?(0,u.Z)(d):null,database:F.get(b.id)??null,dbPaused:c?.data.dbPaused===!0,pageViews:(0,k.G)(c?.data),pageViewsNote:(0,k.R)({gone:null!==b.goneAt,teamId:v(b.meta.teamId),accountOk:"ok"===e,hasProductionDeploy:void 0!==q})}})}async function x(a,b){return(await w(b,a))[0]??null}async function y(a,c){let[d]=await (0,e.f)().select({id:f.resources.id,name:f.resources.name}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.id,a),(0,b.u)(f.resources.kind,"app"))).limit(1);return d?(await (0,e.f)().transaction(async e=>{let g=new Date;await e.update(f.resources).set({monitored:!1,updatedAt:g}).where((0,b.u)(f.resources.id,a)),await e.delete(f.monitors).where((0,b.u)(f.monitors.resourceId,a)),await e.delete(f.deployments).where((0,b.u)(f.deployments.resourceId,a)),await e.delete(f.snapshots).where((0,b.u)(f.snapshots.resourceId,a)),await e.delete(f.appSecurity).where((0,b.u)(f.appSecurity.resourceId,a)),await e.delete(f.resources).where((0,b.b)((0,b.u)(f.resources.kind,"domain"),(0,b.u)(f.resources.parentId,a))),await (0,q.f)([{type:"action",kind:"ok",message:`${d.name} removed from the console`,detail:null,resourceId:a,actorUserId:c}],e)}),{ok:!0,message:`${d.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."}}a.s(["Z",0,x,"G",0,w,"a",0,y])},858806,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(436357),g=a.i(910697);function h(a){return{id:a.id,externalId:a.externalId,state:a.state,target:a.target,branch:a.branch,commitSha:a.commitSha,commitMessage:a.commitMessage,url:a.url,createdAt:a.createdAtProvider,buildingAt:a.buildingAt,readyAt:a.readyAt,isCurrent:a.isCurrent,isPreviousProduction:a.isPreviousProduction}}async function i(a={}){return(await (0,d.f)().select({d:e.deployments,appName:e.resources.name,meta:e.resources.meta}).from(e.deployments).innerJoin(e.resources,(0,b.u)(e.resources.id,e.deployments.resourceId)).where((0,b.b)((0,b.u)(e.resources.monitored,!0),a.appId?(0,b.u)(e.deployments.resourceId,a.appId):void 0)).orderBy((0,c.A)(e.deployments.createdAtProvider)).limit(g.O.deployments)).map(({d:a,appName:b,meta:c})=>({...h(a),appId:a.resourceId,appName:b,primaryDomain:a.isCurrent&&"production"===a.target?(0,f.Y)(c)?.primaryDomain??null:null}))}async function j(a){let[f]=await (0,d.f)().select({id:e.deployments.externalId}).from(e.deployments).where((0,b.b)((0,b.u)(e.deployments.resourceId,a),(0,b.u)(e.deployments.isCurrent,!0),(0,b.u)(e.deployments.target,"production"))).orderBy((0,c.A)(e.deployments.createdAtProvider)).limit(1);return f?.id??null}async function k(a,c){let[f]=await (0,d.f)().select({id:e.deployments.id}).from(e.deployments).where((0,b.b)((0,b.u)(e.deployments.resourceId,a),(0,b.u)(e.deployments.externalId,c))).limit(1);return!!f}async function l(a,c){let[f]=await (0,d.f)().select({state:e.deployments.state}).from(e.deployments).where((0,b.b)((0,b.u)(e.deployments.resourceId,a),(0,b.u)(e.deployments.externalId,c))).limit(1);return f?.state??null}async function m(a){return(await (0,d.f)().select({d:e.deployments,appName:e.resources.name}).from(e.deployments).innerJoin(e.resources,(0,b.u)(e.resources.id,e.deployments.resourceId)).where((0,b.b)((0,b.u)(e.resources.monitored,!0),(0,b.u)(e.deployments.state,"building"),(0,b.B)(e.deployments.createdAtProvider,new Date(a.getTime()-36e5)))).orderBy((0,c.A)(e.deployments.createdAtProvider)).limit(g.O.ongoingBuilds)).map(({d:a,appName:b})=>({...h(a),appId:a.resourceId,appName:b}))}a.s(["R",0,j,"C",0,k,"p",0,l,"K",0,i,"O",0,m,"u",0,h])},850140,a=>{var b=a.i(436357);a.s(["f",0,function(a,c,d){let e=(0,b.Y)(a);if(!e)return{lines:[{name:d,tag:null,target:null}],more:0};let f=[e.primaryDomain,...e.domains.filter(a=>a!==e.primaryDomain)].filter((a,b,c)=>c.indexOf(a)===b),g=[...new Set(e.pastDomains)].filter(a=>!f.includes(a)).reverse(),h=f.map((a,b)=>{let d=c[a],e={name:a,target:d?.redirect?d.redirect.replace(/^https?:\/\//i,"").replace(/\/.*$/,"").toLowerCase():null};return 0===b?{...e,tag:f.length>1||g.length?"primary":null}:{...e,tag:d?.redirect?"redirect":d&&!d.verified?"pending":null}});return h.push(...g.slice(0,3).map(a=>({name:a,tag:"former",target:null}))),{lines:h,more:Math.max(0,g.length-3)}}])}]})();
2
+
3
+ //# sourceMappingURL=src_lib_1y5l54dwaet39._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[579739,a=>{"use strict";let b,c=()=>b??=Promise.all([a.A(372153),a.A(106706)]);async function d(a){let[{currentDemoVisitor:b},{withDemoDb:d}]=await c(),e=await b();return d(e.seed,a,e.email)}async function e(){let[{readDemoVisitor:a},{withDemoDb:b}]=await c(),d=await a();d&&await b(d.seed,async()=>void 0,d.email)}a.s(["demoPglite",0,{query:(a,b,c)=>d(d=>d.query(a,b,c)),exec:(a,b)=>d(c=>c.exec(a,b)),transaction:a=>d(b=>b.transaction(a))},"openDemoDb",0,e])},106706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0amfa4t2-in-x._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(601533)))}];
1
+ module.exports=[579739,a=>{"use strict";let b,c=()=>b??=Promise.all([a.A(372153),a.A(106706)]);async function d(a){let[{currentDemoVisitor:b},{withDemoDb:d}]=await c(),e=await b();return d(e.seed,a,e.email)}async function e(){let[{readDemoVisitor:a},{withDemoDb:b}]=await c(),d=await a();d&&await b(d.seed,async()=>void 0,d.email)}a.s(["demoPglite",0,{query:(a,b,c)=>d(d=>d.query(a,b,c)),exec:(a,b)=>d(c=>c.exec(a,b)),transaction:a=>d(b=>b.transaction(a))},"openDemoDb",0,e])},106706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__09j1po2u91fp3._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(601533)))}];
2
2
 
3
- //# sourceMappingURL=src_lib_demo_09ht4doed9eqi._.js.map
3
+ //# sourceMappingURL=src_lib_demo_0sbw5n9n4mpzx._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[589856,450278,751931,a=>{"use strict";var b=a.i(689963),c=a.i(26972),d=a.i(427221),e=a.i(811365),f=a.i(83931);let g=[/(^|\/)\.env(\.|$)/i,/\.(pem|key|p12|pfx|crt|cer|keystore|jks)$/i,/(^|\/)(id_rsa|id_ed25519)/i,/secret/i,/credential/i],h=[/(^|\/)(node_modules|\.next|dist|build|out|coverage|\.vercel|\.git)\//,/(package-lock\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lockb?)$/i],i=[/\.(png|jpe?g|gif|webp|ico|svg|pdf|zip|gz|woff2?|ttf|mp4|mp3|wasm)$/i];function j(a){return!a||a.split("/").includes("..")||g.some(b=>b.test(a))?"secret":h.some(b=>b.test(a))?"generated":i.some(b=>b.test(a))?"binary":null}function k(a,b){let c=a?/[?&]page=(\d+)[^>]*>;\s*rel="last"/.exec(a):null;return c?Number(c[1]):b}[...g,...h,...i],a.s(["M",0,{secret:"hidden (secret file)",generated:"hidden (generated file)",binary:"binary, not shown"},"Z",0,j],450278),a.s(["B",0,204800,"_",0,function(a){let b=a.split("/").slice(0,-1);return b.map((a,c)=>b.slice(0,c+1).join("/"))},"G",0,function(a,b=3e3){let c={name:"",path:"",kind:"dir",size:0,hidden:null,children:[]},d=new Map([["",c]]),e=0,f=!1,g=a=>{let b=d.get(a);if(b)return b;let c=a.lastIndexOf("/"),e=g(c<0?"":a.slice(0,c));if(!e||e.hidden)return null;let f=j(`${a}/x`),h={name:a.slice(c+1),path:a,kind:"dir",size:0,hidden:"binary"===f?null:f,children:[]};return e.children.push(h),d.set(a,h),h};for(let c of a){if(!c.path||c.path.startsWith("/")||c.path.split("/").some(a=>!a||"."===a||".."===a))continue;let a=c.path.lastIndexOf("/"),d=g(a<0?"":c.path.slice(0,a));if(d&&!d.hidden){if(e>=b){f=!0;continue}d.children.push({name:c.path.slice(a+1),path:c.path,kind:"file",size:c.size,hidden:j(c.path),children:[]}),e++}}let h=a=>{a.children.sort((a,b)=>a.kind===b.kind?a.name.toLowerCase().localeCompare(b.name.toLowerCase())||a.name.localeCompare(b.name):"dir"===a.kind?-1:1),a.children.forEach(h)};return h(c),{root:c,files:e,cut:f}},"s",0,k,"q",0,function(a,b){let c=j(a);if("secret"===c)return{kind:"hidden",reason:c};let d=b.find(b=>b.path===a);return d?c?{kind:"hidden",reason:c}:d.size>204800?{kind:"too-big",size:d.size}:{kind:"read",size:d.size}:{kind:"missing"}},"V",0,function(a,b){let c=new Map(b.map(a=>[a.id,a])),d=new Map;for(let b of a){let a=c.get(b.appId);if(!a)continue;let e=d.get(b.repoId)??[];e.some(b=>b.id===a.id)||e.push(a),d.set(b.repoId,e)}for(let a of d.values())a.sort((a,b)=>a.name.localeCompare(b.name));return d},"e",0,function(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(+(a<10240))} KB`:`${(a/1024/1024).toFixed(1)} MB`}],751931);var l=a.i(760417);let m=a=>({ok:!1,kind:"format",error:`GitHub answered ${a} in a format the console doesn't recognise.`}),n={ok:!1,kind:"format",error:"That isn't a repository name or ref."},o=a=>a&&a.startsWith("https://github.com/")?a:null;async function p(a,e={}){let f=new Map,g=b.z.array(c.z.object({full_name:d.z.string(),language:d.z.string().nullish()}));for(let b=1;b<=l.t;b++){let c=await (0,l.j)(`/user/repos?per_page=100&page=${b}&sort=pushed&affiliation=owner,collaborator,organization_member`,a,e);if(!c.ok)return c;let d=g.safeParse(c.data);if(!d.success)return m("the repository list");for(let a of d.data)a.language&&f.set(a.full_name.toLowerCase(),a.language.slice(0,40));if(d.data.length<100)break}return{ok:!0,data:f}}async function q(a,b,f={}){if(!(0,l.M)(b))return n;let[g,h]=await Promise.all([(0,l.j)(`/repos/${(0,l.f)(b)}`,a,f),(0,l.j)(`/repos/${(0,l.f)(b)}/pulls?state=open&per_page=1`,a,f)]);if(!g.ok)return g;let i=c.z.object({description:d.z.string().nullish(),language:d.z.string().nullish(),open_issues_count:e.z.number().nullish(),html_url:d.z.string().nullish()}).safeParse(g.data);if(!i.success)return m("the repository");let j=h.ok&&Array.isArray(h.data)?k(h.headers.get("link"),h.data.length):0;return{ok:!0,data:{description:i.data.description?.slice(0,300)??null,language:i.data.language??null,openIssuesAndPulls:i.data.open_issues_count??0,openPulls:j,htmlUrl:o(i.data.html_url)}}}async function r(a,b,f,g,h={}){if(!(0,l.M)(b)||!(0,l.c)(f))return n;let i=await (0,l.j)(`/repos/${(0,l.f)(b)}/readme?ref=${encodeURIComponent(f)}`,a,h);if(!i.ok)return"missing"===i.kind?{ok:!0,data:null}:i;let j=c.z.object({path:d.z.string(),size:e.z.number(),content:d.z.string().nullish(),encoding:d.z.string().nullish()}).safeParse(i.data);if(!j.success)return m("the README");if(j.data.size>g||"base64"!==j.data.encoding||!j.data.content)return{ok:!0,data:{path:j.data.path,text:null,size:j.data.size}};let k=Buffer.from(j.data.content,"base64").toString("utf8");return k.includes("\0")?{ok:!0,data:{path:j.data.path,text:null,size:j.data.size}}:{ok:!0,data:{path:j.data.path,text:k,size:j.data.size}}}async function s(a,c,d,e=20,f={}){if(!(0,l.M)(c)||!(0,l.c)(d))return n;let g=await (0,l.j)(`/repos/${(0,l.f)(c)}/commits?sha=${encodeURIComponent(d)}&per_page=${e}`,a,f);if(!g.ok)return g;let h=b.z.array(t).safeParse(g.data);return h.success?{ok:!0,data:h.data.map(u)}:m("the commits")}let t=c.z.object({sha:d.z.string(),html_url:d.z.string().nullish(),author:c.z.object({login:d.z.string()}).nullish(),commit:c.z.object({message:d.z.string(),author:c.z.object({name:d.z.string().nullish(),date:d.z.string().nullish()}).nullish()})}),u=a=>({sha:a.sha,title:a.commit.message.split("\n")[0].slice(0,200),author:(a.author?.login??a.commit.author?.name??null)?.slice(0,80)??null,at:a.commit.author?.date??null,url:o(a.html_url)});async function v(a,d,f,g,h={}){if(!(0,l.M)(d)||!/^[0-9a-f]{7,40}$/.test(f)||!/^[0-9a-f]{7,40}$/.test(g))return n;let i=await (0,l.j)(`/repos/${(0,l.f)(d)}/compare/${f}...${g}`,a,h);if(!i.ok)return i;let j=c.z.object({total_commits:e.z.number(),commits:b.z.array(t)}).safeParse(i.data);return j.success?{ok:!0,data:{commits:j.data.commits.map(u).reverse(),total:j.data.total_commits}}:m("the comparison")}async function w(a,e,g={}){if(!(0,l.M)(e))return n;let h=await (0,l.j)(`/repos/${(0,l.f)(e)}/branches?per_page=100`,a,g);if(!h.ok)return h;let i=b.z.array(c.z.object({name:d.z.string(),protected:f.z.boolean().nullish(),commit:c.z.object({sha:d.z.string()})})).safeParse(h.data);return i.success?{ok:!0,data:{branches:i.data.map(a=>({name:a.name,sha:a.commit.sha,protected:a.protected??!1})),more:/rel="next"/.test(h.headers.get("link")??"")}}:m("the branches")}async function x(a,f,g=10,h={}){if(!(0,l.M)(f))return n;let i=await (0,l.j)(`/repos/${(0,l.f)(f)}/actions/runs?per_page=${g}`,a,h);if(!i.ok)return i;let j=c.z.object({workflow_runs:b.z.array(c.z.object({id:e.z.number(),name:d.z.string().nullish(),display_title:d.z.string().nullish(),status:d.z.string().nullish(),conclusion:d.z.string().nullish(),head_branch:d.z.string().nullish(),event:d.z.string().nullish(),head_sha:d.z.string().nullish(),run_number:e.z.number().nullish(),updated_at:d.z.string().nullish(),created_at:d.z.string().nullish(),html_url:d.z.string().nullish()}))}).safeParse(i.data);return j.success?{ok:!0,data:j.data.workflow_runs.map(a=>({id:a.id,name:a.name??null,title:a.display_title?.slice(0,200)??null,status:a.status??"unknown",conclusion:a.conclusion??null,branch:a.head_branch??null,event:a.event??null,sha:a.head_sha??null,runNumber:a.run_number??null,at:a.updated_at??a.created_at??null,url:o(a.html_url)}))}:m("the Actions runs")}a.s(["n",0,w,"T",0,s,"e",0,v,"Q",0,r,"H",0,q,"S",0,p,"A",0,x],589856)}];
2
+
3
+ //# sourceMappingURL=src_lib_providers_github-browse_ts_1apskpn4fe9qr._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[338424,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114),g=a.i(271288),h=a.i(405050);let i=(0,h.createServerReference)("40682ba8a28a431f2e657c558dfb82f395c43592d0",h.callServer,void 0,h.findSourceMapURL,"saveOfficeAutoRollback");a.s(["AutoRollbackForm",0,function({saved:a,choices:h}){let[j,k]=(0,c.useState)(a),[l,m]=(0,c.useTransition)(),n=a=>{k(b=>({...b,...a})),m(async()=>{try{let b=await i(a);b.ok?(b.data&&k(b.data),d.c.success(b.message??"Saved.")):(k(j),d.c.error(b.error))}catch{k(j),d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})};return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(g.f,{checked:j.enabled,disabled:l,label:"Auto-rollback when a new deploy errors",onChange:a=>n({enabled:a})}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Auto-rollback when a new deploy errors (first ",(0,b.jsx)("span",{className:"font-mono",children:j.windowMin})," minutes)"]})]}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 text-[13px] text-ink-soft",children:["Window",(0,b.jsx)("select",{className:(0,f.f)(e.S,"w-auto py-1"),value:j.windowMin,disabled:l,"aria-label":"Auto-rollback window in minutes",onChange:a=>n({windowMin:Number(a.target.value)}),children:h.map(a=>(0,b.jsxs)("option",{value:a,children:[a," min"]},a))})]})]})}],338424)},719354,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(462007),f=a.i(271288),g=a.i(405050);let h=(0,g.createServerReference)("40148874c05af4057e24edaba03b37b920ae65bbed",g.callServer,void 0,g.findSourceMapURL,"saveOfficeAutoRun");a.s(["AutoRunForm",0,function({saved:a,rows:g}){let[i,j]=(0,c.useState)(a),[k,l]=(0,c.useTransition)();return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:["Action","Auto-run","What it does"]}),(0,b.jsx)("tbody",{children:g.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:e.z,children:a.label}),(0,b.jsx)("td",{className:e.z,children:a.risky?(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"selalu minta persetujuan"}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(f.f,{checked:i[a.kind],disabled:k,label:`Auto-run: ${a.label}`,onChange:b=>{var c;return c=a.kind,void(j(a=>({...a,[c]:b})),l(async()=>{try{let a=await h({[c]:b});a.ok?(a.data&&j(a.data),d.c.success(a.message??"Saved.")):(j(a=>({...a,[c]:!b})),d.c.error(a.error))}catch{j(a=>({...a,[c]:!b})),d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}))}}),(0,b.jsx)("span",{className:"text-[13px]",children:i[a.kind]?"On":"Off"})]})}),(0,b.jsx)("td",{className:`${e.z} whitespace-normal text-ink-soft`,children:a.what})]},a.kind))})]})})}],719354)},265758,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(271288),f=a.i(405050);let g=(0,f.createServerReference)("40693305696e570a9e62eeac1e01b15301901debaa",f.callServer,void 0,f.findSourceMapURL,"saveOfficeAutoSecurity"),h=[{level:"critical",label:"Critical"},{level:"high",label:"High"},{level:"moderate",label:"Moderate"}];a.s(["AutoSecurityForm",0,function({saved:a,rollbackOn:f}){let[i,j]=(0,c.useState)(a),[k,l]=(0,c.useTransition)(),m=a=>{j(b=>({...b,...a})),l(async()=>{try{let b=await g(a);b.ok?(b.data&&j(b.data),d.c.success(b.message??"Saved.")):(j(i),d.c.error(b.error))}catch{j(i),d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})};return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(e.f,{checked:i.enabled,disabled:k,label:"Automatic security fixes",onChange:a=>m({enabled:a})}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Automatic security fixes ",i.enabled?"on":"off"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{children:"For advisories:"}),h.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(e.f,{checked:i.severities.includes(a.level),disabled:k||!i.enabled,label:`Severity ${a.label}`,onChange:b=>{let c;return c=a.level,m({severities:h.map(a=>a.level).filter(a=>a===c?b:i.severities.includes(a))})}}),a.label]},a.level)),(0,b.jsx)("span",{children:"· major updates always wait for you"})]}),i.enabled&&!f&&(0,b.jsx)("p",{className:"rounded-md border border-line bg-surface-2 px-3 py-2 text-[13px] text-warn",role:"status",children:"Without auto-rollback, the PR is opened automatically but the merge waits for you."})]})}],265758)},527955,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("40d348a686685b6c41d45bd201145ab5593321934f",f.callServer,void 0,f.findSourceMapURL,"dismissAllNotes"),h=(0,f.createServerReference)("40afb05fcb02837269171008e42179d3fa3d20ad9e",f.callServer,void 0,f.findSourceMapURL,"dismissNote");a.s(["DismissAllNotesButton",0,function({ids:a}){let[f,h]=(0,c.useTransition)();return(0,b.jsx)(e.K,{variant:"ghost",size:"sm",disabled:f,onClick:()=>h(async()=>{try{let b=await g(a);b.ok?d.c.success(b.message??"Dismissed."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:f?"Dismissing…":`Dismiss all (${a.length})`})},"DismissNoteButton",0,function({id:a}){let[f,g]=(0,c.useTransition)();return(0,b.jsx)(e.K,{variant:"ghost",size:"sm",disabled:f,onClick:()=>g(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Dismissed."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:f?"Dismissing…":"Dismiss"})}],527955)},61024,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",f.callServer,void 0,f.findSourceMapURL,"regenerateSummary");a.s(["RegenerateButton",0,function({label:a}){let[f,h]=(0,c.useTransition)();return(0,b.jsx)(e.K,{variant:"ghost",size:"sm",disabled:f,className:"-my-0.5 px-1 py-0",onClick:()=>h(async()=>{try{let a=await g();a.ok?d.c.success(a.message??"Done."):d.c.error(a.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:f?"Working…":a})}],61024)},473944,a=>{var b=a.i(187924),c=a.i(402699);let d=(0,a.i(449862).f)("outline","message-2","Message2",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3",key:"svg-2"}]]);var e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(901615),i=a.i(405050);let j=(0,i.createServerReference)("40170e8924094791a6435c13b6b044b33f39cf0395",i.callServer,void 0,i.findSourceMapURL,"askAntigravity"),k=(0,i.createServerReference)("4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",i.callServer,void 0,i.findSourceMapURL,"askWhy");var l=a.i(295914),m=a.i(147474),n=a.i(368114);let o={brand:"border-l-brand",err:"border-l-err",warn:"border-l-warn-icon"};function p({icon:a,tone:c="brand",meta:d,action:e,className:f,children:g}){return(0,b.jsxs)("div",{className:(0,n.f)("flex gap-2.5 rounded-md border border-line border-l-[3px] bg-surface-2 px-3 py-2.5 text-[13px]",o[c],f),children:[(0,b.jsx)("span",{className:"mt-px shrink-0 text-brand",children:a}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[g,d&&(0,b.jsx)("span",{className:"mt-1 block text-[12px] text-ink-faint",children:d})]}),e&&(0,b.jsx)("div",{className:"shrink-0",children:e})]})}var q=a.i(700629);a.s(["WhyAi",0,function({appId:a,provider:i,question:n,nowMs:o,agConnected:r=!1}){let[s,t]=(0,e.useTransition)(),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),A=new Date(o),B=n?.status==="pending",C=b=>{z(null),v(b),t(async()=>{try{if("now"===b){let b=await k(a);b.ok&&b.data?x(b.data):b.ok||z(b.error)}else{let b=await j(a);b.ok?b.data?.status==="answered"&&b.data.text?x({text:b.data.text,model:b.data.model??"",ms:b.data.ms??0}):f.c.success(b.message??"Sent."):z(b.error)}}catch{z("Watchbell didn't answer. Check that it's still running, then try again.")}})};return(0,b.jsxs)("div",{className:"border-t border-line pt-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[r?(0,b.jsxs)(b.Fragment,{children:[i&&(0,b.jsxs)(g.K,{size:"sm",disabled:s,onClick:()=>C("now"),children:[(0,b.jsx)(d,{size:15,"aria-hidden":!0}),s&&"now"===u?"Asking…":`Answer now with ${i.model}`]}),(0,b.jsxs)(g.K,{size:"sm",disabled:s||B,onClick:()=>C("ag"),children:[(0,b.jsx)(d,{size:15,"aria-hidden":!0}),s&&"ag"===u?"Sending…":n&&"pending"!==n.status?h.v.askAgain:h.v.ask]})]}):i?(0,b.jsxs)(g.K,{size:"sm",disabled:s,onClick:()=>C("ag"),children:[(0,b.jsx)(d,{size:15,"aria-hidden":!0}),s?"Asking…":`Ask ${i.model}`]}):(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."}),s&&(0,b.jsx)(q.f,{})]}),(0,b.jsxs)("p",{className:"mt-1.5 text-[12px] text-ink-faint",children:["Sends the problems above with names aliased. ",r?`${i?"Answer now stores nothing; ":""}${h.v.keptNote}`:"The question and its answer are kept for 7 days on AI › Ask."]}),y&&(0,b.jsx)("p",{role:"alert",className:"mt-2 text-[13px] text-err",children:y}),w&&(0,b.jsxs)(p,{className:"mt-2.5",icon:(0,b.jsx)(d,{size:18,"aria-hidden":!0}),meta:`AI \xb7 ${w.model} \xb7 ${(w.ms/1e3).toFixed(1)} s \xb7 sent: the problems above, names aliased \xb7 can be wrong`,children:[(0,b.jsx)("b",{className:"font-medium",children:"What’s likely going on"}),(0,b.jsx)(l.f,{source:w.text})]}),n?.status==="pending"&&(0,b.jsx)(p,{className:"mt-2.5",icon:(0,b.jsx)(c.f,{size:18,className:"animate-spin","aria-hidden":!0}),meta:`Asked ${(0,m.$)(new Date(n.createdAt),A)} \xb7 it answers when it next checks in; this page refreshes by itself`,children:(0,b.jsx)("p",{role:"status",children:h.I.waiting})}),n?.status==="answered"&&n.answer&&(0,b.jsxs)(p,{className:"mt-2.5",icon:(0,b.jsx)(d,{size:18,"aria-hidden":!0}),meta:`AI \xb7 ${[n.client,n.model].filter(Boolean).join(" · ")||h.v.answeredFallback} \xb7 ${n.answeredAt?(0,m.$)(new Date(n.answeredAt),A):""} \xb7 sent: the problems above, names aliased \xb7 written by an agent, can be wrong`,children:[(0,b.jsx)("b",{className:"font-medium",children:"watchpost"===n.client?"The answer":h.v.answerTitle}),(0,b.jsx)(l.f,{source:n.answer})]}),n?.status==="expired"&&(0,b.jsxs)("p",{className:"mt-2.5 text-[12.5px] text-ink-soft",children:[h.v.expired((0,m.$)(new Date(n.createdAt),A))," Check that an agent is connected under AI Gateway › Connect an agent."]})]})}],473944)}]})();
1
+ (()=>{"use strict";module.exports=[338424,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114),g=a.i(271288),h=a.i(405050);let i=(0,h.createServerReference)("4047dbbe76d68ea8fd562e28b4393492c88e999be9",h.callServer,void 0,h.findSourceMapURL,"saveOfficeAutoRollback");a.s(["AutoRollbackForm",0,function({saved:a,choices:h}){let[j,k]=(0,c.useState)(a),[l,m]=(0,c.useTransition)(),n=a=>{k(b=>({...b,...a})),m(async()=>{try{let b=await i(a);b.ok?(b.data&&k(b.data),d.c.success(b.message??"Saved.")):(k(j),d.c.error(b.error))}catch{k(j),d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})};return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(g.f,{checked:j.enabled,disabled:l,label:"Auto-rollback when a new deploy errors",onChange:a=>n({enabled:a})}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Auto-rollback when a new deploy errors (first ",(0,b.jsx)("span",{className:"font-mono",children:j.windowMin})," minutes)"]})]}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 text-[13px] text-ink-soft",children:["Window",(0,b.jsx)("select",{className:(0,f.f)(e.S,"w-auto py-1"),value:j.windowMin,disabled:l,"aria-label":"Auto-rollback window in minutes",onChange:a=>n({windowMin:Number(a.target.value)}),children:h.map(a=>(0,b.jsxs)("option",{value:a,children:[a," min"]},a))})]})]})}],338424)},719354,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(462007),f=a.i(271288),g=a.i(405050);let h=(0,g.createServerReference)("404ec6568b2c4cd8ff178d784c2a9d3b09e75e94b2",g.callServer,void 0,g.findSourceMapURL,"saveOfficeAutoRun");a.s(["AutoRunForm",0,function({saved:a,rows:g}){let[i,j]=(0,c.useState)(a),[k,l]=(0,c.useTransition)();return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:["Action","Auto-run","What it does"]}),(0,b.jsx)("tbody",{children:g.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:e.z,children:a.label}),(0,b.jsx)("td",{className:e.z,children:a.risky?(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"selalu minta persetujuan"}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(f.f,{checked:i[a.kind],disabled:k,label:`Auto-run: ${a.label}`,onChange:b=>{var c;return c=a.kind,void(j(a=>({...a,[c]:b})),l(async()=>{try{let a=await h({[c]:b});a.ok?(a.data&&j(a.data),d.c.success(a.message??"Saved.")):(j(a=>({...a,[c]:!b})),d.c.error(a.error))}catch{j(a=>({...a,[c]:!b})),d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}))}}),(0,b.jsx)("span",{className:"text-[13px]",children:i[a.kind]?"On":"Off"})]})}),(0,b.jsx)("td",{className:`${e.z} whitespace-normal text-ink-soft`,children:a.what})]},a.kind))})]})})}],719354)},265758,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(271288),f=a.i(405050);let g=(0,f.createServerReference)("4022df03834ca4726f4595c647a3da6b0dbb8010e0",f.callServer,void 0,f.findSourceMapURL,"saveOfficeAutoSecurity"),h=[{level:"critical",label:"Critical"},{level:"high",label:"High"},{level:"moderate",label:"Moderate"}];a.s(["AutoSecurityForm",0,function({saved:a,rollbackOn:f}){let[i,j]=(0,c.useState)(a),[k,l]=(0,c.useTransition)(),m=a=>{j(b=>({...b,...a})),l(async()=>{try{let b=await g(a);b.ok?(b.data&&j(b.data),d.c.success(b.message??"Saved.")):(j(i),d.c.error(b.error))}catch{j(i),d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})};return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(e.f,{checked:i.enabled,disabled:k,label:"Automatic security fixes",onChange:a=>m({enabled:a})}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Automatic security fixes ",i.enabled?"on":"off"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{children:"For advisories:"}),h.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(e.f,{checked:i.severities.includes(a.level),disabled:k||!i.enabled,label:`Severity ${a.label}`,onChange:b=>{let c;return c=a.level,m({severities:h.map(a=>a.level).filter(a=>a===c?b:i.severities.includes(a))})}}),a.label]},a.level)),(0,b.jsx)("span",{children:"· major updates always wait for you"})]}),i.enabled&&!f&&(0,b.jsx)("p",{className:"rounded-md border border-line bg-surface-2 px-3 py-2 text-[13px] text-warn",role:"status",children:"Without auto-rollback, the PR is opened automatically but the merge waits for you."})]})}],265758)},527955,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("40525cf82ed9161b1eb6d018ef3af7375e75a01e15",f.callServer,void 0,f.findSourceMapURL,"dismissAllNotes"),h=(0,f.createServerReference)("40353282b4606a9c14f2c6411ccd58ddb348c82ae2",f.callServer,void 0,f.findSourceMapURL,"dismissNote");a.s(["DismissAllNotesButton",0,function({ids:a}){let[f,h]=(0,c.useTransition)();return(0,b.jsx)(e.K,{variant:"ghost",size:"sm",disabled:f,onClick:()=>h(async()=>{try{let b=await g(a);b.ok?d.c.success(b.message??"Dismissed."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:f?"Dismissing…":`Dismiss all (${a.length})`})},"DismissNoteButton",0,function({id:a}){let[f,g]=(0,c.useTransition)();return(0,b.jsx)(e.K,{variant:"ghost",size:"sm",disabled:f,onClick:()=>g(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Dismissed."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:f?"Dismissing…":"Dismiss"})}],527955)},61024,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("001756ffd8c17709708ab1d705204c7e891b726848",f.callServer,void 0,f.findSourceMapURL,"regenerateSummary");a.s(["RegenerateButton",0,function({label:a}){let[f,h]=(0,c.useTransition)();return(0,b.jsx)(e.K,{variant:"ghost",size:"sm",disabled:f,className:"-my-0.5 px-1 py-0",onClick:()=>h(async()=>{try{let a=await g();a.ok?d.c.success(a.message??"Done."):d.c.error(a.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:f?"Working…":a})}],61024)},473944,a=>{var b=a.i(187924),c=a.i(402699);let d=(0,a.i(449862).f)("outline","message-2","Message2",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M9 18h-3a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-3l-3 3l-3 -3",key:"svg-2"}]]);var e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(901615),i=a.i(405050);let j=(0,i.createServerReference)("403f15382b1c742a6274c489c4be00006935f67f84",i.callServer,void 0,i.findSourceMapURL,"askAntigravity"),k=(0,i.createServerReference)("40e70cdef106264c3c0d4237d129a5f0b768c6cbfc",i.callServer,void 0,i.findSourceMapURL,"askWhy");var l=a.i(295914),m=a.i(147474),n=a.i(368114);let o={brand:"border-l-brand",err:"border-l-err",warn:"border-l-warn-icon"};function p({icon:a,tone:c="brand",meta:d,action:e,className:f,children:g}){return(0,b.jsxs)("div",{className:(0,n.f)("flex gap-2.5 rounded-md border border-line border-l-[3px] bg-surface-2 px-3 py-2.5 text-[13px]",o[c],f),children:[(0,b.jsx)("span",{className:"mt-px shrink-0 text-brand",children:a}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[g,d&&(0,b.jsx)("span",{className:"mt-1 block text-[12px] text-ink-faint",children:d})]}),e&&(0,b.jsx)("div",{className:"shrink-0",children:e})]})}var q=a.i(700629);a.s(["WhyAi",0,function({appId:a,provider:i,question:n,nowMs:o,agConnected:r=!1}){let[s,t]=(0,e.useTransition)(),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),A=new Date(o),B=n?.status==="pending",C=b=>{z(null),v(b),t(async()=>{try{if("now"===b){let b=await k(a);b.ok&&b.data?x(b.data):b.ok||z(b.error)}else{let b=await j(a);b.ok?b.data?.status==="answered"&&b.data.text?x({text:b.data.text,model:b.data.model??"",ms:b.data.ms??0}):f.c.success(b.message??"Sent."):z(b.error)}}catch{z("Watchbell didn't answer. Check that it's still running, then try again.")}})};return(0,b.jsxs)("div",{className:"border-t border-line pt-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[r?(0,b.jsxs)(b.Fragment,{children:[i&&(0,b.jsxs)(g.K,{size:"sm",disabled:s,onClick:()=>C("now"),children:[(0,b.jsx)(d,{size:15,"aria-hidden":!0}),s&&"now"===u?"Asking…":`Answer now with ${i.model}`]}),(0,b.jsxs)(g.K,{size:"sm",disabled:s||B,onClick:()=>C("ag"),children:[(0,b.jsx)(d,{size:15,"aria-hidden":!0}),s&&"ag"===u?"Sending…":n&&"pending"!==n.status?h.v.askAgain:h.v.ask]})]}):i?(0,b.jsxs)(g.K,{size:"sm",disabled:s,onClick:()=>C("ag"),children:[(0,b.jsx)(d,{size:15,"aria-hidden":!0}),s?"Asking…":`Ask ${i.model}`]}):(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."}),s&&(0,b.jsx)(q.f,{})]}),(0,b.jsxs)("p",{className:"mt-1.5 text-[12px] text-ink-faint",children:["Sends the problems above with names aliased. ",r?`${i?"Answer now stores nothing; ":""}${h.v.keptNote}`:"The question and its answer are kept for 7 days on AI › Ask."]}),y&&(0,b.jsx)("p",{role:"alert",className:"mt-2 text-[13px] text-err",children:y}),w&&(0,b.jsxs)(p,{className:"mt-2.5",icon:(0,b.jsx)(d,{size:18,"aria-hidden":!0}),meta:`AI \xb7 ${w.model} \xb7 ${(w.ms/1e3).toFixed(1)} s \xb7 sent: the problems above, names aliased \xb7 can be wrong`,children:[(0,b.jsx)("b",{className:"font-medium",children:"What’s likely going on"}),(0,b.jsx)(l.f,{source:w.text})]}),n?.status==="pending"&&(0,b.jsx)(p,{className:"mt-2.5",icon:(0,b.jsx)(c.f,{size:18,className:"animate-spin","aria-hidden":!0}),meta:`Asked ${(0,m.$)(new Date(n.createdAt),A)} \xb7 it answers when it next checks in; this page refreshes by itself`,children:(0,b.jsx)("p",{role:"status",children:h.I.waiting})}),n?.status==="answered"&&n.answer&&(0,b.jsxs)(p,{className:"mt-2.5",icon:(0,b.jsx)(d,{size:18,"aria-hidden":!0}),meta:`AI \xb7 ${[n.client,n.model].filter(Boolean).join(" · ")||h.v.answeredFallback} \xb7 ${n.answeredAt?(0,m.$)(new Date(n.answeredAt),A):""} \xb7 sent: the problems above, names aliased \xb7 written by an agent, can be wrong`,children:[(0,b.jsx)("b",{className:"font-medium",children:"watchpost"===n.client?"The answer":h.v.answerTitle}),(0,b.jsx)(l.f,{source:n.answer})]}),n?.status==="expired"&&(0,b.jsxs)("p",{className:"mt-2.5 text-[12.5px] text-ink-soft",children:[h.v.expired((0,m.$)(new Date(n.createdAt),A))," Check that an agent is connected under AI Gateway › Connect an agent."]})]})}],473944)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_private_0iy_wyg2p1jkn._.js.map
@@ -0,0 +1,5 @@
1
+ (()=>{"use strict";module.exports=[109336,a=>{var b=a.i(312573),c=a.i(323878);let d={name:"ai-assist",max:20,windowSeconds:600};async function e(a){let e=await (0,c.C)(d,a);return e.allowed?null:`Too many AI requests. Try again in ${(0,b.H)(e.retryAfter)}.`}a.s(["A",0,e,"W",0,function(a){return a instanceof Error&&"GatewayError"===a.name?a.message.slice(0,300):"The AI provider couldn't answer. Try again."}])},918962,a=>{var b=a.i(484458),c=a.i(363652),d=a.i(501634),e=a.i(502330);async function f(a,b={}){let h=b.now??new Date,i=(0,e.u)(await (0,d.V)(h),a);if(b.context){let a=i[i.length-1];a.content=`${a.content}
2
+
3
+ Context: ${(0,e.O)(b.context,Math.min(b.contextMax??2e3,4e3))}`}let j=await (0,c.X)(i,{...b.model?{model:b.model,...b.fallback?{fallback:!0}:{}}:{},purpose:"console-chat",maxTokens:1500}),k=j.text.trim();if(!k)throw new g;return{text:k.length>8e3?`${k.slice(0,7999)}…`:k,model:j.model,ms:j.ms}}class g extends Error{constructor(){super("The model returned no text. Try again."),this.name="GatewayError"}}async function h(a=new Date){let[d,e]=await Promise.all([(0,b.y)(a).catch(()=>null),(0,c.M)().then(()=>!0,()=>!1)]),f=!!d&&(0,b.U)(d.report,a);return{agConnected:f,agEnabled:f&&d?(0,b._)(d.report,d.prefs,d.allowed):[],providerReady:e}}a.s(["q",0,"watchpost","L",0,f,"c",0,h])},779704,a=>{var b=a.i(93321),c=a.i(548734),d=a.i(837137),e=a.i(86657),f=a.i(502330),g=a.i(666680),h=a.i(26972),i=a.i(427221),j=a.i(811365);let k="advisor.ai_summary",l=h.z.object({text:i.z.string().min(1).max(1200),model:i.z.string().max(200),at:i.z.string(),count:j.z.number().int().min(0),hash:i.z.string().length(64)});function m(a){let b=a.map(a=>`${a.severity}\0${a.app}\0${a.title}`).sort();return(0,g.createHash)("sha256").update(b.join("\x01")).digest("hex")}async function n(){let[a]=await (0,c.f)().select({value:d.settings.value}).from(d.settings).where((0,b.u)(d.settings.key,k)).limit(1),e=l.safeParse(a?.value);return e.success?e.data:null}async function o(a,b){var g,h;if(!await e.f.provider())return{status:"no-provider"};let i=await e.f.advice(a),j=(g=await n(),h=b.force,i.length?!h&&g&&g.hash===m(i)?"skip-unchanged":"run":"skip-empty");if("skip-empty"===j)return{status:"empty"};if("skip-unchanged"===j)return{status:"unchanged"};let l=await e.f.complete((0,f.N)(i),{purpose:"summary",maxTokens:400}),o=l.text.trim().slice(0,1200);if(!o)throw Error("The model returned no text.");let p={text:o,model:l.model.slice(0,200),at:a.toISOString(),count:i.length,hash:m(i)};return await (0,c.f)().insert(d.settings).values({key:k,value:p}).onConflictDoUpdate({target:d.settings.key,set:{value:p,updatedAt:a}}),{status:"stored",summary:p}}a.s(["h",0,n,"E",0,o],779704)},920274,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(142754);let g=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,h=a=>g.test(a);async function i(a,g=new Date){let j=null,k=new Map;if(void 0!==a){if(!h(a))return[];let[c]=await (0,d.f)().select({name:e.resources.name}).from(e.resources).where((0,b.u)(e.resources.id,a)).limit(1);j=c?[a,c.name]:[a],c&&(k=new Map([[a,c.name]]))}let l=new Date(g.getTime()-2592e6),m=(0,b.b)((0,b.M)(f.c.dismissedAt),(0,b.B)(f.c.createdAt,l)),n=await (0,d.f)().select({id:f.c.id,appId:f.c.appId,severity:f.c.severity,title:f.c.title,body:f.c.body,source:f.c.source,client:f.c.client,model:f.c.model,createdAt:f.c.createdAt}).from(f.c).where(j?(0,b.b)(m,(0,b.y)(f.c.appId,j)):m).orderBy((0,c.A)(f.c.createdAt)).limit(20);if(void 0===a){let a=[...new Set(n.map(a=>a.appId).filter(a=>!!a&&h(a)))];a.length&&(k=new Map((await (0,d.f)().select({id:e.resources.id,name:e.resources.name}).from(e.resources).where((0,b.y)(e.resources.id,a)).limit(a.length)).map(a=>[a.id,a.name])))}return n.map(a=>({id:a.id,appId:a.appId,appName:a.appId?k.get(a.appId)??(h(a.appId)?null:a.appId):null,severity:a.severity,title:a.title,body:a.body,from:a.client||a.source,model:a.model,at:a.createdAt}))}async function j(a,c,e){let[g]=await (0,d.f)().update(f.c).set({dismissedAt:e,dismissedBy:c}).where((0,b.b)((0,b.u)(f.c.id,a),(0,b.M)(f.c.dismissedAt))).returning({id:f.c.id,title:f.c.title,appId:f.c.appId,source:f.c.source,client:f.c.client});return g?{id:g.id,title:g.title,appId:g.appId,from:g.client||g.source}:null}async function k(a,c,e){return a.length?(await (0,d.f)().update(f.c).set({dismissedAt:e,dismissedBy:c}).where((0,b.b)((0,b.y)(f.c.id,a.slice(0,20)),(0,b.M)(f.c.dismissedAt))).returning({id:f.c.id})).length:0}a.s(["Z",0,20,"$",0,j,"d",0,k,"b",0,h,"N",0,i])}]})();
4
+
5
+ //# sourceMappingURL=src_private_1b8918m4jsjpi._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[5862,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(368114),f=a.i(405050);let g=(0,f.createServerReference)("60d122776d99a003fa16739f7845e4851c360a30c1",f.callServer,void 0,f.findSourceMapURL,"decideProposalForm");a.s(["DecideForm",0,function({id:a}){let[f,h,i]=(0,c.useActionState)(g,null);return(0,b.jsxs)("form",{action:h,className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{type:"hidden",name:"id",value:a}),(0,b.jsx)("button",{type:"submit",name:"decision",value:"approve",disabled:i,className:(0,d.R)({variant:"primary",size:"sm"}),children:"Approve"}),(0,b.jsx)("button",{type:"submit",name:"decision",value:"reject",disabled:i,className:(0,d.R)({size:"sm"}),children:"Reject"}),i&&(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",role:"status",children:"Working…"}),!i&&f&&(0,b.jsx)("span",{className:(0,e.f)("text-[12.5px]",f.ok?"text-ink-soft":"text-err"),role:f.ok?"status":"alert",children:f.ok?f.message:f.error})]})}],5862)}];
1
+ module.exports=[5862,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(368114),f=a.i(405050);let g=(0,f.createServerReference)("60ebbef26bf2c117fb9219acb4fec99f49c01ea1e6",f.callServer,void 0,f.findSourceMapURL,"decideProposalForm");a.s(["DecideForm",0,function({id:a}){let[f,h,i]=(0,c.useActionState)(g,null);return(0,b.jsxs)("form",{action:h,className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{type:"hidden",name:"id",value:a}),(0,b.jsx)("button",{type:"submit",name:"decision",value:"approve",disabled:i,className:(0,d.R)({variant:"primary",size:"sm"}),children:"Approve"}),(0,b.jsx)("button",{type:"submit",name:"decision",value:"reject",disabled:i,className:(0,d.R)({size:"sm"}),children:"Reject"}),i&&(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",role:"status",children:"Working…"}),!i&&f&&(0,b.jsx)("span",{className:(0,e.f)("text-[12.5px]",f.ok?"text-ink-soft":"text-err"),role:f.ok?"status":"alert",children:f.ok?f.message:f.error})]})}],5862)}];
2
2
 
3
3
  //# sourceMappingURL=src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[804224,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(379416),e=a.i(26972),f=a.i(427221),g=a.i(83931),h=a.i(600079),i=a.i(109307),j=a.i(312573),k=a.i(323878),l=a.i(601219),m=a.i(931256),n=a.i(711672),o=a.i(208683),p=a.i(713095);let q={requireActionMember:i.g},r=d.z.uuid(),s=e.z.object({apiKey:f.z.string().max(500).optional(),accountId:f.z.string().max(64).optional(),baseUrl:f.z.string().max(300).optional(),name:f.z.string().max(60).optional(),makeDefault:g.z.boolean().optional()});function t(){for(let a of["/ai","/ai/providers","/ai/models","/ai/quota","/ai/playground"])(0,c.revalidatePath)(a)}async function u(a,b,c,d){try{await (0,l.f)([{type:"action",kind:"ok",message:b.slice(0,200),detail:`provider ${c}`,resourceId:null,actorUserId:d,reason:a}])}catch{console.warn("provider audit failed")}}let v=a=>a.ok?{ok:!0,message:a.message}:{ok:!1,error:a.error,fieldErrors:a.fieldErrors},w={ok:!1,error:"That connection no longer exists."};async function x(a){let b=await (0,k.C)(j.t.credential,a);return b.allowed?null:{ok:!1,error:`Too many connection tests. Try again in ${(0,j.H)(b.retryAfter)}.`}}async function y(a,b){return(0,h.F)("owner",async c=>{let d=s.safeParse(b);if(!d.success)return{ok:!1,error:"Check the fields."};let e=await x(c.id);if(e)return e;let f=await n.u(a,d.data);if(f.ok){t();let b="custom"===a?d.data.name?.trim()||"Custom":(0,m.W)(a)?m.M[a].name:a;await u("AiProviderConnected",`AI provider connected: ${b}`,a,c.userId)}return f},q)}async function z(a,b){return(0,h.F)("owner",async c=>{let d=s.safeParse(b);if(!r.safeParse(a).success||!d.success)return w;let e=await x(c.id);if(e)return e;let f=await n.Q(a,d.data);return f.ok?(t(),f.data&&await u("AiProviderKeyReplaced",`AI provider key replaced: ${f.data.name}`,f.data.kind,c.userId),{ok:!0,message:f.message,data:{models:f.data?.models??[]}}):v(f)},q)}async function A(a){return(0,h.F)("owner",async b=>{if(!r.safeParse(a).success)return w;let c=await x(b.id);if(c)return c;let d=await n.q(a);return t(),d},q)}async function B(a,b){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success)return w;let c=await n.k(a,!0===b);return t(),c},q)}async function C(a){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success)return w;let b=await n.E(a);return t(),b},q)}async function D(a){return(0,h.F)("owner",async b=>{if(!r.safeParse(a).success)return w;let c=await n.s(a);return t(),c.ok&&c.data&&await u("AiProviderRemoved",`AI provider removed: ${c.data.name}`,c.data.kind,b.userId),v(c)},q)}async function E(a,b,c){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success||"string"!=typeof b||b.length>200)return w;let d=await n.V(a,b,!0===c);return t(),d},q)}async function F(a,b){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success)return w;let c=await n.F(a,b);return t(),c},q)}let G={ok:!1,error:"Use 1–120 letters, digits or . _ : / @ - for the model id."};async function H(a){let b=await (0,k.C)(j.t.monitorWrite,a);return b.allowed?null:{ok:!1,error:`Too many changes. Try again in ${(0,j.H)(b.retryAfter)}.`}}function I(a){let b="string"==typeof a?a.trim():"";return o.a.test(b)?b:null}async function J(a,b){return(0,h.F)("owner",async c=>{let d=I(b);if(!d)return G;if(!r.safeParse(a).success)return w;let e=await H(c.id);if(e)return e;let f=await n.z(a,d);return f.ok&&(t(),f.data&&await u("AiModelAdded",`AI model added on ${f.data.name}: ${d}`,"custom",c.userId)),v(f)},q)}async function K(a,b){return(0,h.F)("owner",async c=>{let d=I(b);if(!d)return G;if(!r.safeParse(a).success)return w;let e=await H(c.id);if(e)return e;let f=await n.O(a,d);return f.ok&&(t(),f.data&&await u("AiModelRemoved",`AI model removed from ${f.data.name}: ${d}`,"custom",c.userId)),v(f)},q)}(0,p.ensureServerEntryExports)([y,z,A,B,C,D,E,F,J,K]),(0,b.registerServerReference)(y,"60c204c3e0eed17c0703b5924dbddded8ce6846a1f",null),(0,b.registerServerReference)(z,"60178f95e56fc4ce26360ddffd664131c848e0bd3c",null),(0,b.registerServerReference)(A,"4030f0bda9064c3c87028f8a365e392cf7cd949165",null),(0,b.registerServerReference)(B,"60eedc1b79353a4c18e7b4583389df1b8aa0b0f1db",null),(0,b.registerServerReference)(C,"40661896ffd489fce1c0e5b7b7b66adccb0dcb3e96",null),(0,b.registerServerReference)(D,"402f8e63c2bacd0927432b019f7a300b20f2bdd54a",null),(0,b.registerServerReference)(E,"700a32dcec107708a274a46919ef57e9ccb1bbf28b",null),(0,b.registerServerReference)(F,"60f8fbba2cc4627ee396111f7518a191768f95d732",null),(0,b.registerServerReference)(J,"60408d7fe309e69adfc8e186be307ecde7e787517e",null),(0,b.registerServerReference)(K,"60183f97bf4ffc829dd489de3a8170ec212d33a765",null),a.s(["z",0,J,"E",0,y,"d",0,C,"O",0,K,"a",0,D,"g",0,z,"e",0,B,"N",0,A])}];
1
+ module.exports=[804224,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(379416),e=a.i(26972),f=a.i(427221),g=a.i(83931),h=a.i(600079),i=a.i(109307),j=a.i(312573),k=a.i(323878),l=a.i(601219),m=a.i(931256),n=a.i(711672),o=a.i(208683),p=a.i(713095);let q={requireActionMember:i.g},r=d.z.uuid(),s=e.z.object({apiKey:f.z.string().max(500).optional(),accountId:f.z.string().max(64).optional(),baseUrl:f.z.string().max(300).optional(),name:f.z.string().max(60).optional(),makeDefault:g.z.boolean().optional()});function t(){for(let a of["/ai","/ai/providers","/ai/models","/ai/quota","/ai/playground"])(0,c.revalidatePath)(a)}async function u(a,b,c,d){try{await (0,l.f)([{type:"action",kind:"ok",message:b.slice(0,200),detail:`provider ${c}`,resourceId:null,actorUserId:d,reason:a}])}catch{console.warn("provider audit failed")}}let v=a=>a.ok?{ok:!0,message:a.message}:{ok:!1,error:a.error,fieldErrors:a.fieldErrors},w={ok:!1,error:"That connection no longer exists."};async function x(a){let b=await (0,k.C)(j.t.credential,a);return b.allowed?null:{ok:!1,error:`Too many connection tests. Try again in ${(0,j.H)(b.retryAfter)}.`}}async function y(a,b){return(0,h.F)("owner",async c=>{let d=s.safeParse(b);if(!d.success)return{ok:!1,error:"Check the fields."};let e=await x(c.id);if(e)return e;let f=await n.u(a,d.data);if(f.ok){t();let b="custom"===a?d.data.name?.trim()||"Custom":(0,m.W)(a)?m.M[a].name:a;await u("AiProviderConnected",`AI provider connected: ${b}`,a,c.userId)}return f},q)}async function z(a,b){return(0,h.F)("owner",async c=>{let d=s.safeParse(b);if(!r.safeParse(a).success||!d.success)return w;let e=await x(c.id);if(e)return e;let f=await n.Q(a,d.data);return f.ok?(t(),f.data&&await u("AiProviderKeyReplaced",`AI provider key replaced: ${f.data.name}`,f.data.kind,c.userId),{ok:!0,message:f.message,data:{models:f.data?.models??[]}}):v(f)},q)}async function A(a){return(0,h.F)("owner",async b=>{if(!r.safeParse(a).success)return w;let c=await x(b.id);if(c)return c;let d=await n.q(a);return t(),d},q)}async function B(a,b){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success)return w;let c=await n.k(a,!0===b);return t(),c},q)}async function C(a){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success)return w;let b=await n.E(a);return t(),b},q)}async function D(a){return(0,h.F)("owner",async b=>{if(!r.safeParse(a).success)return w;let c=await n.s(a);return t(),c.ok&&c.data&&await u("AiProviderRemoved",`AI provider removed: ${c.data.name}`,c.data.kind,b.userId),v(c)},q)}async function E(a,b,c){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success||"string"!=typeof b||b.length>200)return w;let d=await n.V(a,b,!0===c);return t(),d},q)}async function F(a,b){return(0,h.F)("owner",async()=>{if(!r.safeParse(a).success)return w;let c=await n.F(a,b);return t(),c},q)}let G={ok:!1,error:"Use 1–120 letters, digits or . _ : / @ - for the model id."};async function H(a){let b=await (0,k.C)(j.t.monitorWrite,a);return b.allowed?null:{ok:!1,error:`Too many changes. Try again in ${(0,j.H)(b.retryAfter)}.`}}function I(a){let b="string"==typeof a?a.trim():"";return o.a.test(b)?b:null}async function J(a,b){return(0,h.F)("owner",async c=>{let d=I(b);if(!d)return G;if(!r.safeParse(a).success)return w;let e=await H(c.id);if(e)return e;let f=await n.z(a,d);return f.ok&&(t(),f.data&&await u("AiModelAdded",`AI model added on ${f.data.name}: ${d}`,"custom",c.userId)),v(f)},q)}async function K(a,b){return(0,h.F)("owner",async c=>{let d=I(b);if(!d)return G;if(!r.safeParse(a).success)return w;let e=await H(c.id);if(e)return e;let f=await n.O(a,d);return f.ok&&(t(),f.data&&await u("AiModelRemoved",`AI model removed from ${f.data.name}: ${d}`,"custom",c.userId)),v(f)},q)}(0,p.ensureServerEntryExports)([y,z,A,B,C,D,E,F,J,K]),(0,b.registerServerReference)(y,"601c525ca0ba907d6b0763ba87513273eb696a4145",null),(0,b.registerServerReference)(z,"6056d6d528aa6e24b4bbfd460da4bda69a1f26dbb8",null),(0,b.registerServerReference)(A,"407a2e8fc7f99bbc4fdaad227a7cf1e5ce322d6dcc",null),(0,b.registerServerReference)(B,"605a553edcf8d3eca83d67db3202aa9bf912c35074",null),(0,b.registerServerReference)(C,"40194e988d8cacd45da47b6142de60e88129dd50a3",null),(0,b.registerServerReference)(D,"40b942a2d4e5ebef3620dcb3984842c399d2e2396e",null),(0,b.registerServerReference)(E,"7026d0f27c7086de7ad085b44e8c935acfab74728b",null),(0,b.registerServerReference)(F,"604281cfce39a7bfb0c6229590e84fbdaa71406487",null),(0,b.registerServerReference)(J,"6070d89a9eee797db9a686f7eb2faa8407e5760e41",null),(0,b.registerServerReference)(K,"603c13cb8868e016b2f0ca78de89a8171176d14f1f",null),a.s(["z",0,J,"E",0,y,"d",0,C,"O",0,K,"a",0,D,"g",0,z,"e",0,B,"N",0,A])}];
2
2
 
3
3
  //# sourceMappingURL=src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[861600,294965,598513,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(600079),e=a.i(109307),f=a.i(221084),g=a.i(312573),h=a.i(323878),i=a.i(920274),j=a.i(713095);async function k(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!(0,i.b)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=await (0,h.C)(g.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};let e=await (0,i.$)(a,b.userId,new Date);if(!e)return{ok:!1,error:"That note was already dismissed."};try{await (0,f.f)({kind:"ok",message:`AI note dismissed: ${e.title.slice(0,120)}`,detail:`AiNoteDismissed \xb7 from ${e.from.slice(0,60)}`,resourceId:e.appId&&(0,i.b)(e.appId)?e.appId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:"Note dismissed."}},{requireActionMember:e.g},"local")}async function l(a){return(0,d.F)("owner",async b=>{if(!Array.isArray(a)||!a.length||a.length>i.Z||!a.every(a=>"string"==typeof a&&(0,i.b)(a)))return{ok:!1,error:"Something in that request wasn't valid."};let d=await (0,h.C)(g.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};let e=await (0,i.d)([...new Set(a)],b.userId,new Date);if(!e)return{ok:!1,error:"Those notes were already dismissed."};try{await (0,f.f)({kind:"ok",message:`${e} AI ${1===e?"note":"notes"} dismissed`,detail:"AiNotesDismissed",resourceId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:1===e?"Note dismissed.":`${e} notes dismissed.`}},{requireActionMember:e.g},"local")}(0,j.ensureServerEntryExports)([k,l]),(0,b.registerServerReference)(k,"40afb05fcb02837269171008e42179d3fa3d20ad9e",null),(0,b.registerServerReference)(l,"40d348a686685b6c41d45bd201145ab5593321934f",null),a.s(["R",0,l,"B",0,k],861600);var m=a.i(462820);let n={name:"ai-assist",max:20,windowSeconds:600};var o=a.i(86657),p=a.i(502330),q=a.i(425238);let r="That model isn't available. Pick another one or Default.";var s=a.i(918962),t=a.i(962230),u=a.i(779704);let v={ok:!1,error:"Something in that request wasn't valid."},w=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function x(a){let b=await (0,h.C)(n,a);return b.allowed?null:`Too many AI requests. Try again in ${(0,g.H)(b.retryAfter)}.`}function y(a){return a instanceof Error&&"GatewayError"===a.name?a.message.slice(0,300):"The AI provider couldn't answer. Try again."}async function z(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!w.test(a))return v;let c=await x(b.id);if(c)return{ok:!1,error:c};if(!await o.f.provider())return{ok:!1,error:m.B.noProvider};let d=await o.f.appSnapshot(a,new Date);if(!d)return{ok:!1,error:"That application wasn't found."};try{let a=await o.f.complete((0,p.r)(d),{purpose:"ask-ai",maxTokens:500}),b=a.text.trim();if(!b)return{ok:!1,error:"The model returned no text. Try again."};return{ok:!0,data:{text:b,model:a.model,ms:a.ms}}}catch(a){return{ok:!1,error:y(a)}}},{requireActionMember:e.g},"local")}async function A(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!w.test(a))return v;let d=await x(b.id);if(d)return{ok:!1,error:d};let e=new Date,g=await o.f.appSnapshot(a,e);if(!g)return{ok:!1,error:"That application wasn't found."};let h=(0,p.R)(g),i=await (0,s.c)(e);if(!i.agConnected)return i.providerReady?B({kind:"app",contextId:a,question:h,by:b.userId,askedAt:e}):{ok:!1,error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};let j=await (0,t._)({kind:"app",contextId:a,question:h,by:b.userId,now:e});if(!j.ok)return{ok:!1,error:j.error};if(!j.reused)try{await (0,f.f)({kind:"ok",message:m.B.queuedAudit(g.id.slice(0,80)),resourceId:a,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:j.reused?m.B.alreadyWaiting:m.B.sentApp,data:{id:j.id,status:"pending"}}},{requireActionMember:e.g})}async function B(a){let b;try{b=await (0,s.L)(a.question,{model:a.model,now:a.askedAt})}catch(a){return console.warn("ask: provider failed:",a instanceof Error?a.name:"unknown"),{ok:!1,error:y(a)}}let d=await (0,t.Y)({kind:a.kind,contextId:a.contextId,question:a.question,by:a.by,askedAt:a.askedAt,answeredAt:new Date,answer:b.text,client:s.q,model:b.model});return(0,c.refresh)(),{ok:!0,message:`Answered by ${b.model} in ${(b.ms/1e3).toFixed(1)} s.`,data:{id:d.id,status:"answered",text:b.text,model:b.model,ms:b.ms}}}async function C(a,b){return(0,d.F)("owner",async d=>{let e,g=(e="string"==typeof a?a.trim():"")?e.length>2e3?{ok:!1,error:"A question can be up to 2000 characters."}:(0,q.G)(e)?{ok:!1,error:"That looks like a key or token. Remove it before sending."}:{ok:!0,question:e}:{ok:!1,error:"Type a question first."};if(!g.ok)return{ok:!1,error:g.error};let h=new Date,i=function(a,b){let c="string"==typeof a?a.trim():"";if(!c)return b.providerReady?{via:"provider"}:b.agConnected?{via:"antigravity",model:null}:{via:"none",error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};if(c.length>200)return{via:"none",error:r};if(c.startsWith("ag/")){let a=c.slice(3);return b.agConnected&&b.agEnabled.includes(a)?{via:"antigravity",model:a}:{via:"none",error:r}}return b.agConnected&&b.agEnabled.includes(c)?{via:"antigravity",model:c}:{via:"provider",model:c}}(b,await (0,s.c)(h));if("none"===i.via)return{ok:!1,error:i.error};let j=await x(d.id);if(j)return{ok:!1,error:j};if("provider"===i.via)return B({kind:"general",contextId:null,question:g.question,by:d.userId,askedAt:h,model:i.model});let k=i.model,l=await (0,t._)({kind:"general",contextId:null,question:g.question,by:d.userId,now:h,model:k});if(!l.ok)return{ok:!1,error:l.error};if(!l.reused)try{await (0,f.f)({kind:"ok",message:m.B.queuedAudit("general"),resourceId:null,actorUserId:d.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:l.reused?m.B.alreadyWaiting:m.B.sentGeneral,data:{id:l.id,status:"pending"}}},{requireActionMember:e.g})}async function D(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!w.test(a))return v;let c=await (0,t.F)(a,b.userId,new Date);return c?{ok:!0,data:{status:c.status,answer:c.answer,model:c.model??c.requestedModel,answeredAt:c.answeredAt?c.answeredAt.toISOString():null}}:{ok:!1,error:"That question wasn't found. It may have been cleaned up."}},{requireActionMember:e.g})}async function E(){return(0,d.F)("owner",async a=>{let b=await x(a.id);if(b)return{ok:!1,error:b};try{let a=await (0,u.E)(new Date,{force:!0});if("no-provider"===a.status)return{ok:!1,error:"No AI provider is connected."};if("empty"===a.status)return{ok:!1,error:"There are no recommendations to summarise."}}catch(a){return{ok:!1,error:y(a)}}return(0,c.refresh)(),{ok:!0,message:"Summary updated."}},{requireActionMember:e.g})}(0,j.ensureServerEntryExports)([z,A,C,D,E]),(0,b.registerServerReference)(z,"4061aeb4bdc48a0ce7a23cac081352f53bb3d58ed7",null),(0,b.registerServerReference)(A,"40170e8924094791a6435c13b6b044b33f39cf0395",null),(0,b.registerServerReference)(C,"6014f0de7fffd8bb4e3ae7fa88b91384de46bd2109",null),(0,b.registerServerReference)(D,"40584cbe33c99b40d44a45839c07e58d66cb070813",null),(0,b.registerServerReference)(E,"00f91d3e3e9821c0f3c28bcffa51b180f5d2db798d",null),a.s(["G",0,A,"B",0,C,"T",0,z,"P",0,D,"E",0,E],294965);var F=a.i(94473),G=a.i(188282);let H={requireActionMember:a=>(0,e.g)(a)};async function I(a){return(0,d.F)("owner",async b=>{let d=await (0,h.C)(g.t.alertWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};try{let d=await (0,F.m)(a,b);(0,c.revalidatePath)("/settings");let e=Object.keys(a??{}),f=1===e.length&&G.H[e[0]]?.risk==="safe"?`${G.H[e[0]].label}: auto-run ${d[e[0]]?"on":"off"}.`:m.X.autoRunSaved;return{ok:!0,message:f,data:d}}catch(a){if(a instanceof F.s)return{ok:!1,error:"Something in that request wasn't valid."};throw a}},H,"local")}async function J(a){return(0,d.F)("owner",async b=>{let d=await (0,h.C)(g.t.alertWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};try{let d=await (0,F.C)(a,b);return(0,c.revalidatePath)("/settings"),{ok:!0,message:`Auto-rollback ${d.enabled?"on":"off"} \xb7 first ${d.windowMin} minutes.`,data:d}}catch(a){if(a instanceof F.s)return{ok:!1,error:"Something in that request wasn't valid."};throw a}},H,"local")}async function K(a){return(0,d.F)("owner",async b=>{let d=await (0,h.C)(g.t.alertWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};try{let d=await (0,F.o)(a,b);return(0,c.revalidatePath)("/settings"),{ok:!0,message:`Automatic security fixes ${d.enabled?"on":"off"}.`,data:d}}catch(a){if(a instanceof F.s)return{ok:!1,error:"Something in that request wasn't valid."};throw a}},H,"local")}(0,j.ensureServerEntryExports)([I,J,K]),(0,b.registerServerReference)(I,"40148874c05af4057e24edaba03b37b920ae65bbed",null),(0,b.registerServerReference)(J,"40682ba8a28a431f2e657c558dfb82f395c43592d0",null),(0,b.registerServerReference)(K,"40693305696e570a9e62eeac1e01b15301901debaa",null),a.s(["G",0,J,"m",0,I,"F",0,K],598513)}];
1
+ module.exports=[861600,294965,598513,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(600079),e=a.i(109307),f=a.i(221084),g=a.i(312573),h=a.i(323878),i=a.i(920274),j=a.i(713095);async function k(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!(0,i.b)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=await (0,h.C)(g.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};let e=await (0,i.$)(a,b.userId,new Date);if(!e)return{ok:!1,error:"That note was already dismissed."};try{await (0,f.f)({kind:"ok",message:`AI note dismissed: ${e.title.slice(0,120)}`,detail:`AiNoteDismissed \xb7 from ${e.from.slice(0,60)}`,resourceId:e.appId&&(0,i.b)(e.appId)?e.appId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:"Note dismissed."}},{requireActionMember:e.g},"local")}async function l(a){return(0,d.F)("owner",async b=>{if(!Array.isArray(a)||!a.length||a.length>i.Z||!a.every(a=>"string"==typeof a&&(0,i.b)(a)))return{ok:!1,error:"Something in that request wasn't valid."};let d=await (0,h.C)(g.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};let e=await (0,i.d)([...new Set(a)],b.userId,new Date);if(!e)return{ok:!1,error:"Those notes were already dismissed."};try{await (0,f.f)({kind:"ok",message:`${e} AI ${1===e?"note":"notes"} dismissed`,detail:"AiNotesDismissed",resourceId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:1===e?"Note dismissed.":`${e} notes dismissed.`}},{requireActionMember:e.g},"local")}(0,j.ensureServerEntryExports)([k,l]),(0,b.registerServerReference)(k,"40353282b4606a9c14f2c6411ccd58ddb348c82ae2",null),(0,b.registerServerReference)(l,"40525cf82ed9161b1eb6d018ef3af7375e75a01e15",null),a.s(["R",0,l,"B",0,k],861600);var m=a.i(462820),n=a.i(109336),o=a.i(86657),p=a.i(502330),q=a.i(425238);let r="That model isn't available. Pick another one or Default.";var s=a.i(918962),t=a.i(962230),u=a.i(779704);let v={ok:!1,error:"Something in that request wasn't valid."},w=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function x(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!w.test(a))return v;let c=await (0,n.A)(b.id);if(c)return{ok:!1,error:c};if(!await o.f.provider())return{ok:!1,error:m.B.noProvider};let d=await o.f.appSnapshot(a,new Date);if(!d)return{ok:!1,error:"That application wasn't found."};try{let a=await o.f.complete((0,p.r)(d),{purpose:"ask-ai",maxTokens:500}),b=a.text.trim();if(!b)return{ok:!1,error:"The model returned no text. Try again."};return{ok:!0,data:{text:b,model:a.model,ms:a.ms}}}catch(a){return{ok:!1,error:(0,n.W)(a)}}},{requireActionMember:e.g},"local")}async function y(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!w.test(a))return v;let d=await (0,n.A)(b.id);if(d)return{ok:!1,error:d};let e=new Date,g=await o.f.appSnapshot(a,e);if(!g)return{ok:!1,error:"That application wasn't found."};let h=(0,p.R)(g),i=await (0,s.c)(e);if(!i.agConnected)return i.providerReady?z({kind:"app",contextId:a,question:h,by:b.userId,askedAt:e}):{ok:!1,error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};let j=await (0,t._)({kind:"app",contextId:a,question:h,by:b.userId,now:e});if(!j.ok)return{ok:!1,error:j.error};if(!j.reused)try{await (0,f.f)({kind:"ok",message:m.B.queuedAudit(g.id.slice(0,80)),resourceId:a,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:j.reused?m.B.alreadyWaiting:m.B.sentApp,data:{id:j.id,status:"pending"}}},{requireActionMember:e.g})}async function z(a){let b;try{b=await (0,s.L)(a.question,{model:a.model,now:a.askedAt})}catch(a){return console.warn("ask: provider failed:",a instanceof Error?a.name:"unknown"),{ok:!1,error:(0,n.W)(a)}}let d=await (0,t.Y)({kind:a.kind,contextId:a.contextId,question:a.question,by:a.by,askedAt:a.askedAt,answeredAt:new Date,answer:b.text,client:s.q,model:b.model});return(0,c.refresh)(),{ok:!0,message:`Answered by ${b.model} in ${(b.ms/1e3).toFixed(1)} s.`,data:{id:d.id,status:"answered",text:b.text,model:b.model,ms:b.ms}}}async function A(a,b){return(0,d.F)("owner",async d=>{let e,g=(e="string"==typeof a?a.trim():"")?e.length>2e3?{ok:!1,error:"A question can be up to 2000 characters."}:(0,q.G)(e)?{ok:!1,error:"That looks like a key or token. Remove it before sending."}:{ok:!0,question:e}:{ok:!1,error:"Type a question first."};if(!g.ok)return{ok:!1,error:g.error};let h=new Date,i=function(a,b){let c="string"==typeof a?a.trim():"";if(!c)return b.providerReady?{via:"provider"}:b.agConnected?{via:"antigravity",model:null}:{via:"none",error:"No AI provider is connected. Connect one under AI Gateway › Bring your own key."};if(c.length>200)return{via:"none",error:r};if(c.startsWith("ag/")){let a=c.slice(3);return b.agConnected&&b.agEnabled.includes(a)?{via:"antigravity",model:a}:{via:"none",error:r}}return b.agConnected&&b.agEnabled.includes(c)?{via:"antigravity",model:c}:{via:"provider",model:c}}(b,await (0,s.c)(h));if("none"===i.via)return{ok:!1,error:i.error};let j=await (0,n.A)(d.id);if(j)return{ok:!1,error:j};if("provider"===i.via)return z({kind:"general",contextId:null,question:g.question,by:d.userId,askedAt:h,model:i.model});let k=i.model,l=await (0,t._)({kind:"general",contextId:null,question:g.question,by:d.userId,now:h,model:k});if(!l.ok)return{ok:!1,error:l.error};if(!l.reused)try{await (0,f.f)({kind:"ok",message:m.B.queuedAudit("general"),resourceId:null,actorUserId:d.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:l.reused?m.B.alreadyWaiting:m.B.sentGeneral,data:{id:l.id,status:"pending"}}},{requireActionMember:e.g})}async function B(a){return(0,d.F)("owner",async b=>{if("string"!=typeof a||!w.test(a))return v;let c=await (0,t.F)(a,b.userId,new Date);return c?{ok:!0,data:{status:c.status,answer:c.answer,model:c.model??c.requestedModel,answeredAt:c.answeredAt?c.answeredAt.toISOString():null}}:{ok:!1,error:"That question wasn't found. It may have been cleaned up."}},{requireActionMember:e.g})}async function C(){return(0,d.F)("owner",async a=>{let b=await (0,n.A)(a.id);if(b)return{ok:!1,error:b};try{let a=await (0,u.E)(new Date,{force:!0});if("no-provider"===a.status)return{ok:!1,error:"No AI provider is connected."};if("empty"===a.status)return{ok:!1,error:"There are no recommendations to summarise."}}catch(a){return{ok:!1,error:(0,n.W)(a)}}return(0,c.refresh)(),{ok:!0,message:"Summary updated."}},{requireActionMember:e.g})}(0,j.ensureServerEntryExports)([x,y,A,B,C]),(0,b.registerServerReference)(x,"40e70cdef106264c3c0d4237d129a5f0b768c6cbfc",null),(0,b.registerServerReference)(y,"403f15382b1c742a6274c489c4be00006935f67f84",null),(0,b.registerServerReference)(A,"60e9ea6298c152230cca2a737cfa6751ffee8a4c19",null),(0,b.registerServerReference)(B,"40f440d1ae1233eb725411538dfcb052456fc14f32",null),(0,b.registerServerReference)(C,"001756ffd8c17709708ab1d705204c7e891b726848",null),a.s(["G",0,y,"B",0,A,"T",0,x,"P",0,B,"E",0,C],294965);var D=a.i(94473),E=a.i(188282);let F={requireActionMember:a=>(0,e.g)(a)};async function G(a){return(0,d.F)("owner",async b=>{let d=await (0,h.C)(g.t.alertWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};try{let d=await (0,D.m)(a,b);(0,c.revalidatePath)("/settings");let e=Object.keys(a??{}),f=1===e.length&&E.H[e[0]]?.risk==="safe"?`${E.H[e[0]].label}: auto-run ${d[e[0]]?"on":"off"}.`:m.X.autoRunSaved;return{ok:!0,message:f,data:d}}catch(a){if(a instanceof D.s)return{ok:!1,error:"Something in that request wasn't valid."};throw a}},F,"local")}async function H(a){return(0,d.F)("owner",async b=>{let d=await (0,h.C)(g.t.alertWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};try{let d=await (0,D.C)(a,b);return(0,c.revalidatePath)("/settings"),{ok:!0,message:`Auto-rollback ${d.enabled?"on":"off"} \xb7 first ${d.windowMin} minutes.`,data:d}}catch(a){if(a instanceof D.s)return{ok:!1,error:"Something in that request wasn't valid."};throw a}},F,"local")}async function I(a){return(0,d.F)("owner",async b=>{let d=await (0,h.C)(g.t.alertWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,g.H)(d.retryAfter)}.`};try{let d=await (0,D.o)(a,b);return(0,c.revalidatePath)("/settings"),{ok:!0,message:`Automatic security fixes ${d.enabled?"on":"off"}.`,data:d}}catch(a){if(a instanceof D.s)return{ok:!1,error:"Something in that request wasn't valid."};throw a}},F,"local")}(0,j.ensureServerEntryExports)([G,H,I]),(0,b.registerServerReference)(G,"404ec6568b2c4cd8ff178d784c2a9d3b09e75e94b2",null),(0,b.registerServerReference)(H,"4047dbbe76d68ea8fd562e28b4393492c88e999be9",null),(0,b.registerServerReference)(I,"4022df03834ca4726f4595c647a3da6b0dbb8010e0",null),a.s(["G",0,H,"m",0,G,"F",0,I],598513)}];
2
2
 
3
3
  //# sourceMappingURL=src_private_notes_notes-actions_ts_1g63g8u965fhc._.js.map
@@ -58,6 +58,9 @@
58
58
  "/backups": {
59
59
  "maxDuration": 60
60
60
  },
61
+ "/deployments": {
62
+ "maxDuration": 60
63
+ },
61
64
  "/domains": {
62
65
  "maxDuration": 30
63
66
  },
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/0cz1d0mv5g_q7.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/u0RcJ9L5FEEUdENisty65/_buildManifest.js",
11
- "static/u0RcJ9L5FEEUdENisty65/_ssgManifest.js",
12
- "static/u0RcJ9L5FEEUdENisty65/_clientMiddlewareManifest.js"
10
+ "static/WqHYD3Noq8qkEPXvfVDGQ/_buildManifest.js",
11
+ "static/WqHYD3Noq8qkEPXvfVDGQ/_ssgManifest.js",
12
+ "static/WqHYD3Noq8qkEPXvfVDGQ/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/149lk0boxihnl.js",