watchbell 1.2.5 → 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 (682) 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 +22 -12
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +63 -67
  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 +21 -11
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +63 -67
  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 +20 -10
  14. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +63 -67
  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 +23 -13
  18. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +63 -67
  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 +21 -11
  22. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +63 -67
  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 +30 -20
  26. package/server/.next/server/app/(console)/(private)/ai/models/page.js +63 -67
  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 +20 -10
  30. package/server/.next/server/app/(console)/(private)/ai/page.js +63 -67
  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 +23 -13
  34. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +63 -67
  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 +26 -16
  38. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +63 -67
  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 +21 -11
  42. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +63 -67
  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 +21 -11
  46. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +63 -67
  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 +20 -10
  50. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +63 -67
  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 +21 -11
  54. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +63 -67
  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 +36 -26
  58. package/server/.next/server/app/(console)/alerts/page.js +63 -67
  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 +94 -54
  62. package/server/.next/server/app/(console)/apps/[id]/page.js +69 -71
  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 +23 -13
  66. package/server/.next/server/app/(console)/apps/page.js +66 -69
  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 +23 -13
  70. package/server/.next/server/app/(console)/backups/page.js +63 -67
  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 +20 -10
  74. package/server/.next/server/app/(console)/catalog/page.js +63 -67
  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 +31 -21
  78. package/server/.next/server/app/(console)/connections/page.js +63 -67
  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 +20 -10
  82. package/server/.next/server/app/(console)/d1/page.js +63 -67
  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 +46 -16
  86. package/server/.next/server/app/(console)/deployments/page.js +66 -69
  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 +27 -17
  90. package/server/.next/server/app/(console)/dns/page.js +63 -67
  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 +22 -12
  94. package/server/.next/server/app/(console)/domains/page.js +63 -67
  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 +20 -10
  98. package/server/.next/server/app/(console)/events/page.js +63 -67
  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 +27 -17
  102. package/server/.next/server/app/(console)/firebase/page.js +63 -67
  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 +21 -11
  106. package/server/.next/server/app/(console)/logs/page.js +63 -67
  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 +21 -11
  110. package/server/.next/server/app/(console)/manage/sections/page.js +63 -67
  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 +31 -21
  114. package/server/.next/server/app/(console)/neon/page.js +63 -67
  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 +28 -18
  118. package/server/.next/server/app/(console)/overview/page.js +69 -72
  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 +21 -11
  122. package/server/.next/server/app/(console)/repos/[id]/page.js +67 -70
  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 +20 -10
  126. package/server/.next/server/app/(console)/repos/page.js +65 -68
  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 +30 -20
  130. package/server/.next/server/app/(console)/settings/page.js +63 -67
  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 +27 -17
  134. package/server/.next/server/app/(console)/sql/page.js +63 -67
  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 +20 -10
  138. package/server/.next/server/app/(console)/status/page.js +63 -67
  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 +39 -29
  142. package/server/.next/server/app/(console)/supabase/page.js +63 -67
  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 +20 -10
  146. package/server/.next/server/app/(console)/topology/page.js +63 -67
  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 +20 -10
  150. package/server/.next/server/app/(console)/turso/page.js +63 -67
  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 +20 -10
  154. package/server/.next/server/app/(console)/upstash/page.js +63 -67
  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 +34 -24
  158. package/server/.next/server/app/(console)/uptime/page.js +63 -67
  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 +25 -15
  162. package/server/.next/server/app/(console)/welcome/page.js +63 -67
  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 +17 -7
  185. package/server/.next/server/app/api/collect/route.js +69 -71
  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 +17 -7
  188. package/server/.next/server/app/api/daily/route.js +51 -53
  189. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  190. package/server/.next/server/app/api/status/route.js +2 -2
  191. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  192. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +17 -7
  193. package/server/.next/server/app/api/telegram/webhook/route.js +48 -50
  194. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  195. package/server/.next/server/app/api/v1/advice/route.js +4 -3
  196. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  197. package/server/.next/server/app/api/v1/ai/questions/route.js +2 -2
  198. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  199. package/server/.next/server/app/api/v1/mcp/route.js +1 -1
  200. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  201. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +4 -3
  202. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  203. package/server/.next/server/app/api/v1/status/route.js +4 -3
  204. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  205. package/server/.next/server/app/api/watchdog/route.js +15 -15
  206. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  207. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  208. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  209. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  210. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  211. package/server/.next/server/app/mfa/page.js +25 -25
  212. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  213. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  214. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  215. package/server/.next/server/app/mfa/setup/page.js +25 -25
  216. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  217. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  219. package/server/.next/server/app/page.js.nft.json +1 -1
  220. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  221. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  222. package/server/.next/server/app/s/[slug]/page.js +7 -7
  223. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  224. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  225. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  226. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  227. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  228. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  229. package/server/.next/server/app/signin/page.js +28 -29
  230. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  231. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  232. package/server/.next/server/chunks/{[externals]__0ia-wyj5qrosx._.js → [externals]__1-y7b_mfadqi-._.js} +1 -1
  233. package/server/.next/server/chunks/{[externals]__0igl_rsv6z3fr._.js → [externals]__1b3dgyi9diwhy._.js} +1 -1
  234. package/server/.next/server/chunks/{[externals]__0mh8e6gkgfswq._.js → [externals]__1dd9hhrnxhegy._.js} +1 -1
  235. package/server/.next/server/chunks/{[root-of-the-server]__01vos42kjq9nn._.js → [root-of-the-server]__0-94urkhm871c._.js} +1 -1
  236. package/server/.next/server/chunks/{[root-of-the-server]__0_e2eoq7w3ff_._.js → [root-of-the-server]__0-zrmrb4499ay._.js} +2 -2
  237. package/server/.next/server/chunks/{[root-of-the-server]__0ezd1s2862iob._.js → [root-of-the-server]__01hgqxx2a0okv._.js} +2 -2
  238. package/server/.next/server/chunks/{[root-of-the-server]__0exicuoq6gmph._.js → [root-of-the-server]__02h-ec_gusm_2._.js} +2 -2
  239. package/server/.next/server/chunks/{[root-of-the-server]__0-ftc1hhcjcl2._.js → [root-of-the-server]__038br8sr9eepd._.js} +2 -2
  240. package/server/.next/server/chunks/{[root-of-the-server]__20ng0hgzxagf_._.js → [root-of-the-server]__040a3il587nja._.js} +2 -2
  241. package/server/.next/server/chunks/{[root-of-the-server]__0cc32xnniktg9._.js → [root-of-the-server]__04iumkvxok49x._.js} +2 -2
  242. package/server/.next/server/chunks/[root-of-the-server]__0a5op--7u5_xh._.js +3 -0
  243. package/server/.next/server/chunks/{[root-of-the-server]__040ix5fqb_zb-._.js → [root-of-the-server]__0a5t6bkr3-uqw._.js} +2 -2
  244. package/server/.next/server/chunks/{[root-of-the-server]__0r88w3qhrtzz_._.js → [root-of-the-server]__0c2heh-0pjyob._.js} +1 -1
  245. package/server/.next/server/chunks/{[root-of-the-server]__1gt_-h9n48pwi._.js → [root-of-the-server]__0c9y_zg74k4oe._.js} +2 -2
  246. package/server/.next/server/chunks/{[root-of-the-server]__0185dne3slx7e._.js → [root-of-the-server]__0cmp5mwchd8sn._.js} +2 -2
  247. package/server/.next/server/chunks/{[root-of-the-server]__0oqltt9cni6m0._.js → [root-of-the-server]__0ct18spdi1leu._.js} +2 -2
  248. package/server/.next/server/chunks/{[root-of-the-server]__0rb1-3538-pq9._.js → [root-of-the-server]__0db2p-om-b_4s._.js} +1 -1
  249. package/server/.next/server/chunks/{[root-of-the-server]__09uh8gefrxmkg._.js → [root-of-the-server]__0fc4c9-xzmkol._.js} +2 -2
  250. package/server/.next/server/chunks/{[root-of-the-server]__0ikiyg3u02ofv._.js → [root-of-the-server]__0fmt9z8-xukob._.js} +1 -1
  251. package/server/.next/server/chunks/{[root-of-the-server]__0sabwm3w1rm0q._.js → [root-of-the-server]__0i3h5covkd6_t._.js} +1 -1
  252. package/server/.next/server/chunks/[root-of-the-server]__0inf2zuuqjrq6._.js +3 -0
  253. package/server/.next/server/chunks/{[root-of-the-server]__0070gc9ml0mf7._.js → [root-of-the-server]__0jswmvddgl3sb._.js} +1 -1
  254. package/server/.next/server/chunks/{[root-of-the-server]__0ms1uw85c5wg2._.js → [root-of-the-server]__0lco43i5w25zg._.js} +2 -2
  255. package/server/.next/server/chunks/{[root-of-the-server]__0x6qqr79pq_j9._.js → [root-of-the-server]__0m_nqt44ioex_._.js} +1 -1
  256. package/server/.next/server/chunks/{[root-of-the-server]__0w_og0zl6hqzj._.js → [root-of-the-server]__0qme276hvajvy._.js} +1 -1
  257. package/server/.next/server/chunks/[root-of-the-server]__0r3cq1lecww4e._.js +3 -0
  258. package/server/.next/server/chunks/[root-of-the-server]__0r_6xpjwcdrda._.js +3 -0
  259. package/server/.next/server/chunks/[root-of-the-server]__0rctmpp7p7cp9._.js +3 -0
  260. package/server/.next/server/chunks/[root-of-the-server]__0rpys5i04hzww._.js +3 -0
  261. package/server/.next/server/chunks/{[root-of-the-server]__1ol4c4uzqqqfw._.js → [root-of-the-server]__0sp5xoed3-994._.js} +2 -2
  262. package/server/.next/server/chunks/{[root-of-the-server]__01yzy5zxsekxi._.js → [root-of-the-server]__0ubalx5w0ds9m._.js} +1 -1
  263. package/server/.next/server/chunks/[root-of-the-server]__0vv63vp8y0fs-._.js +3 -0
  264. package/server/.next/server/chunks/{[root-of-the-server]__0-st5xltl53h9._.js → [root-of-the-server]__0w07p3ypro834._.js} +2 -2
  265. package/server/.next/server/chunks/{[root-of-the-server]__0znmcklxfccvk._.js → [root-of-the-server]__0x929r1phz1oi._.js} +2 -2
  266. package/server/.next/server/chunks/{[root-of-the-server]__1vqs8o9bv1wbk._.js → [root-of-the-server]__0xfgfo-ks4_e8._.js} +2 -2
  267. package/server/.next/server/chunks/[root-of-the-server]__0ycpg444s91lb._.js +3 -0
  268. package/server/.next/server/chunks/[root-of-the-server]__0zjhlf_yodox3._.js +3 -0
  269. package/server/.next/server/chunks/{[root-of-the-server]__1cc__h9taeylv._.js → [root-of-the-server]__0zkeao78mms1_._.js} +2 -2
  270. package/server/.next/server/chunks/{[root-of-the-server]__0y_xyc1cyvtej._.js → [root-of-the-server]__0zwr7fll4dm9q._.js} +2 -2
  271. package/server/.next/server/chunks/{[root-of-the-server]__0cz3da2wx3_wd._.js → [root-of-the-server]__1-2ckgdamg0-j._.js} +2 -2
  272. package/server/.next/server/chunks/[root-of-the-server]__1-ne3clcouvm2._.js +3 -0
  273. package/server/.next/server/chunks/{[root-of-the-server]__1bce11artflky._.js → [root-of-the-server]__130_vkgsongq_._.js} +2 -2
  274. package/server/.next/server/chunks/{[root-of-the-server]__0x47i6wm-cd1z._.js → [root-of-the-server]__14jw0y_hj7jmw._.js} +2 -2
  275. package/server/.next/server/chunks/[root-of-the-server]__14vj8ywy5spa2._.js +3 -0
  276. package/server/.next/server/chunks/{[root-of-the-server]__05jzua9637vlo._.js → [root-of-the-server]__15vqo7amys573._.js} +2 -2
  277. package/server/.next/server/chunks/{[root-of-the-server]__08-puk3_gawjd._.js → [root-of-the-server]__161v5qfd5qk2p._.js} +2 -2
  278. package/server/.next/server/chunks/[root-of-the-server]__16jyhasrd2ojp._.js +3 -0
  279. package/server/.next/server/chunks/[root-of-the-server]__16u9d_hm9lefl._.js +3 -0
  280. package/server/.next/server/chunks/{[root-of-the-server]__0kzpzdkpz_nt0._.js → [root-of-the-server]__177l2p7kcj-16._.js} +2 -2
  281. package/server/.next/server/chunks/{[root-of-the-server]__186-sa38csgot._.js → [root-of-the-server]__17dr2z1o1hsvk._.js} +1 -1
  282. package/server/.next/server/chunks/{[root-of-the-server]__1hl9k6e1o7xh2._.js → [root-of-the-server]__1_df6aphi-pfk._.js} +2 -2
  283. package/server/.next/server/chunks/[root-of-the-server]__1_zr2xlmtkn4l._.js +3 -0
  284. package/server/.next/server/chunks/[root-of-the-server]__1aagly59gw-xf._.js +3 -0
  285. package/server/.next/server/chunks/{[root-of-the-server]__0tykhzqhwdx_k._.js → [root-of-the-server]__1bjvjngj7lvqi._.js} +2 -2
  286. package/server/.next/server/chunks/[root-of-the-server]__1c0cb3ur16yhh._.js +3 -0
  287. package/server/.next/server/chunks/{[root-of-the-server]__1g4iy2tasmn0f._.js → [root-of-the-server]__1d1u-wejsfl84._.js} +1 -1
  288. package/server/.next/server/chunks/{[root-of-the-server]__05pabbazg42oy._.js → [root-of-the-server]__1g6xpr_typmce._.js} +2 -2
  289. package/server/.next/server/chunks/{[root-of-the-server]__195ax9c1nsi5b._.js → [root-of-the-server]__1j527a18gh10b._.js} +2 -2
  290. package/server/.next/server/chunks/{[root-of-the-server]__1a7_3nq1jjab-._.js → [root-of-the-server]__1jjusd74y8gd5._.js} +2 -2
  291. package/server/.next/server/chunks/[root-of-the-server]__1jvy8r4n-62x7._.js +3 -0
  292. package/server/.next/server/chunks/[root-of-the-server]__1k-7jan2fsbys._.js +3 -0
  293. package/server/.next/server/chunks/[root-of-the-server]__1kr6f03r82mk6._.js +3 -0
  294. package/server/.next/server/chunks/[root-of-the-server]__1m8gyvj7rkapj._.js +1 -1
  295. package/server/.next/server/chunks/[root-of-the-server]__1pa_syiho939h._.js +3 -0
  296. package/server/.next/server/chunks/[root-of-the-server]__1qmdi981syrsn._.js +3 -0
  297. package/server/.next/server/chunks/[root-of-the-server]__1r9v6qgjwlv32._.js +3 -0
  298. package/server/.next/server/chunks/{[root-of-the-server]__0xqgsjnebebv8._.js → [root-of-the-server]__1smidspfoqz48._.js} +2 -2
  299. package/server/.next/server/chunks/{[root-of-the-server]__20r_62r36t28o._.js → [root-of-the-server]__1t87mhqedigsz._.js} +2 -2
  300. package/server/.next/server/chunks/[root-of-the-server]__1u5my3-gpw499._.js +3 -0
  301. package/server/.next/server/chunks/[root-of-the-server]__1uad-kugxmkx8._.js +3 -0
  302. package/server/.next/server/chunks/{[root-of-the-server]__1ny8nr52qvr4i._.js → [root-of-the-server]__20sp5m_w5iklm._.js} +2 -2
  303. package/server/.next/server/chunks/{_1_9n8x5ncta29._.js → _0-jfehdfklu-i._.js} +2 -2
  304. package/server/.next/server/chunks/{_1n-fm2bdo9t2m._.js → _0-ub844lc_z_a._.js} +3 -3
  305. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  306. package/server/.next/server/chunks/_05hhw0eql5-dv._.js +12 -0
  307. package/server/.next/server/chunks/{_0zj10_al6r59j._.js → _08fv52mqg619m._.js} +12 -10
  308. package/server/.next/server/chunks/{_1cq1vvbp6pglr._.js → _08z7lmk32r__5._.js} +3 -3
  309. package/server/.next/server/chunks/_0b7rdk-4lrvfy._.js +10 -0
  310. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  311. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  312. package/server/.next/server/chunks/{_1myv9csc_in08._.js → _1-pv4d4qhe7to._.js} +3 -3
  313. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  314. package/server/.next/server/chunks/{_1e_rbkrukj0x9._.js → _13dlt388gceez._.js} +12 -10
  315. package/server/.next/server/chunks/_19wqm5leaaesp._.js +1 -1
  316. package/server/.next/server/chunks/_1d_77nvqcnkcg._.js +3 -0
  317. package/server/.next/server/chunks/_1e_6lrlg9ml3-._.js +1 -1
  318. package/server/.next/server/chunks/_1fj4vzjpusyn8._.js +5 -0
  319. package/server/.next/server/chunks/_1l-68brbq289m._.js +12 -0
  320. package/server/.next/server/chunks/{_1476vtrt9101m._.js → _1rskctyr7yt-b._.js} +2 -2
  321. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  322. package/server/.next/server/chunks/src_05vq-abuilwk4._.js +3 -0
  323. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  324. package/server/.next/server/chunks/src_06lwphwuzgl6e._.js +3 -0
  325. package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +3 -0
  326. package/server/.next/server/chunks/{src_0_l3dzp06o4x5._.js → src_0j8daco-75zka._.js} +2 -2
  327. package/server/.next/server/chunks/src_0tw-h0otr2tgt._.js +1 -1
  328. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  329. package/server/.next/server/chunks/{src_0m6xxpw2u-xv_._.js → src_1lvv9wiag2d8-._.js} +2 -2
  330. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  331. package/server/.next/server/chunks/{src_15fupbs9-n8q9._.js → src_20sym_ohuqw76._.js} +2 -2
  332. package/server/.next/server/chunks/src_2108_me3q06ih._.js +3 -0
  333. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  334. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  335. package/server/.next/server/chunks/src_lib_0n-8zjgq6mcc7._.js +3 -0
  336. package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +9 -0
  337. package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +9 -0
  338. package/server/.next/server/chunks/src_lib_1nkahiclbn55q._.js +3 -0
  339. package/server/.next/server/chunks/src_lib_1y5l54dwaet39._.js +3 -0
  340. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
  341. package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  342. package/server/.next/server/chunks/src_private_0uwb-eyaxy9b3._.js +5 -0
  343. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  344. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  345. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  346. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  347. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  348. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  349. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  350. package/server/.next/server/chunks/ssr/{[externals]__0vlxry7jq5j1j._.js → [externals]__02s9k1gg9qqkm._.js} +1 -1
  351. package/server/.next/server/chunks/ssr/{[externals]__1mol6ksxmtkv6._.js → [externals]__1rj83sktdlxvt._.js} +1 -1
  352. package/server/.next/server/chunks/ssr/{[externals]__0yyslm1ka5px3._.js → [externals]__1s7xw086rvse0._.js} +1 -1
  353. package/server/.next/server/chunks/ssr/{[externals]__0irbihjwcc9is._.js → [externals]__20leqouf6m6f3._.js} +1 -1
  354. package/server/.next/server/chunks/ssr/{[root-of-the-server]__193nmh09rrpbx._.js → [root-of-the-server]__0-zqh1gf4dsj3._.js} +1 -1
  355. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  356. package/server/.next/server/chunks/ssr/[root-of-the-server]__03mal5uo1rzg4._.js +3 -0
  357. package/server/.next/server/chunks/ssr/[root-of-the-server]__05_98ql5tgeii._.js +3 -0
  358. package/server/.next/server/chunks/ssr/[root-of-the-server]__077-acap7g4ck._.js +1 -1
  359. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_h_ya1h8efdj._.js → [root-of-the-server]__07k_84t5-d55n._.js} +2 -2
  360. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0wi2grctadbk8._.js → [root-of-the-server]__080do5vfu69n5._.js} +1 -1
  361. package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
  362. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_z273zso5at1._.js → [root-of-the-server]__09j1po2u91fp3._.js} +2 -2
  363. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0sj92w6mg92ds._.js → [root-of-the-server]__0b3g72j9cu141._.js} +2 -2
  364. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0xjg51t1__v-s._.js → [root-of-the-server]__0e1s_5gg-u3iu._.js} +1 -1
  365. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-i_tj8wp9oto._.js → [root-of-the-server]__0ed6qo3lg9_f9._.js} +2 -2
  366. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0z_1k5876-_wx._.js → [root-of-the-server]__0ee5ew5q3jh8i._.js} +2 -2
  367. package/server/.next/server/chunks/ssr/{[root-of-the-server]__110158s15r7mi._.js → [root-of-the-server]__0fd39clnjw9fb._.js} +2 -2
  368. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h2hxe0vl-2x0._.js +1 -1
  369. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0i07g85h2g72h._.js → [root-of-the-server]__0h9rpg5-lhp5q._.js} +2 -2
  370. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
  371. package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
  372. package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
  373. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1a0b_dbx4uans._.js → [root-of-the-server]__0p86d9imejczs._.js} +2 -2
  374. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
  375. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  376. package/server/.next/server/chunks/ssr/[root-of-the-server]__0s2of3mcou177._.js +3 -0
  377. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1-d88ogkwql_b._.js → [root-of-the-server]__0skfdezx5rxie._.js} +2 -2
  378. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ijizmc3ga_6o._.js → [root-of-the-server]__0tqqte5jb6jz7._.js} +2 -2
  379. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ogwz1buruc_x._.js → [root-of-the-server]__11paa809_igt_._.js} +2 -2
  380. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  381. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e9tlsk1gl8lw._.js +4 -0
  382. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hzlz_t5eect2._.js → [root-of-the-server]__1qrk2rfmx21b_._.js} +2 -2
  383. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  384. package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
  385. package/server/.next/server/chunks/ssr/[root-of-the-server]__1v3b498_j-68t._.js +4 -0
  386. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0n-sc7pzu7fpz._.js → [root-of-the-server]__1y7nfsglxx7cn._.js} +1 -1
  387. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  388. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  389. package/server/.next/server/chunks/ssr/{_10q5jocsvw-i8._.js → _09arvqnznfrzl._.js} +2 -2
  390. package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +3 -0
  391. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  392. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  393. package/server/.next/server/chunks/ssr/_0ao-urx9ftj1s._.js +3 -0
  394. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  395. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  396. package/server/.next/server/chunks/ssr/_0c7stbntpuyt_._.js +1 -1
  397. package/server/.next/server/chunks/ssr/_0c8kew3jsb-yb._.js +3 -0
  398. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  399. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  400. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  401. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  402. package/server/.next/server/chunks/ssr/_0dvz4dndt6lkf._.js +3 -0
  403. package/server/.next/server/chunks/ssr/{_0s8qoh8v5kqcm._.js → _0f11sdi6yislb._.js} +2 -2
  404. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  405. package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +3 -0
  406. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  407. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  408. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +4 -0
  409. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  410. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  411. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  412. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  413. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  414. package/server/.next/server/chunks/ssr/_0rsh9v4b3yj0b._.js +3 -0
  415. package/server/.next/server/chunks/ssr/{_1476vtrt9101m._.js → _0rw2pberdmaa5._.js} +2 -2
  416. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  417. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  418. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  419. package/server/.next/server/chunks/ssr/{_1edj756n1im8t._.js → _0w3mz8059j-pk._.js} +2 -2
  420. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  421. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +4 -0
  422. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +4 -0
  423. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  424. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  425. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  426. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  427. package/server/.next/server/chunks/ssr/_12wjuabpo0ofk._.js +3 -0
  428. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  429. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  430. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  431. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  432. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  433. package/server/.next/server/chunks/ssr/_1dp5bgqob29-f._.js +3 -0
  434. package/server/.next/server/chunks/ssr/{_1qiv079hbwt43._.js → _1er-95g7emfdz._.js} +2 -2
  435. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  436. package/server/.next/server/chunks/ssr/_1fj4vzjpusyn8._.js +5 -0
  437. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  438. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  439. package/server/.next/server/chunks/ssr/{_18z44n8yl5tzj._.js → _1h7x73oxtp7h5._.js} +2 -2
  440. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  441. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  442. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  443. package/server/.next/server/chunks/ssr/{_166ljgwi6shw7._.js → _1jl374mbl90fb._.js} +2 -2
  444. package/server/.next/server/chunks/ssr/{_1r7o1vx4875hu._.js → _1ktvwngz0lzjr._.js} +2 -2
  445. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  446. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  447. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  448. package/server/.next/server/chunks/ssr/_1rskctyr7yt-b._.js +3 -0
  449. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  450. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  451. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  452. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  453. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  454. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1--1mjfnoprr2.js +3 -0
  455. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  456. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  457. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  458. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  459. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  460. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  461. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  462. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  463. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  464. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  465. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  466. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  467. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  468. package/server/.next/server/chunks/ssr/src_04o0-kzfmcnim._.js +3 -0
  469. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  470. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  471. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  472. package/server/.next/server/chunks/ssr/src_0dceh6hsdybq8._.js +3 -0
  473. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
  474. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +3 -0
  475. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  476. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +3 -1
  477. package/server/.next/server/chunks/ssr/src_0yxy3bklfxtzz._.js +3 -0
  478. package/server/.next/server/chunks/ssr/src_1-k3gvxaqli74._.js +3 -0
  479. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  480. package/server/.next/server/chunks/ssr/{src_186l56gdeizg8._.js → src_14ulgwoxoyfkq._.js} +2 -2
  481. package/server/.next/server/chunks/ssr/src_1ckoccd8qvnje._.js +1 -1
  482. package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +8 -0
  483. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  484. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  485. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  486. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  487. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  488. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  489. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  490. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  491. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  492. package/server/.next/server/chunks/ssr/src_app_(console)_0u4_y9-b7g971._.js +3 -0
  493. package/server/.next/server/chunks/ssr/{src_app_(console)_1vpkg9rd7v3pk._.js → src_app_(console)_11o_ga_rurg55._.js} +2 -2
  494. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  495. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_10xvt--29v-ed._.js +3 -0
  496. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  497. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  498. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  499. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  500. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  501. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  502. package/server/.next/server/chunks/ssr/src_app_(console)_deployments_06a83hsex1kba._.js +1 -1
  503. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  504. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  505. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  506. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  507. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  508. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  509. package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
  510. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  511. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +2 -2
  512. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  513. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  514. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  515. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  516. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  517. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  518. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  519. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  520. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  521. package/server/.next/server/chunks/ssr/{src_app_signin_0ndz9-tbuaohn._.js → src_app_signin_0u6eoxbd8ttqy._.js} +2 -2
  522. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  523. package/server/.next/server/chunks/ssr/src_components_list-filter_tsx_1zp29997g97yd._.js +1 -1
  524. package/server/.next/server/chunks/ssr/{_0ls7sornjrg95._.js → src_lib_0-nc33gvdtkg5._.js} +2 -2
  525. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  526. package/server/.next/server/chunks/ssr/src_lib_0n-8zjgq6mcc7._.js +3 -0
  527. package/server/.next/server/chunks/ssr/src_lib_10d18lqjfj8je._.js +3 -0
  528. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  529. package/server/.next/server/chunks/ssr/src_lib_1y5l54dwaet39._.js +3 -0
  530. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  531. package/server/.next/server/chunks/ssr/{src_lib_demo_0ftmf3wmtezvl._.js → src_lib_demo_0sbw5n9n4mpzx._.js} +2 -2
  532. package/server/.next/server/chunks/ssr/src_lib_providers_github-browse_ts_1apskpn4fe9qr._.js +3 -0
  533. package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  534. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  535. package/server/.next/server/chunks/ssr/src_private_1b8918m4jsjpi._.js +5 -0
  536. package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +6 -0
  537. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  538. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  539. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  540. package/server/.next/server/functions-config-manifest.json +3 -0
  541. package/server/.next/server/middleware-build-manifest.js +3 -3
  542. package/server/.next/server/pages/404.html +1 -1
  543. package/server/.next/server/pages/500.html +1 -1
  544. package/server/.next/server/preview-props.json +3 -3
  545. package/server/.next/server/server-reference-manifest.js +1 -1
  546. package/server/.next/server/server-reference-manifest.json +384 -168
  547. package/server/.next/static/chunks/{3o45i7xbzm0w-.js → 05uco41_mcq9o.js} +1 -1
  548. package/server/.next/static/chunks/{2_vwhuzct036v.js → 06o7zhf9tv649.js} +1 -1
  549. package/server/.next/static/chunks/{25je6-38ula0p.js → 0bkm_mj9zqjdn.js} +1 -1
  550. package/server/.next/static/chunks/0bqipdtnu2hws.js +1 -0
  551. package/server/.next/static/chunks/0d609c7qn6uke.js +1 -0
  552. package/server/.next/static/chunks/0ghhg0xs85ipn.js +1 -0
  553. package/server/.next/static/chunks/{026a6w6rbx-fh.js → 0inb7hk8o9yz-.js} +1 -1
  554. package/server/.next/static/chunks/{1khar1yl-th2r.js → 0lgt6mz4u8rzx.js} +1 -1
  555. package/server/.next/static/chunks/0r-etc_jv_08f.js +1 -0
  556. package/server/.next/static/chunks/{0p14kwfj_2w_l.js → 0un8ttgrt0gtq.js} +1 -1
  557. package/server/.next/static/chunks/{1bsk5ub4zhehk.js → 0v5xmga7srjvl.js} +1 -1
  558. package/server/.next/static/chunks/{24p8ti6ronsdf.js → 0zzbinjpe41vj.js} +1 -1
  559. package/server/.next/static/chunks/{1ruv-a_ft592k.js → 12vmyliqgjlbi.js} +1 -1
  560. package/server/.next/static/chunks/{234h8_ywb6t9s.js → 131_xlsbuxnhr.js} +1 -1
  561. package/server/.next/static/chunks/{19bfo1_ejzqmp.js → 146uoz7wc8q2y.js} +1 -1
  562. package/server/.next/static/chunks/{2w3otuq4cx1pd.js → 1crspgs6bd_rg.js} +1 -1
  563. package/server/.next/static/chunks/{1b4nkf_ka3hwr.js → 1h0025pjnwxmg.js} +2 -2
  564. package/server/.next/static/chunks/{35ua22np4u9jr.js → 1ot9e084ramy3.js} +1 -1
  565. package/server/.next/static/chunks/{3ngtjj5afybe9.js → 1ouf289jk00f3.js} +1 -1
  566. package/server/.next/static/chunks/{3m825h0uvc8b6.js → 1sds57ddvk_30.js} +1 -1
  567. package/server/.next/static/chunks/{3oe302ug_esoe.js → 1sexa68j4kb7d.js} +1 -1
  568. package/server/.next/static/chunks/1t9iq0wi3ykuc.js +1 -0
  569. package/server/.next/static/chunks/{2baqn9ru2pmf4.js → 1u4r7ru8i619_.js} +2 -2
  570. package/server/.next/static/chunks/{0m3kg-eiti9zu.js → 1vuqw31-hmrxb.js} +1 -1
  571. package/server/.next/static/chunks/{20ujg0hz_need.js → 1xhyfwwelhzu1.js} +1 -1
  572. package/server/.next/static/chunks/{2ehpfaelmkee6.js → 1z85thzinc0kx.js} +1 -1
  573. package/server/.next/static/chunks/{1j7e6cd8t5jar.js → 25erhrojc-1fi.js} +1 -1
  574. package/server/.next/static/chunks/{2uk9mjknuxmxx.js → 29sduk6krs_b1.js} +1 -1
  575. package/server/.next/static/chunks/{0o-c28x8k05p4.js → 29v9jg7vw7brb.js} +1 -1
  576. package/server/.next/static/chunks/2dbx53nx6f-9f.js +7 -0
  577. package/server/.next/static/chunks/{25ba60sl_edr3.js → 2e195xkcjq72y.js} +1 -1
  578. package/server/.next/static/chunks/{1urtw14pwufsv.js → 2f07frmj7udob.js} +1 -1
  579. package/server/.next/static/chunks/{16en34z8w8ezr.js → 2fp4pmte8dtbb.js} +1 -1
  580. package/server/.next/static/chunks/2gv1tg_m49u9m.js +1 -0
  581. package/server/.next/static/chunks/{0jbau1a66ts45.js → 2ockms4mqiec_.js} +11 -11
  582. package/server/.next/static/chunks/{1rgejqx65romt.js → 2p-ty5g5uq133.js} +1 -1
  583. package/server/.next/static/chunks/{231dmdy7r03nd.js → 2tnbp3f6x0jv_.js} +1 -1
  584. package/server/.next/static/chunks/{1y8hxiy48l5hq.js → 2uu38i0lq_wlc.js} +1 -1
  585. package/server/.next/static/chunks/2uufhbm18_cri.js +1 -0
  586. package/server/.next/static/chunks/{4126vjheqklsp.js → 2vxmvnntekclp.js} +1 -1
  587. package/server/.next/static/chunks/{0lhj_nuhfszt5.js → 2xhqwi0hiv_70.js} +1 -1
  588. package/server/.next/static/chunks/{05rysjdxtzhu1.js → 3-8by5unw1j-r.js} +1 -1
  589. package/server/.next/static/chunks/{15x1am33zx_7r.js → 310xe703zu_qp.js} +1 -1
  590. package/server/.next/static/chunks/{3odrzjmblvoxt.js → 33z05hmv7hw1s.js} +1 -1
  591. package/server/.next/static/chunks/{1aiapinh40brx.js → 36wyyf_gobe7n.js} +1 -1
  592. package/server/.next/static/chunks/{1kwbsrtnz8o1l.js → 3_5xff9sl-2e3.js} +1 -1
  593. package/server/.next/static/chunks/{3zx1pe40m_ddz.js → 3b0xtqo5kfyuj.js} +1 -1
  594. package/server/.next/static/chunks/{34jajbsx3uisy.js → 3cvrxnnojhvxz.js} +1 -1
  595. package/server/.next/static/chunks/{20pwnun2aiajo.js → 3fais-5rzury8.js} +2 -2
  596. package/server/.next/static/chunks/{317o5vyehd1xx.js → 3gj8dc0o09zl6.js} +1 -1
  597. package/server/.next/static/chunks/{0wz_jmdt88plr.js → 3s3unktz7g7f0.js} +1 -1
  598. package/server/.next/static/chunks/{35j75g5h_qytc.js → 3w26qimof6fnj.js} +1 -1
  599. package/server/.next/static/chunks/{0o08yqz8_53p6.js → 3z70obsntezy0.js} +1 -1
  600. package/server/.next/server/chunks/[root-of-the-server]__028cxv1v6v0yb._.js +0 -3
  601. package/server/.next/server/chunks/[root-of-the-server]__07g16s_wi2sai._.js +0 -3
  602. package/server/.next/server/chunks/[root-of-the-server]__0dvuy3ibsyiik._.js +0 -3
  603. package/server/.next/server/chunks/[root-of-the-server]__0e2utnqdim70d._.js +0 -3
  604. package/server/.next/server/chunks/[root-of-the-server]__0gmn5s40au84-._.js +0 -3
  605. package/server/.next/server/chunks/[root-of-the-server]__0i75m0es1m3hf._.js +0 -3
  606. package/server/.next/server/chunks/[root-of-the-server]__0k7o0hgdraix2._.js +0 -3
  607. package/server/.next/server/chunks/[root-of-the-server]__0o0z59_jylzvy._.js +0 -3
  608. package/server/.next/server/chunks/[root-of-the-server]__0quiawzx_nww0._.js +0 -3
  609. package/server/.next/server/chunks/[root-of-the-server]__0wdxw44t9l9o_._.js +0 -3
  610. package/server/.next/server/chunks/[root-of-the-server]__0y99cuuxm0xs3._.js +0 -3
  611. package/server/.next/server/chunks/[root-of-the-server]__0zflnh-2nol66._.js +0 -3
  612. package/server/.next/server/chunks/[root-of-the-server]__10dp33pb5e0ml._.js +0 -3
  613. package/server/.next/server/chunks/[root-of-the-server]__12xl6ax-q8s93._.js +0 -3
  614. package/server/.next/server/chunks/[root-of-the-server]__14sac3h4sfhh7._.js +0 -3
  615. package/server/.next/server/chunks/[root-of-the-server]__17xbg7cngebwp._.js +0 -3
  616. package/server/.next/server/chunks/[root-of-the-server]__18lfi0w0e_h0k._.js +0 -3
  617. package/server/.next/server/chunks/[root-of-the-server]__1c1wqmzm65xo8._.js +0 -3
  618. package/server/.next/server/chunks/[root-of-the-server]__1gry2nrq5xhxl._.js +0 -3
  619. package/server/.next/server/chunks/[root-of-the-server]__1kk_s-q90445m._.js +0 -3
  620. package/server/.next/server/chunks/[root-of-the-server]__1lfsf7un8kdbr._.js +0 -3
  621. package/server/.next/server/chunks/[root-of-the-server]__1nusfevn1z4nm._.js +0 -3
  622. package/server/.next/server/chunks/[root-of-the-server]__1oc55uo0ax787._.js +0 -3
  623. package/server/.next/server/chunks/[root-of-the-server]__1uqxnb7qfqcms._.js +0 -3
  624. package/server/.next/server/chunks/[root-of-the-server]__1vxtt1favjdfr._.js +0 -3
  625. package/server/.next/server/chunks/[root-of-the-server]__1xwgj26z5f7ih._.js +0 -3
  626. package/server/.next/server/chunks/[root-of-the-server]__20sv90-2ei08l._.js +0 -3
  627. package/server/.next/server/chunks/_0hsj1tx2ynla-._.js +0 -3
  628. package/server/.next/server/chunks/_0ls7sornjrg95._.js +0 -5
  629. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +0 -10
  630. package/server/.next/server/chunks/_1daeuesc2d2tg._.js +0 -3
  631. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +0 -10
  632. package/server/.next/server/chunks/src_12wdz9bdn7a-7._.js +0 -3
  633. package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +0 -9
  634. package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +0 -9
  635. package/server/.next/server/chunks/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +0 -3
  636. package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +0 -3
  637. package/server/.next/server/chunks/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +0 -3
  638. package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +0 -3
  639. package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +0 -5
  640. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nxyo70ahj7tk._.js +0 -3
  641. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ctkj-25wt37o._.js +0 -4
  642. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e0l6kek0ufui._.js +0 -3
  643. package/server/.next/server/chunks/ssr/[root-of-the-server]__1kfivch_kfesn._.js +0 -4
  644. package/server/.next/server/chunks/ssr/[root-of-the-server]__1o63-3k1wez40._.js +0 -3
  645. package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +0 -3
  646. package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +0 -3
  647. package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +0 -3
  648. package/server/.next/server/chunks/ssr/_0hsj1tx2ynla-._.js +0 -3
  649. package/server/.next/server/chunks/ssr/_0uvkx5n0kf7r2._.js +0 -3
  650. package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +0 -4
  651. package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +0 -3
  652. package/server/.next/server/chunks/ssr/_1b1t9p1xljuql._.js +0 -5
  653. package/server/.next/server/chunks/ssr/_1o94cw0ml7xu7._.js +0 -3
  654. package/server/.next/server/chunks/ssr/_218164gkxgum_._.js +0 -4
  655. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +0 -3
  656. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +0 -8
  657. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +0 -3
  658. package/server/.next/server/chunks/ssr/src_1xoua7wkmyfkn._.js +0 -3
  659. package/server/.next/server/chunks/ssr/src_1y827m5-ojdib._.js +0 -6
  660. package/server/.next/server/chunks/ssr/src_app_(console)_0f-d8u7sm169e._.js +0 -3
  661. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +0 -3
  662. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +0 -3
  663. package/server/.next/server/chunks/ssr/src_lib_04orn7u7ufxp1._.js +0 -3
  664. package/server/.next/server/chunks/ssr/src_lib_1l8ej-zoyyegd._.js +0 -3
  665. package/server/.next/server/chunks/ssr/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +0 -3
  666. package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +0 -3
  667. package/server/.next/server/chunks/ssr/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +0 -3
  668. package/server/.next/server/chunks/ssr/src_lib_data_vercel-action_ts_1hvera3nwo5fp._.js +0 -3
  669. package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +0 -3
  670. package/server/.next/server/chunks/ssr/src_lib_view_14iq8onyfo7nd._.js +0 -3
  671. package/server/.next/server/chunks/ssr/src_lib_view_deploy-actions_ts_1l3rr2k-04gi4._.js +0 -3
  672. package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +0 -5
  673. package/server/.next/static/chunks/0-0tkevn8vwix.js +0 -1
  674. package/server/.next/static/chunks/0qd8lafp_2ta5.js +0 -1
  675. package/server/.next/static/chunks/14teejsfv-awi.js +0 -1
  676. package/server/.next/static/chunks/1c0s-ejiwfy2u.js +0 -1
  677. package/server/.next/static/chunks/38rdy3k5li9gb.js +0 -1
  678. package/server/.next/static/chunks/3u-qfdthw123i.js +0 -7
  679. package/server/.next/static/chunks/3xhrztkjpas1b.js +0 -1
  680. /package/server/.next/static/{00kxZsHPpI3WSDxVn1e4b → WqHYD3Noq8qkEPXvfVDGQ}/_buildManifest.js +0 -0
  681. /package/server/.next/static/{00kxZsHPpI3WSDxVn1e4b → WqHYD3Noq8qkEPXvfVDGQ}/_clientMiddlewareManifest.js +0 -0
  682. /package/server/.next/static/{00kxZsHPpI3WSDxVn1e4b → WqHYD3Noq8qkEPXvfVDGQ}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[992861,a=>{var b=a.i(187924),c=a.i(101169),d=a.i(218024),e=a.i(196790),f=a.i(817748),g=a.i(901615),h=a.i(238246),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(405050);let o=(0,n.createServerReference)("406185ca3e9f8e9e3b6e57baed348c405e4cd74db8",n.callServer,void 0,n.findSourceMapURL,"createKeyAction");function p({scopes:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)("span",{className:"mr-1 inline-block whitespace-nowrap rounded-[4px] border border-line bg-surface-2 px-[5px] font-mono text-xs text-ink-soft",children:a},a))})}var q=a.i(136476);function r({icon:a,title:c,sub:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:a}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:c}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}function s({onCreated:a,onCancel:c}){let[d,f]=(0,i.useState)(""),[h,l]=(0,i.useState)(q.J),[m,n]=(0,i.useState)(q.j),[t,u]=(0,i.useState)(String(q.D)),[v,w]=(0,i.useState)({}),[x,y]=(0,i.useState)(""),[z,A]=(0,i.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),A(async()=>{w({}),y("");try{let b=await o({name:d.trim(),scopes:q.B.filter(a=>h.includes(a)),expiry:m,ratePerMin:t.trim()});b.ok&&b.data?(j.c.success(b.message??"Key created."),a(b.data)):b.ok||(b.fieldErrors?w(b.fieldErrors):y(b.error))}catch{y("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsx)(r,{icon:(0,b.jsx)(e.f,{size:19}),title:"Create API key",sub:"For one app or agent. Shown once."}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(k.O,{id:"key-name",label:"Name",help:"Lowercase letters, digits and dashes. Agents and Logs show it.",error:v.name,children:(0,b.jsx)("input",{id:"key-name",value:d,onChange:a=>f(a.target.value),placeholder:g.C.namePlaceholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:k.S})}),(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Scopes"}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:q.B.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:h.includes(a),onChange:()=>l(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),className:"mt-[3px] accent-brand"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(p,{scopes:[a]})," ",(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:q.h[a].short})]})]},a))}),v.scopes&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.scopes})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"key-expiry",label:"Expires",error:v.expiry,children:(0,b.jsx)("select",{id:"key-expiry",value:m,onChange:a=>n(a.target.value),className:k.S,children:q.W.map(a=>(0,b.jsx)("option",{value:a,children:q.o[a]},a))})}),(0,b.jsx)(k.O,{id:"key-rate",label:"Rate limit",help:"Requests per minute, 1–600. Applies before the provider's own limits.",error:v.ratePerMin,children:(0,b.jsx)("input",{id:"key-rate",inputMode:"numeric",value:t,onChange:a=>u(a.target.value),className:`${k.S} font-mono`})})]}),x&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:x})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:z,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:z,children:z?"Creating…":"Create key"})]})]})}function t({created:a,onDone:e}){async function f(){try{await navigator.clipboard.writeText(a.key),j.c.success("Copied.")}catch{j.c.error("Couldn't copy. Select the key and copy it by hand.")}}return(0,b.jsxs)("div",{children:[(0,b.jsx)(r,{icon:(0,b.jsx)(c.f,{size:19}),title:`Key ${a.name} created`,sub:"Copy it now."}),(0,b.jsxs)("div",{className:"px-[18px] pb-3 pt-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]","data-testid":"new-key",children:a.key}),(0,b.jsxs)(k.K,{size:"sm",onClick:f,children:[(0,b.jsx)(d.f,{size:15,"aria-hidden":!0}),"Copy"]})]}),(0,b.jsx)("p",{className:"mt-2.5 rounded-md border border-warn-icon bg-warn-soft px-2.5 py-2 text-[13px] text-warn",children:"Watchbell keeps only a SHA-256 hash of this key, so it can't show it again. Lost it? Revoke it and create a new one."}),(0,b.jsxs)("p",{className:"mb-0 mt-3 text-[13px] text-ink-soft",children:["Next: put it in the app's environment as ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_API_KEY"}),", then follow ",(0,b.jsx)(h.default,{href:"/ai",className:"text-brand",children:"Quick start"})," or ",(0,b.jsx)(h.default,{href:"/ai/connect",className:"text-brand",children:"Connect an agent"}),"."]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:e,children:"Done"})})]})}a.s(["CreateKeyDialog",0,function(){let[a,c]=(0,i.useState)(!1),[d,e]=(0,i.useState)(null);function g(a){c(a),a||e(null)}return(0,l.useHoldRefresh)(a),(0,b.jsxs)(m.N,{open:a,onOpenChange:g,children:[(0,b.jsxs)(m.a,{render:(0,b.jsx)(k.K,{variant:"primary"}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),"Create key"]}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:d?(0,b.jsx)(t,{created:d,onDone:()=>g(!1)}):(0,b.jsx)(s,{onCreated:e,onCancel:()=>g(!1)})})]})}],992861)},659526,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(507504),h=a.i(188406),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("6080a4153c206a5ff3d58d1a933490213b3cc65e40",j.callServer,void 0,j.findSourceMapURL,"changeKeyAction"),l=(0,j.createServerReference)("405fe51485a8570a8b1955bb8712e28b767244dec8",j.callServer,void 0,j.findSourceMapURL,"revokeKeyAction");var m=a.i(136476);let n={rename:{title:a=>`Rename ${a}`,sub:"Agents and Logs show the name. Lowercase letters, digits and dashes.",cta:"Save name"},rate:{title:()=>"Change rate limit",sub:"Requests per minute, 1–600. Applies before the provider's own limits, within a minute.",cta:"Save limit"},expiry:{title:()=>"Change expiry",sub:"Counted from today. The key stops working at that date.",cta:"Save expiry"},routing:{title:()=>"Change routing",sub:"Pin this key to one provider and, if you like, one model. Without a pin it uses the default provider.",cta:"Save routing"}};function o({mode:a,k:e,providers:g,onDone:h}){let[j,l]=(0,c.useState)(e.name),[p,q]=(0,c.useState)(String(e.ratePerMin)),[r,s]=(0,c.useState)(e.expiresAt?"90d":"never"),[t,u]=(0,c.useState)(e.providerId??""),[v,w]=(0,c.useState)(e.model??""),[x,y]=(0,c.useState)({}),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useTransition)(),D=n[a];return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),C(async()=>{y({}),A("");try{let b=await k(e.id,"rename"===a?{kind:"rename",name:j.trim()}:"rate"===a?{kind:"rate",ratePerMin:p.trim()}:"expiry"===a?{kind:"expiry",expiry:r}:{kind:"routing",providerId:t||null,model:t?v.trim():null});b.ok?(d.c.success(b.message??"Key updated."),h()):b.fieldErrors?y(b.fieldErrors):A(b.error)}catch{A("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(i.F,{className:"text-base",children:D.title(e.name)}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:D.sub})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:["rename"===a&&(0,b.jsx)(f.O,{id:"edit-name",label:"Name",error:x.name,children:(0,b.jsx)("input",{id:"edit-name",value:j,onChange:a=>l(a.target.value),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:f.S})}),"rate"===a&&(0,b.jsx)(f.O,{id:"edit-rate",label:"Rate limit",help:"Requests per minute.",error:x.ratePerMin,children:(0,b.jsx)("input",{id:"edit-rate",inputMode:"numeric",value:p,onChange:a=>q(a.target.value),className:`${f.S} font-mono`})}),"expiry"===a&&(0,b.jsx)(f.O,{id:"edit-expiry",label:"Expires",error:x.expiry,children:(0,b.jsx)("select",{id:"edit-expiry",value:r,onChange:a=>s(a.target.value),className:f.S,children:m.W.map(a=>(0,b.jsx)("option",{value:a,children:m.o[a]},a))})}),"routing"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"edit-provider",label:"Provider",help:g.length?void 0:"No provider is connected yet. Until one is, this key has nothing to pin to.",error:x.providerId,children:(0,b.jsxs)("select",{id:"edit-provider",value:t,onChange:a=>u(a.target.value),className:f.S,children:[(0,b.jsx)("option",{value:"",children:"No pin (default provider)"}),g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.name,a.enabled?"":" (off)"]},a.id))]})}),(0,b.jsx)(f.O,{id:"edit-model",label:"Model",help:"Optional. A Gemini model id, for example gemini-3.8-flash. Empty uses the provider's default.",error:x.model,children:(0,b.jsx)("input",{id:"edit-model",value:v,onChange:a=>w(a.target.value),disabled:!t,placeholder:"gemini-3.8-flash",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:`${f.S} font-mono`})})]}),z&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:z})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:h,disabled:B,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:B,children:B?"Saving…":D.cta})]})]})}a.s(["KeyActions",0,function({k:a,providers:d}){let[j,k]=(0,c.useState)(null);return(0,g.useHoldRefresh)(null!==j),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Revoke"}),title:`Revoke ${a.name}?`,body:`Calls with ${a.prefix}… answer 401 within a minute. Agents using it show "Key revoked". This can't be undone; create a new key instead.`,cta:"Revoke key",danger:!0,onConfirm:async()=>{let b=await l(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(h.RowMenu,{label:`Actions for ${a.name}`,items:[{label:"Rename",onSelect:()=>k("rename")},{label:"Change rate limit",onSelect:()=>k("rate")},{label:"Change expiry",onSelect:()=>k("expiry")},{label:"Change routing",onSelect:()=>k("routing")}]}),(0,b.jsx)(i.N,{open:null!==j,onOpenChange:a=>{a||k(null)},children:(0,b.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:j&&(0,b.jsx)(o,{mode:j,k:a,providers:d,onDone:()=>k(null)})})})]})}],659526)},136476,a=>{let b={"ai:invoke":{short:"models",long:"Chat completions and the model list through your provider connections."},"read:status":{short:"console data, MCP",long:"Read-only console data: GET /api/v1/status and the MCP server. Database names are aliases; no URLs, emails or secrets."},"write:notes":{short:"post AI notes",long:a.i(901615).C.writeNotesLong}};a.s(["j",0,"90d","D",0,20,"J",0,["ai:invoke"],"W",0,["7d","30d","90d","1y","never"],"o",0,{"7d":"In 7 days","30d":"In 30 days","90d":"In 90 days","1y":"In 1 year",never:"Never"},"B",0,["ai:invoke","read:status","write:notes"],"h",0,b])}]})();
1
+ (()=>{"use strict";module.exports=[992861,a=>{var b=a.i(187924),c=a.i(101169),d=a.i(218024),e=a.i(196790),f=a.i(817748),g=a.i(901615),h=a.i(238246),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(405050);let o=(0,n.createServerReference)("4025f9b5a5759ca61a55d8666a9f044a63efcf5b67",n.callServer,void 0,n.findSourceMapURL,"createKeyAction");function p({scopes:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)("span",{className:"mr-1 inline-block whitespace-nowrap rounded-[4px] border border-line bg-surface-2 px-[5px] font-mono text-xs text-ink-soft",children:a},a))})}var q=a.i(136476);function r({icon:a,title:c,sub:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:a}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:c}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}function s({onCreated:a,onCancel:c}){let[d,f]=(0,i.useState)(""),[h,l]=(0,i.useState)(q.J),[m,n]=(0,i.useState)(q.j),[t,u]=(0,i.useState)(String(q.D)),[v,w]=(0,i.useState)({}),[x,y]=(0,i.useState)(""),[z,A]=(0,i.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),A(async()=>{w({}),y("");try{let b=await o({name:d.trim(),scopes:q.B.filter(a=>h.includes(a)),expiry:m,ratePerMin:t.trim()});b.ok&&b.data?(j.c.success(b.message??"Key created."),a(b.data)):b.ok||(b.fieldErrors?w(b.fieldErrors):y(b.error))}catch{y("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsx)(r,{icon:(0,b.jsx)(e.f,{size:19}),title:"Create API key",sub:"For one app or agent. Shown once."}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(k.O,{id:"key-name",label:"Name",help:"Lowercase letters, digits and dashes. Agents and Logs show it.",error:v.name,children:(0,b.jsx)("input",{id:"key-name",value:d,onChange:a=>f(a.target.value),placeholder:g.C.namePlaceholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:k.S})}),(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Scopes"}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:q.B.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:h.includes(a),onChange:()=>l(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),className:"mt-[3px] accent-brand"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(p,{scopes:[a]})," ",(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:q.h[a].short})]})]},a))}),v.scopes&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.scopes})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"key-expiry",label:"Expires",error:v.expiry,children:(0,b.jsx)("select",{id:"key-expiry",value:m,onChange:a=>n(a.target.value),className:k.S,children:q.W.map(a=>(0,b.jsx)("option",{value:a,children:q.o[a]},a))})}),(0,b.jsx)(k.O,{id:"key-rate",label:"Rate limit",help:"Requests per minute, 1–600. Applies before the provider's own limits.",error:v.ratePerMin,children:(0,b.jsx)("input",{id:"key-rate",inputMode:"numeric",value:t,onChange:a=>u(a.target.value),className:`${k.S} font-mono`})})]}),x&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:x})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:z,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:z,children:z?"Creating…":"Create key"})]})]})}function t({created:a,onDone:e}){async function f(){try{await navigator.clipboard.writeText(a.key),j.c.success("Copied.")}catch{j.c.error("Couldn't copy. Select the key and copy it by hand.")}}return(0,b.jsxs)("div",{children:[(0,b.jsx)(r,{icon:(0,b.jsx)(c.f,{size:19}),title:`Key ${a.name} created`,sub:"Copy it now."}),(0,b.jsxs)("div",{className:"px-[18px] pb-3 pt-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]","data-testid":"new-key",children:a.key}),(0,b.jsxs)(k.K,{size:"sm",onClick:f,children:[(0,b.jsx)(d.f,{size:15,"aria-hidden":!0}),"Copy"]})]}),(0,b.jsx)("p",{className:"mt-2.5 rounded-md border border-warn-icon bg-warn-soft px-2.5 py-2 text-[13px] text-warn",children:"Watchbell keeps only a SHA-256 hash of this key, so it can't show it again. Lost it? Revoke it and create a new one."}),(0,b.jsxs)("p",{className:"mb-0 mt-3 text-[13px] text-ink-soft",children:["Next: put it in the app's environment as ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_API_KEY"}),", then follow ",(0,b.jsx)(h.default,{href:"/ai",className:"text-brand",children:"Quick start"})," or ",(0,b.jsx)(h.default,{href:"/ai/connect",className:"text-brand",children:"Connect an agent"}),"."]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:e,children:"Done"})})]})}a.s(["CreateKeyDialog",0,function(){let[a,c]=(0,i.useState)(!1),[d,e]=(0,i.useState)(null);function g(a){c(a),a||e(null)}return(0,l.useHoldRefresh)(a),(0,b.jsxs)(m.N,{open:a,onOpenChange:g,children:[(0,b.jsxs)(m.a,{render:(0,b.jsx)(k.K,{variant:"primary"}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),"Create key"]}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:d?(0,b.jsx)(t,{created:d,onDone:()=>g(!1)}):(0,b.jsx)(s,{onCreated:e,onCancel:()=>g(!1)})})]})}],992861)},659526,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(507504),h=a.i(188406),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("6047ba4a283ca6d03cb9b9e8376193a890edbff953",j.callServer,void 0,j.findSourceMapURL,"changeKeyAction"),l=(0,j.createServerReference)("40c5a1111cad7ef2eb99ed678209493349abdc580d",j.callServer,void 0,j.findSourceMapURL,"revokeKeyAction");var m=a.i(136476);let n={rename:{title:a=>`Rename ${a}`,sub:"Agents and Logs show the name. Lowercase letters, digits and dashes.",cta:"Save name"},rate:{title:()=>"Change rate limit",sub:"Requests per minute, 1–600. Applies before the provider's own limits, within a minute.",cta:"Save limit"},expiry:{title:()=>"Change expiry",sub:"Counted from today. The key stops working at that date.",cta:"Save expiry"},routing:{title:()=>"Change routing",sub:"Pin this key to one provider and, if you like, one model. Without a pin it uses the default provider.",cta:"Save routing"}};function o({mode:a,k:e,providers:g,onDone:h}){let[j,l]=(0,c.useState)(e.name),[p,q]=(0,c.useState)(String(e.ratePerMin)),[r,s]=(0,c.useState)(e.expiresAt?"90d":"never"),[t,u]=(0,c.useState)(e.providerId??""),[v,w]=(0,c.useState)(e.model??""),[x,y]=(0,c.useState)({}),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useTransition)(),D=n[a];return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),C(async()=>{y({}),A("");try{let b=await k(e.id,"rename"===a?{kind:"rename",name:j.trim()}:"rate"===a?{kind:"rate",ratePerMin:p.trim()}:"expiry"===a?{kind:"expiry",expiry:r}:{kind:"routing",providerId:t||null,model:t?v.trim():null});b.ok?(d.c.success(b.message??"Key updated."),h()):b.fieldErrors?y(b.fieldErrors):A(b.error)}catch{A("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(i.F,{className:"text-base",children:D.title(e.name)}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:D.sub})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:["rename"===a&&(0,b.jsx)(f.O,{id:"edit-name",label:"Name",error:x.name,children:(0,b.jsx)("input",{id:"edit-name",value:j,onChange:a=>l(a.target.value),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:f.S})}),"rate"===a&&(0,b.jsx)(f.O,{id:"edit-rate",label:"Rate limit",help:"Requests per minute.",error:x.ratePerMin,children:(0,b.jsx)("input",{id:"edit-rate",inputMode:"numeric",value:p,onChange:a=>q(a.target.value),className:`${f.S} font-mono`})}),"expiry"===a&&(0,b.jsx)(f.O,{id:"edit-expiry",label:"Expires",error:x.expiry,children:(0,b.jsx)("select",{id:"edit-expiry",value:r,onChange:a=>s(a.target.value),className:f.S,children:m.W.map(a=>(0,b.jsx)("option",{value:a,children:m.o[a]},a))})}),"routing"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"edit-provider",label:"Provider",help:g.length?void 0:"No provider is connected yet. Until one is, this key has nothing to pin to.",error:x.providerId,children:(0,b.jsxs)("select",{id:"edit-provider",value:t,onChange:a=>u(a.target.value),className:f.S,children:[(0,b.jsx)("option",{value:"",children:"No pin (default provider)"}),g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.name,a.enabled?"":" (off)"]},a.id))]})}),(0,b.jsx)(f.O,{id:"edit-model",label:"Model",help:"Optional. A Gemini model id, for example gemini-3.8-flash. Empty uses the provider's default.",error:x.model,children:(0,b.jsx)("input",{id:"edit-model",value:v,onChange:a=>w(a.target.value),disabled:!t,placeholder:"gemini-3.8-flash",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:`${f.S} font-mono`})})]}),z&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:z})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:h,disabled:B,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:B,children:B?"Saving…":D.cta})]})]})}a.s(["KeyActions",0,function({k:a,providers:d}){let[j,k]=(0,c.useState)(null);return(0,g.useHoldRefresh)(null!==j),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Revoke"}),title:`Revoke ${a.name}?`,body:`Calls with ${a.prefix}… answer 401 within a minute. Agents using it show "Key revoked". This can't be undone; create a new key instead.`,cta:"Revoke key",danger:!0,onConfirm:async()=>{let b=await l(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(h.RowMenu,{label:`Actions for ${a.name}`,items:[{label:"Rename",onSelect:()=>k("rename")},{label:"Change rate limit",onSelect:()=>k("rate")},{label:"Change expiry",onSelect:()=>k("expiry")},{label:"Change routing",onSelect:()=>k("routing")}]}),(0,b.jsx)(i.N,{open:null!==j,onOpenChange:a=>{a||k(null)},children:(0,b.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:j&&(0,b.jsx)(o,{mode:j,k:a,providers:d,onDone:()=>k(null)})})})]})}],659526)},136476,a=>{let b={"ai:invoke":{short:"models",long:"Chat completions and the model list through your provider connections."},"read:status":{short:"console data, MCP",long:"Read-only console data: GET /api/v1/status and the MCP server. Database names are aliases; no URLs, emails or secrets."},"write:notes":{short:"post AI notes",long:a.i(901615).C.writeNotesLong}};a.s(["j",0,"90d","D",0,20,"J",0,["ai:invoke"],"W",0,["7d","30d","90d","1y","never"],"o",0,{"7d":"In 7 days","30d":"In 30 days","90d":"In 90 days","1y":"In 1 year",never:"Never"},"B",0,["ai:invoke","read:status","write:notes"],"h",0,b])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_10zavgy86u3us._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1_h_ya1h8efdj._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(614755)))},73710,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(b=>a.l(b))).then(()=>b(716983)))},871289,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0hzlz_t5eect2._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(204048)))},522169,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(b=>a.l(b))).then(()=>b(615089)))},372153,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js"].map(b=>a.l(b))).then(()=>b(765161)))},517930,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_1b1yd_ne2dpeh._.js"].map(b=>a.l(b))).then(()=>b(995517)))},636029,a=>{a.v(a=>Promise.resolve().then(()=>a(904370)))},828215,a=>{"use strict";a.s(["f",0,function(a,b="/"){if(!a||!a.startsWith("/")||a.startsWith("//")||a.startsWith("/\\"))return b;try{let c=new URL(a,"http://console.local");if("http://console.local"!==c.origin)return b;let d=c.pathname+c.search;if(d.startsWith("//")||d.startsWith("/\\"))return b;return d}catch{return b}}])}];
1
+ module.exports=[461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0tqqte5jb6jz7._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(614755)))},73710,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(b=>a.l(b))).then(()=>b(716983)))},871289,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1qrk2rfmx21b_._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(204048)))},522169,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(b=>a.l(b))).then(()=>b(615089)))},372153,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js"].map(b=>a.l(b))).then(()=>b(765161)))},517930,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_1b1yd_ne2dpeh._.js"].map(b=>a.l(b))).then(()=>b(995517)))},636029,a=>{a.v(a=>Promise.resolve().then(()=>a(904370)))},828215,a=>{"use strict";a.s(["f",0,function(a,b="/"){if(!a||!a.startsWith("/")||a.startsWith("//")||a.startsWith("/\\"))return b;try{let c=new URL(a,"http://console.local");if("http://console.local"!==c.origin)return b;let d=c.pathname+c.search;if(d.startsWith("//")||d.startsWith("/\\"))return b;return d}catch{return b}}])}];
2
2
 
3
- //# sourceMappingURL=src_186l56gdeizg8._.js.map
3
+ //# sourceMappingURL=src_14ulgwoxoyfkq._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[891370,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RepoList() from the server but RepoList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/repos/repo-list.tsx","RepoList"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call VisibilityTag() from the server but VisibilityTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/repos/repo-list.tsx","VisibilityTag");a.s(["RepoList",0,c,"VisibilityTag",0,d])},247482,a=>{var b=a.i(891370);a.n(b)},476435,450278,751931,793379,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(358179),h=a.i(120213),i=a.i(492665);let j=[/(^|\/)\.env(\.|$)/i,/\.(pem|key|p12|pfx|crt|cer|keystore|jks)$/i,/(^|\/)(id_rsa|id_ed25519)/i,/secret/i,/credential/i],k=[/(^|\/)(node_modules|\.next|dist|build|out|coverage|\.vercel|\.git)\//,/(package-lock\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lockb?)$/i],l=[/\.(png|jpe?g|gif|webp|ico|svg|pdf|zip|gz|woff2?|ttf|mp4|mp3|wasm)$/i];function m(a){return!a||a.split("/").includes("..")||j.some(b=>b.test(a))?"secret":k.some(b=>b.test(a))?"generated":l.some(b=>b.test(a))?"binary":null}function n(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}function o(a,b){let c=a?/[?&]page=(\d+)[^>]*>;\s*rel="last"/.exec(a):null;return c?Number(c[1]):b}[...j,...k,...l],a.s(["M",0,{secret:"hidden (secret file)",generated:"hidden (generated file)",binary:"binary, not shown"},"Z",0,m],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=m(`${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:m(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,o,"q",0,function(a,b){let c=m(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,n,"e",0,function(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(+(a<10240))} KB`:`${(a/1024/1024).toFixed(1)} MB`}],751931);let p=a=>void 0!==a.retryAfterS&&(403===a.status||429===a.status),q="GitHub's rate limit is used up for now. Try again later.";class r{max;rows;pausedUntil;constructor(a=200){this.max=a,this.rows=new Map,this.pausedUntil=0}async get(a,b,c,d=Date.now){let e=this.rows.get(a);if(e&&d()-e.at<e.ttl)return{ok:!0,data:e.value};if(d()<this.pausedUntil)return{ok:!1,kind:"transient",status:429,retryAfterS:Math.ceil((this.pausedUntil-d())/1e3),error:q};let f=await c();if(f.ok){if(this.rows.size>=this.max){let a=this.rows.keys().next().value;void 0!==a&&this.rows.delete(a)}this.rows.delete(a),this.rows.set(a,{at:d(),ttl:b,value:f.data})}else if(p(f))return this.pausedUntil=d()+1e3*Math.min(3600,Math.max(30,f.retryAfterS??60)),{...f,error:q};return f}clear(){this.rows.clear(),this.pausedUntil=0}}a.s(["W",0,r,"i",0,p],793379);var s=a.i(683439),t=a.i(760417),u=a.i(689963),v=a.i(26972),w=a.i(427221),x=a.i(811365),y=a.i(83931);let z=a=>({ok:!1,kind:"format",error:`GitHub answered ${a} in a format the console doesn't recognise.`}),A={ok:!1,kind:"format",error:"That isn't a repository name or ref."},B=a=>a&&a.startsWith("https://github.com/")?a:null;async function C(a,b={}){let c=new Map,d=u.z.array(v.z.object({full_name:w.z.string(),language:w.z.string().nullish()}));for(let e=1;e<=t.t;e++){let f=await (0,t.j)(`/user/repos?per_page=100&page=${e}&sort=pushed&affiliation=owner,collaborator,organization_member`,a,b);if(!f.ok)return f;let g=d.safeParse(f.data);if(!g.success)return z("the repository list");for(let a of g.data)a.language&&c.set(a.full_name.toLowerCase(),a.language.slice(0,40));if(g.data.length<100)break}return{ok:!0,data:c}}async function D(a,b,c={}){if(!(0,t.M)(b))return A;let[d,e]=await Promise.all([(0,t.j)(`/repos/${(0,t.f)(b)}`,a,c),(0,t.j)(`/repos/${(0,t.f)(b)}/pulls?state=open&per_page=1`,a,c)]);if(!d.ok)return d;let f=v.z.object({description:w.z.string().nullish(),language:w.z.string().nullish(),open_issues_count:x.z.number().nullish(),html_url:w.z.string().nullish()}).safeParse(d.data);if(!f.success)return z("the repository");let g=e.ok&&Array.isArray(e.data)?o(e.headers.get("link"),e.data.length):0;return{ok:!0,data:{description:f.data.description?.slice(0,300)??null,language:f.data.language??null,openIssuesAndPulls:f.data.open_issues_count??0,openPulls:g,htmlUrl:B(f.data.html_url)}}}async function E(a,b,c,d,e={}){if(!(0,t.M)(b)||!(0,t.c)(c))return A;let f=await (0,t.j)(`/repos/${(0,t.f)(b)}/readme?ref=${encodeURIComponent(c)}`,a,e);if(!f.ok)return"missing"===f.kind?{ok:!0,data:null}:f;let g=v.z.object({path:w.z.string(),size:x.z.number(),content:w.z.string().nullish(),encoding:w.z.string().nullish()}).safeParse(f.data);if(!g.success)return z("the README");if(g.data.size>d||"base64"!==g.data.encoding||!g.data.content)return{ok:!0,data:{path:g.data.path,text:null,size:g.data.size}};let h=Buffer.from(g.data.content,"base64").toString("utf8");return h.includes("\0")?{ok:!0,data:{path:g.data.path,text:null,size:g.data.size}}:{ok:!0,data:{path:g.data.path,text:h,size:g.data.size}}}async function F(a,b,c,d=20,e={}){if(!(0,t.M)(b)||!(0,t.c)(c))return A;let f=await (0,t.j)(`/repos/${(0,t.f)(b)}/commits?sha=${encodeURIComponent(c)}&per_page=${d}`,a,e);if(!f.ok)return f;let g=u.z.array(v.z.object({sha:w.z.string(),html_url:w.z.string().nullish(),author:v.z.object({login:w.z.string()}).nullish(),commit:v.z.object({message:w.z.string(),author:v.z.object({name:w.z.string().nullish(),date:w.z.string().nullish()}).nullish()})})).safeParse(f.data);return g.success?{ok:!0,data:g.data.map(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:B(a.html_url)}))}:z("the commits")}async function G(a,b,c={}){if(!(0,t.M)(b))return A;let d=await (0,t.j)(`/repos/${(0,t.f)(b)}/branches?per_page=100`,a,c);if(!d.ok)return d;let e=u.z.array(v.z.object({name:w.z.string(),protected:y.z.boolean().nullish(),commit:v.z.object({sha:w.z.string()})})).safeParse(d.data);return e.success?{ok:!0,data:{branches:e.data.map(a=>({name:a.name,sha:a.commit.sha,protected:a.protected??!1})),more:/rel="next"/.test(d.headers.get("link")??"")}}:z("the branches")}async function H(a,b,c=10,d={}){if(!(0,t.M)(b))return A;let e=await (0,t.j)(`/repos/${(0,t.f)(b)}/actions/runs?per_page=${c}`,a,d);if(!e.ok)return e;let f=v.z.object({workflow_runs:u.z.array(v.z.object({id:x.z.number(),name:w.z.string().nullish(),display_title:w.z.string().nullish(),status:w.z.string().nullish(),conclusion:w.z.string().nullish(),head_branch:w.z.string().nullish(),event:w.z.string().nullish(),head_sha:w.z.string().nullish(),run_number:x.z.number().nullish(),updated_at:w.z.string().nullish(),created_at:w.z.string().nullish(),html_url:w.z.string().nullish()}))}).safeParse(e.data);return f.success?{ok:!0,data:f.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:B(a.html_url)}))}:z("the Actions runs")}var I=a.i(27522);let J=new r(300);async function K(a){let[c]=await (0,e.f)().select({c:f.accounts.credentialCiphertext,iv:f.accounts.credentialIv}).from(f.accounts).where((0,b.b)((0,b.u)(f.accounts.id,a),(0,b.u)(f.accounts.provider,"github"))).limit(1);return c?(0,g.V)({ciphertext:c.c,iv:c.iv},(0,i.f)().OPS_ENCRYPTION_KEY):null}async function L(){let[a]=await (0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).orderBy((0,c.M)(f.accounts.createdAt)).limit(1);return a?.id??null}async function M(a){let c=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId,name:f.resources.name}).from(f.appRepos).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.M)(f.resources.goneAt),a?(0,b.y)(f.appRepos.repoId,a):void 0)).limit(1e3);return n(c,c.map(a=>({id:a.appId,name:a.name})))}async function N(){let a=await L(),g=await (0,e.f)().select({id:f.githubRepos.id,accountId:f.githubRepos.accountId,fullName:f.githubRepos.fullName,private:f.githubRepos.private,archived:f.githubRepos.archived,defaultBranch:f.githubRepos.defaultBranch,pushedAt:f.githubRepos.pushedAt,actions:f.githubRepos.actions}).from(f.githubRepos).where((0,b.M)(f.githubRepos.goneAt)).orderBy((0,c.A)(f.githubRepos.pushedAt)).limit(1e3);if(!g.length)return{connected:null!==a,items:[],languageNote:null};let[h,i,j]=await Promise.all([M(null),(0,e.f)().select({repoId:f.dependencyVulns.repoId,n:d.B`count(*)::int`}).from(f.dependencyVulns).where((0,b.M)(f.dependencyVulns.resolvedAt)).groupBy(f.dependencyVulns.repoId),(0,e.f)().select({repoId:f.dependencyScans.repoId}).from(f.dependencyScans).where((0,b.E)(f.dependencyScans.scannedAt))]),k=new Map(i.map(a=>[a.repoId,a.n])),l=new Set(j.map(a=>a.repoId)),m=new Map,n=null,o=a?await K(a):null;if(o){let b=await J.get(`languages:${a}`,9e5,()=>C(o));b.ok?m=b.data:n=`Languages aren't shown: ${b.error}`}return{connected:null!==a,languageNote:n,items:g.map(a=>({id:a.id,fullName:a.fullName,private:a.private,archived:a.archived,defaultBranch:a.defaultBranch,pushedAt:a.pushedAt?.toISOString()??null,language:m.get(a.fullName.toLowerCase())??null,apps:h.get(a.id)??[],advisories:l.has(a.id)?k.get(a.id)??0:null,actions:a.actions?(0,I.N)(a.actions,a.defaultBranch):null}))}}async function O(a){if(!(0,s.f)(a))return null;let[c]=await (0,e.f)().select().from(f.githubRepos).where((0,b.u)(f.githubRepos.id,a)).limit(1);if(!c)return null;let d=await M([c.id]);return{repo:c,apps:d.get(c.id)??[],ref:c.defaultBranch??"HEAD"}}let P={ok:!1,kind:"auth",error:"The GitHub token can't be read. Check the GitHub connection on Connections."};async function Q(a,b,c,d){return a.goneAt?{ok:!1,kind:"missing",error:"This repository is no longer shared with the GitHub token."}:J.get(`${a.id}:${b}`,c,async()=>{let b=await K(a.accountId);return b?d(b):P})}async function R(a){let[[c],d]=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,a.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,a.id),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3)]);return d.sort((a,b)=>(0,h.t)(a.severity)-(0,h.t)(b.severity)||(a.package<b.package?-1:+(a.package>b.package))||(a.vulnId<b.vulnId?-1:1)),{repo:{id:a.id,fullName:a.fullName},scan:c??null,vulns:d,writeConnected:!0}}a.s(["E",0,a=>Q(a.repo,"branches",3e5,b=>G(b,a.repo.fullName)),"c",0,a=>Q(a.repo,`commits@${a.ref}`,12e4,b=>F(b,a.repo.fullName,a.ref,20)),"N",0,(a,b)=>Q(a.repo,`file@${a.ref}:${b}`,3e5,c=>(0,t.V)(c,a.repo.fullName,b,a.ref,204800)),"i",0,N,"P",0,a=>Q(a.repo,`readme@${a.ref}`,6e5,b=>E(b,a.repo.fullName,a.ref,204800)),"Z",0,R,"O",0,O,"U",0,a=>Q(a.repo,"info",3e5,b=>D(b,a.repo.fullName)),"T",0,a=>Q(a.repo,"runs",12e4,b=>H(b,a.repo.fullName,10)),"t",0,a=>Q(a.repo,`tree@${a.ref}`,6e5,b=>(0,t.s)(b,a.repo.fullName,a.ref))],476435)}]})();
1
+ (()=>{"use strict";module.exports=[891370,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RepoList() from the server but RepoList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/repos/repo-list.tsx","RepoList"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call VisibilityTag() from the server but VisibilityTag is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/repos/repo-list.tsx","VisibilityTag");a.s(["RepoList",0,c,"VisibilityTag",0,d])},247482,a=>{var b=a.i(891370);a.n(b)},476435,793379,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(358179),h=a.i(120213),i=a.i(492665),j=a.i(751931);let k=a=>void 0!==a.retryAfterS&&(403===a.status||429===a.status),l="GitHub's rate limit is used up for now. Try again later.";class m{max;rows;pausedUntil;constructor(a=200){this.max=a,this.rows=new Map,this.pausedUntil=0}async get(a,b,c,d=Date.now){let e=this.rows.get(a);if(e&&d()-e.at<e.ttl)return{ok:!0,data:e.value};if(d()<this.pausedUntil)return{ok:!1,kind:"transient",status:429,retryAfterS:Math.ceil((this.pausedUntil-d())/1e3),error:l};let f=await c();if(f.ok){if(this.rows.size>=this.max){let a=this.rows.keys().next().value;void 0!==a&&this.rows.delete(a)}this.rows.delete(a),this.rows.set(a,{at:d(),ttl:b,value:f.data})}else if(k(f))return this.pausedUntil=d()+1e3*Math.min(3600,Math.max(30,f.retryAfterS??60)),{...f,error:l};return f}clear(){this.rows.clear(),this.pausedUntil=0}}a.s(["W",0,m,"i",0,k],793379);var n=a.i(683439),o=a.i(760417),p=a.i(589856),q=a.i(27522);let r=new m(300);async function s(a){let[c]=await (0,e.f)().select({c:f.accounts.credentialCiphertext,iv:f.accounts.credentialIv}).from(f.accounts).where((0,b.b)((0,b.u)(f.accounts.id,a),(0,b.u)(f.accounts.provider,"github"))).limit(1);return c?(0,g.V)({ciphertext:c.c,iv:c.iv},(0,i.f)().OPS_ENCRYPTION_KEY):null}async function t(){let[a]=await (0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).orderBy((0,c.M)(f.accounts.createdAt)).limit(1);return a?.id??null}async function u(a){let c=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId,name:f.resources.name}).from(f.appRepos).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.M)(f.resources.goneAt),a?(0,b.y)(f.appRepos.repoId,a):void 0)).limit(1e3);return(0,j.V)(c,c.map(a=>({id:a.appId,name:a.name})))}async function v(){let a=await t(),g=await (0,e.f)().select({id:f.githubRepos.id,accountId:f.githubRepos.accountId,fullName:f.githubRepos.fullName,private:f.githubRepos.private,archived:f.githubRepos.archived,defaultBranch:f.githubRepos.defaultBranch,pushedAt:f.githubRepos.pushedAt,actions:f.githubRepos.actions}).from(f.githubRepos).where((0,b.M)(f.githubRepos.goneAt)).orderBy((0,c.A)(f.githubRepos.pushedAt)).limit(1e3);if(!g.length)return{connected:null!==a,items:[],languageNote:null};let[h,i,j]=await Promise.all([u(null),(0,e.f)().select({repoId:f.dependencyVulns.repoId,n:d.B`count(*)::int`}).from(f.dependencyVulns).where((0,b.M)(f.dependencyVulns.resolvedAt)).groupBy(f.dependencyVulns.repoId),(0,e.f)().select({repoId:f.dependencyScans.repoId}).from(f.dependencyScans).where((0,b.E)(f.dependencyScans.scannedAt))]),k=new Map(i.map(a=>[a.repoId,a.n])),l=new Set(j.map(a=>a.repoId)),m=new Map,n=null,o=a?await s(a):null;if(o){let b=await r.get(`languages:${a}`,9e5,()=>(0,p.S)(o));b.ok?m=b.data:n=`Languages aren't shown: ${b.error}`}return{connected:null!==a,languageNote:n,items:g.map(a=>({id:a.id,fullName:a.fullName,private:a.private,archived:a.archived,defaultBranch:a.defaultBranch,pushedAt:a.pushedAt?.toISOString()??null,language:m.get(a.fullName.toLowerCase())??null,apps:h.get(a.id)??[],advisories:l.has(a.id)?k.get(a.id)??0:null,actions:a.actions?(0,q.N)(a.actions,a.defaultBranch):null}))}}async function w(a){if(!(0,n.f)(a))return null;let[c]=await (0,e.f)().select().from(f.githubRepos).where((0,b.u)(f.githubRepos.id,a)).limit(1);if(!c)return null;let d=await u([c.id]);return{repo:c,apps:d.get(c.id)??[],ref:c.defaultBranch??"HEAD"}}let x={ok:!1,kind:"auth",error:"The GitHub token can't be read. Check the GitHub connection on Connections."};async function y(a,b,c,d){return a.goneAt?{ok:!1,kind:"missing",error:"This repository is no longer shared with the GitHub token."}:r.get(`${a.id}:${b}`,c,async()=>{let b=await s(a.accountId);return b?d(b):x})}async function z(a){let[[c],d]=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,a.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,a.id),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3)]);return d.sort((a,b)=>(0,h.t)(a.severity)-(0,h.t)(b.severity)||(a.package<b.package?-1:+(a.package>b.package))||(a.vulnId<b.vulnId?-1:1)),{repo:{id:a.id,fullName:a.fullName},scan:c??null,vulns:d,writeConnected:!0}}a.s(["E",0,a=>y(a.repo,"branches",3e5,b=>(0,p.n)(b,a.repo.fullName)),"c",0,a=>y(a.repo,`commits@${a.ref}`,12e4,b=>(0,p.T)(b,a.repo.fullName,a.ref,20)),"N",0,(a,b)=>y(a.repo,`file@${a.ref}:${b}`,3e5,c=>(0,o.V)(c,a.repo.fullName,b,a.ref,j.B)),"i",0,v,"P",0,a=>y(a.repo,`readme@${a.ref}`,6e5,b=>(0,p.Q)(b,a.repo.fullName,a.ref,j.B)),"Z",0,z,"O",0,w,"U",0,a=>y(a.repo,"info",3e5,b=>(0,p.H)(b,a.repo.fullName)),"T",0,a=>y(a.repo,"runs",12e4,b=>(0,p.A)(b,a.repo.fullName,10)),"t",0,a=>y(a.repo,`tree@${a.ref}`,6e5,b=>(0,o.s)(b,a.repo.fullName,a.ref))],476435)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_1ckoccd8qvnje._.js.map
@@ -0,0 +1,8 @@
1
+ (()=>{"use strict";module.exports=[138984,a=>{var b=a.i(26972),c=a.i(427221),d=a.i(827857),e=a.i(899370),f=a.i(371289);let g=b.z.object({COLLECTOR_SECRET:c.z.string().min(32),CRON_SECRET:c.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:c.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:c.z.string().min(10)}),h=g.extend({QSTASH_CURRENT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default("")}),i=!1;a.s(["f",0,function(){try{var a=process.env;let b=("selfhost"===(0,f.c)(a)?h:g).safeParse(a);if(!b.success)throw Error(`Missing or invalid scheduler settings: ${b.error.issues.map(a=>a.path.join(".")).join(", ")}`);return b.data}catch(a){return i||(i=!0,console.warn(a instanceof Error?a.message:"Missing or invalid scheduler settings")),null}}])},736780,664892,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(358179),g=a.i(912283),h=a.i(117859),i=a.i(876808),j=a.i(521050),k=a.i(679662);let l={checks:"waiting for CI",preview:"waiting for preview",smoke:"smoke test",merging:"merging…",merged:"merged ✅","ready-manual":"ready to merge (manual)",failed:"needs a look ⚠️",timeout:"needs a look ⚠️",closed:"closed"},m=(a,b,c)=>{let d=`PR #${a}: ${l[b]}${c?` — ${c}`:""}`;return d.length>200?`${d.slice(0,199)}…`:d},n=new Set(["success","neutral","skipped"]),o=a=>"completed"!==a.status?"pending":n.has(a.conclusion??"")?"success":"failure",p={name:"watchbell[bot]",email:"watchbell-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchbell)"},q={name:"watchpost[bot]",email:"watchpost-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchpost)"},r=a=>[p,q].some(b=>a.name===b.name&&a.email.toLowerCase()===b.email&&a.message.trim()===b.message),s=/^[\^~]?[0-9][0-9A-Za-z.+-]*$/,t=a=>Array.isArray(a)?a.map(t):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,t(a[b])])):a,u=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,v=/^sha512-[A-Za-z0-9+/]{86}==$/,w="(?:@[a-z0-9][a-z0-9._~-]*/)?[a-z0-9][a-z0-9._~-]*",x=RegExp(`^(?:[A-Za-z0-9_-][A-Za-z0-9._-]*/)*?node_modules/${w}(?:/node_modules/${w})*$`,"i"),y=new Set(["dev","optional","devOptional","peer"]),z=a=>!!a&&"object"==typeof a&&!Array.isArray(a),A=a=>a.slice(a.lastIndexOf("node_modules/")+13),B=(a,b,c)=>`${a}/${b}/-/${b.split("/").pop()}-${c}.tgz`,C=(a,b)=>JSON.stringify(t(a))===JSON.stringify(t(b)),D=a=>Object.fromEntries(Object.entries(a).filter(([a])=>!y.has(a))),E=a=>{try{let b=JSON.parse(a);return z(b)&&z(b.packages)?b:null}catch{return null}};a.s(["y",0,20,"X",0,["checks","preview","smoke","merging"],"w",0,15e3,"R",0,27e5,"j",0,function(a){let b=(a.checkRuns??a.actionRuns??[]).map(o);return(a.combined&&a.combined.total>0&&b.push("success"===a.combined.state?"success":"pending"===a.combined.state?"pending":"failure"),b.includes("failure"))?"failure":b.includes("pending")?"pending":"success"},"L",0,function(a){if(!a.length||a.some(a=>a.authWall))return null;let b=a.find(a=>null===a.status||a.status<200||a.status>399);return b?{mode:"http",result:"fail",reason:null===b.status?`${b.path} didn't answer within 15 seconds`:`${b.path} answered ${b.status}`}:{mode:"http",result:"pass",reason:null}},"S",0,function(a,b,c){return(401===a||403===a)&&(/vercel\.com\/(sso|login)|Authentication Required|_vercel_sso|vercel-authentication/i.test(b)||/_vercel_sso/i.test(c.get("set-cookie")??"")||"vercel"===(c.get("server")??"").toLowerCase())},"T",0,function(a,b,c){if([a,b].some(a=>null!==a&&(a=>{if(a.length>0x1900000)return!0;if(3*a.length<=0x1900000)return!1;let b=0;for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);d<128?b+=1:d<2048?b+=2:d>=55296&&d<56320&&(64512&a.charCodeAt(c+1))==56320?(b+=4,c++):b+=3}return b>0x1900000})(a)))return`lockfile too large to check (over 25 MB): ${c}`.slice(0,150);try{return function(a,b,c){let d=a=>`unexpected lockfile change ${a}`.slice(0,150),e=null===b?null:E(b),f=null===a?{packages:{}}:E(a);if(!e||!f)return d(c);if(2!==e.lockfileVersion&&3!==e.lockfileVersion||null!==a&&e.lockfileVersion!==f.lockfileVersion)return d("lockfileVersion");let g=new Set;for(let[a,b]of Object.entries(f.packages)){if(!x.test(a)||!z(b)||"string"!=typeof b.resolved||"string"!=typeof b.version)continue;let c=B("","string"==typeof b.name?b.name:A(a),b.version);b.resolved.startsWith("https://")&&b.resolved.endsWith(c)&&g.add(b.resolved.slice(0,-c.length))}for(let[a,b]of(g.size||g.add("https://registry.npmjs.org"),Object.entries(e.packages))){let e=Object.hasOwn(f.packages,a)?f.packages[a]:void 0;if(void 0!==e&&C(e,b))continue;let h=z(e)?e:null;if(""===a||!a.includes("node_modules/")){let e=""===a?z(b)&&"string"==typeof b.name?b.name:c:a;if(!z(b)||""!==a&&!h||"resolved"in b||"link"in b)return d(e);continue}if(!x.test(a)||!z(b))return d(x.test(a)?A(a):a);let i=A(a);if(void 0!==b.name&&b.name!==i&&(!h||h.name!==b.name))return d(i);let j="string"==typeof b.name?b.name:i,k=b.version;if(void 0!==b.link||"string"!=typeof k||!u.test(k)||"string"!=typeof b.integrity||!v.test(b.integrity)||"string"!=typeof b.resolved||![...g].some(a=>b.resolved===B(a,j,k))||h&&h.version===k&&!C(D(h),D(b)))return d(i)}return null}(a,b,c)}catch{return`unexpected lockfile change ${c} (couldn't be checked)`.slice(0,150)}},"H",0,a=>!!a.lockfileRequired&&!!a.lockfile&&!a.files.some(b=>b.filename===a.lockfile),"n",0,function(a,b,c){return null!==c&&c>0?{mode:"logs",result:"fail",reason:`${c} errors in the preview logs`}:b.getTime()-a.getTime()<18e4||null===c?{mode:"logs",result:"wait",reason:null}:{mode:"logs",result:"pass",reason:null}},"C",0,function(a,b,c){let d,e;try{d=JSON.parse(a),e=JSON.parse(b)}catch{return"unexpected change: package.json isn't valid JSON"}if(!d||!e||"object"!=typeof d||"object"!=typeof e)return"unexpected change: package.json isn't an object";let f=a=>{let b=structuredClone(a);for(let a of["dependencies","devDependencies"]){let d=b[a];if(d&&"object"==typeof d)for(let a of c)delete d[a]}return b};if(JSON.stringify(t(f(d)))!==JSON.stringify(t(f(e))))return"unexpected change in package.json beyond the bumped versions";for(let a of["dependencies","devDependencies"]){let b=d[a]??{},f=e[a]??{};for(let a of c){if(a in b!=a in f)return`unexpected change in package.json: ${a} added or removed`;if(a in f&&f[a]!==b[a]&&("string"!=typeof f[a]||!s.test(f[a])))return`unexpected change in package.json: ${a} isn't a plain version`}}return null},"E",0,function(a){let b=["/"];for(let c of a){let a;try{a=new URL(c).pathname||"/"}catch{continue}!b.includes(a)&&b.length<4&&b.push(a)}return b},"m",0,m,"k",0,function(a){let b=new Set([a.manifest,...a.lockfile?[a.lockfile]:[]]);for(let c of a.files)for(let a of[c.filename,c.previous])if(a&&!b.has(a))return`unexpected change in ${a}`.slice(0,150);if(!a.files.some(b=>b.filename===a.manifest))return`unexpected change: ${a.manifest} isn't changed`.slice(0,150);if(a.manifestProblem)return a.manifestProblem.slice(0,150);if(a.lockfileProblem)return a.lockfileProblem.slice(0,150);if(!a.tokenLogin||!a.commits.length||a.commits.length>20)return"couldn't confirm who wrote the PR's commits";if(a.headSha&&a.commits[a.commits.length-1].sha!==a.headSha)return"the PR's head moved while it was checked";for(let b of a.commits){if(null!==b.login&&b.login.toLowerCase()===a.tokenLogin.toLowerCase())continue;let c=b.sha.slice(0,7);if(!r(b)||!b.files||!a.lockfile)return`unexpected commit ${c} by ${b.login??b.name}`.slice(0,150);let d=b.files.find(b=>b!==a.lockfile);if(d)return`unexpected change in ${d} by commit ${c}`.slice(0,150)}return null},"f",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<1e5))&&(Math.floor(c/6e4)%2==0||null!==b&&c-b>=24e4)},"M",0,function(a){if(a.pr.merged)return{kind:"done",stage:"merged"};if("closed"===a.pr.state)return{kind:"done",stage:"closed"};if(void 0!==a.pr.base&&void 0!==a.recordedBase&&a.pr.base!==a.recordedBase)return{kind:"stop",stage:"failed",reason:`the PR's base changed to ${a.pr.base}`};if(a.pr.headSha!==a.recordedSha)return{kind:"wait",stage:"checks",reason:"new commit on the PR branch, checking again",resetSha:a.pr.headSha};let b=a.now.getTime()-a.openedAt.getTime()>27e5;return"failure"===a.checks?{kind:"stop",stage:"failed",reason:"CI failed"}:!1===a.pr.mergeable?{kind:"stop",stage:"failed",reason:"conflicts with the main branch"}:"error"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel preview failed"}:"canceled"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel canceled the preview (an Ignored Build Step that skips previews does this), so the update wasn't smoke-tested; check it and merge by hand"}:"pending"===a.checks||null===a.pr.mergeable?b?{kind:"stop",stage:"timeout",reason:"CI not finished within 45 minutes"}:{kind:"wait",stage:"checks",reason:null}:"ready"!==a.preview.state?b?{kind:"stop",stage:"timeout",reason:"preview not ready within 45 minutes"}:{kind:"wait",stage:"preview",reason:null}:a.smoke&&"wait"!==a.smoke.result?"fail"===a.smoke.result?{kind:"stop",stage:"failed",reason:`preview smoke test failed: ${a.smoke.reason??"?"}`}:a.autoRollbackOn?{kind:"merge"}:{kind:"stop",stage:"ready-manual",reason:"PR is ready to merge, but auto-rollback is off; merge it manually"}:b?{kind:"stop",stage:"timeout",reason:"preview smoke test not finished within 45 minutes"}:{kind:"wait",stage:"smoke",reason:null}}],664892);var F=a.i(120213),G=a.i(492665),H=a.i(683439),I=a.i(751263),J=a.i(812092),K=a.i(75105),L=a.i(322145),M=a.i(976937);let N=a=>({done:!1,message:a});async function O(){let[a]=await (0,d.f)().select().from(e.accounts).where((0,b.u)(e.accounts.provider,"github_write")).orderBy((0,c.M)(e.accounts.createdAt)).limit(1);if(!a)return null;let g=(0,f.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,G.f)().OPS_ENCRYPTION_KEY);return g?{id:a.id,token:g}:"unreadable"}let P={severity:"no package at the selected severity",major:"an update jumps a major version",nothing:"nothing can be updated"};async function Q(a){let[c]=await (0,d.f)().select({version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appSecurity).where((0,b.u)(e.appSecurity.resourceId,a)).limit(1);return c?(0,i.p)({version:c.version,status:c.status,findings:Array.isArray(c.findings)?c.findings:[]}):null}async function R(a){let c=await (0,d.f)().select({package:e.dependencyVulns.package,installedVersion:e.dependencyVulns.installedVersion,fixedVersion:e.dependencyVulns.fixedVersion,vulnId:e.dependencyVulns.vulnId,aliases:e.dependencyVulns.aliases,severity:e.dependencyVulns.severity,direct:e.dependencyVulns.direct,dev:e.dependencyVulns.dev}).from(e.dependencyVulns).where((0,b.b)((0,b.u)(e.dependencyVulns.repoId,a),(0,b.M)(e.dependencyVulns.resolvedAt))).limit(2e3);return{upgrades:(0,F.B)(c),installed:(0,g.D)(c)}}async function S(a,b,c,d,e){for(let f of(0,I.a)(d,c)){if(f===c)break;let d=await (0,J.M)(a,b,f,e);if(!d.ok)return d;if(d.data)return{ok:!0,data:{base:f,head:d}}}return{ok:!0,data:{base:c,head:await (0,J.M)(a,b,c,e)}}}async function T(c,f,l,n=L.W,o={}){let p;if(!(0,H.f)(f)||!(0,H.f)(l))return n(N("Something in that request wasn't valid."),c,"");let q=await (0,L.q)(c.id,"github_bump_pr",f);if(q)return n(N(q),c,"");let r=await O();if(null===r)return n(N('A GitHub PR-write token is needed: connect "GitHub (PR write)" on Connections (fine-grained, this repository only, Contents and Pull requests: Read and write; Commit statuses: Read for automatic merges), then ask again.'),c,"");if("unreadable"===r)return n(N("Can't read the stored GitHub PR-write credential. Replace it on Connections."),c,"");let[s]=await (0,d.f)().select({app:e.resources.name,meta:e.resources.meta,fullName:e.githubRepos.fullName,owner:e.githubRepos.owner,goneAt:e.githubRepos.goneAt,lockfilePath:e.dependencyScans.lockfilePath,lockfileSha:e.dependencyScans.lockfileSha}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).leftJoin(e.dependencyScans,(0,b.u)(e.dependencyScans.repoId,e.appRepos.repoId)).where((0,b.b)((0,b.u)(e.appRepos.appId,f),(0,b.u)(e.appRepos.repoId,l))).limit(1);if(!s||s.goneAt)return n(N(K.G),c,r.id);let t=s.meta??{},u=(0,j.l)(t.rootDirectoryUnsupported);if(u)return n(N(`The Vercel Root Directory "${u}" of ${s.app} couldn't be used (Watchbell reads plain folder names, at most 4 deep). Update its package.json yourself.`),c,r.id);let v=(0,j.Q)(t.rootDirectory),w=(0,j.H)(v,"package.json"),x=v?`in ${v}`:"at the repository root";if(o.framework){let a=await Q(f);if(!a)return n(N(`Nothing to update in ${s.app}: its Next.js check shows no advisory with a fixed version.`),c,r.id);p=a}else if(!(p=await R(l)).upgrades.length)return n(N(`Nothing to update in ${s.app}: no direct package has a fixed version for its open advisories.`),c,r.id);let y=p.upgrades;if(o.auto){let a=(0,g.a)(y,p.installed,o.auto.severities);if(!a.ok)return n(N(`Automatic PR not opened: ${P[a.why]}. The proposal waits for your approval.`),c,r.id);y=a.upgrades}y=(0,i.F)(y);let{auto:z,proposalId:A,framework:B,...C}=o,D={timeoutMs:8e3,...C},E=await (0,J.H)(r.token,s.fullName,D);if(!E.ok)return n({done:!1,failed:E,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let F=await S(r.token,s.fullName,E.data.defaultBranch,t,D);if(!F.ok)return n({done:!1,failed:F,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let G=F.data.base,U=(0,I.B)(t.productionSource,G,new Date);if(U&&z)return n(N(`Automatic PR not opened: ${U} The proposal waits for your approval.`),c,r.id);let V=B?null:(0,I.y)(s.lockfileSha,E.data.defaultBranch,v);if(V&&V!==G)return n(N(`The dependency scan of ${s.app} read ${V}, but this pull request would go to ${G}. Scan again (Dependencies › Scan now on the app page), then ask again.`),c,r.id);let W=F.data.head;if(!W.ok)return n({done:!1,failed:W,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!W.data)return n(N(`The default branch ${G} wasn't found.`),c,r.id);let X=await (0,J.E)(r.token,s.fullName,W.data,D,w);if(!X.ok)return n({done:!1,failed:X,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!X.data)return n(N(`There is no package.json ${x}.`),c,r.id);let Y=(0,h.k)(X.data.text,y);if(!Y?.length||B&&!Y.some(a=>"next"===a.package))return n(N(`${w} in ${s.app} already allows the fixed versions (or its ranges can't be rewritten). Run npm install there.`),c,r.id);if(z){let a=Y.find(a=>{let b=(0,k.Y)(a.from);return!b||!(0,g.J)(b,a.fixed)});if(a)return n(N(`Automatic PR not opened: ${a.package} ${a.from} → ${a.to} jumps a major version. The proposal waits for your approval.`),c,r.id)}let Z=(0,h.M)(X.data.text,Y);if(!Z)return n(N("package.json couldn't be edited safely."),c,r.id);let $=(0,h.U)(Y,v);if(!(0,h.c)($,G))return n(N("Refused: the PR branch would be the default branch."),c,r.id);let _=await (0,J.x)(r.token,s.fullName,s.owner,$,G,D);if(_.ok&&_.data)return{ok:!0,message:`Pull request #${_.data.number} for these updates is already open.`};let aa=await (0,J.e)(r.token,s.fullName,D);if(!aa.ok)return n({done:!1,failed:aa,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(aa.data.length){let a=new Map((await (0,d.f)().select({number:e.dependencyPrs.number,packages:e.dependencyPrs.packages}).from(e.dependencyPrs).where((0,b.b)((0,b.u)(e.dependencyPrs.repoId,l),(0,b.y)(e.dependencyPrs.number,aa.data.map(a=>a.number))))).map(a=>[a.number,a.packages])),f=(0,g.U)(Y.map(a=>a.package),aa.data.map(b=>({number:b.number,branch:b.branch,title:b.title,packages:a.get(b.number)??null})),v);if(f)return n(N(`Pull request #${f.number} for the same package is already open in ${s.app}. Merge or close it first.`),c,r.id)}let ab=await (0,J.M)(r.token,s.fullName,$,D);if(ab.ok&&ab.data)return n(N(`Branch ${$} already exists without an open pull request. Delete it on GitHub, then ask again.`),c,r.id);let ac=s.lockfilePath??(v?(0,j.H)(v,"package-lock.json"):null),ad=k.a.find(a=>a.path===ac?.split("/").pop())?.kind??null,ae=a=>n({done:!1,failed:a,audit:{message:`Package update PR failed \xb7 ${s.app} \xb7 ${$}`,resourceId:f}},c,r.id),af=await (0,J.k)(r.token,s.fullName,$,W.data,G,D);if(!af.ok)return ae(af);let ag=await (0,J.D)(r.token,s.fullName,$,G,Z,X.data.sha,(0,h.G)(Y),D,w);if(!ag.ok)return ae(ag);let ah=(0,h.f)(Y,v),ai=(U?`> [!WARNING]
2
+ > ${U} Check where production is built from before you merge; Watchbell won't merge this pull request itself.
3
+
4
+ `:"")+(0,h.y)(Y,ad,!!z,v),aj=await (0,J.y)(r.token,s.fullName,$,G,ah,ai,D,{draft:!!U}),ak=!!U;if(U&&!aj.ok&&422===aj.status&&(aj=await (0,J.y)(r.token,s.fullName,$,G,ah,ai,D),ak=!1),!aj.ok)return ae(aj);let al=U?ak?` Opened as a draft: ${U}`:` Opened as a normal pull request (this repository can't have drafts), with the warning on top: ${U}`:"",am=Y.map(a=>`${a.package} ${a.from} → ${a.to}`).join(", "),an=await (0,J.M)(r.token,s.fullName,$,D).catch(()=>null),ao=!1;if(an?.ok&&an.data){await (0,d.f)().insert(e.dependencyPrs).values({repoId:l,appId:f,proposalId:A??null,number:aj.data.number,branch:$,baseBranch:G,headSha:an.data,title:ah.slice(0,200),packages:Y.map(a=>a.package),auto:!!z,stage:"checks",stageText:m(aj.data.number,"checks")}).onConflictDoNothing().catch(()=>console.warn("deps: recording the PR failed"));let{extensions:b}=await a.A(414785),c=await b.runner?.queueLockfileJob({repoId:l,branch:$,headSha:an.data,prNumber:aj.data.number,lockfilePath:ac,targets:Y.map(a=>({name:a.package,version:a.fixed}))}).catch(()=>(console.warn("deps: queueing the lockfile job failed"),null)),g=await (0,M.U)(r.token,{repo:s.fullName,branch:$,lockfilePath:ac,prNumber:aj.data.number});ao=c?.queued===!0||g.sent}return n({done:!0,message:`Pull request #${aj.data.number} opened for ${s.app}: ${am}.${ao?"":` Run npm install${v?` in ${v}`:""} on the branch before merging.`}${al}`,audit:{message:`Package update PR opened \xb7 ${s.app} \xb7 #${aj.data.number}`,resourceId:f,detail:am}},c,r.id)}async function U(a,b,c){if(!(0,H.f)(a)||c&&!(0,H.f)(c.appId))return{ok:!1,why:"target"};let d=await O();if(!d||"unreadable"===d)return{ok:!1,why:"no write token"};let e=c?await Q(c.appId):await R(a);if(!e)return{ok:!1,why:"nothing"};let f=(0,g.a)(e.upgrades,e.installed,b);return f.ok?{ok:!0}:{ok:!1,why:f.why}}async function V(a,c){let f=a.filter(a=>(0,H.f)(a.appId)&&(0,H.f)(a.repoId)),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,meta:e.resources.meta,defaultBranch:e.githubRepos.defaultBranch}).from(e.appRepos).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).where((0,b.y)(e.appRepos.appId,[...new Set(f.map(a=>a.appId))])).limit(4*f.length);for(let a of f){let b=h.find(b=>b.appId===a.appId&&b.repoId===a.repoId),d=b?.meta??{},e=b?(0,I.B)(d.productionSource,(0,I.q)(d,b.defaultBranch??null),c):null;e&&g.set(a.appId,e)}return g}async function W(a,c=[]){let f=a.filter(H.f),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.appSecurity,(0,b.u)(e.appSecurity.resourceId,e.appRepos.appId)).where((0,b.b)((0,b.y)(e.appRepos.appId,f),(0,b.M)(e.githubRepos.goneAt),(0,b.u)(e.appSecurity.status,"vulnerable"))).limit(f.length),j=new Set(c),k=h.filter(a=>j.has(a.appId)),l=k.length?new Set((await (0,d.f)().selectDistinct({repoId:e.dependencyVulns.repoId}).from(e.dependencyVulns).where((0,b.b)((0,b.y)(e.dependencyVulns.repoId,[...new Set(k.map(a=>a.repoId))]),(0,b.M)(e.dependencyVulns.resolvedAt),(0,b.u)(e.dependencyVulns.package,"next"),(0,b.u)(e.dependencyVulns.direct,!0),(0,b.E)(e.dependencyVulns.fixedVersion))).limit(k.length)).map(a=>a.repoId)):new Set;for(let a of h){if(j.has(a.appId)&&l.has(a.repoId))continue;let b=(0,i.p)({version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[]});b&&g.set(a.appId,{repoId:a.repoId,from:b.from,to:b.to})}return g}a.s(["J",0,U,"W",0,T,"h",0,W,"H",0,V,"G",0,O],736780)},915598,657582,a=>{var b=a.i(322145),c=a.i(75105),d=a.i(572134);function e(a,b,c){if("building"===a.state)return"building";if(null!==b&&a.id===b)return"current";if("error"===a.state)return"failed";if("preview"===a.target)return"ready"===a.state?"preview":"other";if("ready"!==a.state||null===b)return"other";let d=c.find(a=>a.id===b);if(!d)return"other";if(a.createdAt.getTime()>d.createdAt.getTime())return"staged";let e=c.filter(a=>"ready"===a.state&&a.id!==b&&a.createdAt.getTime()<d.createdAt.getTime()).sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime())[0];return e?.id===a.id?"previous":"other"}let f=a=>{let b;return{id:a.externalId,state:"ready"===(b=a.state)||"building"===b||"error"===b||"canceled"===b?b:"building",target:"production"===a.target?"production":"preview",createdAt:a.createdAt}};function g(a){let b=new Map;for(let c of(function(a){let b=new Map;for(let c of a)b.set(c.appId,[...b.get(c.appId)??[],c]);return b})(a).values()){let a=c.find(a=>a.isCurrent)?.externalId??null,d=c.filter(a=>"production"===a.target).map(f);for(let g of c)b.set(g.externalId,e(f(g),a,d))}return b}a.s(["g",0,function(a,b=!1){switch(a){case"building":return["Cancel"];case"current":return b?[]:["Redeploy"];case"previous":return["Roll back to this"];case"staged":return["Promote"];case"preview":return b?[]:["Promote to production"];default:return[]}},"h",0,function(a){let b=g(a),c=[...a].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),d=a=>c.find(c=>b.get(c.externalId)===a)?.externalId??null;return{currentId:d("current"),previousId:d("previous"),stagedId:d("staged")}},"U",0,e,"S",0,g],657582);let h="This app or its Vercel credential isn't available any more. Reload the page.",i="Already live.",j=new Set(["QUEUED","INITIALIZING","BUILDING"]),k=a=>({done:!1,message:a}),l=(a,b)=>a?.sha?a.sha.slice(0,7):b;async function m(a,c,d){let e=await (0,b.q)(a.id,c,d);if(e)return e;let f=await (0,b.p)(d,"app"),g=f?.resource.meta.teamId;if(!f||"string"!=typeof g||!g||!f.resource.externalId)return h;let i=f.resource.meta.teamSlug;return{member:a,t:f,appId:d,app:f.resource.name,teamId:g,teamSlug:"string"==typeof i?i:"",projectId:f.resource.externalId}}async function n(a){let[b,c]=await Promise.all([(0,d.c)(a.t.token,a.teamId,a.projectId),(0,d.r)(a.t.token,a.teamId,a.projectId)]);return b.ok?c.ok?{ok:!0,data:{name:b.data.name,currentId:b.data.currentId??c.data[0]?.id??null,production:c.data}}:c:b}async function o(a,d,e,f,g=b.W){return g(d.ok?{done:!0,message:e.message,audit:{message:e.audit,resourceId:a.appId}}:{done:!1,failed:"scope"===d.kind?{ok:!1,kind:"scope",status:d.status,error:(0,c.b)("vercel",{team:a.teamSlug})}:404===d.status?{ok:!1,kind:"missing",status:404,error:"Vercel can't find that deployment any more. Reload and try again."}:{ok:!1,kind:"auth"===d.kind?"auth":"format"===d.kind?"format":"transient",...d.status?{status:d.status}:{},error:d.error},audit:{message:f,resourceId:a.appId}},a.member,a.t.account.id)}async function p(a,f,g,h=b.W){{let b=await m(a,"redeploy",f);if("string"==typeof b)return h(k(b),a,"");let i=await n(b);if(!i.ok)return h(k(i.error),a,b.t.account.id);if(i.data.currentId!==g)return h(k(c.G),a,b.t.account.id);if(i.data.production.some(a=>"staged"===e(a,i.data.currentId,i.data.production)))return h(k("Rolled back: promote a deployment first. A redeploy would stay staged and not go live."),a,b.t.account.id);let j=await (0,d.N)(b.t.token,b.teamId,b.projectId);if(!j.ok)return h(k(j.error),a,b.t.account.id);if(j.data)return h(k(`A production build of ${b.app} is already running.`),a,b.t.account.id);let p=l(i.data.production.find(a=>a.id===g),g),q=await (0,d.L)(b.t.token,b.teamId,{projectId:b.projectId,name:i.data.name,deploymentId:g});return o(b,q,{message:`Redeploy requested. Vercel is building ${b.app} again.`,audit:`Redeploy requested \xb7 ${b.app} \xb7 ${p}`},`Redeploy failed \xb7 ${b.app} \xb7 ${p}`,h)}}async function q(a,c,f,g=b.W){{let b=await m(a,"rollback",c);if("string"==typeof b)return g(k(b),a,"");let h=await n(b);if(!h.ok)return g(k(h.error),a,b.t.account.id);if(h.data.currentId===f)return g(k(i),a,b.t.account.id);let j=h.data.production.find(a=>a.id===f);if(!j||"previous"!==e(j,h.data.currentId,h.data.production))return g(k("Hobby can only roll back to the previous production deployment."),a,b.t.account.id);let p=l(j,f),q=await (0,d.E)(b.t.token,b.teamId,b.projectId,f);return o(b,q,{message:`Rolled back ${b.app} to ${p}. New pushes don't go live until you promote one.`,audit:`Rolled back \xb7 ${b.app} → ${p}`},`Roll back failed \xb7 ${b.app} → ${p}`,g)}}a.s(["T",0,/^dpl_[A-Za-z0-9]{8,40}$/,"u",0,h,"G",0,"Vercel can't find that deployment any more. Reload and try again.","f",0,i,"l",0,"Only a ready preview of this app can be promoted to production.","v",0,"Only a ready production deployment newer than the live one can be promoted.","S",0,"Rolled back: promote a production deployment first. A promoted preview would stay staged and not go live.","o",0,j,"X",0,n,"p",0,m,"B",0,p,"C",0,l,"O",0,k,"U",0,q,"J",0,o],915598)},313235,a=>{var b=a.i(927262),c=a.i(462820);let d={workloads:"Workloads",databases:"Databases",network:"Network",observe:"Observe",ai:"AI & API",admin:"Administration"},e={MonitorDown:"workloads",HighLatency:"workloads",DeploymentFailed:"workloads",DatabasePaused:"databases",StorageAlmostFull:"databases",NeonComputeHigh:"databases",FirestoreQuotaHigh:"databases",AutoPauseRisk:"databases",ComputeHigh:"databases",DbQuotaHigh:"databases",CertExpiringSoon:"network",DomainExpiringSoon:"network",DnsProxiedToVercel:"network",CollectorStale:"observe",CredentialExpiring:"admin",VulnerableDependency:"workloads",FrameworkVulnerable:"workloads",MonitorDomainMoved:"workloads"},f=new Set(["MonitorDown","HighLatency","DeploymentFailed","VulnerableDependency","FrameworkVulnerable","MonitorDomainMoved"]);a.s(["H",0,d,"p",0,function(a){if((0,b.h)(a.ruleKey))return f.has(a.ruleKey)&&null!==a.resourceKind&&"app"!==a.resourceKind?"observe":e[a.ruleKey];let c=new Set(a.ruleKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),d=(...a)=>a.some(a=>c.has(a));return d("ai","router","gateway","model","models","provider","quota","llm","gemini")?"ai":d("key","keys","member","members","security","audit","credential","credentials","mfa","token")?"admin":d("database","db","storage","compute","neon","supabase","firestore","firebase")?"databases":d("domain","domains","dns","cert","certificate","tls","zone")?"network":"app"===a.resourceKind?"workloads":"observe"},"y",0,a=>c.X.proposedBy(d[a])])},247881,649031,a=>{var b=a.i(488345),c=a.i(342634),d=a.i(313235),e=a.i(188282),f=a.i(416454);let g=["LogErrorSpike","LogErrors","LogDbErrors"],h="timeout|ECONNREFUSED|too many connections|terminating connection|connection terminated|endpoint is disabled|compute.*suspend";RegExp(h,"i");let i=/^dpl_[A-Za-z0-9]{8,40}$/,j=/^ep-[a-z0-9-]{3,60}$/,k=/^[a-z0-9]{8,40}$/;function l(a,d,e){let f=d?(0,b.g)(d,e,120):"";return(0,c.l)((0,b.g)(f?`${a}. Most common: ${f}`:a,e,c.j)||a,c.j)}let m=a=>`${a.ruleKey}:${a.resourceId??""}:${a.action}`,n=new Set(["pending","approved","running"]);a.s(["s",0,864e5,"b",0,72e5,"V",0,3,"N",0,h,"G",0,20,"T",0,g,"v",0,72e5,"H",0,18e5,"w",0,10,"I",0,72e5,"x",0,function(a,b,c){let d=new Set(b.filter(a=>n.has(a.status)||null!==a.closedAt&&c.getTime()-a.closedAt.getTime()<72e5).map(m)),e=new Set;return a.filter(a=>{let b=m(a);return!(d.has(b)||e.has(b))&&(e.add(b),!0)})},"t",0,function(a,b,g){return(function(a,b,d){let e=[],g=d.getTime(),h=null!==a.liveAt&&g-a.liveAt.getTime()<72e5&&a.liveAt.getTime()<=g,m=a.previousNext?.status??"unknown";if(h&&a.errorsSinceLive>=Math.max(10,Math.ceil(5*a.baselineErrors/24))&&a.currentId&&a.previousId&&i.test(a.previousId)&&a.previousId!==a.currentId&&"vulnerable"!==m){let d=l(`${a.errorsSinceLive} errors since the deploy went live ${Math.max(1,Math.round((g-a.liveAt.getTime())/6e4))} min ago (${a.baselineErrors} in the 24 h before)`,a.topSinceLive,b);e.push({ruleKey:"LogErrorSpike",room:"workloads",action:"vercel_rollback",resourceKind:"app",resourceId:a.appId,targetRef:a.previousId,reason:"ok"===m?d:(0,c.l)(`${f.B} ${d}`)})}let n=null!==a.lastDeployAt&&g-a.lastDeployAt.getTime()<72e5;if(a.errors30>=20&&!n&&a.httpMonitorId&&e.push({ruleKey:"LogErrors",room:"workloads",action:"recheck",resourceKind:"app",resourceId:a.appId,targetRef:a.httpMonitorId,reason:l(`${a.errors30} errors in the last 30 min`,a.top30,b)}),a.dbErrors30>=3&&a.db){let c=l(`${a.dbErrors30} database connection errors in the last 30 min`,a.topDb,b),d=a.db;("neon_project"===d.kind||"neon_branch"===d.kind)&&d.wakeEndpoint&&j.test(d.wakeEndpoint)?e.push({ruleKey:"LogDbErrors",room:"databases",action:"neon_wake",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.wakeEndpoint,reason:c}):"supabase_project"===d.kind&&d.supabasePaused&&d.supabaseRef&&k.test(d.supabaseRef)&&e.push({ruleKey:"LogDbErrors",room:"databases",action:"supabase_restore",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.supabaseRef,reason:c})}return e})(a,b,g).map(f=>{let h="app"===f.resourceKind?(0,c.J)("app",a.appId,a.appName,b):(0,c.J)(f.resourceKind,f.resourceId,null,b);return{alertId:null,ruleKey:f.ruleKey,room:f.room,action:f.action,risk:e.H[f.action].risk,title:(0,c.M)(f.action,h),reason:f.reason,resourceKind:f.resourceKind,resourceId:f.resourceId,resourceName:h,targetRef:f.targetRef,proposedBy:(0,d.y)(f.room),expiresAt:new Date(g.getTime()+e.V)}})},"D",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<27e4))&&(Math.floor(c/6e4)%5==0||null!==b&&c-b>=6e5)},"W",0,function(a,b){let c=new Set(b.map(m));return a.filter(a=>{let b;return"pending"===a.status&&(b=a.ruleKey,g.includes(b))&&!c.has(m(a))}).map(a=>a.id)}],247881);let o=new Set(["MonitorDown","LogErrorSpike"]);a.s(["r",0,72e5,"M",0,o,"s",0,function(a,b){let c=a=>({ok:!1,why:a});if(!a.setting.enabled)return c("off");if(!a.ruleKey||!o.has(a.ruleKey))return c("rule");let d=a.deploy;if(!d||!d.liveAt)return c("no live deploy");let e=b.getTime()-d.liveAt.getTime();return e<0||e>6e4*a.setting.windowMin?c("outside the window"):d.previousId&&a.targetRef===d.previousId&&d.previousId!==d.currentId?d.newestProdCreatedAt&&d.currentCreatedAt.getTime()<d.newestProdCreatedAt.getTime()?c("live deploy is a rollback"):a.rolledOrPromotedLately?c("live deploy came from a rollback or promote"):"ready"!==(d.previousState??"").toLowerCase()?c("previous not ready"):!d.previousCreatedAt||b.getTime()-d.previousCreatedAt.getTime()>2592e6?c("previous too old"):"vulnerable"===a.previousNext?c("previous Next.js has advisories"):"ok"!==a.previousNext?c("previous Next.js unknown"):a.autoLately?c("auto-rollback within 2 h"):a.sameDeployBefore?c("already rolled back once"):a.inFlight?c("another auto-rollback is running"):{ok:!0}:c("target changed")},"u",0,(a,b,d)=>(0,c.l)(`Automatic: the new deploy ${a} errored in the first ${b} minutes. ${d}`),"E",0,a=>a.currentSha&&/^[0-9a-f]{7,40}$/i.test(a.currentSha)?a.currentSha.slice(0,7):a.currentId.slice(0,16)],649031)},691100,a=>{let b;var c,d=a.i(93321),e=a.i(530385),f=a.i(351674),g=a.i(548734),h=a.i(462820),i=a.i(837137),j=a.i(247730),k=a.i(455317),l=a.i(930270),m=a.i(396667),n=a.i(160147),o=a.i(767163),p=a.i(757902),q=a.i(436357),r=a.i(893893),s=a.i(556987),t=a.i(142754),u=a.i(342634),v=a.i(247881),w=a.i(649031),x=a.i(381544),y=a.i(138984),z=a.i(492665),A=a.i(221084),B=a.i(736780),C=a.i(560954),D=a.i(895176),E=a.i(305731),F=a.i(30184),G=a.i(721170),H=a.i(322145),I=a.i(248358),J=a.i(915598),K=a.i(312573),L=a.i(323878),M=a.i(19809),N=a.i(371289),O=a.i(94473),P=a.i(188282);let Q={checkMonitorNow:D.X,keepAliveNow:C.v,wakeAs:G.v,supabaseAct:I.Q,redeployAs:J.B,rollbackAs:J.U,finish:H.W,recordAction:A.f,limit:L.C,bumpPrAs:B.W,autoSecurity:()=>(0,O.X)(),recheckDomain:F._,moveMonitorToDomain:E.f};async function R(){let[a]=await (0,g.f)().select({at:i.collectorRuns.startedAt}).from(i.collectorRuns).where(f.B`(${i.collectorRuns.trigger} = 'vercel_cron' or (${i.collectorRuns.trigger} = 'manual' and ${i.collectorRuns.tasks} ? 'rollups'))`).orderBy((0,e.A)(i.collectorRuns.startedAt)).limit(1);return a?.at??null}async function S(a){let b=await (a.lastDailyRunAt??R)(),c=(a.now??(()=>new Date))();if(b&&c.getTime()-b.getTime()<216e5)return{ok:!1,error:"The daily job ran less than 6 hours ago."};let d=(a.dailyTarget??function(){let a=(0,y.f)();return a?{url:`${(0,z.f)().SITE_URL.replace(/\/+$/,"")}/api/daily`,secret:a.CRON_SECRET}:null})();if(!d)return{ok:!1,error:"The scheduler settings are missing, so the daily job can't be started."};try{let b=await (a.fetch??fetch)(d.url,{headers:{Authorization:`Bearer ${d.secret}`},signal:AbortSignal.timeout(4e4),redirect:"manual"});if(!b.ok||b.status>=300)return{ok:!1,error:`The daily job route answered ${b.status}.`};return{ok:!0,message:`Daily job ran again (${b.status}).`}}catch(a){if(a instanceof Error&&("TimeoutError"===a.name||"AbortError"===a.name))return{ok:!0,message:"Daily job started; it's still running — the heartbeat turns Up when it finishes."};throw a}}let T="The proposal's target is missing, so it can't run.";async function U(a,b,c=Q){let d="auto"===b,e=d?{id:u.e,userId:null}:{id:b.id,userId:b.userId},f=(a,b,e)=>c.finish(a,b,e,{refresh:!1,...d?{auditPrefix:u.v}:{}});try{if(!a.resourceId||!a.targetRef)return{ok:!1,error:T};if((0,N.W)()&&"recheck"!==a.action)return await c.recordAction({kind:"ok",message:`${d?u.v:""}${P.H[a.action].label} (simulated)`,detail:"Simulated in the demo",resourceId:a.resourceId,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:M.r};switch(a.action){case"recheck":{let b=await c.limit(K.t.check,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await c.checkMonitorNow(a.targetRef);if(!f.ok)return{ok:!1,error:f.error};if(f.audit)try{await c.recordAction({kind:!1===f.passed?"err":"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId})}catch{console.warn("audit event failed")}return{ok:!0,message:f.message}}case"domain_recheck":{let b=await c.limit(K.t.domainCheck,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.recheckDomain??F._)(a.targetRef);if(!f.ok)return f;return await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"monitor_update_url":{let b=await c.limit(K.t.monitorWrite,e.id);if(!b.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.moveMonitorToDomain??E.f)(a.targetRef);if(!f.ok)return f;return f.audit&&await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"daily_rerun":return await S(c);case"neon_wake":return await c.wakeAs(e,a.resourceId,a.targetRef,f);case"supabase_keepalive":return await c.keepAliveNow(e,a.resourceId,f);case"supabase_restore":return await c.supabaseAct("restore",e,a.resourceId,a.targetRef,f);case"vercel_redeploy":return await c.redeployAs(e,a.resourceId,a.targetRef,f);case"vercel_rollback":return await c.rollbackAs(e,a.resourceId,a.targetRef,f);case"github_bump_pr":{let b=d?await (c.autoSecurity??O.X)():null;if(d&&!b?.enabled)return{ok:!1,error:"Automatic security fixes is off."};return await (c.bumpPrAs??B.W)(e,a.resourceId,a.targetRef,f,{proposalId:a.proposalId??null,...b?{auto:{severities:b.severities}}:{},..."FrameworkVulnerable"===a.ruleKey?{framework:!0}:{}})}default:return{ok:!1,error:T}}}catch(a){return console.warn(`${h.X.logTag}/proposals run failed:`,a instanceof Error?a.name:"error"),{ok:!1,error:"Something went wrong while running it. Check the console page before trying again."}}}var V=a.i(416454);let W={id:t.O.id,room:t.O.room,action:t.O.action,risk:t.O.risk,title:t.O.title,reason:t.O.reason,resourceName:t.O.resourceName,proposedBy:t.O.proposedBy,status:t.O.status,auto:t.O.auto,result:t.O.result,createdAt:t.O.createdAt,decidedAt:t.O.decidedAt,expiresAt:t.O.expiresAt},X={...W,resourceId:t.O.resourceId,targetRef:t.O.targetRef,ruleKey:t.O.ruleKey,alertId:t.O.alertId};async function Y(a,b,c){let e=(0,u.z)(a,b),h=new Set(e.deployApps),j=a.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&a.resourceId&&h.has(a.resourceId)&&a.startedAt),[k,m,n,o,p,r,s,t,v]=await Promise.all([e.monitorIds.length?(0,g.f)().select({id:i.monitors.id,kind:i.monitors.kind,url:i.monitors.url,lastError:i.monitors.lastError,appId:i.monitors.resourceId,appName:i.resources.name,appMeta:i.resources.meta}).from(i.monitors).innerJoin(i.resources,(0,d.u)(i.resources.id,i.monitors.resourceId)).where((0,d.y)(i.monitors.id,e.monitorIds)):[],e.deployApps.length?(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,e.deployApps),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))):[],e.supabaseIds.length?(0,g.f)().select({id:i.resources.id,ref:i.resources.externalId}).from(i.resources).where((0,d.b)((0,d.y)(i.resources.id,e.supabaseIds),(0,d.u)(i.resources.kind,"supabase_project"),f.B`${i.resources.goneAt} is null`)):[],e.monitorApps.length?ac(e.monitorApps):new Map,e.depApps.length?aa(a,e.depApps).catch(()=>new Set).then(a=>(0,l.C)(e.depApps,a)).catch(()=>new Map):new Map,e.monitorIds.length?ab(e.monitorIds):null,e.frameworkApps.length?(0,B.h)(e.frameworkApps,e.depApps).catch(()=>new Map):new Map,j.length?Z(j.map(a=>a.subject),b).catch(()=>[]):[],$(e.deployApps)]),w=k.some(a=>null!==(0,q.Y)(a.appMeta)),x=w?await (0,g.f)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta}).from(i.resources).where((0,d.b)((0,d.u)(i.resources.kind,"app"),(0,d.u)(i.resources.monitored,!0),(0,d.M)(i.resources.goneAt))).limit(500):[],y=w?(0,q.P)(k,x):new Map,z=[...[...p].map(([a,b])=>({appId:a,repoId:b})),...[...s].map(([a,b])=>({appId:a,repoId:b.repoId}))],A=z.length?await Promise.resolve().then(()=>(0,B.H)(z,b)).catch(()=>new Map):new Map,C=new Map,D=new Map;for(let a of m){let b=C.get(a.app)??{currentId:null,previousId:null,liveAt:null};a.isCurrent?(b.currentId=a.id,b.liveAt=a.readyAt??a.createdAt??null):a.isPrevious&&(b.previousId=a.id,D.set(a.app,a.readyAt??a.createdAt??null)),C.set(a.app,b)}let E=new Map;for(let[a,b]of C)b.previousId&&E.set(a,_(v,a,b.liveAt,D.get(a)??null));let F=new Map(j.map(a=>[a.id,(0,V.g)(a.startedAt,t.filter(b=>b.ruleKey===a.ruleKey&&b.subject===a.subject),{ruleKey:a.ruleKey,liveAt:C.get(a.resourceId)?.liveAt??null})]));return{monitorKinds:new Map(k.map(a=>[a.id,String(a.kind)])),deploys:C,...void 0!==c?{rollbackWindowMs:c}:{},supabaseRefs:new Map(n.map(a=>[a.id,a.ref])),neonSuspended:o,fixableRepos:p,dailyHeartbeatId:r,frameworkFixes:s,monitorMoves:y,problemSince:F,previousNext:E,...A.size?{productionMismatch:A}:{}}}async function Z(a,b){return(0,g.f)().select({ruleKey:i.alerts.ruleKey,subject:i.alerts.subject,startedAt:i.alerts.startedAt,resolvedAt:i.alerts.resolvedAt}).from(i.alerts).where((0,d.b)((0,d.y)(i.alerts.ruleKey,["MonitorDown","HighLatency"]),(0,d.y)(i.alerts.subject,[...new Set(a)]),(0,d.E)(i.alerts.resolvedAt),(0,d.B)(i.alerts.resolvedAt,new Date(b.getTime()-V.A)))).orderBy((0,e.A)(i.alerts.startedAt)).limit(500)}async function $(a){let b={checks:new Map,events:new Map,frameworks:new Map};if(!a.length)return b;try{let[c,f,h]=await Promise.all([(0,g.f)().select({app:i.appSecurity.resourceId,version:i.appSecurity.version,status:i.appSecurity.status,findings:i.appSecurity.findings,checkedAt:i.appSecurity.checkedAt,reason:i.appSecurity.reason}).from(i.appSecurity).where((0,d.y)(i.appSecurity.resourceId,a)).limit(a.length),(0,g.f)().select({app:i.events.resourceId,at:i.events.at,reason:i.events.reason,message:i.events.message}).from(i.events).where((0,d.b)((0,d.y)(i.events.reason,[...V.Y]),(0,d.y)(i.events.resourceId,a))).orderBy((0,e.A)(i.events.at)).limit(Math.min(500,50*a.length)),(0,g.f)().select({app:i.resources.id,meta:i.resources.meta}).from(i.resources).where((0,d.y)(i.resources.id,a)).limit(a.length)]);for(let a of c)b.checks.set(a.app,{version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[],checkedAt:a.checkedAt,reason:a.reason});for(let a of f)a.app&&b.events.set(a.app,[...b.events.get(a.app)??[],{at:a.at,reason:a.reason,message:a.message}]);for(let a of h){let c=a.meta&&"object"==typeof a.meta?a.meta.framework:null;b.frameworks.set(a.app,"string"==typeof c?c:null)}}catch{return{checks:new Map,events:new Map,frameworks:new Map}}return b}let _=(a,b,c,d)=>(0,V.Q)({currentLiveAt:c,previousLiveAt:d,check:a.checks.get(b)??null,events:a.events.get(b)??[],framework:a.frameworks.get(b)??null});async function aa(a,b){let c=new Set(b),e=a.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind&&a.resourceId&&c.has(a.resourceId)).map(a=>a.id);return e.length?new Set((await (0,g.f)().selectDistinct({resourceId:t.O.resourceId}).from(t.O).where((0,d.b)((0,d.u)(t.O.ruleKey,"FrameworkVulnerable"),(0,d.u)(t.O.action,"github_bump_pr"),(0,d.y)(t.O.status,["pending","approved","running","done"]),(0,d.y)(t.O.alertId,e),(0,d.y)(t.O.resourceId,[...c]))).limit(e.length)).flatMap(a=>a.resourceId?[a.resourceId]:[])):new Set}async function ab(a){let b=(0,o.i)(process.env.DAILY_HEARTBEAT_TOKEN);if(!b)return null;let[c]=await (0,g.f)().select({id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.id,a),(0,d.u)(i.monitors.kind,"heartbeat"),(0,d.u)(i.monitors.tokenHash,(0,p.C)(b)))).limit(1).catch(()=>[]);return c?.id??null}async function ac(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch"]),f.B`${i.resources.goneAt} is null`)),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,h=[...new Set(b.map(e).filter(a=>!!a))];if(!h.length)return c;let j=new Map((await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,h))).map(a=>[a.id,(0,r.k)(r.s,a.data)]));for(let a of b){let b=e(a),d=b?j.get(b):void 0,f=d?(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null):null;f&&c.set(a.app,{resourceId:a.id,resourceKind:a.kind,endpointId:f})}return c}async function ad(a){if(!a.length)return[];let b=new Set((await (0,g.f)().select({alertId:t.O.alertId,action:t.O.action}).from(t.O).where((0,d.y)(t.O.alertId,[...new Set(a.map(a=>a.alertId))]))).map(a=>`${a.alertId}:${a.action}`)),c=a.filter(a=>!b.has(`${a.alertId}:${a.action}`));return c.length?(0,g.f)().insert(t.O).values(c.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X):[]}async function ae(a,b){return(await (0,g.f)().select(W).from(t.O).where(f.B`${t.O.createdAt} >= ${new Date(a.getTime()-6048e5).toISOString()}::timestamptz`).orderBy(f.B`case when ${t.O.status} = 'pending' then 0 else 1 end`,(0,e.A)(t.O.createdAt),(0,e.A)(t.O.id)).limit(b)).map(u.E)}async function af(a){let[b]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return b?(0,u.E)(b):null}async function ag(a,b,c,e){let[h]=await (0,g.f)().update(t.O).set({status:"approve"===b?"approved":"rejected",decidedBy:c,decidedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),f.B`${t.O.expiresAt} > ${e.toISOString()}::timestamptz`)).returning(X);if(h)return{status:"ok",proposal:(0,u.E)(h),row:h};let[i]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return i?{status:"conflict",proposal:(0,u.E)(i)}:{status:"missing"}}async function ah(a,b){let[c]=await (0,g.f)().update(t.O).set({status:"running",claimedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"approved"))).returning(X);return c??null}async function ai(a,b,c,e){let[f]=await (0,g.f)().update(t.O).set({status:b?"done":"failed",result:c,finishedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"running"))).returning(X);return f??null}let aj={run:(a,b)=>U(a,b),book:()=>(0,j.f)()};async function ak(a,b,c,d=aj){let e=await ah(a,c);if(!e)return null;let f=await d.run({action:e.action,resourceId:e.resourceId,targetRef:e.targetRef,proposalId:e.id,ruleKey:e.ruleKey??null},b),g=await d.book().catch(()=>s.a),h=await ai(a,f.ok,(0,u.x)(f,g),new Date);return h?(0,u.E)(h):null}async function al(a,b){let c=await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: nobody decided in time, or the alert stopped firing."}).where((0,d.b)((0,d.u)(t.O.status,"pending"),(0,d.F)((0,d.S)(t.O.expiresAt,new Date(b.getTime()+1)),(0,d.b)((0,d.E)(t.O.alertId),a.length?(0,d.$)(t.O.alertId,a):f.B`true`)))).returning({id:t.O.id});return await (0,g.f)().update(t.O).set({status:"failed",result:"The run was interrupted. Check the console page before trying again.",finishedAt:b}).where((0,d.b)((0,d.u)(t.O.status,"running"),(0,d.S)(t.O.claimedAt,new Date(b.getTime()-u.L)))),c.length}async function am(a){await (0,g.f)().delete(t.O).where((0,d.b)((0,d.S)(t.O.createdAt,new Date(a.getTime()-2592e6)),(0,d.$)(t.O.status,["pending","approved","running"])))}let an=f.B`(${i.storedLogs.level} in ('error', 'fatal') or coalesce(${i.storedLogs.statusCode}, 0) >= 500)`,ao=f.B`coalesce(${i.deployments.readyAt}, ${i.deployments.createdAtProvider})`;async function ap(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch","supabase_project"]),(0,d.M)(i.resources.goneAt))),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,f=[...new Set(b.map(e).filter(a=>!!a))],h=new Map((f.length?await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,f)):[]).map(a=>[a.id,a.data]));for(let a of b){let b=h.get(e(a)??"");if("supabase_project"===a.kind){let d=(0,r.k)(r.B,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:null,supabaseRef:a.externalId,supabasePaused:"INACTIVE"===d.status})}else{let d=(0,r.k)(r.s,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null),supabaseRef:null,supabasePaused:!1})}}return c}let aq={apps:async function(a){let b=new Date(a.getTime()-v.I-v.s),c=f.B`${i.storedLogs.at} >= ${new Date(a.getTime()-v.H).toISOString()}::timestamptz`,e=f.B`${i.storedLogs.message} ~* ${v.N}`,h=f.B`left(${i.storedLogs.message}, 200)`,j=(await (0,g.f)().select({appId:i.storedLogs.resourceId,appName:f.B`max(${i.resources.name})`,liveAt:f.B`max(${ao})`.mapWith(i.deployments.readyAt),currentId:f.B`max(${i.deployments.externalId})`,errorsSinceLive:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`.mapWith(Number),baselineErrors:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao} - interval '24 hours' and ${i.storedLogs.at} < ${ao})`.mapWith(Number),topSinceLive:f.B`mode() within group (order by ${h}) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`,errors30:f.B`count(*) filter (where ${an} and ${c})`.mapWith(Number),top30:f.B`mode() within group (order by ${h}) filter (where ${an} and ${c})`,dbErrors30:f.B`count(*) filter (where ${c} and ${e})`.mapWith(Number),topDb:f.B`mode() within group (order by ${h}) filter (where ${c} and ${e})`}).from(i.storedLogs).innerJoin(i.resources,(0,d.u)(i.resources.id,i.storedLogs.resourceId)).leftJoin(i.deployments,(0,d.b)((0,d.u)(i.deployments.resourceId,i.storedLogs.resourceId),(0,d.u)(i.deployments.isCurrent,!0))).where((0,d.b)((0,d.B)(i.storedLogs.at,b),(0,d.u)(i.resources.kind,"app"),(0,d.M)(i.resources.goneAt))).groupBy(i.storedLogs.resourceId)).filter(a=>a.errorsSinceLive>=v.w||a.errors30>=v.G||a.dbErrors30>=v.V);if(!j.length)return[];let k=j.map(a=>a.appId),[l,m,n]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,previousId:f.B`max(${i.deployments.externalId}) filter (where ${i.deployments.isPreviousProduction})`,previousLiveAt:f.B`max(${ao}) filter (where ${i.deployments.isPreviousProduction})`.mapWith(i.deployments.readyAt),lastDeployAt:f.B`max(${i.deployments.createdAtProvider}) filter (where ${i.deployments.target} = 'production')`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,k),(0,d.F)((0,d.u)(i.deployments.isPreviousProduction,!0),(0,d.B)(i.deployments.createdAtProvider,new Date(a.getTime()-v.v))))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.monitors.resourceId,id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.resourceId,k),(0,d.u)(i.monitors.kind,"http"),(0,d.u)(i.monitors.paused,!1),(0,d.u)(i.monitors.ownerPaused,!1))).orderBy(i.monitors.createdAt),ap(k)]),o=new Map(l.map(a=>[a.app,a])),p=new Map;for(let a of m)p.has(a.app)||p.set(a.app,a.id);let q=j.filter(a=>a.errorsSinceLive>=v.w&&a.liveAt&&o.get(a.appId)?.previousId).map(a=>a.appId),r=q.length?await $(q):null;return j.map(a=>({...a,appName:a.appName??"",previousId:o.get(a.appId)?.previousId??null,lastDeployAt:o.get(a.appId)?.lastDeployAt??null,httpMonitorId:p.get(a.appId)??null,db:n.get(a.appId)??null,...r&&q.includes(a.appId)?{previousNext:_(r,a.appId,a.liveAt,o.get(a.appId)?.previousLiveAt??null)}:{}}))},rows:async function(a){let b=f.B`coalesce(${t.O.finishedAt}, ${t.O.decidedAt}, ${t.O.expiresAt})`;return(0,g.f)().select({id:t.O.id,ruleKey:t.O.ruleKey,resourceId:t.O.resourceId,action:t.O.action,status:t.O.status,closedAt:b.mapWith(t.O.finishedAt)}).from(t.O).where((0,d.b)((0,d.M)(t.O.alertId),(0,d.y)(t.O.ruleKey,[...v.T]),(0,d.F)((0,d.y)(t.O.status,["pending","approved","running"]),f.B`${b} > ${new Date(a.getTime()-v.b).toISOString()}::timestamptz`)))}};async function ar(a,b,c=aq){let[e,f]=await Promise.all([c.apps(a),c.rows(a)]),h=e.flatMap(c=>(0,v.t)(c,b,a)),i=(0,v.W)(f,h),j=0;i.length&&(j=(await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: the logs no longer show it.",finishedAt:a}).where((0,d.b)((0,d.y)(t.O.id,i),(0,d.u)(t.O.status,"pending"))).returning({id:t.O.id})).length);let k=(0,v.x)(h,f,a);return k.length?{created:await (0,g.f)().insert(t.O).values(k.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X),expired:j}:{created:[],expired:j}}let as=null;async function at(a,b){return(0,v.D)(a,as)?(as=a.getTime(),ar(a,await b())):{created:[],expired:0}}async function au(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.risk,"safe"))).returning({id:t.O.id})).length>0}async function av(a,b){let c=new Date(b.getTime()-w.r),[e,h,j,k,l]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,sha:i.deployments.commitSha,state:i.deployments.state,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))),(0,g.f)().select({app:i.deployments.resourceId,at:f.B`max(${i.deployments.createdAtProvider})`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.u)(i.deployments.target,"production"),(0,d.u)(i.deployments.state,"ready"))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.events.resourceId}).from(i.events).where((0,d.b)((0,d.u)(i.events.type,"action"),(0,d.y)(i.events.resourceId,a),(0,d.B)(i.events.at,c),f.B`${i.events.message} ~ ${aw}`)),(0,g.f)().select({app:t.O.resourceId,targetRef:t.O.targetRef,status:t.O.status,decidedAt:t.O.decidedAt}).from(t.O).where((0,d.b)((0,d.u)(t.O.action,"vercel_rollback"),(0,d.u)(t.O.auto,!0),(0,d.B)(t.O.createdAt,new Date(b.getTime()-26784e5)))),$(a)]),m=new Map;for(let b of a){let a=e.find(a=>a.app===b&&a.isCurrent),d=e.find(a=>a.app===b&&a.isPrevious&&!a.isCurrent),f=k.filter(a=>a.app===b);m.set(b,{deploy:a?{currentId:a.id,currentSha:a.sha,liveAt:a.readyAt??a.createdAt,currentCreatedAt:a.createdAt,newestProdCreatedAt:h.find(a=>a.app===b)?.at??null,previousId:d?.id??null,previousState:d?.state??null,previousCreatedAt:d?.createdAt??null}:null,rolledOrPromotedLately:j.some(a=>a.app===b),autoLately:f.some(a=>null!==a.decidedAt&&a.decidedAt.getTime()>=c.getTime()),sameDeployBefore:!!d&&f.some(a=>a.targetRef===d.id),previousNext:a&&d?_(l,b,a.readyAt??a.createdAt,d.readyAt??d.createdAt).status:"unknown"})}return{apps:m,inFlight:k.some(a=>"approved"===a.status||"running"===a.status)}}let aw="(Rolled back|Promoted|Preview promoted) ·";async function ax(a,b,c){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:c,reason:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"vercel_rollback"),f.B`not exists (select 1 from ops.action_proposals x where x.action = 'vercel_rollback' and x.auto and x.status in ('approved', 'running'))`)).returning({id:t.O.id})).length>0}async function ay(a,b,c,d){let e=a.filter(a=>"vercel_rollback"===a.action&&a.ruleKey&&w.M.has(a.ruleKey)&&a.resourceId);if(!e.length||!d.autoRollback||!d.rollbackContext||!d.approveAutoRollback)return[];let f=await d.autoRollback().catch(()=>null);if(!f?.enabled||15e3>c())return[];let g=[];try{let a=await d.rollbackContext([...new Set(e.map(a=>a.resourceId))],b),i=a.inFlight;for(let j of e){let e=a.apps.get(j.resourceId);if(!e||12e3>c())continue;let k=(0,w.s)({setting:f,ruleKey:j.ruleKey??null,targetRef:j.targetRef,inFlight:i,...e},b);if(!k.ok){console.log(`${h.X.logTag}/auto-rollback: skipped (${k.why})`);continue}let l=(0,w.E)(e.deploy);if(!await d.approveAutoRollback(j.id,(0,w.u)(l,f.windowMin,j.reason),new Date))continue;i=!0;let m=await d.execute(j.id,new Date);if(m){g.push(m),await (d.notifyRollback??x.q)(m,{reason:j.reason,newRef:l},{},{alertId:j.alertId??null}).catch(()=>void 0);break}}}catch(a){console.warn(`${h.X.logTag}/auto-rollback failed:`,a instanceof Error?a.name:"error")}return g}async function az(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"github_bump_pr"))).returning({id:t.O.id})).length>0}async function aA(a,b,c){let d=a.filter(a=>"github_bump_pr"===a.action&&a.targetRef);if(!d.length||!c.autoSecurity||!c.bumpReady||!c.approveAutoBump)return[];let e=await c.autoSecurity().catch(()=>null);if(!e?.enabled||!e.severities.length)return[];let f=[];for(let a of d){if(15e3>b())break;try{if(a.resourceId&&c.prodMismatch?await c.prodMismatch(a.resourceId,a.targetRef).catch(()=>"unknown"):null){console.log(`${h.X.logTag}/auto-security: waits for the owner (production source)`);continue}let b="FrameworkVulnerable"===a.ruleKey&&a.resourceId?await c.bumpReady(a.targetRef,e.severities,{appId:a.resourceId}):await c.bumpReady(a.targetRef,e.severities);if(!b.ok){console.log(`${h.X.logTag}/auto-security: waits for the owner (${b.why})`);continue}if(!await c.approveAutoBump(a.id,new Date))continue;let d=await c.execute(a.id,new Date);d&&f.push(d)}catch(a){console.warn(`${h.X.logTag}/auto-security failed:`,a instanceof Error?a.name:"error")}}return f}async function aB(a,b){return(await (0,B.H)([{appId:a,repoId:b}],new Date)).get(a)??null}async function aC(a){return new Map((await (0,g.f)().select({id:i.accounts.id,provider:i.accounts.provider}).from(i.accounts).where((0,d.y)(i.accounts.id,a))).map(a=>[a.id,a.provider]))}let aD={firing:()=>(0,k.q)(),book:()=>(0,j.f)(),facts:Y,create:ad,expire:al,autoRun:O.I,approveAuto:au,execute:(a,b)=>ak(a,"auto",b),notifyNew:x.i,notifyResult:x.b,logs:at,autoRollback:()=>(0,O.K)(),rollbackContext:av,approveAutoRollback:ax,notifyRollback:x.q,autoSecurity:()=>(0,O.X)(),bumpReady:B.J,approveAutoBump:az,paused:m.I,providers:aC,prodMismatch:aB};async function aE(a,b={},c=aD){let d={created:0,expired:0,autoRan:0},e=()=>(b.deadline??1/0)-Date.now(),f=await c.firing();d.expired=await c.expire(f.map(a=>a.id),a);let g=c.paused?await c.paused().catch(()=>new Set):new Set,i=[...new Set(f.flatMap(a=>a.accountId?[a.accountId]:[]))],j=g.size&&i.length&&c.providers?await c.providers(i).catch(()=>new Map):new Map,k=f.filter(a=>!(0,n.O)(g,a.ruleKey,a.accountId?j.get(a.accountId):null)),l=null,m=()=>l??=c.book().catch(()=>s.a),o=[],p=(0,u.z)(k,a);if(Object.values(p).some(a=>a.length>0)){let b=p.deployApps.length&&c.autoRollback?await c.autoRollback().catch(()=>null):null,d=await c.facts(k,a,b?6e4*b.windowMin:void 0),e=await m(),f=k.flatMap(b=>(0,u.t)(b,d,e,a)).filter(a=>!("github_bump_pr"===a.action&&g.has("devops")));o.push(...await c.create(f))}if(e()>1e4&&!g.has("hosting"))try{let b=await c.logs(a,m);o.push(...b.created),d.expired+=b.expired}catch(a){console.warn(`${h.X.logTag}/proposals logs failed:`,a instanceof Error?a.name:"error")}if(d.created=o.length,!o.length)return d;let q=await c.autoRun().catch(()=>null),r=await ay(o,a,e,c);d.autoRan+=r.length;let t=await aA(o.filter(a=>!r.some(b=>b.id===a.id)),e,c),v=new Set(r.map(a=>a.id)),w=[...t];for(let a of(d.autoRan+=t.length,t))v.add(a.id);for(let a of o){if(v.has(a.id)||!q||!(0,u.I)(a.action,q)||8e3>e()||!await c.approveAuto(a.id,new Date))continue;let b=await c.execute(a.id,new Date);b&&(w.push(b),d.autoRan++)}let x=new Set([...w.map(a=>a.id),...v]),y=o.filter(a=>"LogErrorSpike"===a.ruleKey&&a.resourceId).map(a=>({proposalId:a.id,appId:a.resourceId})),z=y.length&&c.queueDev?await c.queueDev(y,a).catch(()=>new Set):new Set,A=new Map(o.map(a=>[a.id,a.alertId??null]));for(let a of(await c.notifyNew(o.filter(a=>!x.has(a.id)).map(u.E),{},{devQueued:z,alertIds:A}).catch(()=>void 0),w))await c.notifyResult(a,{},{alertId:A.get(a.id)??null}).catch(()=>void 0);return d}let aF=(c={},b={...aD,queueDev:c.queueDev},async(a,c)=>{try{let d=await aE(a,c??{},b);(d.created||d.expired||d.autoRan)&&console.log(`${h.X.logTag}/proposals: ${d.created} new, ${d.expired} expired, ${d.autoRan} auto-ran`)}catch(a){console.warn(`${h.X.logTag}/proposals failed:`,a instanceof Error?a.name:"error")}});a.s(["V",0,ag,"N",0,ak,"Q",0,ae,"Z",0,aF,"t",0,am,"K",0,af],691100)},381544,a=>{var b=a.i(462820),c=a.i(532620),d=a.i(49146),e=a.i(390626),f=a.i(192738),g=a.i(492665),h=a.i(552543),i=a.i(446914),j=a.i(556987),k=a.i(488345),l=a.i(94473),m=a.i(188282);let n={target:d.Q,book:()=>(0,c.e)(),siteUrl:()=>(0,g.f)().SITE_URL,autoRun:()=>(0,l.I)(),send:(a,b,c,d,e)=>(0,i.I)(a,b,c,{...d?{replyMarkup:d}:{},...e?{replyTo:e}:{}}),record:(a,b)=>(0,d.P)("telegram",a,b),lang:()=>(0,h.I)("telegram"),discord:()=>(0,d.G)(),sendDiscord:(a,b)=>(0,e.$)(a,b,{timeoutMs:w}),recordDiscord:(a,b)=>(0,d.P)("discord",a,b),discordLang:()=>(0,h.I)("discord"),buttons:()=>a.A(801116).then(a=>a.approvalButtons()),thread:a=>(0,d.M)(a)},o={en:{pending:"Status: ⏳ waiting",dev:"🧑‍💻 Dev is checking the code",proposer:b.X.notifyFallback.en,app:"app",safe:"safe",risky:"needs care",proposes:"proposes",why:"Why",risk:"Risk",open:"Open in Auto-actions",waitingN:"new proposals waiting for approval:",moreN:"more proposals",automatic:"Automatic",rollbackWhy:"the app errored after the new deploy",succeeded:"Succeeded",failed:"Failed",stopFallback:"something failed"},id:{pending:"Status: ⏳ menunggu",dev:"🧑‍💻 Dev lagi cek kodenya",proposer:b.X.notifyFallback.id,app:"aplikasi",safe:"aman",risky:"perlu hati-hati",proposes:"usul",why:"Kenapa",risk:"Risiko",open:"Buka di Auto-actions",waitingN:"usulan baru menunggu persetujuan:",moreN:"usulan lagi",automatic:"Otomatis",rollbackWhy:"app-nya error setelah deploy baru",succeeded:"Berhasil",failed:"Gagal",stopFallback:"ada yang gagal"}},p={recheck:"Cek ulang sekarang",neon_wake:"Bangunin Neon",supabase_keepalive:"Kirim keep-alive Supabase",supabase_restore:"Restore project Supabase",vercel_redeploy:"Redeploy production",vercel_rollback:"Rollback ke deploy sebelumnya",github_bump_pr:"Bikin PR update paket",domain_recheck:"Cek ulang sertifikat domain",daily_rerun:"Jalanin ulang daily job",monitor_update_url:"Arahin monitor ke domain baru"},q=(a="en")=>(0,h.t)(o,a,"dev"),r=(a,b)=>("id"===b?p[a.action]:void 0)??m.H[a.action]?.label??a.actionLabel,s=(a,b)=>(0,h.t)(o,b,"risky"===a.risk||m.H[a.action]?.risk==="risky"?"risky":"safe"),t=(a,b)=>`${a.replace(/\/+$/,"")}/auto-actions${b?`?proposal=${encodeURIComponent(b)}`:""}`;function u(a,b,c,d=!1,e="en"){let g=a=>(0,h.t)(o,e,a),i=(0,k.R)(a.proposedBy,b,60)||g("proposer"),j=(0,k.R)(a.title,b,120),l=(0,k.R)(a.reason,b,200)||"-";return[`🧑‍✈️ ${(0,f.H)(i)} ${g("proposes")}: ${(0,f.H)(r(a,e))} — ${(0,f.H)(j)}`,`${g("why")}: ${(0,f.H)(l)}`,`${g("risk")}: ${s(a,e)}`,...d?[q(e)]:[],`${g("open")}: ${(0,f.H)(t(c,a.id))}`].join("\n")}let v=new Set(["recheck","domain_recheck"]),w=3e3,x={en:{proposed:"📝 Proposed",approved:"✅ Approved by the owner",rejected:"🚫 Rejected by the owner",done:"⚙️ Ran",failed:"❌ Failed",waiting:"waiting for approval on Telegram.",newN:"new proposals"},id:{proposed:"📝 Usulan",approved:"✅ Disetujui owner",rejected:"🚫 Ditolak owner",done:"⚙️ Dijalankan",failed:"❌ Gagal",waiting:"nunggu persetujuan di Telegram.",newN:"usulan baru"}};function y(a,b,c,d="en"){let e=a=>(0,h.t)(x,d,a);if(Array.isArray(b))return`📝 ${b.length} ${e("newN")} — ${e("waiting")}`;let f=((0,k.g)(b.title,c,120)||r(b,d)).replace(/[*_`~|\[\]<>]/g,"");if("proposed"===a)return`${e("proposed")}: ${f} — ${e("waiting")}`;if("approved"===a||"rejected"===a)return`${e(a)}: ${f}`;let g=b.result?(0,k.g)(b.result,c,200).replace(/[*_`~|\[\]<>]/g,""):"";return`${e(a)}: ${f}${g?` — ${g}`:""}`}async function z(a,c,d){try{let e,f=await c.discord();if(!f)return;let g=await c.book().catch(()=>j.a),h=await c.discordLang().catch(()=>"en"),i=a(g,h);if(!i.length)return;try{e=await c.sendDiscord(f.url,i.join("\n"))}catch{e={ok:!1,kind:"transient",error:"Discord didn't answer."}}await c.recordDiscord(e,d).catch(()=>console.warn(`${b.X.logTag}/discord: recording the result failed`))}catch{console.warn(`${b.X.logTag}/discord: sending the action history failed`)}}async function A(a,b,c={},d={}){let e={...n,...c};await C(()=>z((c,d)=>[y(a,b,c,d)],e,d.now??new Date),d.timeoutMs??w)}async function B(a,c,d){let e=await c.target();if(!e)return;let f=await c.book().catch(()=>j.a),g=await c.lang().catch(()=>"en");for(let h of(await a(f,g))){let a;try{a="string"==typeof h?await c.send(e.token,e.chatId,h):await c.send(e.token,e.chatId,h.text,h.keyboard,h.replyTo??void 0)}catch{a={ok:!1,kind:"transient",error:"Telegram didn't answer."}}await c.record(a,d).catch(()=>console.warn(`${b.X.logTag}/telegram: recording the result failed`))}}async function C(a,c){try{var d;let b;await (d=a(),Promise.race([d,new Promise((a,d)=>{b=setTimeout(()=>d(Object.assign(Error("timeout"),{name:"TimeoutError"})),c)})]).finally(()=>clearTimeout(b)))}catch(a){console.warn(`${b.X.logTag}/telegram: sending the proposal notice failed:`,a instanceof Error?a.name:"error")}}let D=async(a,b)=>b&&a.thread?a.thread(b).catch(()=>null):null;async function E(a,b={},c={}){if(!a.length)return;let d={...n,...b};await C(async()=>{let b=await d.autoRun().catch(()=>null),e=a.filter(a=>{var c;return c=b??{},"pending"===a.status&&!a.auto&&(m.H[a.action]?.risk!=="safe"||"risky"===a.risk||!c[a.action])});if(!e.length)return;let g=e.length>3||!d.buttons?null:await d.buttons().catch(()=>null),i=c.now??new Date;await Promise.all([B(async(a,b)=>e.length>3?[function(a,b,c,d=new Set,e="en"){let g=a=>(0,h.t)(o,e,a),i=a.slice(0,10).map(a=>{let h=(0,k.R)(a.proposedBy,b,60)||g("proposer");return`• ${(0,f.H)(h)}: ${(0,f.H)(r(a,e))} — ${(0,f.H)((0,k.R)(a.title,b,120))} (${s(a,e)})${d.has(a.id)?` \xb7 ${q(e)}`:""}
5
+ ${(0,f.H)(t(c,a.id))}`}),j=a.length>10?[`+${a.length-10} ${g("moreN")}`]:[];return[`🧑‍✈️ ${a.length} ${g("waitingN")}`,...i,...j,`${g("open")}: ${(0,f.H)(t(c))}`].join("\n")}(e,a,d.siteUrl(),c.devQueued,b)]:Promise.all(e.map(async e=>{let f=u(e,a,d.siteUrl(),c.devQueued?.has(e.id)??!1,b),i=await D(d,c.alertIds?.get(e.id));return g?{text:`${f}
6
+ ${((a="en")=>(0,h.t)(o,a,"pending"))(b)}`,keyboard:g(e),replyTo:i}:{text:f,replyTo:i}})),d,i),z((a,b)=>e.length>3?[y("proposed",e,a,b)]:e.map(c=>y("proposed",c,a,b)),d,i)])},c.timeoutMs??8e3)}async function F(a,b={},c={}){if(!a.auto||"done"!==a.status&&"failed"!==a.status)return;let d={...n,...b},e=c.now??new Date;await C(()=>Promise.all([B(async(b,e)=>{let g=function(a,b,c="en"){if(!a.auto||"done"!==a.status&&"failed"!==a.status||a.auto&&"done"===a.status&&v.has(a.action))return null;let d="done"===a.status?"✅":"❌",e=a.result?(0,k.R)(a.result,b,200):"";return`${d} ${(0,h.t)(o,c,"automatic")}: ${(0,f.H)(r(a,c))} — ${(0,f.H)((0,k.R)(a.title,b,120))}${e?`: ${(0,f.H)(e)}`:""}`}(a,b,e);return g?[{text:g,replyTo:await D(d,c.alertId)}]:[]},d,e),z((b,c)=>[y("done"===a.status?"done":"failed",a,b,c)],d,e)]).then(()=>void 0),c.timeoutMs??8e3)}async function G(a,b,c={},d={}){if("done"!==a.status&&"failed"!==a.status)return;let e={...n,...c},g=d.now??new Date;await C(()=>Promise.all([B(async(c,g)=>[{text:function(a,b,c,d="en"){let e=a=>(0,h.t)(o,d,a),g=(0,k.R)(a.resourceName??e("app"),c,60)||e("app"),i=(0,k.R)(b.reason,c,200).replace(/[.!?…]+$/,"")||e("rollbackWhy"),j=a.result?(0,k.R)(a.result,c,200):"";return["id"===d?`⏪ Otomatis rollback ${(0,f.H)(g)}: ${(0,f.H)(i)}. Deploy baru ${(0,f.H)((0,k.R)(b.newRef,c,40))} dibalikin ke deploy sebelumnya. Benerin dulu, terus deploy ulang.`:`⏪ Automatic rollback of ${(0,f.H)(g)}: ${(0,f.H)(i)}. The new deploy ${(0,f.H)((0,k.R)(b.newRef,c,40))} was rolled back to the previous one. Fix it first, then deploy again.`,`${"done"===a.status?"✅":"❌"} ${e("done"===a.status?"succeeded":"failed")}${j?`: ${(0,f.H)(j)}`:""}`].join("\n")}(a,b,c,g),replyTo:await D(e,d.alertId)}],e,g),z((b,c)=>[y("done"===a.status?"done":"failed",a,b,c)],e,g)]).then(()=>void 0),d.timeoutMs??8e3)}async function H(a,b={},c={}){let d={...n,...b};await C(()=>B((b,c)=>[function(a,b,c="en"){let d="id"===c,e=(0,k.R)(a.app,b,60)||(0,h.t)(o,c,"app"),g=a.packages.slice(0,4).join(", ")+(a.packages.length>4?`, +${a.packages.length-4}`:"");if("merged"===a.kind)return d?`✅ PR #${a.number} di ${(0,f.H)(e)} di-merge otomatis (${(0,f.H)(g)}). Deploy production jalan lewat Vercel; auto-rollback jaga ${a.windowMin??30} menit pertama.`:`✅ PR #${a.number} in ${(0,f.H)(e)} was merged automatically (${(0,f.H)(g)}). The production deploy runs through Vercel; auto-rollback watches the first ${a.windowMin??30} minutes.`;if("ready-manual"===a.kind)return d?`🔐 PR #${a.number} di ${(0,f.H)(e)} siap di-merge, tapi auto-rollback mati — merge manual ya.`:`🔐 PR #${a.number} in ${(0,f.H)(e)} is ready to merge, but auto-rollback is off — please merge it manually.`;let i=(0,k.R)(a.reason??"",b,200)||(0,h.t)(o,c,"stopFallback");return d?`⚠️ PR #${a.number} di ${(0,f.H)(e)} butuh dicek: ${(0,f.H)(i)}. PR-nya dibiarin terbuka.`:`⚠️ PR #${a.number} in ${(0,f.H)(e)} needs a look: ${(0,f.H)(i)}. The PR was left open.`}(a,b,c)],d,c.now??new Date),c.timeoutMs??8e3)}a.s(["h",0,w,"q",0,G,"y",0,H,"v",0,A,"i",0,E,"b",0,F,"a",0,u])},342634,416454,a=>{var b=a.i(556987),c=a.i(313235),d=a.i(462820),e=a.i(488345),f=a.i(188282),g=a.i(679662),h=a.i(84877),i=a.i(245710);let j=new Set(["nextjs","blitzjs"]),k={status:"unknown",version:null},l={status:"ok",version:null},m=/(?:Next\.js|\(now) (\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/,n=a=>!!a&&!j.has(a),o=(a,b)=>null===a.version&&!a.findings.length&&"vulnerable"!==a.status&&("not a Next.js site"===a.reason||n(b));function p(a,b){return"vulnerable"===a.status||a.findings.length?{status:"vulnerable",version:a.version}:"ok"===a.status||a.version?{status:"ok",version:a.version}:o(a,b)?l:k}let q=a=>`${(0,i.L)(a)} ${(0,i.U)(a)} ${(0,i.J)(a)}`,r=a=>"HighLatency"===a?"Slow":"Down",s=(a,b,c,d=!1)=>{let e;if(!c||b.getTime()<c.getTime())return`${r(a)} since ${q(b)}, not tied to a deploy${c?` (live since ${q(c)})`:""}: check the app.`;let f=(e=Math.max(1,Math.round((b.getTime()-c.getTime())/6e4)))<120?`${e} min`:e<2880?`${Math.round(e/60)} h`:`${Math.round(e/1440)} days`;return d?`${r(a)} since ${q(b)}, ${f} after the deploy went live, outside the rollback window: check the app or roll back by hand.`:`${r(a)} since ${q(b)}, started ${f} after the deploy went live: check the app.`},t=a=>a?`No rollback: the previous deployment runs Next.js ${a}, which has known advisories.`:"No rollback: the previous deployment's Next.js has known advisories.",u="Previous deployment's Next.js version is unknown: check it has no known advisories before approving.";a.s(["A",0,6048e5,"Y",0,["NextVulnerable","NextClean"],"B",0,u,"D",0,s,"Q",0,function(a){let b,c=a.currentLiveAt?.getTime(),d=a.previousLiveAt?.getTime(),e=a.check;if(!e)return n(a.framework)?l:k;if(o(e,a.framework))return l;if(void 0===c||void 0===d||d>=c)return k;let f=e.checkedAt.getTime();if(f>=d&&f<c)return p(e,a.framework);if(f<d||c-d<36e5)return k;let i=a.events.filter(a=>"NextVulnerable"===a.reason||"NextClean"===a.reason),j=i.filter(a=>a.at.getTime()<c).sort((a,b)=>b.at.getTime()-a.at.getTime())[0],q=i.filter(a=>a.at.getTime()>=c).sort((a,b)=>a.at.getTime()-b.at.getTime())[0];if(j){var r;let a;b={status:"NextVulnerable"===j.reason?"vulnerable":"ok",version:j.at.getTime()>=d?(r=j.message,(a=m.exec(r)?.[1]??null)&&(0,g.C)(a)?a:null):null}}else b=q?"NextClean"===q.reason?{status:"vulnerable",version:null}:k:{status:p(e,a.framework).status,version:null};if("ok"===b.status&&"ok"!==e.status&&e.findings.length){let a;if(!b.version)return k;if(a=b.version,e.findings.some(b=>!!b.fixed&&(0,g.C)(b.fixed)&&0>(0,h.f)(a,b.fixed)))return{status:"vulnerable",version:b.version}}return b},"g",0,function(a,b,c={}){let d=a.getTime(),e="MonitorDown"===c.ruleKey;if(e&&!c.liveAt)return a;let f=c.liveAt?c.liveAt.getTime()-9e5:0,g=c.gapMs??864e5;for(let a of[...b].sort((a,b)=>b.startedAt.getTime()-a.startedAt.getTime()))!(a.startedAt.getTime()>=d)&&(e?null===a.resolvedAt||a.resolvedAt.getTime()>=f:null===a.resolvedAt||a.resolvedAt.getTime()>=d-g)&&(d=a.startedAt.getTime());return new Date(d)},"e",0,t],416454);let v=200,w=d.X.auditPrefix,x=/^dpl_[A-Za-z0-9]{8,40}$/,y=/^ep-[a-z0-9-]{3,60}$/,z=/^[a-z0-9]{8,40}$/,A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,B=(a,b=v)=>a.length>b?`${a.slice(0,b-1).trimEnd()}…`:a,C=a=>/[.!?…]$/.test(a)?a:`${a}.`;function D(a,c,d,f){return"app"===a&&d?(0,b.r)(f,d):("supabase_project"===a||"neon_project"===a||"neon_branch"===a||"firestore"===a)&&c?(0,b.X)(f,c):d&&(0,e.g)(d,f,120)||null}let E={recheck:a=>`Check ${a} again now`,neon_wake:a=>`Wake the Neon compute of ${a}`,supabase_keepalive:a=>`Send a keep-alive to ${a}`,supabase_restore:a=>`Restore Supabase project ${a}`,vercel_redeploy:a=>`Redeploy production ${a}`,vercel_rollback:a=>`Roll ${a} back to the previous deployment`,github_bump_pr:a=>`Open a PR updating vulnerable packages in ${a}`,domain_recheck:a=>`Re-check the certificate of ${a}`,daily_rerun:()=>"Rerun the daily job",monitor_update_url:a=>`Point the ${a} monitor at its new domain`},F=(a,b)=>B(E[a](b??"this resource")),G=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),H={status:"unknown",version:null};a.s(["e",0,"office-auto","v",0,w,"L",0,6e5,"j",0,v,"I",0,(a,b)=>"safe"===f.H[a].risk&&!0===b[a],"l",0,B,"z",0,function(a,b){let c=a.filter(a=>!G(a,b)),d=a=>[...new Set(a.filter(a=>!!a&&A.test(a)))],e=c.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&"app"===a.resourceKind);return{monitorIds:d([...e,...c.filter(a=>"MonitorDomainMoved"===a.ruleKey&&"app"===a.resourceKind)].map(a=>a.subject)),monitorApps:d(e.map(a=>a.resourceId)),deployApps:d(c.filter(a=>("DeploymentFailed"===a.ruleKey||"MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&"app"===a.resourceKind).map(a=>a.resourceId)),supabaseIds:d(c.filter(a=>("DatabasePaused"===a.ruleKey||"AutoPauseRisk"===a.ruleKey)&&"supabase_project"===a.resourceKind).map(a=>a.resourceId)),depApps:d(c.filter(a=>"VulnerableDependency"===a.ruleKey&&"app"===a.resourceKind).map(a=>a.resourceId)),frameworkApps:d(c.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind).map(a=>a.resourceId))}},"b",0,a=>"string"==typeof a&&A.test(a),"M",0,F,"t",0,function(a,d,g,h){let i,j,k;if(G(a,h))return[];let l=(i=(0,b.o)(a,g),j=(0,e.g)(i.title,g,80),k=(0,e.g)(i.message,g,v),B([j&&C(j),k&&C(k)].filter(Boolean).join(" ")||`${a.ruleKey}.`));return(function(a,b,c){let d="app"===a.resourceKind&&a.resourceId?a.resourceId:null;switch(a.ruleKey){case"DeploymentFailed":{let a=d?b.deploys.get(d):void 0;if(!d||!a?.currentId||!x.test(a.currentId))return[];let c=[{action:"vercel_redeploy",resourceKind:"app",resourceId:d,targetRef:a.currentId}],e=b.previousNext?.get(d)??H;return a.previousId&&x.test(a.previousId)&&a.previousId!==a.currentId&&("vulnerable"===e.status?c[0].note=t(e.version):c.push({action:"vercel_rollback",resourceKind:"app",resourceId:d,targetRef:a.previousId,..."unknown"===e.status?{note:u}:{}})),c}case"DatabasePaused":case"AutoPauseRisk":{if("supabase_project"!==a.resourceKind||!a.resourceId)return[];let c=b.supabaseRefs.get(a.resourceId);if(!c||!z.test(c))return[];return[{action:"DatabasePaused"===a.ruleKey?"supabase_restore":"supabase_keepalive",resourceKind:"supabase_project",resourceId:a.resourceId,targetRef:c}]}case"VulnerableDependency":{let a=d?b.fixableRepos?.get(d):void 0;return d&&a&&A.test(a)?[{action:"github_bump_pr",resourceKind:"app",resourceId:d,targetRef:a}]:[]}case"FrameworkVulnerable":{let a=d?b.frameworkFixes?.get(d):void 0;return d&&a&&A.test(a.repoId)?[{action:"github_bump_pr",resourceKind:"app",resourceId:d,targetRef:a.repoId}]:[]}case"MonitorDomainMoved":return d&&A.test(a.subject)&&b.monitorMoves?.has(a.subject)?[{action:"monitor_update_url",resourceKind:"app",resourceId:d,targetRef:a.subject}]:[];case"MonitorDown":case"HighLatency":{let e=[];d&&A.test(a.subject)&&"http"===b.monitorKinds.get(a.subject)&&e.push({action:"recheck",resourceKind:"app",resourceId:d,targetRef:a.subject}),"MonitorDown"===a.ruleKey&&a.resourceId&&A.test(a.subject)&&b.dailyHeartbeatId===a.subject&&e.push({action:"daily_rerun",room:"observe",resourceKind:a.resourceKind,resourceId:a.resourceId,targetRef:a.subject});let f=d?b.neonSuspended.get(d):void 0;if(f&&y.test(f.endpointId)&&e.push({action:"neon_wake",room:"databases",resourceKind:f.resourceKind,resourceId:f.resourceId,targetRef:f.endpointId}),b.monitorMoves?.has(a.subject))return e;let g=d?b.deploys.get(d):void 0,h=b.problemSince?.get(a.id)??a.startedAt??null,i=g?.liveAt??null,j=h&&i?h.getTime()>=i.getTime():null,k=d&&b.previousNext?.get(d)||H,l=b.rollbackWindowMs??18e5,m=!!d&&!0===j&&function(a,b,c){if(!a?.currentId||!a.previousId||!a.liveAt||!x.test(a.previousId)||a.previousId===a.currentId)return!1;let d=c.getTime()-a.liveAt.getTime();return d>=0&&d<=b}(g,l,c);if(m&&"vulnerable"!==k.status)return e.push({action:"vercel_rollback",resourceKind:"app",resourceId:d,targetRef:g.previousId,..."unknown"===k.status?{note:u}:{}}),e;let n=m?t(k.version):void 0;if("MonitorDown"===a.ruleKey&&d&&g?.currentId&&x.test(g.currentId)&&"http"===b.monitorKinds.get(a.subject)&&!1!==j)return e.push({action:"vercel_redeploy",resourceKind:"app",resourceId:d,targetRef:g.currentId,...n?{note:n}:{}}),e;let o=!!i&&c.getTime()-i.getTime()>l,p=n??(h&&i&&g?.currentId?s(a.ruleKey,h,i,o):void 0),q=e.find(a=>"recheck"===a.action);return q&&p&&(q.note=p),e}case"CertExpiringSoon":return"domain"===a.resourceKind&&a.resourceId&&A.test(a.resourceId)?[{action:"domain_recheck",resourceKind:"domain",resourceId:a.resourceId,targetRef:a.resourceId}]:[];default:return[]}})(a,d,h).map(i=>{var j;let k,m,n,o,p=i.room??(0,c.p)(a),q="neon_wake"===i.action?D(i.resourceKind,i.resourceId,null,g):D(a.resourceKind,a.resourceId,a.resourceName,g),r="FrameworkVulnerable"===a.ruleKey&&"github_bump_pr"===i.action,s="monitor_update_url"===i.action?d.monitorMoves?.get(i.targetRef):void 0,t=r?(j=i.resourceId?d.frameworkFixes?.get(i.resourceId):void 0,k=q??"this app",B(j?`Next.js ${j.from} in ${k} has known vulnerabilities: the PR updates next (and eslint-config-next when listed) to ${j.to}.`:`Next.js in ${k} has known vulnerabilities with a fixed version.`)):"github_bump_pr"===i.action?(n=(m=(0,e.g)((0,b.o)(a,g).message,g,v)).includes(": ")?m.slice(m.indexOf(": ")+2):"",o=`Vulnerable packages in ${q??"this app"} have a fix`,B(n?`${o}: ${n}`:`${o}.`)):i.note?B(`${i.note} ${l}`):l,u="github_bump_pr"===i.action&&i.resourceId?d.productionMismatch?.get(i.resourceId):void 0;return{alertId:a.id,ruleKey:a.ruleKey,room:p,action:i.action,risk:f.H[i.action].risk,title:r?B(`Open a PR updating Next.js in ${q??"this app"}`):s?B(`Point the ${q??"app's"} monitor at ${s.to}`):F(i.action,q),reason:u?B(`${(0,e.g)(u,g,v)} ${t}`):t,resourceKind:i.resourceKind,resourceId:i.resourceId,resourceName:q,targetRef:i.targetRef,proposedBy:(0,c.y)(p),expiresAt:new Date(h.getTime()+f.V)}})},"x",0,function(a,b){let c=a.ok?a.message||"Done.":a.error||"It didn't run.";return B((0,e.g)(c,b,v)||(a.ok?"Done.":"It didn't run."))},"J",0,D,"E",0,function(a){return{id:a.id,room:a.room,action:a.action,actionLabel:f.H[a.action].label,risk:f.H[a.action].risk,title:a.title,reason:a.reason,resourceName:a.resourceName,proposedBy:a.proposedBy,status:a.status,auto:a.auto,result:a.result,createdAt:a.createdAt.toISOString(),decidedAt:a.decidedAt?a.decidedAt.toISOString():null,expiresAt:a.expiresAt.toISOString()}},"Z",0,function(a,b,c){let d=c??b?.find(a=>a.isDefault)?.id??null,e=(a??[]).find(a=>!d||a.branchId===d);return e&&!e.disabled&&"idle"===e.state&&"active"!==e.pendingState&&y.test(e.id)?e.id:null}],342634)},488345,a=>{var b=a.i(556987),c=a.i(425238),d=a.i(609007),e=a.i(434711);let f=/\b([a-z][a-z0-9+.-]{1,20}):\/\/[^\s"'<>`]*/gi,g=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,h=/\b(?:w[bp]_[A-Za-z0-9]{6,}|hb_[A-Za-z0-9[\]]{2,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{10,}|AQ\.[A-Za-z0-9_-]{10,})/g,i=/(?<![\p{L}\p{N}_.-])[a-z0-9-]+\.vercel\.app(?![\p{L}\p{N}_-])/giu,j=/@/g,k=new WeakMap;function l(a,b){return/^https?$/i.test(b)?"[link]":"[hidden]"}e._;let m="[\\p{L}\\p{N}_./-]",n=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=/(?<![\p{L}\p{N}_.@-])(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,24}(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])/giu,p=new WeakMap;function q(a,e){return String(a??"").replace(/\r\n?/g,"\n").split("\n").map(a=>{var q,r;let s,t,u,v=(q=(0,c.F)(a,e),s=q.replace(f,l),s=(0,b.J)(s,e),s=(s=(0,d.h)(s)).replace(h,"[hidden]"),(t=function(a){if(k.has(a))return k.get(a);let b=[...a.host??[]].filter(a=>a.name.includes(".")).sort((a,b)=>b.name.length-a.name.length),c=b.length?{re:RegExp(`(?<![\\p{L}\\p{N}_-])((?:[a-z0-9-]+\\.)*?)(${b.map(a=>a.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")})(?![\\p{L}\\p{N}_-]|\\.[\\p{L}\\p{N}])`,"giu"),alias:new Map(b.map(a=>[a.name.toLowerCase(),a.alias]))}:null;return k.set(a,c),c}(e))&&(s=s.replace(t.re,(a,b,c)=>`${b}${t.alias.get(c.toLowerCase())??"site.example"}`)),s=s.replace(i,"preview.example").replace(g,"[ip]").replace(j," at "));return v=v.replace(o,a=>/\.example$/i.test(a)?a:"site.example"),(0,b.G)((r=v,(u=function(a){if(p.has(a))return p.get(a);let b=new Map(a.app.filter(a=>a.name.trim().length>=2).map(a=>[a.name.toLowerCase(),a.alias])),c=[...b.keys()].sort((a,b)=>b.length-a.length),d=c.length?{re:RegExp(`(?<!${m})(?:${c.map(n).join("|")})(?!${m})`,"giu"),alias:b}:null;return p.set(a,d),d}(e))?r.replace(u.re,a=>u.alias.get(a.toLowerCase())??a):r))}).join("\n")}let r=(a,b)=>a.length>b?`${a.slice(0,b-1).trimEnd()}…`:a;a.s(["g",0,(a,b,c)=>r(q(String(a??"").replace(/\s+/g," "),b).replace(/\s+/g," ").trim(),c),"R",0,(a,c,d)=>{let e;return r((e=String(a??"").replace(/\s+/g," "),(0,b.q)(q(e,c),c)).replace(/\s+/g," ").trim(),d)}],488345)}]})();
7
+
8
+ //# sourceMappingURL=src_1maoe8g5gnv0u._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[390124,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("40d9e38428ac6cef75b32f8269d2790e4cdf0cf5f5",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
1
+ (()=>{"use strict";module.exports=[390124,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("40e14a179cb595dfdd46585c733b4898cc7757fdc9",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_1q-jgpnd3lbcu._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("400eb2cc7aeb7152bce3713db2c3d34185f9318a2f",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("603f5117158e4ebba492e96aee5d4de6021afadeee",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
1
+ (()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("40cbdb3700300ebd5f9ffa8257a91f94bfbb312f3d",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("60cf9b4f018408f17e723e2e29d3181a6dce9355b5",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_agents_1fyhh1ldgm23z._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(72318),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
1
+ module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(214906),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4074178b352d58327844ff25f219981fe510785092",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
1
+ module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("402f7e84dbe96489a886528aca2bb89a18893a02f7",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_logs_export-button_tsx_1k-crb88n1za_._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("007f62e16d0378dc89bb6d8ed40698ec1aef4ef231",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("6080644eae3ae4ed08a10191cc4c025599adfc38f5",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("60050f7d39c1cd4d89e8827f98342b9dde7b20214d",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("603f9e20a20006587f333b145fefb8c4856bcfb06d",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("4059f1b31521f1fa2d31b6fbeda83d7a5837c80ee9",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("002c16cd4a180e2128ce5fdff9a4c462cfc67ac938",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("40454a98ea3f14df9d56942f827e90ac8c5d151ac9",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("006d70eb399d949425b08b9b8e65a8e73b7d8cd634",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("60d2b187cccb8d245a9d5572d14d8f0b6f7ed5bc34",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("7002d53b03f55251a4465bcbd6fd50e40eb808ab6a",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
1
+ (()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("00ae740511d3ea572a50aae3e3f2c3e56f134d3456",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("60014eb0be6d667dea780229012307cc5dfdc24bbb",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("6070d89a9eee797db9a686f7eb2faa8407e5760e41",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("603c13cb8868e016b2f0ca78de89a8171176d14f1f",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("408d46d9a6dc3cc6c2c9d5f9016a5bdff6fb6ea189",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("0018ac3073e13ed95ebf951261b846edc43f35a448",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("4047e0adb7bb5bcedbc05695e31e4e67efb5d39cac",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("009f7bb832df17aa010f4e98fb6e9e1f3b3cbf7d66",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("60ddc9d002a0144871f7d06f863376d5e99320ad68",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("700390d0d66cce3b0f0b27872b2eb70d12f4ebf725",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_models_0ayzqn062pnv5._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(72318),j=a.i(405050);let k=(0,j.createServerReference)("409e7a258188b6cded6c7c6a9dd25a13da03238f13",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("408a3acde0c5845abe3a31123c3547d9d44b8c58ab",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
1
+ module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(214906),j=a.i(405050);let k=(0,j.createServerReference)("40f440d1ae1233eb725411538dfcb052456fc14f32",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("4013b260b90eaf2e31a3552dd76bc718572cb7b730",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
2
2
  A: ${n(a.a,600)}`);for(;e.length>0;){let a=`Earlier in this chat:
3
3
  ${e.join("\n")}
4
4
 
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[492768,a=>{var b=a.i(187924),c=a.i(335371),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(188406),i=a.i(405050);let j=(0,i.createServerReference)("404095c00162f635aba9a175585f9a199642e91fb6",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("4062ac90df61fb5fc971fad9c124c2585849aa2bae",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("604afb59a110e1dad1ab048382c788ae6f4e119282",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("40801e6978dba3a6b5fc710afcd823bfe7a8e4965a",i.callServer,void 0,i.findSourceMapURL,"testProvider");function n(a){a.ok?e.c.success(a.message??"Done."):e.c.error(a.error??"Something went wrong.")}a.s(["DefaultProviderSelect",0,function({options:a,current:c}){let[e,f]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c??"");return 0===a.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,b.jsxs)("select",{"aria-label":"Default provider",className:`${g.S} w-auto`,value:h,disabled:e,onChange:a=>{let b=a.target.value;i(b),b&&f(async()=>n(await j(b)))},children:[!c&&(0,b.jsx)("option",{value:"",children:"None yet"}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})},"EnabledSwitch",0,function({id:a,on:c,name:e}){let[f,g]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c);return(0,b.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${e}: ${h?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:h,disabled:f,"aria-label":`${e} enabled`,onChange:b=>{let c=b.target.checked;i(c),g(async()=>{let b=await l(a,c);b.ok||i(!c),n(b)})}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:a,name:c,isDefault:e}){let[g,i]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{label:`Actions for ${c}`,items:[...e?[]:[{label:"Make default",onSelect:async()=>n(await j(a))},"---"],{label:"Remove",danger:!0,onSelect:()=>i(!0)}]}),(0,b.jsx)(f.f,{open:g,onOpenChange:i,title:`Remove ${c}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await k(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"TestProviderButton",0,function({id:a}){let[e,f]=(0,d.useTransition)();return(0,b.jsxs)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>n(await m(a))),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),e?"Testing…":"Test"]})}],492768)},36105,a=>{var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(814574),h=a.i(405050);let i=(0,h.createServerReference)("60fe0f89cd4d0c8498faf0c81ce69da20b8d6c9ac0",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("60a44bc6bf022940a7e5e84a7454e58870ce1b2d17",h.callServer,void 0,h.findSourceMapURL,"replaceProviderKey");var k=a.i(901615);let l={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:a=>`https://api.cloudflare.com/client/v4/accounts/${a.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:a=>(a.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};k.X.localUrl;var m=a.i(449862);let n=(0,m.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var o=a.i(786581);let p=(0,m.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),q={gemini:n,cloudflare:o.f,custom:p},r={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};a.s(["ProviderDialog",0,function({kind:a,replace:h,primary:m,label:n,selfhost:o=!1}){let p=l[a],s=q[a],[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useTransition)(),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),[D,E]=(0,d.useState)(h?.baseUrl??""),[F,G]=(0,d.useState)(!1),[H,I]=(0,d.useState)({}),[J,K]=(0,d.useState)(null),[L,M]=(0,d.useState)(null);function N(a){u(a),a||(M(null),y(""),A(""),C(""),E(h?.baseUrl??""),G(!1),I({}),K(null))}let O=h?`Replace key \xb7 ${h.name}`:`Connect ${p.name}`;return(0,b.jsxs)(g.N,{open:t,onOpenChange:N,children:[(0,b.jsx)(g.a,{className:(0,f.R)({size:"sm",variant:m?"primary":"secondary"}),children:n??(h?"Replace":"Connect")}),(0,b.jsxs)(g.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(s,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(g.F,{className:"text-base",children:O}),(0,b.jsxs)(g.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[p.keyLabel,"cloudflare"===a?" and account ID":""]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[p.where.url&&(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsxs)("a",{href:p.where.url,target:"_blank",rel:"noopener noreferrer",children:[p.where.url.replace("https://","")," ",(0,b.jsx)(c.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),p.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===a&&!h&&(0,b.jsx)(f.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:H.name,children:(0,b.jsx)("input",{id:"p-name",value:B,onChange:a=>C(a.target.value),placeholder:"my-llm",className:f.S,autoComplete:"off"})}),"custom"===a?(0,b.jsx)(f.O,{id:"p-base",label:"Base URL",help:o?k.X.baseUrlHelp.selfhost:k.X.baseUrlHelp.cloud,error:H.baseUrl,children:(0,b.jsx)("input",{id:"p-base",value:D,onChange:a=>E(a.target.value),placeholder:"https://example.com/v1",className:`${f.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,b.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===a?p.baseUrl({apiKey:"",accountId:"{account_id}"}):p.baseUrl({apiKey:""})})]}),"cloudflare"===a&&(0,b.jsx)(f.O,{id:"p-acct",label:"Account ID",error:H.accountId,children:(0,b.jsx)("input",{id:"p-acct",value:z,onChange:a=>A(a.target.value),placeholder:"32 hex characters",className:`${f.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,b.jsx)(f.O,{id:"p-key",label:p.keyLabel,help:"custom"===a&&o?k.X.keyHelp.selfhostCustom:k.X.keyHelp.cloud,error:H.apiKey,children:(0,b.jsx)("input",{id:"p-key",type:"password",value:x,onChange:a=>y(a.target.value),placeholder:r[a],className:`${f.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!h&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:F,onChange:a=>G(a.target.checked)})," Make this the default provider"]}),J&&(0,b.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:J}),L&&(0,b.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,b.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",L.length," model",1===L.length?"":"s",":"]}),(0,b.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:L.map(a=>(0,b.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:a},a))}),(0,b.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:L?(0,b.jsx)(f.K,{variant:"primary",onClick:()=>N(!1),children:"Done"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.K,{onClick:()=>N(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{variant:"primary",onClick:function(){w(async()=>{let b={apiKey:x,..."cloudflare"===a?{accountId:z}:{},..."custom"===a?{baseUrl:D,...h?{}:{name:B}}:{},makeDefault:F},c=h?await j(h.id,b):await i(a,b);if(I(c.ok?{}:c.fieldErrors??{}),K(c.ok||c.fieldErrors?null:c.error),c.ok){e.c.success(c.message??`${p.name} connected.`);let b=c.data?.models??[];"custom"===a&&b.length?M(b):N(!1)}})},disabled:v,children:v?"Testing…":h?"Test and replace":"Test and connect"})]})})]})]})}],36105)}]})();
1
+ (()=>{"use strict";module.exports=[492768,a=>{var b=a.i(187924),c=a.i(335371),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(188406),i=a.i(405050);let j=(0,i.createServerReference)("40194e988d8cacd45da47b6142de60e88129dd50a3",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("40b942a2d4e5ebef3620dcb3984842c399d2e2396e",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("605a553edcf8d3eca83d67db3202aa9bf912c35074",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("407a2e8fc7f99bbc4fdaad227a7cf1e5ce322d6dcc",i.callServer,void 0,i.findSourceMapURL,"testProvider");function n(a){a.ok?e.c.success(a.message??"Done."):e.c.error(a.error??"Something went wrong.")}a.s(["DefaultProviderSelect",0,function({options:a,current:c}){let[e,f]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c??"");return 0===a.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,b.jsxs)("select",{"aria-label":"Default provider",className:`${g.S} w-auto`,value:h,disabled:e,onChange:a=>{let b=a.target.value;i(b),b&&f(async()=>n(await j(b)))},children:[!c&&(0,b.jsx)("option",{value:"",children:"None yet"}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})},"EnabledSwitch",0,function({id:a,on:c,name:e}){let[f,g]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c);return(0,b.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${e}: ${h?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:h,disabled:f,"aria-label":`${e} enabled`,onChange:b=>{let c=b.target.checked;i(c),g(async()=>{let b=await l(a,c);b.ok||i(!c),n(b)})}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:a,name:c,isDefault:e}){let[g,i]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{label:`Actions for ${c}`,items:[...e?[]:[{label:"Make default",onSelect:async()=>n(await j(a))},"---"],{label:"Remove",danger:!0,onSelect:()=>i(!0)}]}),(0,b.jsx)(f.f,{open:g,onOpenChange:i,title:`Remove ${c}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await k(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"TestProviderButton",0,function({id:a}){let[e,f]=(0,d.useTransition)();return(0,b.jsxs)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>n(await m(a))),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),e?"Testing…":"Test"]})}],492768)},36105,a=>{var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(814574),h=a.i(405050);let i=(0,h.createServerReference)("601c525ca0ba907d6b0763ba87513273eb696a4145",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("6056d6d528aa6e24b4bbfd460da4bda69a1f26dbb8",h.callServer,void 0,h.findSourceMapURL,"replaceProviderKey");var k=a.i(901615);let l={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:a=>`https://api.cloudflare.com/client/v4/accounts/${a.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:a=>(a.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};k.X.localUrl;var m=a.i(449862);let n=(0,m.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var o=a.i(786581);let p=(0,m.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),q={gemini:n,cloudflare:o.f,custom:p},r={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};a.s(["ProviderDialog",0,function({kind:a,replace:h,primary:m,label:n,selfhost:o=!1}){let p=l[a],s=q[a],[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useTransition)(),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),[D,E]=(0,d.useState)(h?.baseUrl??""),[F,G]=(0,d.useState)(!1),[H,I]=(0,d.useState)({}),[J,K]=(0,d.useState)(null),[L,M]=(0,d.useState)(null);function N(a){u(a),a||(M(null),y(""),A(""),C(""),E(h?.baseUrl??""),G(!1),I({}),K(null))}let O=h?`Replace key \xb7 ${h.name}`:`Connect ${p.name}`;return(0,b.jsxs)(g.N,{open:t,onOpenChange:N,children:[(0,b.jsx)(g.a,{className:(0,f.R)({size:"sm",variant:m?"primary":"secondary"}),children:n??(h?"Replace":"Connect")}),(0,b.jsxs)(g.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(s,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(g.F,{className:"text-base",children:O}),(0,b.jsxs)(g.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[p.keyLabel,"cloudflare"===a?" and account ID":""]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[p.where.url&&(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsxs)("a",{href:p.where.url,target:"_blank",rel:"noopener noreferrer",children:[p.where.url.replace("https://","")," ",(0,b.jsx)(c.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),p.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===a&&!h&&(0,b.jsx)(f.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:H.name,children:(0,b.jsx)("input",{id:"p-name",value:B,onChange:a=>C(a.target.value),placeholder:"my-llm",className:f.S,autoComplete:"off"})}),"custom"===a?(0,b.jsx)(f.O,{id:"p-base",label:"Base URL",help:o?k.X.baseUrlHelp.selfhost:k.X.baseUrlHelp.cloud,error:H.baseUrl,children:(0,b.jsx)("input",{id:"p-base",value:D,onChange:a=>E(a.target.value),placeholder:"https://example.com/v1",className:`${f.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,b.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===a?p.baseUrl({apiKey:"",accountId:"{account_id}"}):p.baseUrl({apiKey:""})})]}),"cloudflare"===a&&(0,b.jsx)(f.O,{id:"p-acct",label:"Account ID",error:H.accountId,children:(0,b.jsx)("input",{id:"p-acct",value:z,onChange:a=>A(a.target.value),placeholder:"32 hex characters",className:`${f.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,b.jsx)(f.O,{id:"p-key",label:p.keyLabel,help:"custom"===a&&o?k.X.keyHelp.selfhostCustom:k.X.keyHelp.cloud,error:H.apiKey,children:(0,b.jsx)("input",{id:"p-key",type:"password",value:x,onChange:a=>y(a.target.value),placeholder:r[a],className:`${f.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!h&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:F,onChange:a=>G(a.target.checked)})," Make this the default provider"]}),J&&(0,b.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:J}),L&&(0,b.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,b.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",L.length," model",1===L.length?"":"s",":"]}),(0,b.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:L.map(a=>(0,b.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:a},a))}),(0,b.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:L?(0,b.jsx)(f.K,{variant:"primary",onClick:()=>N(!1),children:"Done"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.K,{onClick:()=>N(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{variant:"primary",onClick:function(){w(async()=>{let b={apiKey:x,..."cloudflare"===a?{accountId:z}:{},..."custom"===a?{baseUrl:D,...h?{}:{name:B}}:{},makeDefault:F},c=h?await j(h.id,b):await i(a,b);if(I(c.ok?{}:c.fieldErrors??{}),K(c.ok||c.fieldErrors?null:c.error),c.ok){e.c.success(c.message??`${p.name} connected.`);let b=c.data?.models??[];"custom"===a&&b.length?M(b):N(!1)}})},disabled:v,children:v?"Testing…":h?"Test and replace":"Test and connect"})]})})]})]})}],36105)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_providers_1ru-30x6-uwu4._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[223538,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(851519),e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(507504),i=a.i(368114);let j=["requests","tokens"],k=["minute","day","week"];var l=a.i(405050);let m=(0,l.createServerReference)("603a0bbf44a34be92d4cda0ebb6bdc4fa1c847e3a8",l.callServer,void 0,l.findSourceMapURL,"saveLimits"),n={minute:"per minute",day:"per day",week:"per week"};function o({provider:a}){let[l,p]=(0,e.useState)(()=>a.limits.map(a=>({...a,limit:String(a.limit)}))),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useTransition)();(0,h.useHoldRefresh)(q);let w=(a,b)=>{p(c=>c.map((c,d)=>d===a?{...c,...b}:c)),r(!0),t(null)};return(0,b.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,b.jsx)("div",{className:"mb-1.5 text-[13px] font-medium",children:a.name}),0===l.length&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-ink-faint",children:"No limits entered. Add one to count calls against it."}),l.map((c,e)=>(0,b.jsxs)("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-x-2 gap-y-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} metric`,value:c.metric,onChange:a=>w(e,{metric:a.target.value}),children:j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} window`,value:c.window,onChange:a=>w(e,{window:a.target.value}),children:k.map(a=>(0,b.jsx)("option",{value:a,children:n[a]},a))}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[120px] font-mono"),inputMode:"numeric","aria-label":`${a.name} limit ${e+1} value`,value:c.limit,onChange:a=>w(e,{limit:a.target.value})}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[150px] font-mono"),"aria-label":`${a.name} limit ${e+1} model (all = every model)`,placeholder:"model, or all",value:c.scope,onChange:a=>w(e,{scope:a.target.value})})]}),(0,b.jsx)("button",{type:"button","aria-label":`Remove limit ${e+1}`,className:"rounded-md p-1.5 text-ink-faint hover:bg-hover hover:text-ink",onClick:()=>{p(a=>a.filter((a,b)=>b!==e)),r(!0),t(null)},children:(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})]},e)),s&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-err",role:"alert",children:s}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(g.K,{size:"sm",disabled:l.length>=10,onClick:()=>{p(a=>[...a,{metric:"requests",scope:"all",limit:"",window:"day"}]),r(!0)},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),"Add limit"]}),(0,b.jsx)(g.K,{size:"sm",variant:"primary",disabled:!q||u,onClick:()=>v(async()=>{try{let b=await m(a.id,l);b.ok?(f.c.success(b.message??"Limits saved."),r(!1),t(null)):t(b.error)}catch{t("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:u?"Saving...":"Save"})]})]})}a.s(["LimitsForm",0,function({providers:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)(o,{provider:a},a.id))})}],223538)}];
1
+ module.exports=[223538,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(851519),e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(507504),i=a.i(368114);let j=["requests","tokens"],k=["minute","day","week"];var l=a.i(405050);let m=(0,l.createServerReference)("60bc01a2fb01525242d48ddd1ba5c4c468881f7b42",l.callServer,void 0,l.findSourceMapURL,"saveLimits"),n={minute:"per minute",day:"per day",week:"per week"};function o({provider:a}){let[l,p]=(0,e.useState)(()=>a.limits.map(a=>({...a,limit:String(a.limit)}))),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useTransition)();(0,h.useHoldRefresh)(q);let w=(a,b)=>{p(c=>c.map((c,d)=>d===a?{...c,...b}:c)),r(!0),t(null)};return(0,b.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,b.jsx)("div",{className:"mb-1.5 text-[13px] font-medium",children:a.name}),0===l.length&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-ink-faint",children:"No limits entered. Add one to count calls against it."}),l.map((c,e)=>(0,b.jsxs)("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-x-2 gap-y-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} metric`,value:c.metric,onChange:a=>w(e,{metric:a.target.value}),children:j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} window`,value:c.window,onChange:a=>w(e,{window:a.target.value}),children:k.map(a=>(0,b.jsx)("option",{value:a,children:n[a]},a))}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[120px] font-mono"),inputMode:"numeric","aria-label":`${a.name} limit ${e+1} value`,value:c.limit,onChange:a=>w(e,{limit:a.target.value})}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[150px] font-mono"),"aria-label":`${a.name} limit ${e+1} model (all = every model)`,placeholder:"model, or all",value:c.scope,onChange:a=>w(e,{scope:a.target.value})})]}),(0,b.jsx)("button",{type:"button","aria-label":`Remove limit ${e+1}`,className:"rounded-md p-1.5 text-ink-faint hover:bg-hover hover:text-ink",onClick:()=>{p(a=>a.filter((a,b)=>b!==e)),r(!0),t(null)},children:(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})]},e)),s&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-err",role:"alert",children:s}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(g.K,{size:"sm",disabled:l.length>=10,onClick:()=>{p(a=>[...a,{metric:"requests",scope:"all",limit:"",window:"day"}]),r(!0)},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),"Add limit"]}),(0,b.jsx)(g.K,{size:"sm",variant:"primary",disabled:!q||u,onClick:()=>v(async()=>{try{let b=await m(a.id,l);b.ok?(f.c.success(b.message??"Limits saved."),r(!1),t(null)):t(b.error)}catch{t("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:u?"Saving...":"Save"})]})]})}a.s(["LimitsForm",0,function({providers:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)(o,{provider:a},a.id))})}],223538)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_%28private%29_ai_quota_limits-form_tsx_1vouaaf560z_x._.js.map