watchbell 1.2.0 → 1.2.2

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 (1509) hide show
  1. package/README.md +36 -13
  2. package/bin/watchbell.mjs +731 -44
  3. package/package.json +1 -1
  4. package/scripts/node-runtime.mjs +166 -0
  5. package/scripts/selfhost-log.mjs +116 -0
  6. package/server/.next/BUILD_ID +1 -1
  7. package/server/.next/app-path-routes-manifest.json +1 -2
  8. package/server/.next/build-manifest.json +3 -14
  9. package/server/.next/prerender-manifest.json +9 -9
  10. package/server/.next/required-server-files.json +1 -1
  11. package/server/.next/routes-manifest.json +14 -18
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
  13. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +77 -66
  14. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
  17. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +77 -66
  18. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
  21. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +77 -66
  22. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  23. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +77 -66
  26. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  27. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
  29. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +77 -66
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  31. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  32. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
  33. package/server/.next/server/app/(console)/(private)/ai/models/page.js +77 -66
  34. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  36. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
  37. package/server/.next/server/app/(console)/(private)/ai/page.js +77 -66
  38. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
  41. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +77 -66
  42. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  43. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
  45. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +77 -66
  46. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  47. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  48. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
  49. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +77 -66
  50. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  51. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  52. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
  53. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +77 -66
  54. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  55. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  56. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
  57. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +77 -66
  58. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  59. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  60. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
  61. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +77 -66
  62. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  63. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  64. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
  65. package/server/.next/server/app/(console)/alerts/page.js +77 -66
  66. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  67. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  68. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +53 -23
  69. package/server/.next/server/app/(console)/apps/[id]/page.js +84 -73
  70. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  71. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  72. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +32 -22
  73. package/server/.next/server/app/(console)/apps/page.js +83 -71
  74. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  75. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  76. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
  77. package/server/.next/server/app/(console)/backups/page.js +77 -66
  78. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  79. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  80. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
  81. package/server/.next/server/app/(console)/catalog/page.js +77 -66
  82. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  83. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  84. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +20 -20
  85. package/server/.next/server/app/(console)/connections/page.js +77 -66
  86. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  87. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  88. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
  89. package/server/.next/server/app/(console)/d1/page.js +78 -67
  90. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  91. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  92. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +24 -14
  93. package/server/.next/server/app/(console)/deployments/page.js +77 -66
  94. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  95. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  96. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
  97. package/server/.next/server/app/(console)/dns/page.js +77 -66
  98. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  99. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  100. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
  101. package/server/.next/server/app/(console)/domains/page.js +77 -66
  102. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  103. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  104. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
  105. package/server/.next/server/app/(console)/events/page.js +77 -66
  106. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  107. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  108. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +40 -30
  109. package/server/.next/server/app/(console)/firebase/page.js +82 -71
  110. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  111. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  112. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
  113. package/server/.next/server/app/(console)/logs/page.js +78 -67
  114. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  115. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  116. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +10 -10
  117. package/server/.next/server/app/(console)/manage/sections/page.js +77 -66
  118. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  119. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  120. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
  121. package/server/.next/server/app/(console)/neon/page.js +77 -66
  122. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  123. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  124. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +44 -34
  125. package/server/.next/server/app/(console)/overview/page.js +84 -72
  126. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  127. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  128. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
  129. package/server/.next/server/app/(console)/repos/[id]/page.js +77 -66
  130. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  131. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  132. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
  133. package/server/.next/server/app/(console)/repos/page.js +77 -66
  134. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  135. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  136. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
  137. package/server/.next/server/app/(console)/settings/page.js +77 -66
  138. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
  141. package/server/.next/server/app/(console)/sql/page.js +77 -66
  142. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  143. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  144. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
  145. package/server/.next/server/app/(console)/status/page.js +77 -66
  146. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  147. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  148. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +39 -29
  149. package/server/.next/server/app/(console)/supabase/page.js +77 -66
  150. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  151. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  152. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
  153. package/server/.next/server/app/(console)/topology/page.js +77 -66
  154. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  155. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  156. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
  157. package/server/.next/server/app/(console)/turso/page.js +77 -66
  158. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  159. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  160. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
  161. package/server/.next/server/app/(console)/upstash/page.js +77 -66
  162. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  163. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  164. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +32 -22
  165. package/server/.next/server/app/(console)/uptime/page.js +81 -70
  166. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
  169. package/server/.next/server/app/(console)/welcome/page.js +77 -66
  170. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  171. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  172. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  173. package/server/.next/server/app/_global-error/page.js +5 -5
  174. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  175. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/_global-error.html +1 -1
  177. package/server/.next/server/app/_global-error.rsc +5 -6
  178. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -7
  179. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +5 -6
  180. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  181. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  182. package/server/.next/server/app/_not-found/page.js +5 -5
  183. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  184. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  185. package/server/.next/server/app/_not-found.html +1 -1
  186. package/server/.next/server/app/_not-found.rsc +6 -6
  187. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +6 -6
  188. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  189. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  190. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  191. package/server/.next/server/app/account/password/page.js +12 -10
  192. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  193. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  194. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  195. package/server/.next/server/app/api/collect/route.js +87 -80
  196. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  197. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  198. package/server/.next/server/app/api/daily/route.js +90 -83
  199. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  200. package/server/.next/server/app/api/ping/[...parts]/route.js +7 -6
  201. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  202. package/server/.next/server/app/api/status/route.js +1 -1
  203. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  204. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  205. package/server/.next/server/app/api/telegram/webhook/route.js +84 -77
  206. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  207. package/server/.next/server/app/api/v1/advice/route.js +23 -22
  208. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  209. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +11 -10
  210. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  211. package/server/.next/server/app/api/v1/ai/models/route.js +11 -10
  212. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  213. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +13 -12
  214. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  215. package/server/.next/server/app/api/v1/ai/questions/route.js +27 -26
  216. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  217. package/server/.next/server/app/api/v1/mcp/route.js +26 -25
  218. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  219. package/server/.next/server/app/api/v1/me/route.js +10 -9
  220. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  221. package/server/.next/server/app/api/v1/openapi.json/route.js +7 -6
  222. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  223. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +22 -21
  224. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  225. package/server/.next/server/app/api/v1/status/route.js +22 -21
  226. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  227. package/server/.next/server/app/api/watchdog/route.js +20 -20
  228. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  229. package/server/.next/server/app/auth/confirm/route.js +1 -1
  230. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  231. package/server/.next/server/app/auth/google/callback/route.js +3 -3
  232. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  233. package/server/.next/server/app/auth/google/create/callback/route.js +1 -1
  234. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  235. package/server/.next/server/app/auth/not-member/route.js +1 -1
  236. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  237. package/server/.next/server/app/auth/session-ended/route.js +1 -1
  238. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  239. package/server/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
  240. package/server/.next/server/app/icon.svg/route.js +12 -0
  241. package/server/.next/server/app/icon.svg/route.js.nft.json +1 -0
  242. package/server/.next/server/app/icon.svg.body +17 -0
  243. package/server/.next/server/app/icon.svg.meta +1 -0
  244. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  245. package/server/.next/server/app/invite/page.js +12 -11
  246. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  247. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  248. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  249. package/server/.next/server/app/mfa/page.js +33 -18
  250. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  251. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  252. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  253. package/server/.next/server/app/mfa/setup/page.js +33 -18
  254. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  255. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  256. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  257. package/server/.next/server/app/page.js +6 -6
  258. package/server/.next/server/app/page.js.nft.json +1 -1
  259. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  260. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  261. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  262. package/server/.next/server/app/s/[slug]/page.js +15 -12
  263. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  264. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  265. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  266. package/server/.next/server/app/setup/page.js +7 -6
  267. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  268. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  269. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  270. package/server/.next/server/app/signin/page.js +33 -19
  271. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  272. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  273. package/server/.next/server/app-paths-manifest.json +1 -2
  274. package/server/.next/server/chunks/[externals]__0y_x27mdj85p4._.js +3 -0
  275. package/server/.next/server/chunks/[externals]__1fzfzd0ia0sk6._.js +3 -0
  276. package/server/.next/server/chunks/[externals]__1qqyrxnupegg3._.js +3 -0
  277. package/server/.next/server/chunks/[root-of-the-server]__0-ytbad9hn7uc._.js +3 -0
  278. package/server/.next/server/chunks/[root-of-the-server]__0032rbj2s87zo._.js +3 -0
  279. package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +3 -0
  280. package/server/.next/server/chunks/[root-of-the-server]__01vos42kjq9nn._.js +3 -0
  281. package/server/.next/server/chunks/[root-of-the-server]__01yzy5zxsekxi._.js +3 -0
  282. package/server/.next/server/chunks/[root-of-the-server]__02ldm_7l9zld8._.js +1 -1
  283. package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +3 -0
  284. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  285. package/server/.next/server/chunks/[root-of-the-server]__03i6yscmtbhhg._.js +3 -0
  286. package/server/.next/server/chunks/[root-of-the-server]__042oh4vbosg_5._.js +3 -0
  287. package/server/.next/server/chunks/[root-of-the-server]__04ogdmf82__0g._.js +3 -0
  288. package/server/.next/server/chunks/[root-of-the-server]__04oipax0jupxr._.js +3 -0
  289. package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +3 -0
  290. package/server/.next/server/chunks/[root-of-the-server]__05zj7uswzr0f9._.js +3 -0
  291. package/server/.next/server/chunks/[root-of-the-server]__06jihgo98ek4u._.js +3 -0
  292. package/server/.next/server/chunks/[root-of-the-server]__07bw6o0jc31yr._.js +3 -0
  293. package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +3 -0
  294. package/server/.next/server/chunks/[root-of-the-server]__07mzeijv31avl._.js +3 -0
  295. package/server/.next/server/chunks/[root-of-the-server]__08vrztky3u2ri._.js +3 -0
  296. package/server/.next/server/chunks/[root-of-the-server]__090in165mp6av._.js +3 -0
  297. package/server/.next/server/chunks/[root-of-the-server]__0_nljmqhjcept._.js +3 -0
  298. package/server/.next/server/chunks/[root-of-the-server]__0ab040lxtt8_d._.js +3 -0
  299. package/server/.next/server/chunks/[root-of-the-server]__0awtaloe4_8am._.js +3 -0
  300. package/server/.next/server/chunks/[root-of-the-server]__0bvdnvpw43au9._.js +3 -0
  301. package/server/.next/server/chunks/[root-of-the-server]__0dltcr407-ow6._.js +3 -0
  302. package/server/.next/server/chunks/[root-of-the-server]__0dsy-9ts8s-pn._.js +3 -0
  303. package/server/.next/server/chunks/[root-of-the-server]__0f5bt0o1k41ft._.js +3 -0
  304. package/server/.next/server/chunks/[root-of-the-server]__0fyucqcukadyv._.js +3 -0
  305. package/server/.next/server/chunks/[root-of-the-server]__0g1cifa7hd790._.js +3 -0
  306. package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +3 -0
  307. package/server/.next/server/chunks/[root-of-the-server]__0gm_zyr-kdgc_._.js +3 -0
  308. package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +3 -0
  309. package/server/.next/server/chunks/[root-of-the-server]__0hblpf7wqke-j._.js +3 -0
  310. package/server/.next/server/chunks/[root-of-the-server]__0hedtycoyydoc._.js +3 -0
  311. package/server/.next/server/chunks/[root-of-the-server]__0hlyn_aj72sn5._.js +3 -0
  312. package/server/.next/server/chunks/[root-of-the-server]__0hnljrh9qi9t-._.js +3 -0
  313. package/server/.next/server/chunks/[root-of-the-server]__0hrtz5c_46jkw._.js +3 -0
  314. package/server/.next/server/chunks/[root-of-the-server]__0ihedjvt-l2-u._.js +3 -0
  315. package/server/.next/server/chunks/[root-of-the-server]__0iicsi0n7tfa5._.js +3 -0
  316. package/server/.next/server/chunks/[root-of-the-server]__0iwp0lu-5xco7._.js +3 -0
  317. package/server/.next/server/chunks/[root-of-the-server]__0k7o0hgdraix2._.js +3 -0
  318. package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +3 -0
  319. package/server/.next/server/chunks/[root-of-the-server]__0kp0yx909wtab._.js +3 -0
  320. package/server/.next/server/chunks/[root-of-the-server]__0kt0hjvyklnk8._.js +3 -0
  321. package/server/.next/server/chunks/[root-of-the-server]__0kzpzdkpz_nt0._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__0l601p_x_1hm7._.js +3 -0
  323. package/server/.next/server/chunks/[root-of-the-server]__0l6_iao04u72h._.js +3 -0
  324. package/server/.next/server/chunks/[root-of-the-server]__0l9ja3579qrju._.js +3 -0
  325. package/server/.next/server/chunks/[root-of-the-server]__0lu91s5izfu0p._.js +3 -0
  326. package/server/.next/server/chunks/[root-of-the-server]__0noc6l63d3l9w._.js +3 -0
  327. package/server/.next/server/chunks/[root-of-the-server]__0nrg8zzqizk69._.js +3 -0
  328. package/server/.next/server/chunks/[root-of-the-server]__0nssu45m4c8t1._.js +3 -0
  329. package/server/.next/server/chunks/[root-of-the-server]__0o1-xb-h4iivi._.js +3 -0
  330. package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +3 -0
  331. package/server/.next/server/chunks/[root-of-the-server]__0oy0hcm48kl-q._.js +3 -0
  332. package/server/.next/server/chunks/[root-of-the-server]__0po8f1pcqi-db._.js +3 -0
  333. package/server/.next/server/chunks/[root-of-the-server]__0q-x05ekhpohj._.js +3 -0
  334. package/server/.next/server/chunks/[root-of-the-server]__0r1men25anfgb._.js +3 -0
  335. package/server/.next/server/chunks/[root-of-the-server]__0rpnd7cjqloa-._.js +3 -0
  336. package/server/.next/server/chunks/[root-of-the-server]__0s8vjz6urzn76._.js +3 -0
  337. package/server/.next/server/chunks/[root-of-the-server]__0so_ihc-5tp14._.js +3 -0
  338. package/server/.next/server/chunks/[root-of-the-server]__0t6dea8voaamp._.js +3 -0
  339. package/server/.next/server/chunks/[root-of-the-server]__0twr9duara46x._.js +3 -0
  340. package/server/.next/server/chunks/[root-of-the-server]__0u1wg-wnnhofm._.js +3 -0
  341. package/server/.next/server/chunks/[root-of-the-server]__0u3un538__ca5._.js +3 -0
  342. package/server/.next/server/chunks/[root-of-the-server]__0uz_r72zdnwdd._.js +3 -0
  343. package/server/.next/server/chunks/[root-of-the-server]__0v-gc-c_e8pwl._.js +3 -0
  344. package/server/.next/server/chunks/[root-of-the-server]__0v1t0gkrsn99q._.js +3 -0
  345. package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
  346. package/server/.next/server/chunks/[root-of-the-server]__0w6pa9lnl93zu._.js +3 -0
  347. package/server/.next/server/chunks/[root-of-the-server]__0x487cn6dsn12._.js +3 -0
  348. package/server/.next/server/chunks/[root-of-the-server]__0xd_bgjy5_tr5._.js +3 -0
  349. package/server/.next/server/chunks/[root-of-the-server]__0xwv-ydetqjc7._.js +3 -0
  350. package/server/.next/server/chunks/[root-of-the-server]__0yuyew8m9dc6-._.js +3 -0
  351. package/server/.next/server/chunks/[root-of-the-server]__0zmvf4j8e2gno._.js +3 -0
  352. package/server/.next/server/chunks/[root-of-the-server]__0zni_2pv2fdgb._.js +3 -0
  353. package/server/.next/server/chunks/[root-of-the-server]__0zs-wkvv1cs0i._.js +3 -0
  354. package/server/.next/server/chunks/[root-of-the-server]__1-37ctpn8yw_m._.js +3 -0
  355. package/server/.next/server/chunks/[root-of-the-server]__1-9hjrgvj0fpb._.js +3 -0
  356. package/server/.next/server/chunks/[root-of-the-server]__104ssf9-9v_5n._.js +3 -0
  357. package/server/.next/server/chunks/[root-of-the-server]__10cqzo_4dhr4m._.js +3 -0
  358. package/server/.next/server/chunks/[root-of-the-server]__10wbld2tja51-._.js +3 -0
  359. package/server/.next/server/chunks/[root-of-the-server]__11a8fxlpahjy2._.js +3 -0
  360. package/server/.next/server/chunks/[root-of-the-server]__125fkw52kl2ty._.js +3 -0
  361. package/server/.next/server/chunks/[root-of-the-server]__137wzuow-_36q._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +3 -0
  363. package/server/.next/server/chunks/[root-of-the-server]__143pob4pwxffi._.js +3 -0
  364. package/server/.next/server/chunks/[root-of-the-server]__14eyo4i2tm93k._.js +3 -0
  365. package/server/.next/server/chunks/[root-of-the-server]__14ou3bydfm0ms._.js +3 -0
  366. package/server/.next/server/chunks/[root-of-the-server]__15dhjj384tuw_._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__16waq6rapvngp._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__18eg-mk5loj_8._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__19o8cf83zllm5._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +3 -0
  371. package/server/.next/server/chunks/[root-of-the-server]__1_or7dycvkseg._.js +3 -0
  372. package/server/.next/server/chunks/[root-of-the-server]__1_zjje9edw0bz._.js +3 -0
  373. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +3 -0
  374. package/server/.next/server/chunks/[root-of-the-server]__1adw_bv2u89kc._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +6 -6
  376. package/server/.next/server/chunks/[root-of-the-server]__1brl5otpkvgd3._.js +3 -0
  377. package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +3 -0
  378. package/server/.next/server/chunks/[root-of-the-server]__1cdt67d022uf1._.js +3 -0
  379. package/server/.next/server/chunks/[root-of-the-server]__1cpee8xi1ig3-._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__1d5y0cc5mg_07._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__1dbz126yujh44._.js +3 -0
  382. package/server/.next/server/chunks/[root-of-the-server]__1dh4di29mjq9y._.js +3 -0
  383. package/server/.next/server/chunks/[root-of-the-server]__1dyith2r4bacm._.js +3 -0
  384. package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +3 -0
  385. package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +3 -0
  386. package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +3 -0
  387. package/server/.next/server/chunks/[root-of-the-server]__1jsf0jf_ljpsm._.js +3 -0
  388. package/server/.next/server/chunks/[root-of-the-server]__1k4cub-5zwl6v._.js +3 -0
  389. package/server/.next/server/chunks/[root-of-the-server]__1kqq90-sj8-op._.js +3 -0
  390. package/server/.next/server/chunks/[root-of-the-server]__1lam0c5a3f224._.js +3 -0
  391. package/server/.next/server/chunks/[root-of-the-server]__1lerees-l5-6c._.js +3 -0
  392. package/server/.next/server/chunks/[root-of-the-server]__1lj1f2w2-w8nw._.js +3 -0
  393. package/server/.next/server/chunks/[root-of-the-server]__1mim39ea6-dm1._.js +3 -0
  394. package/server/.next/server/chunks/[root-of-the-server]__1ooxluowhatjt._.js +3 -0
  395. package/server/.next/server/chunks/[root-of-the-server]__1ozfk4_3lx1o7._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__1p0zd1rtbkj9r._.js +3 -0
  397. package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +3 -0
  398. package/server/.next/server/chunks/[root-of-the-server]__1pyhos8be90-4._.js +3 -0
  399. package/server/.next/server/chunks/[root-of-the-server]__1qrj37m-5y-56._.js +3 -0
  400. package/server/.next/server/chunks/[root-of-the-server]__1rpgddeg42i-q._.js +3 -0
  401. package/server/.next/server/chunks/[root-of-the-server]__1spds17tpnsgr._.js +3 -0
  402. package/server/.next/server/chunks/[root-of-the-server]__1tzt79v15zvgk._.js +3 -0
  403. package/server/.next/server/chunks/[root-of-the-server]__1uq8blxfaq_23._.js +3 -0
  404. package/server/.next/server/chunks/[root-of-the-server]__1v4i7ytwadml8._.js +3 -0
  405. package/server/.next/server/chunks/[root-of-the-server]__1vvg0ur3_7o0p._.js +3 -0
  406. package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +3 -0
  407. package/server/.next/server/chunks/[root-of-the-server]__1w7dv8zm-k_oa._.js +3 -0
  408. package/server/.next/server/chunks/[root-of-the-server]__1wjsjh-1i-sn6._.js +3 -0
  409. package/server/.next/server/chunks/[root-of-the-server]__1wu1dviacf85o._.js +3 -0
  410. package/server/.next/server/chunks/[root-of-the-server]__1x7en4waq21dd._.js +3 -0
  411. package/server/.next/server/chunks/[root-of-the-server]__1x813cg-b9rls._.js +3 -0
  412. package/server/.next/server/chunks/[root-of-the-server]__1xl6_spngp6k3._.js +3 -0
  413. package/server/.next/server/chunks/[root-of-the-server]__1xxmlb3soqzom._.js +3 -0
  414. package/server/.next/server/chunks/[root-of-the-server]__1zg653esm3__p._.js +3 -0
  415. package/server/.next/server/chunks/[root-of-the-server]__1zrqz88a2lkx5._.js +3 -0
  416. package/server/.next/server/chunks/[root-of-the-server]__1zvoez8iapsem._.js +3 -0
  417. package/server/.next/server/chunks/[root-of-the-server]__1zwi7po5_xe8-._.js +3 -0
  418. package/server/.next/server/chunks/[root-of-the-server]__209b5bw0k6-t3._.js +3 -0
  419. package/server/.next/server/chunks/[root-of-the-server]__209g3_0l-y67u._.js +3 -0
  420. package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +3 -0
  421. package/server/.next/server/chunks/[root-of-the-server]__20pu-tixzpeev._.js +3 -0
  422. package/server/.next/server/chunks/[root-of-the-server]__212_l7y-180xi._.js +3 -0
  423. package/server/.next/server/chunks/[root-of-the-server]__213bsllf-9ztc._.js +3 -0
  424. package/server/.next/server/chunks/[root-of-the-server]__217jp1b3psyq_._.js +3 -0
  425. package/server/.next/server/chunks/_0-ow35nqudk5j._.js +1 -1
  426. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  427. package/server/.next/server/chunks/_023gjp96a_pq5._.js +3 -0
  428. package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
  429. package/server/.next/server/chunks/_06lf75x-xhl7v._.js +3 -0
  430. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  431. package/server/.next/server/chunks/_09s2unlb4r6yf._.js +3 -0
  432. package/server/.next/server/chunks/_0cbxgnkxr1uj8._.js +3 -0
  433. package/server/.next/server/chunks/_0dn7480wo_c3b._.js +3 -0
  434. package/server/.next/server/chunks/_0duxuj4kmjibl._.js +41 -0
  435. package/server/.next/server/chunks/_0gz8ldqeokdtn._.js +1 -1
  436. package/server/.next/server/chunks/_0if5sw58tii_3._.js +3 -0
  437. package/server/.next/server/chunks/_0kay0bklv5khp._.js +3 -0
  438. package/server/.next/server/chunks/_0kmhvts35imzs._.js +4 -4
  439. package/server/.next/server/chunks/_0l_hz-8cj94r7._.js +3 -0
  440. package/server/.next/server/chunks/_0mqce8klmy8-0._.js +3 -0
  441. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  442. package/server/.next/server/chunks/_0nmfe_o9yhlh2._.js +3 -0
  443. package/server/.next/server/chunks/_0ofzzim090ezo._.js +1 -1
  444. package/server/.next/server/chunks/_0q3ygdztfvqq6._.js +3 -0
  445. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +7 -7
  446. package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +3 -0
  447. package/server/.next/server/chunks/_0rwuppwyvemfj._.js +4 -4
  448. package/server/.next/server/chunks/_0ry4553j-m5fp._.js +4 -0
  449. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
  450. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  451. package/server/.next/server/chunks/_0vjggb8yo5b9f._.js +3 -0
  452. package/server/.next/server/chunks/_0voowig3y32v1._.js +4 -4
  453. package/server/.next/server/chunks/_0wtlf0x_depae._.js +3 -0
  454. package/server/.next/server/chunks/_0zj10_al6r59j._.js +120 -0
  455. package/server/.next/server/chunks/_1-ior_ot6mgxg._.js +3 -0
  456. package/server/.next/server/chunks/_1-pcsy2hkg0il._.js +3 -0
  457. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +1 -1
  458. package/server/.next/server/chunks/_1-yn_of8b2vax._.js +3 -0
  459. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  460. package/server/.next/server/chunks/_113ebzq_9i756._.js +41 -0
  461. package/server/.next/server/chunks/_12die1sn6gq3d._.js +5 -5
  462. package/server/.next/server/chunks/_14dtti1qofqqv._.js +1 -1
  463. package/server/.next/server/chunks/_16urxazbgm48y._.js +4 -0
  464. package/server/.next/server/chunks/_17wpfa9osjqcw._.js +3 -0
  465. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
  466. package/server/.next/server/chunks/_1a5vma58w9ytn._.js +4 -4
  467. package/server/.next/server/chunks/_1ctwjh8q__6_g._.js +3 -0
  468. package/server/.next/server/chunks/_1daeuesc2d2tg._.js +3 -0
  469. package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +120 -0
  470. package/server/.next/server/chunks/_1fi6cz4f-ri6d._.js +3 -0
  471. package/server/.next/server/chunks/_1g8r-7wcf8sy3._.js +4 -0
  472. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +7 -7
  473. package/server/.next/server/chunks/_1ihndlef8r00f._.js +41 -0
  474. package/server/.next/server/chunks/_1mwb214-ablfo._.js +41 -0
  475. package/server/.next/server/chunks/_1ngkjn56qmi2x._.js +3 -0
  476. package/server/.next/server/chunks/_1p_978boite-8._.js +1 -1
  477. package/server/.next/server/chunks/_1r719c9unpq-5._.js +1 -1
  478. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +4 -4
  479. package/server/.next/server/chunks/_1xs2ya_n7kb04._.js +57 -0
  480. package/server/.next/server/chunks/_1xyr5p_pqp086._.js +3 -0
  481. package/server/.next/server/chunks/_1zn-ifmqqw-al._.js +3 -0
  482. package/server/.next/server/chunks/_21658fy9dy8ei._.js +3 -0
  483. package/server/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ubdhjtcp.js +3 -0
  484. package/server/.next/server/chunks/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
  485. package/server/.next/server/chunks/src_0--qn984h6czu._.js +3 -0
  486. package/server/.next/server/chunks/src_05jrvcsgaq5ek._.js +3 -0
  487. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  488. package/server/.next/server/chunks/src_06tyytf_c_hlu._.js +3 -0
  489. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
  490. package/server/.next/server/chunks/src_08fq45_-8xq5o._.js +3 -0
  491. package/server/.next/server/chunks/src_09cgjvch02173._.js +3 -0
  492. package/server/.next/server/chunks/src_0c7qu5adpm3gv._.js +3 -0
  493. package/server/.next/server/chunks/src_0i-1ohush6mui._.js +3 -0
  494. package/server/.next/server/chunks/src_0u2zbz77uh__q._.js +3 -0
  495. package/server/.next/server/chunks/src_0ud2mqnh4emxz._.js +3 -0
  496. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
  497. package/server/.next/server/chunks/src_1-6a00bmwlymu._.js +3 -0
  498. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  499. package/server/.next/server/chunks/src_10vyvp9vy_69h._.js +3 -0
  500. package/server/.next/server/chunks/src_12wdz9bdn7a-7._.js +3 -0
  501. package/server/.next/server/chunks/src_13n1vi7uew4iu._.js +3 -0
  502. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  503. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
  504. package/server/.next/server/chunks/src_1cvp6ubs-3z6l._.js +3 -0
  505. package/server/.next/server/chunks/src_1il7wg_qjxny7._.js +3 -0
  506. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +7 -4
  507. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +3 -0
  508. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
  509. package/server/.next/server/chunks/src_1wmb2yl3tn-dd._.js +3 -0
  510. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +7 -4
  511. package/server/.next/server/chunks/src_20ilndq84j3b3._.js +3 -0
  512. package/server/.next/server/chunks/src_lib_0-xd6p5793qdu._.js +3 -0
  513. package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +6 -0
  514. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  515. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  516. package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +6 -0
  517. package/server/.next/server/chunks/src_lib_0lpdyif-edl7i._.js +3 -0
  518. package/server/.next/server/chunks/src_lib_0n1xnas42gur9._.js +1 -1
  519. package/server/.next/server/chunks/src_lib_0qbcg988i_-ee._.js +3 -0
  520. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +10 -9
  521. package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +6 -0
  522. package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +9 -0
  523. package/server/.next/server/chunks/src_lib_1550ey8j96v9n._.js +4 -0
  524. package/server/.next/server/chunks/src_lib_16oqslmhfgod1._.js +3 -0
  525. package/server/.next/server/chunks/src_lib_18wgdeemqm6gg._.js +3 -0
  526. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +10 -9
  527. package/server/.next/server/chunks/src_lib_1onr7b4_kglpt._.js +4 -0
  528. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +10 -9
  529. package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +9 -0
  530. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  531. package/server/.next/server/chunks/src_lib_1xwavi_m_li7p._.js +3 -0
  532. package/server/.next/server/chunks/src_lib_1ywf_wup1kxy_._.js +1 -1
  533. package/server/.next/server/chunks/src_lib_1zd1btsqvk1e2._.js +3 -0
  534. package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +6 -0
  535. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  536. package/server/.next/server/chunks/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +3 -0
  537. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
  538. package/server/.next/server/chunks/src_lib_data_advisor-db_ts_0rl1ug3iana24._.js +3 -0
  539. package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +3 -0
  540. package/server/.next/server/chunks/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +3 -0
  541. package/server/.next/server/chunks/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +3 -0
  542. package/server/.next/server/chunks/src_lib_demo_0a5wqvhuj5hjh._.js +3 -0
  543. package/server/.next/server/chunks/src_lib_demo_0alh_mll9yp9d._.js +3 -0
  544. package/server/.next/server/chunks/src_lib_demo_0rbejiyw_ry41._.js +3 -0
  545. package/server/.next/server/chunks/src_lib_demo_11p30f_ci6ie2._.js +3 -0
  546. package/server/.next/server/chunks/src_lib_demo_21179a6aev-i3._.js +3 -0
  547. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +6 -6
  548. package/server/.next/server/chunks/src_lib_demo_session_ts_01_g7aejuhoq0._.js +3 -0
  549. package/server/.next/server/chunks/src_lib_deps_plan_ts_0bctf8v4qttk5._.js +1 -1
  550. package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +3 -0
  551. package/server/.next/server/chunks/src_lib_local-auth_proxy_ts_1g9krhdh2rnt2._.js +4 -4
  552. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  553. package/server/.next/server/chunks/src_lib_notify_telegram-bot_ts_18y40dkchmcqd._.js +1 -1
  554. package/server/.next/server/chunks/src_lib_rate-limit_ts_09dzyftcadggh._.js +1 -1
  555. package/server/.next/server/chunks/src_lib_rate-limit_ts_0r-eu6to05vyx._.js +1 -1
  556. package/server/.next/server/chunks/src_lib_rate-limit_ts_1ahtm4quu2rri._.js +1 -1
  557. package/server/.next/server/chunks/src_lib_sections_ts_0r8u4nvlpdkgq._.js +3 -0
  558. package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  559. package/server/.next/server/chunks/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
  560. package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  561. package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
  562. package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +6 -0
  563. package/server/.next/server/chunks/src_private_actions_proposals-settings_ts_16v2x9a4amejq._.js +1 -1
  564. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  565. package/server/.next/server/chunks/src_private_ai_gateway_ts_1qtr4nyb8kgnd._.js +2 -2
  566. package/server/.next/server/chunks/src_private_assist_provider-answer_ts_10qv42t-5046y._.js +1 -1
  567. package/server/.next/server/chunks/src_private_auth_api-key_ts_1y0tfcmbozpwf._.js +4 -4
  568. package/server/.next/server/chunks/src_private_console_snapshot_ts_17etygjp9dy1t._.js +1 -1
  569. package/server/.next/server/chunks/src_private_mcp_data_ts_0qdp7n8rzp7k7._.js +1 -1
  570. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  571. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
  572. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
  573. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
  574. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
  575. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
  576. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
  577. package/server/.next/server/chunks/ssr/[externals]__0et8619os7o06._.js +3 -0
  578. package/server/.next/server/chunks/ssr/[externals]__0jv_q8g96gubg._.js +3 -0
  579. package/server/.next/server/chunks/ssr/[externals]__0uri0lxk2rh6k._.js +3 -0
  580. package/server/.next/server/chunks/ssr/[externals]__0x50_fipcza3k._.js +3 -0
  581. package/server/.next/server/chunks/ssr/[externals]__0yzs5m5hot2o2._.js +3 -0
  582. package/server/.next/server/chunks/ssr/[externals]__1d_fn156y1kzg._.js +3 -0
  583. package/server/.next/server/chunks/ssr/[externals]__1hqh7fi0-rtlc._.js +3 -0
  584. package/server/.next/server/chunks/ssr/[externals]__1mmmc4yhx5fm6._.js +3 -0
  585. package/server/.next/server/chunks/ssr/[externals]__1neu6qld_ilyx._.js +3 -0
  586. package/server/.next/server/chunks/ssr/[externals]__1nv-uycpa6_lh._.js +3 -0
  587. package/server/.next/server/chunks/ssr/[externals]__1p5zuqwmfkoo1._.js +3 -0
  588. package/server/.next/server/chunks/ssr/[root-of-the-server]__0-jx3t8dg8n5t._.js +3 -0
  589. package/server/.next/server/chunks/ssr/[root-of-the-server]__0-o5i-5pqjk5v._.js +3 -0
  590. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +3 -0
  591. package/server/.next/server/chunks/ssr/[root-of-the-server]__00wwav5k7xmy0._.js +3 -0
  592. package/server/.next/server/chunks/ssr/[root-of-the-server]__01mgajn73iwc7._.js +5 -0
  593. package/server/.next/server/chunks/ssr/[root-of-the-server]__04klr3-4qi7-t._.js +3 -0
  594. package/server/.next/server/chunks/ssr/[root-of-the-server]__04zgt2t-w6-75._.js +3 -0
  595. package/server/.next/server/chunks/ssr/[root-of-the-server]__050d99bknjdvq._.js +3 -0
  596. package/server/.next/server/chunks/ssr/[root-of-the-server]__05hw89gap74cw._.js +3 -0
  597. package/server/.next/server/chunks/ssr/[root-of-the-server]__05q-laapy00sk._.js +3 -0
  598. package/server/.next/server/chunks/ssr/[root-of-the-server]__06uaa_2zbg57p._.js +3 -0
  599. package/server/.next/server/chunks/ssr/[root-of-the-server]__081l8lhgoffuc._.js +3 -0
  600. package/server/.next/server/chunks/ssr/[root-of-the-server]__0828947qad6xx._.js +3 -0
  601. package/server/.next/server/chunks/ssr/[root-of-the-server]__08w3ad-xux1g4._.js +3 -0
  602. package/server/.next/server/chunks/ssr/[root-of-the-server]__0_1130gx52k-9._.js +3 -0
  603. package/server/.next/server/chunks/ssr/[root-of-the-server]__0_677ii9bahoy._.js +3 -0
  604. package/server/.next/server/chunks/ssr/[root-of-the-server]__0bn_thc_vtf_i._.js +3 -0
  605. package/server/.next/server/chunks/ssr/[root-of-the-server]__0dd9rci1isdjf._.js +3 -0
  606. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ejxk0jlgi4eb._.js +3 -0
  607. package/server/.next/server/chunks/ssr/[root-of-the-server]__0exp042uqhyqs._.js +3 -0
  608. package/server/.next/server/chunks/ssr/[root-of-the-server]__0fkxv6yyok76e._.js +3 -0
  609. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h2hxe0vl-2x0._.js +3 -0
  610. package/server/.next/server/chunks/ssr/[root-of-the-server]__0hgf7si8htevx._.js +3 -0
  611. package/server/.next/server/chunks/ssr/[root-of-the-server]__0k8k-fbyzfbog._.js +3 -0
  612. package/server/.next/server/chunks/ssr/[root-of-the-server]__0khp_gsot3jh_._.js +3 -0
  613. package/server/.next/server/chunks/ssr/[root-of-the-server]__0khvq0xdah931._.js +3 -0
  614. package/server/.next/server/chunks/ssr/[root-of-the-server]__0kr_tvfgqtb-o._.js +3 -0
  615. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lehuiyzxp78t._.js +3 -0
  616. package/server/.next/server/chunks/ssr/[root-of-the-server]__0llh-w4ta1qbp._.js +3 -0
  617. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +4 -0
  618. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nrc_8-wrhf3y._.js +3 -0
  619. package/server/.next/server/chunks/ssr/[root-of-the-server]__0p5znbfo0wgsu._.js +3 -0
  620. package/server/.next/server/chunks/ssr/[root-of-the-server]__0p7d9dfmuhnvv._.js +3 -0
  621. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ptdec0sozaqm._.js +3 -0
  622. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tjab3yn0asf7._.js +3 -0
  623. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tp9vtckbkk9o._.js +3 -0
  624. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ua-p_wz8epv9._.js +3 -0
  625. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ujxsp9l9ad-l._.js +3 -0
  626. package/server/.next/server/chunks/ssr/[root-of-the-server]__0vdb51zrgcnkp._.js +3 -0
  627. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
  628. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y84mqfn13ss4._.js +3 -0
  629. package/server/.next/server/chunks/ssr/[root-of-the-server]__0yzkcvsekwypa._.js +3 -0
  630. package/server/.next/server/chunks/ssr/[root-of-the-server]__1096-q3_trmm9._.js +3 -0
  631. package/server/.next/server/chunks/ssr/[root-of-the-server]__10rhqv5xq9jaj._.js +3 -0
  632. package/server/.next/server/chunks/ssr/[root-of-the-server]__10y2ig7dg3f-k._.js +3 -0
  633. package/server/.next/server/chunks/ssr/[root-of-the-server]__11ham42w_feik._.js +3 -0
  634. package/server/.next/server/chunks/ssr/[root-of-the-server]__12-a3tcnfdcyq._.js +3 -0
  635. package/server/.next/server/chunks/ssr/[root-of-the-server]__133_j0bmsjnzt._.js +3 -0
  636. package/server/.next/server/chunks/ssr/[root-of-the-server]__14ept-_l8j32m._.js +3 -0
  637. package/server/.next/server/chunks/ssr/[root-of-the-server]__15keslh0ov5mv._.js +3 -0
  638. package/server/.next/server/chunks/ssr/[root-of-the-server]__15wwi1pda8ims._.js +3 -0
  639. package/server/.next/server/chunks/ssr/[root-of-the-server]__16ehn8dupt4y_._.js +3 -0
  640. package/server/.next/server/chunks/ssr/[root-of-the-server]__16jkttbe1yoai._.js +3 -0
  641. package/server/.next/server/chunks/ssr/[root-of-the-server]__17bfr3mlfy4ur._.js +3 -0
  642. package/server/.next/server/chunks/ssr/[root-of-the-server]__18xb7pbdmiyiz._.js +3 -0
  643. package/server/.next/server/chunks/ssr/[root-of-the-server]__194546bqpq02e._.js +3 -0
  644. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  645. package/server/.next/server/chunks/ssr/[root-of-the-server]__1a3fyho18xlil._.js +3 -0
  646. package/server/.next/server/chunks/ssr/[root-of-the-server]__1acw8ohqfhez7._.js +3 -0
  647. package/server/.next/server/chunks/ssr/[root-of-the-server]__1bvp2ia3h9qbs._.js +3 -0
  648. package/server/.next/server/chunks/ssr/[root-of-the-server]__1cmcwg6afneet._.js +3 -0
  649. package/server/.next/server/chunks/ssr/[root-of-the-server]__1dyjzbqwy6o12._.js +3 -0
  650. package/server/.next/server/chunks/ssr/[root-of-the-server]__1f9yq2f20_bof._.js +3 -0
  651. package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +4 -0
  652. package/server/.next/server/chunks/ssr/[root-of-the-server]__1hmh1-e3z3_dw._.js +3 -0
  653. package/server/.next/server/chunks/ssr/[root-of-the-server]__1jgp7__2zpblj._.js +3 -0
  654. package/server/.next/server/chunks/ssr/[root-of-the-server]__1k_hi9mbd4_by._.js +3 -0
  655. package/server/.next/server/chunks/ssr/[root-of-the-server]__1kieqcc6kdywx._.js +3 -0
  656. package/server/.next/server/chunks/ssr/[root-of-the-server]__1l695djsioelp._.js +3 -0
  657. package/server/.next/server/chunks/ssr/[root-of-the-server]__1nat8lbog5imr._.js +3 -0
  658. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pfk0fqey3ipf._.js +3 -0
  659. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pgpryg9lkmoz._.js +3 -0
  660. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qac3db7p9a38._.js +3 -0
  661. package/server/.next/server/chunks/ssr/[root-of-the-server]__1rvdnoxnu0ddf._.js +3 -0
  662. package/server/.next/server/chunks/ssr/[root-of-the-server]__1t4thrxlv4zre._.js +3 -0
  663. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tco2ec6ha1k6._.js +3 -0
  664. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tcu4-eowz9vt._.js +3 -0
  665. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tuftf7fags7x._.js +5 -0
  666. package/server/.next/server/chunks/ssr/[root-of-the-server]__1vyste6xyyu37._.js +3 -0
  667. package/server/.next/server/chunks/ssr/[root-of-the-server]__1xt8hv0dzjv2i._.js +3 -0
  668. package/server/.next/server/chunks/ssr/[root-of-the-server]__1xwqrik2sugmi._.js +3 -0
  669. package/server/.next/server/chunks/ssr/[root-of-the-server]__1yf4_oyl-3xp7._.js +3 -0
  670. package/server/.next/server/chunks/ssr/[root-of-the-server]__20of6xa16fwqa._.js +3 -0
  671. package/server/.next/server/chunks/ssr/[root-of-the-server]__2195hg4329yfp._.js +3 -0
  672. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
  673. package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
  674. package/server/.next/server/chunks/ssr/_04ltmruop4rt3._.js +4 -0
  675. package/server/.next/server/chunks/ssr/_06kn13xh_13da._.js +3 -0
  676. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
  677. package/server/.next/server/chunks/ssr/_090fib2x989oc._.js +3 -0
  678. package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +3 -0
  679. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  680. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  681. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  682. package/server/.next/server/chunks/ssr/_0ad3y3l77xkxe._.js +3 -0
  683. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  684. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +3 -0
  685. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  686. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  687. package/server/.next/server/chunks/ssr/_0fyag9o6gdcmb._.js +3 -0
  688. package/server/.next/server/chunks/ssr/_0hmxyfx7su4uk._.js +4 -0
  689. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
  690. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
  691. package/server/.next/server/chunks/ssr/_0k2qpgzlqzc_p._.js +1 -1
  692. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
  693. package/server/.next/server/chunks/ssr/_0lmcrl8r9dg49._.js +1 -1
  694. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
  695. package/server/.next/server/chunks/ssr/_0ns_087lx5abm._.js +1 -1
  696. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  697. package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +3 -0
  698. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +4 -0
  699. package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +3 -0
  700. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
  701. package/server/.next/server/chunks/ssr/_0ufjz7kfd4jbd._.js +3 -0
  702. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
  703. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +3 -0
  704. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +4 -0
  705. package/server/.next/server/chunks/ssr/_0wzg8e30al7bu._.js +3 -0
  706. package/server/.next/server/chunks/ssr/_0ymtfa6vo-yz5._.js +3 -0
  707. package/server/.next/server/chunks/ssr/_0yn1xeumiigj0._.js +3 -0
  708. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  709. package/server/.next/server/chunks/ssr/_1-ior_ot6mgxg._.js +3 -0
  710. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +5 -5
  711. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
  712. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +4 -0
  713. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
  714. package/server/.next/server/chunks/ssr/_14dtti1qofqqv._.js +1 -1
  715. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
  716. package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
  717. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  718. package/server/.next/server/chunks/ssr/_19dldpcnzhkuw._.js +3 -0
  719. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  720. package/server/.next/server/chunks/ssr/_1_gydx19bikgo._.js +3 -0
  721. package/server/.next/server/chunks/ssr/_1ag8axv14phju._.js +4 -0
  722. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
  723. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
  724. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  725. package/server/.next/server/chunks/ssr/_1dqf3jmb24s37._.js +1 -1
  726. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
  727. package/server/.next/server/chunks/ssr/_1e5zfwgdf0mm5._.js +3 -0
  728. package/server/.next/server/chunks/ssr/_1g27pa6rivh_s._.js +1 -1
  729. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  730. package/server/.next/server/chunks/ssr/_1gk334l49puy-._.js +3 -0
  731. package/server/.next/server/chunks/ssr/_1gvbcfoah__sl._.js +3 -0
  732. package/server/.next/server/chunks/ssr/_1h93joqd_-1og._.js +3 -0
  733. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
  734. package/server/.next/server/chunks/ssr/_1i96si4hzn74p._.js +1 -1
  735. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  736. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  737. package/server/.next/server/chunks/ssr/_1nzncndn-1ggb._.js +1 -1
  738. package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +3 -0
  739. package/server/.next/server/chunks/ssr/_1rf_mwfkk_9oa._.js +3 -0
  740. package/server/.next/server/chunks/ssr/_1uae0vl2c6fz7._.js +3 -0
  741. package/server/.next/server/chunks/ssr/_1w3eagae2f-2-._.js +1 -1
  742. package/server/.next/server/chunks/ssr/_1w_rq6clcs0ft._.js +4 -0
  743. package/server/.next/server/chunks/ssr/_1y8wer5tpgiqw._.js +3 -0
  744. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
  745. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  746. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
  747. package/server/.next/server/chunks/ssr/_217qa04yo70zg._.js +3 -0
  748. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
  749. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
  750. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
  751. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
  752. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +3 -0
  753. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +1 -1
  754. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
  755. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
  756. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +3 -0
  757. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
  758. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +1 -1
  759. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
  760. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
  761. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
  762. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  763. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  764. package/server/.next/server/chunks/ssr/node_modules_1_u5afwqp6brs._.js +3 -0
  765. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kg_ige9ehqj.js +3 -0
  766. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00k37tbaia8dh.js +3 -0
  767. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00z_p6szkga15.js +3 -0
  768. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01-utr59mtfg1.js +3 -0
  769. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_055hw7kwif935.js +3 -0
  770. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06fg_efdkc3kx.js +3 -0
  771. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08f3d08smwt6_.js +3 -0
  772. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcfro9qovjn.js +3 -0
  773. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c8wd69fns_0d.js +3 -0
  774. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0cha-3kg99u4h.js +3 -0
  775. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d_0he72lzkh9.js +3 -0
  776. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0f6chw8z5cuyg.js +3 -0
  777. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0i3p3qfjihm3f.js +3 -0
  778. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ivgh76j_tu2x.js +3 -0
  779. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j9-_xhs21abp.js +3 -0
  780. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kwpdjujljna-.js +3 -0
  781. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ns6neau7m6mt.js +3 -0
  782. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rer2akuum5r-.js +3 -0
  783. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0umt_achusjjb.js +3 -0
  784. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0un7wq602mt3n.js +3 -0
  785. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vrdl9n7guitd.js +3 -0
  786. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vse2cboy4cms.js +3 -0
  787. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0x7ey4_8b48_o.js +3 -0
  788. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z8l8t55t65t_.js +3 -0
  789. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zap6p0vuv-fp.js +3 -0
  790. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-m49cfu6a7gl.js +3 -0
  791. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-w3hswsbrppl.js +3 -0
  792. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1167zbjp4ys_a.js +3 -0
  793. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_129serqqq3xyq.js +3 -0
  794. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12en3pdvxu0dy.js +3 -0
  795. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14-4y3i6c1vxc.js +3 -0
  796. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1596hk9t3r1a5.js +3 -0
  797. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17us24ry0om-z.js +3 -0
  798. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_8xi22-aoxu1.js +3 -0
  799. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_l32aoya75_m.js +3 -0
  800. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ar0v26274uhj.js +3 -0
  801. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dkgfjoaf_1g3.js +3 -0
  802. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eg14m09zdg__.js +3 -0
  803. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1h_y671y1la_8.js +3 -0
  804. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mkokmyyp47hd.js +3 -0
  805. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1msjiuu45famw.js +3 -0
  806. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mw7isdchouml.js +3 -0
  807. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n4cotiug2a_r.js +3 -0
  808. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1njl24pr6dwrt.js +3 -0
  809. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o1_3bydb-3j5.js +3 -0
  810. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1pjor42_s9imf.js +3 -0
  811. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1q_82vyl-q7u6.js +3 -0
  812. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qta4yeufzpz7.js +3 -0
  813. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qxbl6k6dji0s.js +3 -0
  814. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_21a3kf8buivxw.js +3 -0
  815. package/server/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
  816. package/server/.next/server/chunks/ssr/src_0-v68qrxobagw._.js +4 -3
  817. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  818. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  819. package/server/.next/server/chunks/ssr/src_0905fjqu0qv57._.js +3 -0
  820. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +6 -3
  821. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  822. package/server/.next/server/chunks/ssr/src_0i-1ohush6mui._.js +3 -0
  823. package/server/.next/server/chunks/ssr/src_0ixeyy74fe5jy._.js +3 -0
  824. package/server/.next/server/chunks/ssr/src_0jdurlhzhcg5x._.js +3 -0
  825. package/server/.next/server/chunks/ssr/src_0ley8c3htc2q9._.js +3 -0
  826. package/server/.next/server/chunks/ssr/src_0oagnv9_4qww7._.js +3 -0
  827. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
  828. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  829. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  830. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  831. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  832. package/server/.next/server/chunks/ssr/src_12sdm7skn8fr1._.js +3 -0
  833. package/server/.next/server/chunks/ssr/src_13upnysaqwi9a._.js +3 -0
  834. package/server/.next/server/chunks/ssr/src_16lx0qdi44evh._.js +3 -0
  835. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +3 -0
  836. package/server/.next/server/chunks/ssr/src_1nse4o3frj33x._.js +3 -0
  837. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +3 -0
  838. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  839. package/server/.next/server/chunks/ssr/src_1xjlp4oxlprxb._.js +3 -0
  840. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  841. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  842. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  843. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  844. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  845. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  846. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
  847. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  848. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
  849. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  850. package/server/.next/server/chunks/ssr/src_app_(console)_08pmfte22v8vg._.js +3 -0
  851. package/server/.next/server/chunks/ssr/src_app_(console)_1rx84pcbevbbk._.js +3 -0
  852. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  853. package/server/.next/server/chunks/ssr/src_app_(console)_apps_1_g9txz3qpxgg._.js +1 -1
  854. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  855. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  856. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  857. package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
  858. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  859. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  860. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  861. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  862. package/server/.next/server/chunks/ssr/src_app_(console)_deployments_06a83hsex1kba._.js +1 -1
  863. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  864. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  865. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_1stlii5cy_hx3._.js +3 -0
  866. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +3 -0
  867. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  868. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +1 -1
  869. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  870. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  871. package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
  872. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  873. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  874. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  875. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  876. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  877. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  878. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
  879. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  880. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  881. package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
  882. package/server/.next/server/chunks/ssr/src_app_invite_page_tsx_0mny3a23n5hs9._.js +1 -1
  883. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  884. package/server/.next/server/chunks/ssr/src_app_s_[slug]_not-found_tsx_04_zrw19809g4._.js +3 -0
  885. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  886. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  887. package/server/.next/server/chunks/ssr/src_app_signin_0hb58isfg-2yx._.js +3 -0
  888. package/server/.next/server/chunks/ssr/src_app_signin_1_sp0qx8_z7c9._.js +1 -1
  889. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +3 -0
  890. package/server/.next/server/chunks/ssr/src_components_0j11cbzb8mgbx._.js +1 -1
  891. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +1 -1
  892. package/server/.next/server/chunks/ssr/src_components_1pytjhvy4c2mp._.js +1 -1
  893. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  894. package/server/.next/server/chunks/ssr/src_components_row-menu_tsx_0rzpl9elzpy8u._.js +1 -1
  895. package/server/.next/server/chunks/ssr/src_lib_0-xd6p5793qdu._.js +3 -0
  896. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +3 -2
  897. package/server/.next/server/chunks/ssr/src_lib_033ses2c4-ww-._.js +1 -1
  898. package/server/.next/server/chunks/ssr/src_lib_0br09js6tlkn0._.js +3 -0
  899. package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
  900. package/server/.next/server/chunks/ssr/src_lib_0n1xnas42gur9._.js +1 -1
  901. package/server/.next/server/chunks/ssr/src_lib_0qbcg988i_-ee._.js +3 -0
  902. package/server/.next/server/chunks/ssr/src_lib_16oqslmhfgod1._.js +3 -0
  903. package/server/.next/server/chunks/ssr/src_lib_18e550s395xn5._.js +3 -0
  904. package/server/.next/server/chunks/ssr/src_lib_18wgdeemqm6gg._.js +3 -0
  905. package/server/.next/server/chunks/ssr/src_lib_1_5ea0kxdn6zt._.js +3 -0
  906. package/server/.next/server/chunks/ssr/src_lib_1xwavi_m_li7p._.js +3 -0
  907. package/server/.next/server/chunks/ssr/src_lib_1ywf_wup1kxy_._.js +1 -1
  908. package/server/.next/server/chunks/ssr/src_lib_20y7pw44m8gs0._.js +1 -1
  909. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  910. package/server/.next/server/chunks/ssr/src_lib_backoff_ts_1ng2bz5j0w501._.js +3 -0
  911. package/server/.next/server/chunks/ssr/src_lib_collector_db-tasks_ts_1srkgjghwj3ma._.js +3 -0
  912. package/server/.next/server/chunks/ssr/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +3 -0
  913. package/server/.next/server/chunks/ssr/src_lib_collector_node-runtime_ts_0778fef3fi3zj._.js +3 -0
  914. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  915. package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +3 -0
  916. package/server/.next/server/chunks/ssr/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +3 -0
  917. package/server/.next/server/chunks/ssr/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +3 -0
  918. package/server/.next/server/chunks/ssr/src_lib_data_public-status-db_ts_0gvnrjcitruqe._.js +1 -1
  919. package/server/.next/server/chunks/ssr/src_lib_data_supabase-action_ts_0h0b758akvlvd._.js +1 -1
  920. package/server/.next/server/chunks/ssr/src_lib_data_vercel-action_ts_1hvera3nwo5fp._.js +1 -1
  921. package/server/.next/server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js +3 -0
  922. package/server/.next/server/chunks/ssr/src_lib_demo_0mr090huk17s8._.js +3 -0
  923. package/server/.next/server/chunks/ssr/src_lib_demo_1wu-a6lubzph6._.js +3 -0
  924. package/server/.next/server/chunks/ssr/src_lib_deps_plan_ts_0bctf8v4qttk5._.js +1 -1
  925. package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +3 -0
  926. package/server/.next/server/chunks/ssr/src_lib_rate-limit_ts_0r-eu6to05vyx._.js +1 -1
  927. package/server/.next/server/chunks/ssr/src_lib_sections_ts_0r8u4nvlpdkgq._.js +3 -0
  928. package/server/.next/server/chunks/ssr/src_lib_utils_ts_0m4hn6s00gc2u._.js +3 -0
  929. package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  930. package/server/.next/server/chunks/ssr/src_lib_view_deploy-actions_ts_110iixnn6rdh9._.js +3 -0
  931. package/server/.next/server/chunks/ssr/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
  932. package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  933. package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
  934. package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +1 -1
  935. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  936. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  937. package/server/.next/server/chunks/ssr/src_private_actions_proposals-settings_ts_16v2x9a4amejq._.js +1 -1
  938. package/server/.next/server/chunks/ssr/src_private_actions_telegram-approvals_ts_14gvz6qi_j4aa._.js +1 -1
  939. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  940. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  941. package/server/.next/server/chunks/ssr/src_private_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
  942. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +6 -6
  943. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  944. package/server/.next/server/middleware-build-manifest.js +3 -14
  945. package/server/.next/server/middleware.js +1 -1
  946. package/server/.next/server/next-font-manifest.js +1 -1
  947. package/server/.next/server/next-font-manifest.json +0 -4
  948. package/server/.next/server/pages/404.html +1 -1
  949. package/server/.next/server/pages/500.html +1 -1
  950. package/server/.next/server/preview-props.json +3 -3
  951. package/server/.next/server/server-reference-manifest.js +1 -1
  952. package/server/.next/server/server-reference-manifest.json +242 -212
  953. package/server/.next/static/chunks/0-_zjfssid86w.js +33 -0
  954. package/server/.next/static/chunks/02-edmd1oolf2.css +3 -0
  955. package/server/.next/static/chunks/02e07gc948zdh.js +1 -0
  956. package/server/.next/static/chunks/05p62k_8g05pm.js +76 -0
  957. package/server/.next/static/chunks/073u0a0mfexc8.js +1 -0
  958. package/server/.next/static/chunks/09fx7h5vm68up.js +1 -0
  959. package/server/.next/static/chunks/0a5vchcarwyam.js +1 -0
  960. package/server/.next/static/chunks/0ao7_ov9mlvqp.js +1 -0
  961. package/server/.next/static/chunks/0cvmbpyjages7.js +5 -0
  962. package/server/.next/static/chunks/0hnhf3barhk90.js +1 -0
  963. package/server/.next/static/chunks/0i8-ofb4wfcch.js +1 -0
  964. package/server/.next/static/chunks/0id261ol_gl6f.js +1 -0
  965. package/server/.next/static/chunks/0iyozrryj1w49.js +1 -0
  966. package/server/.next/static/chunks/0q2ogu5cn9q9p.js +1 -0
  967. package/server/.next/static/chunks/0z_fqwq62_95p.js +1 -0
  968. package/server/.next/static/chunks/12fo0pcbpv7lw.js +1 -0
  969. package/server/.next/static/chunks/12l7tr29-a97t.js +1 -0
  970. package/server/.next/static/chunks/16d1ws92me6_q.js +1 -0
  971. package/server/.next/static/chunks/1__8cm_-lydee.js +1 -0
  972. package/server/.next/static/chunks/1hmur12m0hx3z.js +1 -0
  973. package/server/.next/static/chunks/1o1lidcbrrh92.js +1 -0
  974. package/server/.next/static/chunks/1pre7l9hmk-b6.js +1 -0
  975. package/server/.next/static/chunks/1qxc6cck2xkbs.js +1 -0
  976. package/server/.next/static/chunks/205s3z3_jvp5m.js +1 -0
  977. package/server/.next/static/chunks/20cpkauaj8e6x.js +7 -0
  978. package/server/.next/static/chunks/25meucm7i1e7b.js +1 -0
  979. package/server/.next/static/chunks/2oy7awlquezq_.js +1 -0
  980. package/server/.next/static/chunks/2pj8subq20y-_.js +1 -0
  981. package/server/.next/static/chunks/2qcurt9u9shwc.js +1 -0
  982. package/server/.next/static/chunks/2scf40c-_g_q1.js +1 -0
  983. package/server/.next/static/chunks/2tnx5isef9ryw.js +1 -0
  984. package/server/.next/static/chunks/2v_f39dz8sa3-.js +1 -0
  985. package/server/.next/static/chunks/2whojv56qi3ke.js +1 -0
  986. package/server/.next/static/chunks/2wlen-jacsbqv.js +1 -0
  987. package/server/.next/static/chunks/319s97ka6eaex.js +1 -0
  988. package/server/.next/static/chunks/36bqhxadlfbfn.js +1 -0
  989. package/server/.next/static/chunks/36js6cf9c-53b.js +1 -0
  990. package/server/.next/static/chunks/372gugw4ldy47.js +1 -0
  991. package/server/.next/static/chunks/39n_1gky-xh0a.js +1 -0
  992. package/server/.next/static/chunks/3fv862m8cvcoe.js +1 -0
  993. package/server/.next/static/chunks/3g73nar6-7bqk.js +1 -0
  994. package/server/.next/static/chunks/3orhi-m-n-ra4.js +1 -0
  995. package/server/.next/static/chunks/3u3h2mlon2qu7.js +1 -0
  996. package/server/.next/static/chunks/3vacue9vhoqag.js +1 -0
  997. package/server/.next/static/chunks/3x8-w_p0n-gsd.js +1 -0
  998. package/server/.next/static/chunks/3xo5igjfumqip.js +1 -0
  999. package/server/.next/static/chunks/3yljsdgzvrkdf.js +1 -0
  1000. package/server/.next/static/chunks/3zx1pe40m_ddz.js +1 -0
  1001. package/server/.next/static/chunks/415ijq-anmr2o.js +1 -0
  1002. package/server/.next/static/chunks/43wm4_0-0-eej.js +1 -0
  1003. package/server/.next/static/chunks/44bizq7fli9cp.js +1 -0
  1004. package/server/.next/static/media/icon.17zy5uxei5-yo.svg +17 -0
  1005. package/server/drizzle-selfhost/0005_framework_vulnerable_rule.sql +2 -0
  1006. package/server/drizzle-selfhost/0006_monitor_domain_moved.sql +4 -0
  1007. package/server/drizzle-selfhost/meta/_journal.json +54 -40
  1008. package/server/server.js +1 -1
  1009. package/tools/reset-login.mjs +29 -2
  1010. package/server/.next/server/app/(console)/[...slug]/page/app-paths-manifest.json +0 -3
  1011. package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +0 -22
  1012. package/server/.next/server/app/(console)/[...slug]/page/next-font-manifest.json +0 -11
  1013. package/server/.next/server/app/(console)/[...slug]/page/react-loadable-manifest.json +0 -1
  1014. package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +0 -95
  1015. package/server/.next/server/app/(console)/[...slug]/page.js +0 -103
  1016. package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +0 -1
  1017. package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +0 -3
  1018. package/server/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
  1019. package/server/.next/server/app/favicon.ico/route.js +0 -12
  1020. package/server/.next/server/app/favicon.ico/route.js.nft.json +0 -1
  1021. package/server/.next/server/app/favicon.ico.body +0 -0
  1022. package/server/.next/server/app/favicon.ico.meta +0 -1
  1023. package/server/.next/server/chunks/[externals]__0qo8lpb70m87u._.js +0 -3
  1024. package/server/.next/server/chunks/[externals]__100hq0n2xtenb._.js +0 -3
  1025. package/server/.next/server/chunks/[externals]__1irgb5qz1s3gv._.js +0 -3
  1026. package/server/.next/server/chunks/[root-of-the-server]__00hb7hqa7qktx._.js +0 -3
  1027. package/server/.next/server/chunks/[root-of-the-server]__01gitcyenl9ge._.js +0 -3
  1028. package/server/.next/server/chunks/[root-of-the-server]__02m_c7u17aggg._.js +0 -3
  1029. package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +0 -3
  1030. package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +0 -3
  1031. package/server/.next/server/chunks/[root-of-the-server]__05eh797cjmgya._.js +0 -3
  1032. package/server/.next/server/chunks/[root-of-the-server]__06ek056i_j_uk._.js +0 -3
  1033. package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +0 -3
  1034. package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +0 -3
  1035. package/server/.next/server/chunks/[root-of-the-server]__06r-019fixp3f._.js +0 -3
  1036. package/server/.next/server/chunks/[root-of-the-server]__07uknh5b-embq._.js +0 -3
  1037. package/server/.next/server/chunks/[root-of-the-server]__07v5e0vzgl4n2._.js +0 -3
  1038. package/server/.next/server/chunks/[root-of-the-server]__07w0ehfomhmm1._.js +0 -3
  1039. package/server/.next/server/chunks/[root-of-the-server]__08fyoixg__c7n._.js +0 -3
  1040. package/server/.next/server/chunks/[root-of-the-server]__091fhe9u6mapu._.js +0 -3
  1041. package/server/.next/server/chunks/[root-of-the-server]__09829lhdhabq5._.js +0 -3
  1042. package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +0 -3
  1043. package/server/.next/server/chunks/[root-of-the-server]__0a9tv46v8y_c5._.js +0 -3
  1044. package/server/.next/server/chunks/[root-of-the-server]__0aha0ly6g6o_2._.js +0 -3
  1045. package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +0 -3
  1046. package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +0 -3
  1047. package/server/.next/server/chunks/[root-of-the-server]__0b_4w-5x5u7ag._.js +0 -3
  1048. package/server/.next/server/chunks/[root-of-the-server]__0b_jutz-o08fu._.js +0 -3
  1049. package/server/.next/server/chunks/[root-of-the-server]__0bnasoi-x21jc._.js +0 -3
  1050. package/server/.next/server/chunks/[root-of-the-server]__0c4u-u6i71c99._.js +0 -3
  1051. package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +0 -3
  1052. package/server/.next/server/chunks/[root-of-the-server]__0d8ypilha-el8._.js +0 -3
  1053. package/server/.next/server/chunks/[root-of-the-server]__0dlwmjtvf308b._.js +0 -3
  1054. package/server/.next/server/chunks/[root-of-the-server]__0el1c67a5ioz_._.js +0 -3
  1055. package/server/.next/server/chunks/[root-of-the-server]__0evbn4gllmqw9._.js +0 -3
  1056. package/server/.next/server/chunks/[root-of-the-server]__0flqwe7amc3mz._.js +0 -3
  1057. package/server/.next/server/chunks/[root-of-the-server]__0fw19tsgp-vbq._.js +0 -3
  1058. package/server/.next/server/chunks/[root-of-the-server]__0fw7l5y58_xcd._.js +0 -3
  1059. package/server/.next/server/chunks/[root-of-the-server]__0g1tldn4xjewd._.js +0 -3
  1060. package/server/.next/server/chunks/[root-of-the-server]__0grtjjr51j6xe._.js +0 -3
  1061. package/server/.next/server/chunks/[root-of-the-server]__0h1qhdjpfq1d4._.js +0 -3
  1062. package/server/.next/server/chunks/[root-of-the-server]__0h4n81_nqdr4j._.js +0 -3
  1063. package/server/.next/server/chunks/[root-of-the-server]__0h7pbkmsrhlwj._.js +0 -3
  1064. package/server/.next/server/chunks/[root-of-the-server]__0hqkum2r4f0xy._.js +0 -3
  1065. package/server/.next/server/chunks/[root-of-the-server]__0hty-wue10pro._.js +0 -3
  1066. package/server/.next/server/chunks/[root-of-the-server]__0i598fxqi-zy7._.js +0 -3
  1067. package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +0 -3
  1068. package/server/.next/server/chunks/[root-of-the-server]__0l0w4cbvdatmt._.js +0 -3
  1069. package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +0 -3
  1070. package/server/.next/server/chunks/[root-of-the-server]__0m_6ooqldguxr._.js +0 -3
  1071. package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +0 -3
  1072. package/server/.next/server/chunks/[root-of-the-server]__0npmbdrxybln5._.js +0 -3
  1073. package/server/.next/server/chunks/[root-of-the-server]__0nqw6z6fp8wad._.js +0 -3
  1074. package/server/.next/server/chunks/[root-of-the-server]__0olmk-rbbhxlo._.js +0 -3
  1075. package/server/.next/server/chunks/[root-of-the-server]__0owyb9lr5t5u-._.js +0 -3
  1076. package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +0 -3
  1077. package/server/.next/server/chunks/[root-of-the-server]__0p70ujmcgsfif._.js +0 -3
  1078. package/server/.next/server/chunks/[root-of-the-server]__0q6_612vy0cdp._.js +0 -3
  1079. package/server/.next/server/chunks/[root-of-the-server]__0qmkpydmx3ljf._.js +0 -3
  1080. package/server/.next/server/chunks/[root-of-the-server]__0r-zdzq6ki5gr._.js +0 -3
  1081. package/server/.next/server/chunks/[root-of-the-server]__0si9k9jhdc0bm._.js +0 -3
  1082. package/server/.next/server/chunks/[root-of-the-server]__0t8d8b4qkw3y-._.js +0 -3
  1083. package/server/.next/server/chunks/[root-of-the-server]__0thzl_1s30zso._.js +0 -3
  1084. package/server/.next/server/chunks/[root-of-the-server]__0tl5pxttllr4d._.js +0 -3
  1085. package/server/.next/server/chunks/[root-of-the-server]__0ud71z3im7xje._.js +0 -3
  1086. package/server/.next/server/chunks/[root-of-the-server]__0uyh4jgcd9092._.js +0 -3
  1087. package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +0 -3
  1088. package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +0 -3
  1089. package/server/.next/server/chunks/[root-of-the-server]__0vugeaxly8zvv._.js +0 -3
  1090. package/server/.next/server/chunks/[root-of-the-server]__0wmbz6u3dhwpq._.js +0 -3
  1091. package/server/.next/server/chunks/[root-of-the-server]__0wy38l7k36j6g._.js +0 -3
  1092. package/server/.next/server/chunks/[root-of-the-server]__0xiz361p5kdhf._.js +0 -3
  1093. package/server/.next/server/chunks/[root-of-the-server]__0xmk00qk0z8xm._.js +0 -3
  1094. package/server/.next/server/chunks/[root-of-the-server]__0y4j2b3eu46x_._.js +0 -3
  1095. package/server/.next/server/chunks/[root-of-the-server]__0z-07azr3zk8s._.js +0 -3
  1096. package/server/.next/server/chunks/[root-of-the-server]__0z-41cwvkliev._.js +0 -3
  1097. package/server/.next/server/chunks/[root-of-the-server]__0znfwqxftxq60._.js +0 -3
  1098. package/server/.next/server/chunks/[root-of-the-server]__0zxyfd7u67hmv._.js +0 -3
  1099. package/server/.next/server/chunks/[root-of-the-server]__1-jsquu8mohcz._.js +0 -3
  1100. package/server/.next/server/chunks/[root-of-the-server]__1-rqermjb77se._.js +0 -3
  1101. package/server/.next/server/chunks/[root-of-the-server]__1-zdlu4-l-ku9._.js +0 -3
  1102. package/server/.next/server/chunks/[root-of-the-server]__10-px6moitvbx._.js +0 -3
  1103. package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +0 -3
  1104. package/server/.next/server/chunks/[root-of-the-server]__10igiswto_7s8._.js +0 -3
  1105. package/server/.next/server/chunks/[root-of-the-server]__10x3lu8jeqgbt._.js +0 -3
  1106. package/server/.next/server/chunks/[root-of-the-server]__11-van59e9p2a._.js +0 -3
  1107. package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +0 -3
  1108. package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +0 -3
  1109. package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +0 -3
  1110. package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +0 -3
  1111. package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +0 -3
  1112. package/server/.next/server/chunks/[root-of-the-server]__139-2tkq2di_-._.js +0 -3
  1113. package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +0 -3
  1114. package/server/.next/server/chunks/[root-of-the-server]__145gadwk31inl._.js +0 -3
  1115. package/server/.next/server/chunks/[root-of-the-server]__14luo1ecxoqh-._.js +0 -3
  1116. package/server/.next/server/chunks/[root-of-the-server]__162cm9ds1c5y2._.js +0 -3
  1117. package/server/.next/server/chunks/[root-of-the-server]__16wve14c32m54._.js +0 -3
  1118. package/server/.next/server/chunks/[root-of-the-server]__1815iu1syowit._.js +0 -3
  1119. package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +0 -3
  1120. package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +0 -3
  1121. package/server/.next/server/chunks/[root-of-the-server]__1__rgcmvy4dq_._.js +0 -3
  1122. package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +0 -3
  1123. package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +0 -3
  1124. package/server/.next/server/chunks/[root-of-the-server]__1addx81qjp4tj._.js +0 -3
  1125. package/server/.next/server/chunks/[root-of-the-server]__1aza-7l2pl-pm._.js +0 -3
  1126. package/server/.next/server/chunks/[root-of-the-server]__1bfzck-boudpr._.js +0 -3
  1127. package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +0 -3
  1128. package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +0 -3
  1129. package/server/.next/server/chunks/[root-of-the-server]__1cla4k3dqtcfb._.js +0 -3
  1130. package/server/.next/server/chunks/[root-of-the-server]__1d01ycphxl_8c._.js +0 -3
  1131. package/server/.next/server/chunks/[root-of-the-server]__1e31qar_deo52._.js +0 -3
  1132. package/server/.next/server/chunks/[root-of-the-server]__1fm_cwl42xphm._.js +0 -3
  1133. package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +0 -3
  1134. package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +0 -3
  1135. package/server/.next/server/chunks/[root-of-the-server]__1h-j2ehta-v8y._.js +0 -3
  1136. package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +0 -3
  1137. package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +0 -3
  1138. package/server/.next/server/chunks/[root-of-the-server]__1iv6vg3z9ho81._.js +0 -3
  1139. package/server/.next/server/chunks/[root-of-the-server]__1j3-sv7eqyhjb._.js +0 -3
  1140. package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +0 -3
  1141. package/server/.next/server/chunks/[root-of-the-server]__1j_iy13gp2-on._.js +0 -3
  1142. package/server/.next/server/chunks/[root-of-the-server]__1jx4n51g-4s45._.js +0 -3
  1143. package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +0 -3
  1144. package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +0 -3
  1145. package/server/.next/server/chunks/[root-of-the-server]__1l8s8oe7j06yw._.js +0 -3
  1146. package/server/.next/server/chunks/[root-of-the-server]__1m08l0n-keil9._.js +0 -3
  1147. package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +0 -3
  1148. package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +0 -3
  1149. package/server/.next/server/chunks/[root-of-the-server]__1nbabbcvq6ftu._.js +0 -3
  1150. package/server/.next/server/chunks/[root-of-the-server]__1o0vizengmvr5._.js +0 -3
  1151. package/server/.next/server/chunks/[root-of-the-server]__1objhlwwrjfjk._.js +0 -3
  1152. package/server/.next/server/chunks/[root-of-the-server]__1pscqm70t9q_6._.js +0 -3
  1153. package/server/.next/server/chunks/[root-of-the-server]__1r-13hkmnpab2._.js +0 -3
  1154. package/server/.next/server/chunks/[root-of-the-server]__1r-kuxxt5svyg._.js +0 -3
  1155. package/server/.next/server/chunks/[root-of-the-server]__1r0czef7apz8a._.js +0 -3
  1156. package/server/.next/server/chunks/[root-of-the-server]__1r6ztpxo08lwp._.js +0 -3
  1157. package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +0 -3
  1158. package/server/.next/server/chunks/[root-of-the-server]__1s5qcgiravzf_._.js +0 -3
  1159. package/server/.next/server/chunks/[root-of-the-server]__1sucr6flncx_f._.js +0 -3
  1160. package/server/.next/server/chunks/[root-of-the-server]__1t0_ibqlvou_d._.js +0 -3
  1161. package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +0 -3
  1162. package/server/.next/server/chunks/[root-of-the-server]__1tezk6eqndp54._.js +0 -3
  1163. package/server/.next/server/chunks/[root-of-the-server]__1tllcx0d90k6q._.js +0 -3
  1164. package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +0 -3
  1165. package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +0 -3
  1166. package/server/.next/server/chunks/[root-of-the-server]__1vi0u2vkv3tk0._.js +0 -3
  1167. package/server/.next/server/chunks/[root-of-the-server]__1w3svzao_gnxp._.js +0 -3
  1168. package/server/.next/server/chunks/[root-of-the-server]__1w53h3d5ptawi._.js +0 -3
  1169. package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +0 -3
  1170. package/server/.next/server/chunks/[root-of-the-server]__1wuxzuu_xkzl6._.js +0 -3
  1171. package/server/.next/server/chunks/[root-of-the-server]__1wwzyck7gzela._.js +0 -3
  1172. package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +0 -3
  1173. package/server/.next/server/chunks/[root-of-the-server]__20_1nfa6fiz-q._.js +0 -3
  1174. package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +0 -3
  1175. package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +0 -3
  1176. package/server/.next/server/chunks/_008zv66xvj7ey._.js +0 -37
  1177. package/server/.next/server/chunks/_0a-hy32dzrje8._.js +0 -3
  1178. package/server/.next/server/chunks/_0a7533vs89s78._.js +0 -7
  1179. package/server/.next/server/chunks/_0ejcrge5k4quv._.js +0 -120
  1180. package/server/.next/server/chunks/_0gbk60zhuj4js._.js +0 -3
  1181. package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +0 -37
  1182. package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +0 -3
  1183. package/server/.next/server/chunks/_0mgm3vz_sy8eb._.js +0 -3
  1184. package/server/.next/server/chunks/_0nt4hve0bi30h._.js +0 -37
  1185. package/server/.next/server/chunks/_0qr77omrkuewo._.js +0 -3
  1186. package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +0 -3
  1187. package/server/.next/server/chunks/_0ucq4nndk_9mb._.js +0 -3
  1188. package/server/.next/server/chunks/_0uxp3uhmyw1h3._.js +0 -3
  1189. package/server/.next/server/chunks/_0wxm_716tjorj._.js +0 -3
  1190. package/server/.next/server/chunks/_0zbvj132mwn12._.js +0 -3
  1191. package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +0 -3
  1192. package/server/.next/server/chunks/_13a44prd3r109._.js +0 -3
  1193. package/server/.next/server/chunks/_14ymj3uzawde4._.js +0 -7
  1194. package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +0 -120
  1195. package/server/.next/server/chunks/_1b7ufx8anq8rr._.js +0 -3
  1196. package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +0 -37
  1197. package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +0 -3
  1198. package/server/.next/server/chunks/_1luzeov9x87mg._.js +0 -7
  1199. package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +0 -3
  1200. package/server/.next/server/chunks/_1zx_54or1pubb._.js +0 -57
  1201. package/server/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjlssn1kss.js +0 -3
  1202. package/server/.next/server/chunks/node_modules_next_166oduh3hi1qv._.js +0 -3
  1203. package/server/.next/server/chunks/node_modules_next_1bpl0_13bu-mp._.js +0 -3
  1204. package/server/.next/server/chunks/src_014zbodp4djeb._.js +0 -3
  1205. package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +0 -3
  1206. package/server/.next/server/chunks/src_04pgj--n_d4w5._.js +0 -3
  1207. package/server/.next/server/chunks/src_0dy4w8f4s56m7._.js +0 -3
  1208. package/server/.next/server/chunks/src_0h2cjsnz9pqi7._.js +0 -3
  1209. package/server/.next/server/chunks/src_0h8_rg_r28y_e._.js +0 -3
  1210. package/server/.next/server/chunks/src_0hhtt0p5ybxni._.js +0 -3
  1211. package/server/.next/server/chunks/src_0kwnhwi77unm7._.js +0 -3
  1212. package/server/.next/server/chunks/src_0ldb1fj5qtl-n._.js +0 -3
  1213. package/server/.next/server/chunks/src_0rh392hbuxnv6._.js +0 -3
  1214. package/server/.next/server/chunks/src_0vffc49o4-382._.js +0 -3
  1215. package/server/.next/server/chunks/src_0xqorb3-ef3ub._.js +0 -3
  1216. package/server/.next/server/chunks/src_10y_2e6znqpoa._.js +0 -3
  1217. package/server/.next/server/chunks/src_17m9gvb5o-w8p._.js +0 -3
  1218. package/server/.next/server/chunks/src_1dsh9rzlos6-1._.js +0 -3
  1219. package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +0 -3
  1220. package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +0 -3
  1221. package/server/.next/server/chunks/src_1j71dvub05y-4._.js +0 -3
  1222. package/server/.next/server/chunks/src_1no_yh953mran._.js +0 -3
  1223. package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +0 -3
  1224. package/server/.next/server/chunks/src_lib_03a2ehk2-znxl._.js +0 -3
  1225. package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +0 -4
  1226. package/server/.next/server/chunks/src_lib_0d-fifn3g3zp4._.js +0 -3
  1227. package/server/.next/server/chunks/src_lib_0dyhs-qioyjww._.js +0 -3
  1228. package/server/.next/server/chunks/src_lib_0hkrs-q6hzcww._.js +0 -3
  1229. package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +0 -6
  1230. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +0 -9
  1231. package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +0 -3
  1232. package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +0 -6
  1233. package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +0 -6
  1234. package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +0 -4
  1235. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +0 -9
  1236. package/server/.next/server/chunks/src_lib_1p21oczr6lh5a._.js +0 -3
  1237. package/server/.next/server/chunks/src_lib_1s-3a-lp7wq7s._.js +0 -3
  1238. package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +0 -4
  1239. package/server/.next/server/chunks/src_lib_1v1ja5mvs12l3._.js +0 -3
  1240. package/server/.next/server/chunks/src_lib_1y3rtb5bjz0-k._.js +0 -3
  1241. package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +0 -3
  1242. package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +0 -6
  1243. package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +0 -3
  1244. package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +0 -3
  1245. package/server/.next/server/chunks/src_lib_demo_1vea4wqi-dxio._.js +0 -3
  1246. package/server/.next/server/chunks/src_lib_demo_1w8p39upm6ea2._.js +0 -3
  1247. package/server/.next/server/chunks/src_lib_demo_session_ts_1gjl21ovvq1na._.js +0 -3
  1248. package/server/.next/server/chunks/src_lib_demo_session_ts_1ou6lpswmwykq._.js +0 -3
  1249. package/server/.next/server/chunks/src_lib_security_osv_ts_1fckitwjz25y3._.js +0 -3
  1250. package/server/.next/server/chunks/ssr/[externals]__020te-_1z03yq._.js +0 -3
  1251. package/server/.next/server/chunks/ssr/[externals]__0d_b-rmqrnp-4._.js +0 -3
  1252. package/server/.next/server/chunks/ssr/[externals]__0jneh11f99ndq._.js +0 -3
  1253. package/server/.next/server/chunks/ssr/[externals]__0q1j6etr_np7z._.js +0 -3
  1254. package/server/.next/server/chunks/ssr/[externals]__0tuq6zpflbfiy._.js +0 -3
  1255. package/server/.next/server/chunks/ssr/[externals]__0zvy4iicnrk95._.js +0 -3
  1256. package/server/.next/server/chunks/ssr/[externals]__1-bg5_534qin1._.js +0 -3
  1257. package/server/.next/server/chunks/ssr/[externals]__19ny_glrblslt._.js +0 -3
  1258. package/server/.next/server/chunks/ssr/[externals]__1a1nz9v0djtee._.js +0 -3
  1259. package/server/.next/server/chunks/ssr/[externals]__1ut5w9sjvvugj._.js +0 -3
  1260. package/server/.next/server/chunks/ssr/[externals]__1wps6-uuzn43x._.js +0 -3
  1261. package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.js +0 -3
  1262. package/server/.next/server/chunks/ssr/[root-of-the-server]__02ekfgznq_frg._.js +0 -3
  1263. package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +0 -3
  1264. package/server/.next/server/chunks/ssr/[root-of-the-server]__02s8g4eagqfmb._.js +0 -3
  1265. package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +0 -3
  1266. package/server/.next/server/chunks/ssr/[root-of-the-server]__052_cprs0alpy._.js +0 -3
  1267. package/server/.next/server/chunks/ssr/[root-of-the-server]__0543ddliluvv3._.js +0 -3
  1268. package/server/.next/server/chunks/ssr/[root-of-the-server]__08479d23kb1xv._.js +0 -3
  1269. package/server/.next/server/chunks/ssr/[root-of-the-server]__08fqg76puqdfr._.js +0 -3
  1270. package/server/.next/server/chunks/ssr/[root-of-the-server]__08lyheht537x7._.js +0 -3
  1271. package/server/.next/server/chunks/ssr/[root-of-the-server]__08r-36gsbhzfl._.js +0 -3
  1272. package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +0 -3
  1273. package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +0 -3
  1274. package/server/.next/server/chunks/ssr/[root-of-the-server]__09zhej94-8cfl._.js +0 -3
  1275. package/server/.next/server/chunks/ssr/[root-of-the-server]__0acmauri7z1sg._.js +0 -3
  1276. package/server/.next/server/chunks/ssr/[root-of-the-server]__0aqyve_ff5w0a._.js +0 -3
  1277. package/server/.next/server/chunks/ssr/[root-of-the-server]__0bk5eahqwy8sh._.js +0 -3
  1278. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +0 -3
  1279. package/server/.next/server/chunks/ssr/[root-of-the-server]__0e9m8up0h1qhl._.js +0 -3
  1280. package/server/.next/server/chunks/ssr/[root-of-the-server]__0eiatxdstconl._.js +0 -3
  1281. package/server/.next/server/chunks/ssr/[root-of-the-server]__0gm7dev9velgg._.js +0 -3
  1282. package/server/.next/server/chunks/ssr/[root-of-the-server]__0go63he_23y9m._.js +0 -3
  1283. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h9gtpapca7i_._.js +0 -3
  1284. package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +0 -3
  1285. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jijx2bqn0en9._.js +0 -3
  1286. package/server/.next/server/chunks/ssr/[root-of-the-server]__0krmmz0jerb62._.js +0 -3
  1287. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +0 -3
  1288. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +0 -3
  1289. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lt7660aka4d-._.js +0 -3
  1290. package/server/.next/server/chunks/ssr/[root-of-the-server]__0msyy6xoone7-._.js +0 -3
  1291. package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +0 -4
  1292. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +0 -3
  1293. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nk9sgklibvso._.js +0 -3
  1294. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlzqp6jk7rac._.js +0 -3
  1295. package/server/.next/server/chunks/ssr/[root-of-the-server]__0op0kqh43wd-a._.js +0 -3
  1296. package/server/.next/server/chunks/ssr/[root-of-the-server]__0qe9gfdyim9-4._.js +0 -3
  1297. package/server/.next/server/chunks/ssr/[root-of-the-server]__0s5ikdxrwjpuv._.js +0 -3
  1298. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tf_y6x-civd1._.js +0 -3
  1299. package/server/.next/server/chunks/ssr/[root-of-the-server]__0z8wbpv0sokm-._.js +0 -3
  1300. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-5oo48nrva5i._.js +0 -3
  1301. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-7rv__xugolc._.js +0 -3
  1302. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +0 -3
  1303. package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +0 -3
  1304. package/server/.next/server/chunks/ssr/[root-of-the-server]__10d1_0sush0ly._.js +0 -3
  1305. package/server/.next/server/chunks/ssr/[root-of-the-server]__119-39ph_0j3f._.js +0 -3
  1306. package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +0 -3
  1307. package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +0 -4
  1308. package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +0 -3
  1309. package/server/.next/server/chunks/ssr/[root-of-the-server]__14v88t9px5pb6._.js +0 -3
  1310. package/server/.next/server/chunks/ssr/[root-of-the-server]__15j_u2bz3jc-a._.js +0 -3
  1311. package/server/.next/server/chunks/ssr/[root-of-the-server]__15n-r12rnj61t._.js +0 -3
  1312. package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +0 -3
  1313. package/server/.next/server/chunks/ssr/[root-of-the-server]__171npv87rwei1._.js +0 -3
  1314. package/server/.next/server/chunks/ssr/[root-of-the-server]__176fov12nmg0c._.js +0 -3
  1315. package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +0 -3
  1316. package/server/.next/server/chunks/ssr/[root-of-the-server]__17zzr7zjfaj94._.js +0 -3
  1317. package/server/.next/server/chunks/ssr/[root-of-the-server]__18s2sszcjwz_x._.js +0 -3
  1318. package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +0 -3
  1319. package/server/.next/server/chunks/ssr/[root-of-the-server]__1biup3mh_6gel._.js +0 -3
  1320. package/server/.next/server/chunks/ssr/[root-of-the-server]__1cwrbme6aoi_x._.js +0 -3
  1321. package/server/.next/server/chunks/ssr/[root-of-the-server]__1euvy9wcyro9t._.js +0 -3
  1322. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ews36zthoaro._.js +0 -3
  1323. package/server/.next/server/chunks/ssr/[root-of-the-server]__1f02dck4ff54w._.js +0 -3
  1324. package/server/.next/server/chunks/ssr/[root-of-the-server]__1gh2hxr2l59r6._.js +0 -3
  1325. package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +0 -3
  1326. package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +0 -3
  1327. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ikedn5g4-l15._.js +0 -3
  1328. package/server/.next/server/chunks/ssr/[root-of-the-server]__1k1fmq0-rg3p0._.js +0 -3
  1329. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lrilann8v4wn._.js +0 -3
  1330. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lv3bun_d6qpi._.js +0 -3
  1331. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +0 -3
  1332. package/server/.next/server/chunks/ssr/[root-of-the-server]__1owrn7crnsybx._.js +0 -3
  1333. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.js +0 -3
  1334. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qrlp_d3-c1x9._.js +0 -3
  1335. package/server/.next/server/chunks/ssr/[root-of-the-server]__1s5zrlyqayctz._.js +0 -3
  1336. package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +0 -3
  1337. package/server/.next/server/chunks/ssr/[root-of-the-server]__1yfl8wmoazlwo._.js +0 -3
  1338. package/server/.next/server/chunks/ssr/[root-of-the-server]__1zhd84kcbex_x._.js +0 -3
  1339. package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +0 -3
  1340. package/server/.next/server/chunks/ssr/_05kq3r87s7p3q._.js +0 -3
  1341. package/server/.next/server/chunks/ssr/_08ph09r66b11v._.js +0 -3
  1342. package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +0 -4
  1343. package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +0 -4
  1344. package/server/.next/server/chunks/ssr/_0fxox6h290j6h._.js +0 -3
  1345. package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +0 -3
  1346. package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +0 -3
  1347. package/server/.next/server/chunks/ssr/_0nutgke9z49bh._.js +0 -3
  1348. package/server/.next/server/chunks/ssr/_0ooh0hh-r_12s._.js +0 -3
  1349. package/server/.next/server/chunks/ssr/_0pn3dn9s9es51._.js +0 -3
  1350. package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +0 -4
  1351. package/server/.next/server/chunks/ssr/_0r04c1-snv6jw._.js +0 -3
  1352. package/server/.next/server/chunks/ssr/_0rfq_mzyiodmf._.js +0 -3
  1353. package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +0 -3
  1354. package/server/.next/server/chunks/ssr/_0tnfblwwlyvq2._.js +0 -3
  1355. package/server/.next/server/chunks/ssr/_0x1vi7mal3bqd._.js +0 -3
  1356. package/server/.next/server/chunks/ssr/_11w5w9dpxcf1w._.js +0 -3
  1357. package/server/.next/server/chunks/ssr/_14kop_5asppd8._.js +0 -3
  1358. package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +0 -3
  1359. package/server/.next/server/chunks/ssr/_17xmdlg5_8s76._.js +0 -3
  1360. package/server/.next/server/chunks/ssr/_1__gz-j9u_15n._.js +0 -3
  1361. package/server/.next/server/chunks/ssr/_1_ojvke28lw3y._.js +0 -3
  1362. package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +0 -4
  1363. package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +0 -4
  1364. package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +0 -3
  1365. package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +0 -4
  1366. package/server/.next/server/chunks/ssr/_1qt1czw3w8dww._.js +0 -3
  1367. package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +0 -4
  1368. package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +0 -4
  1369. package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +0 -3
  1370. package/server/.next/server/chunks/ssr/_20ln-4gu85-yt._.js +0 -3
  1371. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +0 -3
  1372. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +0 -3
  1373. package/server/.next/server/chunks/ssr/node_modules_041o69opnip9_._.js +0 -3
  1374. package/server/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_index_parts_mjs_0wvx70_xziwkw._.js +0 -3
  1375. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00mnhied2lajr.js +0 -3
  1376. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0258fhwe3r49a.js +0 -3
  1377. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_030uvarevc52x.js +0 -3
  1378. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08nk-xg737vfb.js +0 -3
  1379. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08tyiz9d0lm9w.js +0 -3
  1380. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09sjrubxp_rj2.js +0 -3
  1381. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_bt7te8snw13.js +0 -3
  1382. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_sbp7ay425x_.js +0 -3
  1383. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0b6yug3vz_f5i.js +0 -3
  1384. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d4fbjkqhtcy1.js +0 -3
  1385. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0drw64qqgo4t4.js +0 -3
  1386. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0f1q6zt-_lhr2.js +0 -3
  1387. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j67up203frfc.js +0 -3
  1388. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0m1sh-r1a08nu.js +0 -3
  1389. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0m80vhox8yne_.js +0 -3
  1390. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0madmy1ghn2d_.js +0 -3
  1391. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0oonr-4chwcci.js +0 -3
  1392. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0opsftra4yyso.js +0 -3
  1393. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +0 -3
  1394. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rb6ju1slcbnm.js +0 -3
  1395. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0re64vewl4bd9.js +0 -3
  1396. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0s9srhxdns9u3.js +0 -3
  1397. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vfaoq0q8fb9j.js +0 -3
  1398. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-a6-p-bbfew5.js +0 -3
  1399. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_105eedqksbfit.js +0 -3
  1400. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10deooxbcl7dn.js +0 -3
  1401. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10p350-tq8wue.js +0 -3
  1402. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13zeb30aqtlf2.js +0 -3
  1403. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_163j9d9tcnnjx.js +0 -3
  1404. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18lxgbslt6r8b.js +0 -3
  1405. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_fjxf0k32zmt.js +0 -3
  1406. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_qogypi_aiam.js +0 -3
  1407. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1a04whtr87syz.js +0 -3
  1408. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +0 -3
  1409. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d8w2j-twvhc-.js +0 -3
  1410. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dm4bx5yqfx5d.js +0 -3
  1411. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ejivqe23qgi6.js +0 -3
  1412. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1f4rp6x19w0vu.js +0 -3
  1413. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1g2tu-twl68c2.js +0 -3
  1414. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1jhcfycewcquz.js +0 -3
  1415. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kb_ff04m4p78.js +0 -3
  1416. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kz-w63djss2p.js +0 -3
  1417. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mwwly61gvbnl.js +0 -3
  1418. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1nnmbb1a34pgl.js +0 -3
  1419. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0p09ki2at8x.js +0 -3
  1420. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1q1pd2kc4g0v1.js +0 -3
  1421. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1vswl-lmn1feb.js +0 -3
  1422. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wg7_z4bxv6ru.js +0 -3
  1423. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x6mq0hf94v16.js +0 -3
  1424. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20dal1y611l3i.js +0 -3
  1425. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_21bzvd4_jyx44.js +0 -3
  1426. package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +0 -3
  1427. package/server/.next/server/chunks/ssr/src_0qvu1m5b9qo28._.js +0 -3
  1428. package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +0 -3
  1429. package/server/.next/server/chunks/ssr/src_1717pig1-y5th._.js +0 -3
  1430. package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +0 -3
  1431. package/server/.next/server/chunks/ssr/src_1ottjkdvhje3g._.js +0 -3
  1432. package/server/.next/server/chunks/ssr/src_1x6t-w3_nu4w7._.js +0 -3
  1433. package/server/.next/server/chunks/ssr/src_app_(console)_1l7irblrb5fae._.js +0 -3
  1434. package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +0 -3
  1435. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_088bs149wsgca._.js +0 -3
  1436. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +0 -3
  1437. package/server/.next/server/chunks/ssr/src_app_signin_1tg6pswa99jbe._.js +0 -3
  1438. package/server/.next/server/chunks/ssr/src_lib_03a2ehk2-znxl._.js +0 -3
  1439. package/server/.next/server/chunks/ssr/src_lib_0etkz1wbvfw-k._.js +0 -3
  1440. package/server/.next/server/chunks/ssr/src_lib_0hkrs-q6hzcww._.js +0 -3
  1441. package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +0 -3
  1442. package/server/.next/server/chunks/ssr/src_lib_1coh17dmjagw1._.js +0 -3
  1443. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +0 -3
  1444. package/server/.next/server/chunks/ssr/src_lib_1p21oczr6lh5a._.js +0 -3
  1445. package/server/.next/server/chunks/ssr/src_lib_1v1jkqs0kbvmq._.js +0 -3
  1446. package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +0 -3
  1447. package/server/.next/server/chunks/ssr/src_lib_demo_0hdl7pzdqejqx._.js +0 -3
  1448. package/server/.next/server/chunks/ssr/src_lib_demo_1w8p39upm6ea2._.js +0 -3
  1449. package/server/.next/server/chunks/ssr/src_lib_demo_visitor-limits_ts_1bx0-ks0r5_gj._.js +0 -3
  1450. package/server/.next/server/chunks/ssr/src_lib_security_osv_ts_1fckitwjz25y3._.js +0 -3
  1451. package/server/.next/static/chunks/08dak2kh1c6_7.js +0 -1
  1452. package/server/.next/static/chunks/0b9slopuz4e8a.js +0 -76
  1453. package/server/.next/static/chunks/0dp-tuwkw7xf8.js +0 -33
  1454. package/server/.next/static/chunks/0fhj_pu5ntcfo.js +0 -1
  1455. package/server/.next/static/chunks/0h9i512dn01kj.js +0 -1
  1456. package/server/.next/static/chunks/0ic6_-0gkd6p7.js +0 -1
  1457. package/server/.next/static/chunks/0icohez16w-ei.js +0 -1
  1458. package/server/.next/static/chunks/0j1wzqg4ukm70.js +0 -1
  1459. package/server/.next/static/chunks/0j_5norjm-kef.js +0 -1
  1460. package/server/.next/static/chunks/0kscmnb071fci.js +0 -1
  1461. package/server/.next/static/chunks/0ld78j1d4j201.js +0 -1
  1462. package/server/.next/static/chunks/0qlb-l1uyqku5.js +0 -1
  1463. package/server/.next/static/chunks/0r-2mywc7qkb_.js +0 -1
  1464. package/server/.next/static/chunks/0udh0u8c6ovgf.css +0 -3
  1465. package/server/.next/static/chunks/0y1ss0tjq0nq0.js +0 -1
  1466. package/server/.next/static/chunks/1-oetq3mwlhds.js +0 -1
  1467. package/server/.next/static/chunks/11ywzwmfd_pt0.js +0 -1
  1468. package/server/.next/static/chunks/1jaozq01v9r6e.js +0 -1
  1469. package/server/.next/static/chunks/1ky5exl-c1kbo.js +0 -1
  1470. package/server/.next/static/chunks/1lsu_fxiyaeiz.js +0 -1
  1471. package/server/.next/static/chunks/1o3_amrh-sxr3.js +0 -1
  1472. package/server/.next/static/chunks/1w9o_jo_pejc5.js +0 -1
  1473. package/server/.next/static/chunks/1yvbs41m8_4nc.js +0 -7
  1474. package/server/.next/static/chunks/22alexnun_rdm.js +0 -1
  1475. package/server/.next/static/chunks/27qwmt1w6-iri.js +0 -1
  1476. package/server/.next/static/chunks/29humkd2-_1oo.js +0 -1
  1477. package/server/.next/static/chunks/29j96yfhxsf41.js +0 -1
  1478. package/server/.next/static/chunks/29qnnsjsgsia6.js +0 -1
  1479. package/server/.next/static/chunks/2ii8j9xuvv604.js +0 -1
  1480. package/server/.next/static/chunks/2m0ftj__ody0m.js +0 -1
  1481. package/server/.next/static/chunks/2rbtw3em5hkt4.js +0 -1
  1482. package/server/.next/static/chunks/2sdyov_lz1uj4.js +0 -1
  1483. package/server/.next/static/chunks/2toeyr9b_nk0e.js +0 -1
  1484. package/server/.next/static/chunks/2w7qxt7ux-m1-.js +0 -1
  1485. package/server/.next/static/chunks/2zc1osymeruya.js +0 -1
  1486. package/server/.next/static/chunks/33fbppn5fotpk.js +0 -1
  1487. package/server/.next/static/chunks/3auw1gobgv94g.js +0 -1
  1488. package/server/.next/static/chunks/3b1p-xm7iow1_.js +0 -1
  1489. package/server/.next/static/chunks/3gl2k6v182lli.js +0 -5
  1490. package/server/.next/static/chunks/3gurl_36kr7sg.js +0 -1
  1491. package/server/.next/static/chunks/3h-i_hcaaf7vs.js +0 -1
  1492. package/server/.next/static/chunks/3kznplgmzot89.js +0 -1
  1493. package/server/.next/static/chunks/3n_n6yeienmn-.js +0 -1
  1494. package/server/.next/static/chunks/3nqciag05fif0.js +0 -1
  1495. package/server/.next/static/chunks/3r3mt51wqymgs.js +0 -1
  1496. package/server/.next/static/chunks/3shbvizselyoq.js +0 -1
  1497. package/server/.next/static/chunks/3vpy-ra0rib9m.js +0 -1
  1498. package/server/.next/static/chunks/3xxagngfonh62.js +0 -1
  1499. package/server/.next/static/chunks/3yv-enyk37whg.js +0 -1
  1500. package/server/.next/static/media/favicon.117ezoe8m31dk.ico +0 -0
  1501. package/server/public/file.svg +0 -1
  1502. package/server/public/globe.svg +0 -1
  1503. package/server/public/next.svg +0 -1
  1504. package/server/public/vercel.svg +0 -1
  1505. package/server/public/window.svg +0 -1
  1506. /package/server/.next/server/app/{favicon.ico → icon.svg}/route/build-manifest.json +0 -0
  1507. /package/server/.next/static/{00CFAqN6pFBVkqJyXSd78 → 90CuiGzddaxNn9lvRkGlH}/_buildManifest.js +0 -0
  1508. /package/server/.next/static/{00CFAqN6pFBVkqJyXSd78 → 90CuiGzddaxNn9lvRkGlH}/_clientMiddlewareManifest.js +0 -0
  1509. /package/server/.next/static/{00CFAqN6pFBVkqJyXSd78 → 90CuiGzddaxNn9lvRkGlH}/_ssgManifest.js +0 -0
package/bin/watchbell.mjs CHANGED
@@ -9,8 +9,9 @@ import { randomBytes } from "node:crypto";
9
9
  import fs from "node:fs";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
12
+ import readlineCore from "node:readline";
12
13
  import readline from "node:readline/promises";
13
- import { fileURLToPath } from "node:url";
14
+ import { fileURLToPath, pathToFileURL } from "node:url";
14
15
  // The default import, not { parseEnv }: on an old Node.js a missing named export fails before any code runs, and the
15
16
  // "needs Node.js 24" message below would never print.
16
17
  import util from "node:util";
@@ -26,6 +27,18 @@ import {
26
27
  staleLockHint,
27
28
  superviseChild,
28
29
  } from "../scripts/selfhost-lib.mjs";
30
+ import {
31
+ NODE_CHECK_EVERY_MS,
32
+ NODE_EOL_URL,
33
+ NODE_INDEX_URL,
34
+ nodeVerdict,
35
+ nodeWarningLine,
36
+ parseNodeEol,
37
+ parseNodeIndex,
38
+ storedNodeCycles,
39
+ storedNodeIndex,
40
+ } from "../scripts/node-runtime.mjs";
41
+ import { LOG_MAX_BYTES, rotateLog } from "../scripts/selfhost-log.mjs";
29
42
 
30
43
  const SERVICE = "watchbell.service";
31
44
  const TASK = "Watchbell";
@@ -37,15 +50,16 @@ const READY_TIMEOUT_MS = 120_000;
37
50
 
38
51
  // [usage, description]: --help prints them all (a test checks that every command is listed).
39
52
  export const COMMANDS = [
40
- ["watchbell [start] [--no-open]", "Start Watchbell (the default). First run creates ~/.watchbell, prints the setup code and opens /setup."],
53
+ ["watchbell [start] [--no-open]", "Start Watchbell (the default). First run creates ~/.watchbell, shows the setup code and opens /setup. In a terminal it shows a short menu: open, keep running in the background, live log, stop."],
54
+ ["watchbell start --verbose", "Show the server's own messages here, as before 1.2.2 (otherwise they go to ~/.watchbell/logs/watchbell.log)."],
41
55
  ["watchbell start --new-key", "Start with a new OPS_ENCRYPTION_KEY when it was lost (tokens saved with the old key can't be read)."],
42
56
  ["watchbell start --host <addr> --port <n>", "Listen on this address and port for this run (also with run). 0.0.0.0 opens it to your network."],
43
57
  ["watchbell run", "Start in the foreground for a service manager (never opens a browser)."],
44
58
  ["watchbell stop [--timeout <seconds>]", "Ask the running Watchbell to stop cleanly (default wait 30 s)."],
45
- ["watchbell status", "Show whether Watchbell runs, its address and folders (exit 0 running, 3 not running)."],
59
+ ["watchbell status", "Show whether Watchbell runs, the address it really listens on, and its folders (exit 0 running, 3 not running)."],
46
60
  ["watchbell service install [--yes]", "Start Watchbell when you log in: a systemd user service (Linux), a Scheduled Task (Windows) or a launchd agent (macOS)."],
47
61
  ["watchbell service uninstall [--yes]", "Remove that service or task. Your settings and data stay."],
48
- ["watchbell update", "Update to the latest version with the npm next to this Node.js (an installed service is stopped and started again)."],
62
+ ["watchbell update", "Update to the latest version with the npm next to this Node.js, into the folder this copy runs from (an installed service is stopped and started again)."],
49
63
  ["watchbell reset-login <email>", "Give an account a new temporary password and remove its authenticator (Watchbell stopped)."],
50
64
  ["watchbell --version", "Print the version."],
51
65
  ["watchbell --help", "Print this help."],
@@ -65,15 +79,23 @@ export function helpText(version) {
65
79
  "environment override them. Other variables set in the environment win over the file, except DATABASE_URL, which",
66
80
  "is read from the file only.",
67
81
  "",
82
+ "watchbell start writes the server's messages to ~/.watchbell/logs/watchbell.log (two files of about 5 MB at most);",
83
+ "errors still show in the terminal as one line. watchbell run (for a service manager) prints them as before.",
84
+ "",
68
85
  "watchbell start and watchbell status ask registry.npmjs.org at most once a day whether a newer version exists (a",
69
- "plain GET of the version number, nothing about you). WATCHBELL_NO_UPDATE_CHECK=1 turns that off.",
86
+ "plain GET of the version number, nothing about you), and nodejs.org and endoflife.date at most twice a day whether",
87
+ "this Node.js has a security fix waiting or is past end of life (plain GETs of their public lists; a warning is",
88
+ "printed only then). The running Watchbell reads those two lists every 12 h as well, for its Settings › Collector",
89
+ "page. WATCHBELL_NO_UPDATE_CHECK=1 turns all of it off; NO_UPDATE_NOTIFIER=1 or CI turn off the commands' part.",
70
90
  ].join("\n");
71
91
  }
72
92
 
73
93
  // ---------------------------------------------------------------------------------------------------- arguments
74
94
 
75
95
  const COMMAND_NAMES = ["start", "run", "stop", "status", "service", "reset-login", "update"];
76
- const OPTION_OWNER = { "--no-open": "start", "--new-key": "start", "--timeout": "stop", "--yes": "service", "--host": ["start", "run"], "--port": ["start", "run"] };
96
+ const OPTION_OWNER = { "--no-open": "start", "--new-key": "start", "--verbose": "start", "--timeout": "stop", "--yes": "service", "--host": ["start", "run"], "--port": ["start", "run"] };
97
+ /** What an option the CLI doesn't know prints (exit 2): a typo such as --no-openen is never ignored. */
98
+ export const unknownOption = (a) => `Unknown option ${a} (see watchbell --help)`;
77
99
  // An IPv4 or IPv6 address (brackets allowed) or a host name; never something that looks like an option.
78
100
  const HOST_ARG = /^(?:\[[0-9A-Fa-f:.]+\]|[0-9A-Fa-f.]*:[0-9A-Fa-f:.]*|[A-Za-z0-9](?:[A-Za-z0-9.-]{0,251}[A-Za-z0-9])?)$/;
79
101
  // Brackets off, IPv6 in lower case, every spelling of the all-zero IPv6 address as "::" (the health check knows that one).
@@ -85,7 +107,7 @@ const normalizeHostArg = (v) => {
85
107
  const isPortArg = (v) => /^\d{1,5}$/.test(v) && Number(v) >= 1 && Number(v) <= 65535;
86
108
 
87
109
  export function parseArgs(argv) {
88
- const opts = { command: null, args: [], open: true, newKey: false, yes: false, timeout: null, help: false, version: false, host: null, port: null };
110
+ const opts = { command: null, args: [], open: true, newKey: false, verbose: false, yes: false, timeout: null, help: false, version: false, host: null, port: null };
89
111
  const errors = [];
90
112
  const used = [];
91
113
  for (let i = 0; i < argv.length; i++) {
@@ -98,14 +120,19 @@ export function parseArgs(argv) {
98
120
  } else if (a === "--new-key") {
99
121
  opts.newKey = true;
100
122
  used.push("--new-key");
123
+ } else if (a === "--verbose") {
124
+ opts.verbose = true;
125
+ used.push("--verbose");
101
126
  } else if (a === "--yes" || a === "-y") {
102
127
  opts.yes = true;
103
128
  used.push("--yes");
104
- } else if (a === "--timeout") {
105
- const v = argv[i + 1];
129
+ } else if (/^--timeout(=|$)/.test(a)) {
130
+ // --timeout <seconds> or --timeout=<seconds>, like --host and --port.
131
+ const inline = a.length > 9 ? a.slice(10) : undefined;
132
+ const v = inline ?? argv[i + 1];
106
133
  if (v !== undefined && /^\d{1,4}$/.test(v) && Number(v) > 0) {
107
134
  opts.timeout = Number(v);
108
- i++;
135
+ if (inline === undefined) i++;
109
136
  } else errors.push("--timeout needs a number of seconds (1-9999)");
110
137
  used.push("--timeout");
111
138
  } else if (/^--(host|port)(=|$)/.test(a)) {
@@ -120,7 +147,7 @@ export function parseArgs(argv) {
120
147
  } else if (v !== undefined && isPortArg(v)) opts.port = String(Number(v));
121
148
  else errors.push("--port needs a port number (1-65535)");
122
149
  used.push(`--${name}`);
123
- } else if (a.startsWith("-")) errors.push(`unknown option ${a}`);
150
+ } else if (a.startsWith("-")) errors.push(unknownOption(a));
124
151
  else if (opts.command === null) opts.command = a;
125
152
  else opts.args.push(a);
126
153
  }
@@ -192,6 +219,10 @@ export function defaultDeps() {
192
219
  cliPath: fileURLToPath(import.meta.url),
193
220
  out: (m) => console.log(m),
194
221
  err: (m) => console.error(m),
222
+ // The menu (1.2.2): raw writes for the cursor codes, and the keyboard. Both ends must be a terminal for it.
223
+ write: (s) => process.stdout.write(s),
224
+ stdin: process.stdin,
225
+ stdoutTty: Boolean(process.stdout.isTTY),
195
226
  spawn,
196
227
  runSync: runSyncDefault,
197
228
  fetch: globalThis.fetch,
@@ -490,7 +521,7 @@ function noteIgnoredShellAddress(ctx, d) {
490
521
  }
491
522
  }
492
523
 
493
- async function cmdStart(first, d, { open, foreground, newKey, track }) {
524
+ async function cmdStart(first, d, { open, foreground, newKey, track, verbose = false }) {
494
525
  let ctx = first;
495
526
  const serverJs = path.join(ctx.serverDir, "server.js");
496
527
  if (!fs.existsSync(serverJs)) {
@@ -503,12 +534,13 @@ async function cmdStart(first, d, { open, foreground, newKey, track }) {
503
534
  // start (and a service would restart it in a loop), so it goes.
504
535
  if (removeStaleLock(ctx.lockFile, lock.pid)) d.out(`Removed a leftover database lock (${ctx.lockFile}): process ${lock.pid} is now ${lock.name}, not Watchbell.`);
505
536
  } else if (lock.state === "held") {
506
- const probe = await probeHealth(ctx.healthUrl, d.fetch);
537
+ const live = runningContext(ctx, d).ctx; // the address it really runs on (--port), not only the .env one
538
+ const probe = await probeHealth(live.healthUrl, d.fetch);
507
539
  if (probe?.service === "watchbell") {
508
- d.err(`Watchbell is already running (process ${lock.pid}, data in ${ctx.dataDir}) at ${ctx.siteUrl}`);
540
+ d.err(`Watchbell is already running (process ${lock.pid}, data in ${ctx.dataDir}) at ${live.siteUrl}`);
509
541
  d.err('Stop it first with "watchbell stop" if you want to start it again.');
510
542
  } else {
511
- d.err(`The database in ${ctx.dataDir} is locked by process ${lock.pid}${lock.name ? ` (${lock.name})` : ""}, but no Watchbell answers at ${ctx.healthUrl}.`);
543
+ d.err(`The database in ${ctx.dataDir} is locked by process ${lock.pid}${lock.name ? ` (${lock.name})` : ""}, but no Watchbell answers at ${live.healthUrl}.`);
512
544
  d.err('If Watchbell is still starting, wait a moment. If it runs with other settings, stop it with "watchbell stop".');
513
545
  d.err(staleLockHint(ctx.lockFile));
514
546
  }
@@ -527,6 +559,8 @@ async function cmdStart(first, d, { open, foreground, newKey, track }) {
527
559
  if (!made) return 1;
528
560
  if (made.created || made.filled.length) ctx = resolveContext(d); // the server needs what was just written
529
561
  const version = packageVersion(d.pkgRoot);
562
+ // 1.2.2: `start` is quiet unless --verbose. `run` (a service manager's log) and --verbose print as before.
563
+ if (!foreground && !verbose) return startQuiet(ctx, d, { open, made, version, serverJs });
530
564
  d.out(`Watchbell ${version}`);
531
565
  if (made.created) d.out(`Created ${ctx.envFile} with new secrets (they are not shown).`);
532
566
  else if (made.filled.length) d.out(`Added missing settings to ${ctx.envFile}: ${made.filled.join(", ")}.`);
@@ -537,9 +571,11 @@ async function cmdStart(first, d, { open, foreground, newKey, track }) {
537
571
  d.out(`Starting on ${ctx.siteUrl} ...`);
538
572
  // Asked while the server starts, so it never delays the start; said once the server is ready (start only, not run).
539
573
  const update = foreground ? null : checkForUpdate(ctx, d, { background: true });
574
+ const runtime = foreground ? null : checkNodeRuntime(ctx, d, { background: true }); // D20, the same way
540
575
 
541
576
  if (track) track.spawned = true;
542
577
  const child = d.spawn(d.execPath, [serverJs], { cwd: ctx.serverDir, env: serverEnv(ctx), stdio: "inherit" });
578
+ writeRuntime(ctx, child.pid, d);
543
579
  const unsupervise = superviseChild(child, { platform: d.platform, proc: d.proc });
544
580
  let exited = false;
545
581
  const exit = new Promise((resolve) => {
@@ -559,6 +595,7 @@ async function cmdStart(first, d, { open, foreground, newKey, track }) {
559
595
  announce(ctx, d, { open, foreground });
560
596
  announceNetwork(ctx, d);
561
597
  await sayUpdate(update, d);
598
+ await sayNodeRuntime(runtime, d);
562
599
  break;
563
600
  }
564
601
  if (d.now() >= deadline) {
@@ -569,6 +606,7 @@ async function cmdStart(first, d, { open, foreground, newKey, track }) {
569
606
  }
570
607
  const code = await exit;
571
608
  unsupervise();
609
+ removeRuntime(ctx, child.pid);
572
610
  return code;
573
611
  }
574
612
 
@@ -584,6 +622,517 @@ function announce(ctx, d, { open, foreground }) {
584
622
  if (open && !foreground) d.openUrl(code ? `${ctx.siteUrl}/setup` : ctx.siteUrl);
585
623
  }
586
624
 
625
+ // ---------------------------------------------------------------------------------------------------- runtime file
626
+
627
+ // <data>/runtime.json: the pid and the address of the server the CLI started (start, run), so status and stop find a
628
+ // server started with --port or WATCHBELL_PORT even when .env names another port. It counts only while its pid holds
629
+ // the database lock: a file left by a crash names a pid that no longer does.
630
+ const RUNTIME_FILE = "runtime.json";
631
+ const runtimeFileOf = (ctx) => path.join(ctx.dataDir, RUNTIME_FILE);
632
+
633
+ function writeRuntime(ctx, pid, d) {
634
+ if (!Number.isInteger(pid)) return;
635
+ try {
636
+ fs.writeFileSync(runtimeFileOf(ctx), `${JSON.stringify({ pid, host: ctx.host, port: ctx.port, siteUrl: ctx.siteUrl, startedAt: new Date(d.now()).toISOString() })}\n`, { mode: 0o600 });
637
+ } catch {
638
+ // a read-only data folder: status falls back to the .env address
639
+ }
640
+ }
641
+
642
+ function readRuntime(ctx) {
643
+ try {
644
+ const r = JSON.parse(fs.readFileSync(runtimeFileOf(ctx), "utf8"));
645
+ const ok = Number.isInteger(r?.pid) && typeof r.host === "string" && HOST_ARG.test(r.host) && isPortArg(String(r.port)) && /^https?:\/\/\S+$/.test(String(r.siteUrl));
646
+ return ok ? { pid: r.pid, host: r.host, port: String(r.port), siteUrl: String(r.siteUrl) } : null;
647
+ } catch {
648
+ return null;
649
+ }
650
+ }
651
+
652
+ function removeRuntime(ctx, pid) {
653
+ if (readRuntime(ctx)?.pid !== pid) return; // another start wrote it since
654
+ try {
655
+ fs.rmSync(runtimeFileOf(ctx), { force: true });
656
+ } catch {
657
+ // left behind: it no longer matches the lock, so it is ignored
658
+ }
659
+ }
660
+
661
+ /** { ctx, pid }: ctx with the address of the Watchbell that holds the database now, when the CLI started it. */
662
+ function runningContext(ctx, d) {
663
+ const lock = inspectLock(ctx.lockFile, lockOpts(d));
664
+ if (lock.state !== "held") return { ctx, pid: null };
665
+ const rt = readRuntime(ctx);
666
+ if (!rt || rt.pid !== lock.pid) return { ctx, pid: lock.pid };
667
+ return { ctx: { ...ctx, host: rt.host, port: rt.port, siteUrl: rt.siteUrl, healthUrl: healthUrlOf(rt.host, rt.port) }, pid: lock.pid };
668
+ }
669
+
670
+ // ---------------------------------------------------------------------------------------------------- quiet start (1.2.2)
671
+
672
+ const LOG_DIR = "logs";
673
+ /** <home>/logs/watchbell.log: what the server prints under `watchbell start` (watchbell.log.1 holds the older part). */
674
+ export const logFileOf = (home) => path.join(home, LOG_DIR, "watchbell.log");
675
+ const STOP_WAIT_MS = 30_000;
676
+ const ERROR_REPEAT_MS = 10 * 60 * 1000; // the same error line is shown again after 10 minutes at the earliest
677
+
678
+ /** Every terminal control character out (a log or error line can hold text from a monitored site). */
679
+ const plain = (s) => String(s).replace(/\x1b\[[0-?]*[ -/]*[@-~]|\x1b[\]PX^_][^\x07\x1b]*(?:\x07|\x1b\\)?|[\x00-\x08\x0b-\x1f\x7f\x9b]/g, "");
680
+
681
+ /** A terminal the menu can use: both ends a TTY, raw mode available, not CI and not TERM=dumb. */
682
+ const interactive = (d) => Boolean(d.stdin?.isTTY && d.stdoutTty && typeof d.stdin.setRawMode === "function") && d.env.TERM !== "dumb" && !switchedOn(d.env.CI);
683
+
684
+ /** The addresses to show: this machine's for a loopback host, else the network addresses (SITE_URL first when it is its own). */
685
+ export function shownAddresses(ctx, interfaces) {
686
+ if (isLoopbackHost(ctx.host)) return [ctx.siteUrl];
687
+ let urls = [];
688
+ try {
689
+ urls = networkUrls(ctx.host, ctx.port, interfaces());
690
+ } catch {
691
+ // no list of addresses
692
+ }
693
+ let site = null;
694
+ try {
695
+ site = new URL(ctx.siteUrl);
696
+ } catch {
697
+ // an unreadable SITE_URL is the server's own error
698
+ }
699
+ if (site && !isLoopbackHost(site.hostname)) urls = [ctx.siteUrl, ...urls.filter((u) => u !== ctx.siteUrl)];
700
+ return urls.length ? urls : [ctx.siteUrl];
701
+ }
702
+ const addressText = (urls) => (urls.length > 1 ? `${urls[0]} (also ${urls.slice(1).join(", ")})` : urls[0]);
703
+ export const NETWORK_WARNING = ["! Open on your network over plain http. Finish setup first,", " and put HTTPS in front before opening it to the internet."];
704
+
705
+ export const MENU = ["Open in browser", "Keep running in the background", "Show live log", "Stop and exit"];
706
+
707
+ function prepareLog(file, d) {
708
+ const dir = path.dirname(file);
709
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
710
+ if (d.platform !== "win32") fs.chmodSync(dir, 0o700); // the log holds the setup code
711
+ rotateLog(file, { maxBytes: d.logMaxBytes ?? LOG_MAX_BYTES });
712
+ }
713
+
714
+ function appendLog(file, lines) {
715
+ try {
716
+ fs.appendFileSync(file, lines.map((l) => `${l}\n`).join(""), { mode: 0o600 });
717
+ } catch {
718
+ // the log is a help, never a reason to fail
719
+ }
720
+ }
721
+
722
+ /** The last non-empty line of the log (for a server that stopped before it was ready), or null. */
723
+ function lastLogLine(file) {
724
+ try {
725
+ const fd = fs.openSync(file, "r");
726
+ try {
727
+ const size = fs.fstatSync(fd).size;
728
+ const buf = Buffer.alloc(Math.min(size, 16 * 1024));
729
+ fs.readSync(fd, buf, 0, buf.length, size - buf.length);
730
+ const lines = buf.toString("utf8").split(/\r?\n/).map((l) => plain(l).trim()).filter(Boolean);
731
+ return lines.at(-1)?.slice(0, 300) ?? null;
732
+ } finally {
733
+ fs.closeSync(fd);
734
+ }
735
+ } catch {
736
+ return null;
737
+ }
738
+ }
739
+
740
+ /** The last `count` lines of `file` and its size (where following it starts). */
741
+ function tailOf(file, count) {
742
+ try {
743
+ const fd = fs.openSync(file, "r");
744
+ try {
745
+ const size = fs.fstatSync(fd).size;
746
+ const buf = Buffer.alloc(Math.min(size, 64 * 1024));
747
+ fs.readSync(fd, buf, 0, buf.length, size - buf.length);
748
+ const lines = buf.toString("utf8").split(/\r?\n/);
749
+ if (lines.at(-1) === "") lines.pop();
750
+ return { lines: lines.slice(-count), offset: size };
751
+ } finally {
752
+ fs.closeSync(fd);
753
+ }
754
+ } catch {
755
+ return { lines: [], offset: 0 };
756
+ }
757
+ }
758
+
759
+ /** Calls onLines with what is appended to `file` (a rotation starts it over). Returns the function that stops it. */
760
+ function followFile(file, { offset, everyMs, onLines }) {
761
+ let at = offset;
762
+ let partial = "";
763
+ const timer = setInterval(() => {
764
+ try {
765
+ const size = fs.statSync(file).size;
766
+ if (size < at) {
767
+ at = 0; // rotated: the new file from its start
768
+ partial = "";
769
+ }
770
+ if (size === at) return;
771
+ const fd = fs.openSync(file, "r");
772
+ try {
773
+ const buf = Buffer.alloc(Math.min(size - at, 1024 * 1024));
774
+ const n = fs.readSync(fd, buf, 0, buf.length, at);
775
+ at += n;
776
+ const parts = (partial + buf.subarray(0, n).toString("utf8")).split(/\r?\n/);
777
+ partial = parts.pop();
778
+ if (parts.length) onLines(parts);
779
+ } finally {
780
+ fs.closeSync(fd);
781
+ }
782
+ } catch {
783
+ // gone for a moment (rotation): the next tick tries again
784
+ }
785
+ }, everyMs);
786
+ return () => clearInterval(timer);
787
+ }
788
+
789
+ /** Resolves with the promise's value, or null after `ms` (the timer is cleared either way). */
790
+ const within = (promise, ms) =>
791
+ new Promise((resolve) => {
792
+ const t = setTimeout(() => resolve(null), ms);
793
+ promise.then((v) => {
794
+ clearTimeout(t);
795
+ resolve(v);
796
+ });
797
+ });
798
+
799
+ /**
800
+ * Lines printed above a block that is redrawn in place (the "Starting" line, the menu). Without a terminal there is
801
+ * no block and no cursor code: lines are printed as they come.
802
+ */
803
+ function makeScreen(d) {
804
+ let block = [];
805
+ const erase = () => {
806
+ if (block.length) d.write(`\r\x1b[${block.length}A\x1b[J`);
807
+ };
808
+ const draw = () => {
809
+ if (block.length) d.write(`${block.join("\n")}\n`);
810
+ };
811
+ return {
812
+ print(lines) {
813
+ erase();
814
+ d.write(lines.map((l) => `${l}\n`).join(""));
815
+ draw();
816
+ },
817
+ setBlock(lines) {
818
+ erase();
819
+ block = lines;
820
+ draw();
821
+ },
822
+ };
823
+ }
824
+
825
+ async function startQuiet(ctx, d, { open, made, version, serverJs }) {
826
+ const tty = interactive(d);
827
+ const logFile = logFileOf(ctx.home);
828
+ let showError = (line) => d.err(line); // in a terminal: above the "Starting" line or the menu
829
+ try {
830
+ prepareLog(logFile, d);
831
+ } catch (e) {
832
+ d.err(`watchbell: could not set up ${path.dirname(logFile)}: ${e?.code ?? (e instanceof Error ? e.message : String(e))}`);
833
+ return 1;
834
+ }
835
+ appendLog(logFile, [
836
+ "",
837
+ `--- watchbell start, Watchbell ${version}, ${new Date(d.now()).toISOString()}`,
838
+ ...(made.created ? [`Created ${ctx.envFile} with new secrets (they are not shown).`] : []),
839
+ ...(made.filled.length && !made.created ? [`Added missing settings to ${ctx.envFile}: ${made.filled.join(", ")}.`] : []),
840
+ `Settings: ${ctx.envFile}`,
841
+ `Data: ${ctx.dataDir}`,
842
+ `Starting on ${ctx.siteUrl} (listening on ${ctx.host}, port ${ctx.port})`,
843
+ ]);
844
+ // New secrets are worth one line (first run only); the folders are in the log and in watchbell status.
845
+ if (made.created) d.out(`Created ${ctx.envFile} with new secrets (they are not shown).`);
846
+ else if (made.filled.length) d.out(`Added missing settings to ${ctx.envFile}: ${made.filled.join(", ")}.`);
847
+ warnPortMismatch(ctx, d);
848
+ noteIgnoredShellAddress(ctx, d);
849
+ const screen = tty ? makeScreen(d) : null;
850
+ if (screen) screen.setBlock([` Starting Watchbell ${version} ...`]);
851
+ else {
852
+ d.out(`Watchbell ${version}`);
853
+ d.out(`Starting on ${ctx.siteUrl} ...`);
854
+ }
855
+ const update = checkForUpdate(ctx, d, { background: true });
856
+ const runtime = checkNodeRuntime(ctx, d, { background: true });
857
+
858
+ // The server's output goes to the log file: through scripts/selfhost-log.mjs (rotation, errors to the menu) when
859
+ // the package has it, and the file itself is the server's stdout and stderr for whatever bypasses that.
860
+ const hook = path.join(d.pkgRoot, "scripts", "selfhost-log.mjs");
861
+ const args = fs.existsSync(hook) ? ["--import", pathToFileURL(hook).href, serverJs] : [serverJs];
862
+ let fd;
863
+ try {
864
+ fd = fs.openSync(logFile, "a", 0o600);
865
+ } catch (e) {
866
+ d.err(`watchbell: could not open ${logFile}: ${e?.code ?? String(e)}`);
867
+ return 1;
868
+ }
869
+ let child;
870
+ try {
871
+ // In a terminal the server runs detached from it from the start (its own session on POSIX, no console on
872
+ // Windows), so "Keep running in the background" only has to let go; the menu is a thin front-end.
873
+ child = d.spawn(d.execPath, args, {
874
+ cwd: ctx.serverDir,
875
+ env: { ...serverEnv(ctx), WATCHBELL_LOG_FILE: logFile },
876
+ stdio: ["ignore", fd, fd, "ipc"],
877
+ detached: tty,
878
+ windowsHide: true,
879
+ });
880
+ } finally {
881
+ fs.closeSync(fd);
882
+ }
883
+ writeRuntime(ctx, child.pid, d);
884
+
885
+ let exited = false;
886
+ const exit = new Promise((resolve) => {
887
+ child.on("exit", (code, signal) => resolve(exitCodeOf(code, signal)));
888
+ child.on("error", (e) => {
889
+ showError(`Could not start the server: ${e.message}`);
890
+ resolve(1);
891
+ });
892
+ }).finally(() => {
893
+ exited = true;
894
+ });
895
+
896
+ // An error the server prints: one line on the screen (the same line at most every 10 minutes), the rest in the log.
897
+ const shown = new Map();
898
+ let lastError = null;
899
+ const onMessage = (m) => {
900
+ if (!m || m.watchbell !== "error" || typeof m.line !== "string") return;
901
+ const line = plain(m.line).trim().slice(0, 300);
902
+ if (!line) return;
903
+ lastError = line;
904
+ const now = d.now();
905
+ if (shown.has(line) && now - shown.get(line) < ERROR_REPEAT_MS) return;
906
+ shown.set(line, now);
907
+ showError(`! ${line} (see the log: ${logFile})`);
908
+ };
909
+ child.on("message", onMessage);
910
+ if (screen) showError = (line) => screen.print([` ${line}`]);
911
+
912
+ // Ctrl+C before the menu is up, a closed terminal, a kill: the same clean stop as "Stop and exit" (in a terminal
913
+ // the server is detached, so no signal reaches it). Without a terminal the server is this process's child as before.
914
+ let stopping = null;
915
+ const stop = () =>
916
+ (stopping ??= (async () => {
917
+ try {
918
+ fs.mkdirSync(ctx.dataDir, { recursive: true });
919
+ fs.writeFileSync(path.join(ctx.dataDir, "stop-request"), `${new Date().toISOString()}\n`); // as watchbell stop
920
+ } catch (e) {
921
+ d.err(`watchbell: could not ask Watchbell to stop (${e?.code ?? e}). Run: watchbell stop`);
922
+ }
923
+ const waitMs = d.stopWaitMs ?? STOP_WAIT_MS;
924
+ const first = await within(exit, waitMs);
925
+ if (first !== null) return first;
926
+ if (d.platform !== "win32") {
927
+ child.kill("SIGTERM"); // the server's own clean stop on SIGTERM
928
+ const second = await within(exit, waitMs);
929
+ if (second !== null) return second;
930
+ }
931
+ d.err(`Watchbell did not stop within ${Math.round(waitMs / 1000)} s; it may still be closing its database. Check with: watchbell status`);
932
+ return 1;
933
+ })());
934
+ const signals = tty ? (d.platform === "win32" ? ["SIGINT", "SIGTERM", "SIGBREAK", "SIGHUP"] : ["SIGINT", "SIGTERM", "SIGHUP"]) : [];
935
+ const onSignal = () => void stop();
936
+ for (const s of signals) d.proc.on(s, onSignal);
937
+ const unsupervise = tty ? () => {} : superviseChild(child, { platform: d.platform, proc: d.proc });
938
+ const release = () => {
939
+ for (const s of signals) d.proc.removeListener(s, onSignal);
940
+ unsupervise();
941
+ };
942
+
943
+ const deadline = d.now() + d.readyTimeoutMs;
944
+ while (!exited) {
945
+ const probe = await probeHealth(ctx.healthUrl, d.fetch);
946
+ if (probe?.status === 200) break;
947
+ if (d.now() >= deadline) {
948
+ // Still starting after the wait: the screen and the menu come anyway (stop, or the log to see why).
949
+ const line = `Watchbell did not answer at ${ctx.healthUrl} within ${Math.round(d.readyTimeoutMs / 1000)} s (see the log: ${logFile}).`;
950
+ if (screen) screen.print([` ${line}`]);
951
+ else d.err(line);
952
+ break;
953
+ }
954
+ await Promise.race([d.sleep(500), exit]);
955
+ }
956
+ if (exited) {
957
+ const code = await exit;
958
+ if (screen) screen.setBlock([]);
959
+ release();
960
+ removeRuntime(ctx, child.pid);
961
+ if (stopping || [0, 130, 143].includes(code)) return code; // stopped while it was starting (Ctrl+C, a signal)
962
+ d.err(`Watchbell could not start: ${lastError ?? lastLogLine(logFile) ?? `exit ${code}`} (see the log: ${logFile})`);
963
+ return code || 1;
964
+ }
965
+
966
+ const setupCode = readSetupCode(ctx.dataDir);
967
+ const urls = shownAddresses(ctx, d.networkInterfaces ?? os.networkInterfaces);
968
+ const lan = !isLoopbackHost(ctx.host);
969
+ // The update notice and the Node.js warning come when they come: a slow registry never holds the screen back.
970
+ const notes = (async () => {
971
+ const lines = [];
972
+ await sayUpdate(update, { out: (l) => lines.push(l) });
973
+ await sayNodeRuntime(runtime, { err: (l) => lines.push(l) });
974
+ return lines;
975
+ })();
976
+ // The long network text (the addresses, SSH tunnel, SITE_URL) is kept in the log; the screen gets two lines.
977
+ if (lan) {
978
+ const note = [];
979
+ announceNetwork(ctx, { ...d, out: (l) => note.push(l), err: (l) => note.push(l) });
980
+ appendLog(logFile, note.filter(Boolean));
981
+ }
982
+ const openTarget = () => (readSetupCode(ctx.dataDir) ? `${ctx.siteUrl}/setup` : ctx.siteUrl);
983
+ if (open) d.openUrl(openTarget());
984
+
985
+ if (!screen) {
986
+ d.out(`Watchbell is running at ${addressText(urls)}`);
987
+ if (setupCode) d.out(`First run: open ${ctx.siteUrl}/setup and enter the setup code ${setupCode}`);
988
+ if (lan) for (const l of NETWORK_WARNING) d.err(l);
989
+ d.out(`Log: ${logFile}`);
990
+ d.out('Stop it with Ctrl+C here, or run "watchbell stop" in another terminal.');
991
+ void sayUpdate(update, d);
992
+ void sayNodeRuntime(runtime, d);
993
+ const code = await exit;
994
+ release();
995
+ removeRuntime(ctx, child.pid);
996
+ if (![0, 130, 143].includes(code)) d.err(`Watchbell stopped with exit code ${code} (see the log: ${logFile}).`);
997
+ return code;
998
+ }
999
+
1000
+ screen.setBlock([]);
1001
+ screen.print([
1002
+ ` Watchbell ${version}`,
1003
+ ` ${addressText(urls)}`,
1004
+ ...(setupCode ? [` First run: setup code ${setupCode}`] : []),
1005
+ "",
1006
+ ...(lan ? [...NETWORK_WARNING.map((l) => ` ${l}`), ""] : []),
1007
+ ]);
1008
+ return menu(ctx, d, { child, exit, stop, release, screen, logFile, openTarget, notes });
1009
+ }
1010
+
1011
+ /**
1012
+ * The start screen's menu: ↑/↓ and Enter, or a first letter (o and k run their item at once; s moves between the two
1013
+ * items that start with S, Enter runs it). Resolves with the CLI's exit code.
1014
+ */
1015
+ function menu(ctx, d, { child, exit, stop, release, screen, logFile, openTarget, notes }) {
1016
+ const stdin = d.stdin;
1017
+ const pointer = d.platform === "win32" && !d.env.WT_SESSION && d.env.TERM_PROGRAM !== "vscode" ? ">" : "❯"; // the old console lacks ❯
1018
+ let selected = 0;
1019
+ let mode = "menu";
1020
+ let stopFollowing = () => {};
1021
+ const lines = () => MENU.map((label, i) => (i === selected ? ` ${pointer} \x1b[1m${label}\x1b[22m` : ` ${label}`));
1022
+ const redraw = () => screen.setBlock(lines());
1023
+
1024
+ return new Promise((resolve) => {
1025
+ let done = false;
1026
+ let stopRequested = false;
1027
+ const leaveTerminal = () => {
1028
+ stopFollowing();
1029
+ stdin.removeListener("keypress", onKey);
1030
+ try {
1031
+ stdin.setRawMode(false);
1032
+ } catch {
1033
+ // the terminal is gone
1034
+ }
1035
+ stdin.pause?.();
1036
+ screen.setBlock([]);
1037
+ };
1038
+ const finish = (code) => {
1039
+ if (done) return;
1040
+ done = true;
1041
+ leaveTerminal();
1042
+ release();
1043
+ resolve(code);
1044
+ };
1045
+
1046
+ const stopAndExit = async () => {
1047
+ if (done || stopRequested) return;
1048
+ stopRequested = true;
1049
+ leaveTerminal();
1050
+ screen.print([" Stopping Watchbell ..."]);
1051
+ const code = await stop();
1052
+ if (code === 0) d.out(" Watchbell stopped.");
1053
+ removeRuntime(ctx, child.pid);
1054
+ finish(code);
1055
+ };
1056
+
1057
+ const background = () => {
1058
+ child.removeAllListeners("message");
1059
+ try {
1060
+ child.disconnect?.(); // the server keeps running; its errors go to the log only from now on
1061
+ } catch {
1062
+ // already disconnected
1063
+ }
1064
+ child.unref?.();
1065
+ leaveTerminal();
1066
+ d.out("Running in the background. Stop it with: watchbell stop");
1067
+ finish(0);
1068
+ };
1069
+
1070
+ const showLog = () => {
1071
+ mode = "log";
1072
+ screen.setBlock([]);
1073
+ const { lines: last, offset } = tailOf(logFile, 20);
1074
+ screen.print(["", ` Live log (${logFile}). Press any key to go back to the menu.`, "", ...last.map(plain)]);
1075
+ stopFollowing = followFile(logFile, { offset, everyMs: d.logPollMs ?? 250, onLines: (ls) => screen.print(ls.map(plain)) });
1076
+ };
1077
+
1078
+ const choose = (i) => {
1079
+ if (i === 0) {
1080
+ const url = openTarget();
1081
+ d.openUrl(url);
1082
+ screen.print([` Opening ${url} in your browser.`]);
1083
+ } else if (i === 1) background();
1084
+ else if (i === 2) showLog();
1085
+ else void stopAndExit();
1086
+ };
1087
+
1088
+ function onKey(str, key = {}) {
1089
+ if (done || stopRequested) return;
1090
+ if (key.ctrl && key.name === "c") return void stopAndExit();
1091
+ if (mode === "log") {
1092
+ stopFollowing();
1093
+ stopFollowing = () => {};
1094
+ mode = "menu";
1095
+ screen.print([""]);
1096
+ return redraw();
1097
+ }
1098
+ if (key.name === "up") selected = (selected + MENU.length - 1) % MENU.length;
1099
+ else if (key.name === "down") selected = (selected + 1) % MENU.length;
1100
+ else if (key.name === "return" || key.name === "enter") return choose(selected);
1101
+ else if (typeof str === "string" && /^[a-z]$/i.test(str)) {
1102
+ const hits = MENU.map((label, i) => [label, i]).filter(([label]) => label[0].toLowerCase() === str.toLowerCase());
1103
+ if (!hits.length) return;
1104
+ selected = (hits.find(([, i]) => i > selected) ?? hits[0])[1];
1105
+ if (hits.length === 1) {
1106
+ redraw();
1107
+ return choose(selected);
1108
+ }
1109
+ } else return;
1110
+ redraw();
1111
+ }
1112
+
1113
+ // A signal (a closed terminal, a kill) or Ctrl+C before the menu: stop() already runs; wait for it here.
1114
+ exit.then((code) => {
1115
+ if (done) return;
1116
+ if (stopRequested) return;
1117
+ // Stopped from elsewhere (watchbell stop in another terminal) or it crashed.
1118
+ leaveTerminal();
1119
+ d.out(code === 0 ? " Watchbell stopped." : ` Watchbell stopped with exit code ${code} (see the log: ${logFile}).`);
1120
+ removeRuntime(ctx, child.pid);
1121
+ finish(code);
1122
+ });
1123
+
1124
+ // The update notice and the Node.js warning, above the menu once they are known (never after it closed).
1125
+ notes.then((lines) => {
1126
+ if (!done && lines.length) screen.print(lines.map((l) => ` ${plain(l)}`));
1127
+ });
1128
+ (d.keypressEvents ?? readlineCore.emitKeypressEvents)(stdin);
1129
+ stdin.setRawMode(true);
1130
+ stdin.resume?.();
1131
+ stdin.on("keypress", onKey);
1132
+ redraw();
1133
+ });
1134
+ }
1135
+
587
1136
  // ---------------------------------------------------------------------------------------------------- stop / status
588
1137
 
589
1138
  function waitExit(child, d) {
@@ -598,7 +1147,8 @@ function waitExit(child, d) {
598
1147
 
599
1148
  // The stop is scripts/stop-selfhost.mjs (shipped in the package): it writes <data>/stop-request, the server runs its
600
1149
  // normal clean stop, and the script waits until the port and the database lock are free.
601
- function stopServer(ctx, d, timeout) {
1150
+ function stopServer(first, d, timeout) {
1151
+ const { ctx } = runningContext(first, d); // asks the address it really runs on (--port), not only the .env one
602
1152
  if (!fs.existsSync(ctx.home)) {
603
1153
  d.out(`Watchbell is not running (there are no settings in ${ctx.home} yet).`);
604
1154
  return Promise.resolve(0);
@@ -609,20 +1159,29 @@ function stopServer(ctx, d, timeout) {
609
1159
  return waitExit(d.spawn(d.execPath, args, { cwd: d.pkgRoot, env, stdio: "inherit" }), d);
610
1160
  }
611
1161
 
612
- async function cmdStatus(ctx, d) {
613
- const pid = runningPid(ctx, d);
1162
+ async function cmdStatus(first, d) {
1163
+ // The address of the server that runs now (1.2.2): started with --port 3261 it answers there, whatever .env says.
1164
+ const { ctx, pid } = runningContext(first, d);
614
1165
  const probe = await probeHealth(ctx.healthUrl, d.fetch);
615
1166
  const running = pid !== null || probe?.service === "watchbell";
616
1167
  if (running) {
617
1168
  d.out(`Watchbell is running${pid !== null ? ` (process ${pid})` : ""} at ${ctx.siteUrl}`);
618
1169
  if (probe?.service !== "watchbell") d.out(` Nothing answers at ${ctx.healthUrl} yet. ${staleLockHint(ctx.lockFile)}`);
1170
+ if (ctx.port !== first.port) d.out(` Port: ${ctx.port} (for this run; ${first.envFile} says ${first.port})`);
619
1171
  } else if (probe) d.out(`Watchbell is not running; another program answers on port ${ctx.port}.`);
620
1172
  else d.out("Watchbell is not running.");
621
1173
  d.out(` Version: ${packageVersion(d.pkgRoot)}`);
622
1174
  d.out(` Settings: ${ctx.envFile}${fs.existsSync(ctx.envFile) ? "" : " (created on the first start)"}`);
623
1175
  d.out(` Data: ${ctx.dataDir}`);
624
- warnServiceNode(ctx, d);
625
- await sayUpdate(checkForUpdate(ctx, d), d);
1176
+ const log = logFileOf(ctx.home);
1177
+ if (fs.existsSync(log)) d.out(` Log: ${log}`);
1178
+ const serviceNode = warnServiceNode(ctx, d);
1179
+ const update = checkForUpdate(ctx, d);
1180
+ // Asked at the same time: status waits for the slower of the two. An installed service may run another Node.js than
1181
+ // this CLI (fix round 1, M5), so that one is checked too.
1182
+ const runtime = checkNodeRuntime(ctx, d, { serviceNode });
1183
+ await sayUpdate(update, d);
1184
+ await sayNodeRuntime(runtime, d);
626
1185
  return running ? 0 : 3;
627
1186
  }
628
1187
 
@@ -1102,10 +1661,16 @@ export function serviceNodePath(ctx, d) {
1102
1661
  return null;
1103
1662
  }
1104
1663
 
1105
- /** After a Node.js change (nvm, fnm, volta, an upgrade) the service would fail at every login; say how to fix it. */
1664
+ /**
1665
+ * After a Node.js change (nvm, fnm, volta, an upgrade) the service would fail at every login; say how to fix it.
1666
+ * Returns the service's Node.js path when it still exists (status checks that Node.js too, D20), else null.
1667
+ */
1106
1668
  function warnServiceNode(ctx, d) {
1107
1669
  const node = serviceNodePath(ctx, d);
1108
- if (node && !fs.existsSync(node)) d.err(`The service runs ${node}, which no longer exists. Run: watchbell service install`);
1670
+ if (!node) return null;
1671
+ if (fs.existsSync(node)) return node;
1672
+ d.err(`The service runs ${node}, which no longer exists. Run: watchbell service install`);
1673
+ return null;
1109
1674
  }
1110
1675
 
1111
1676
  async function cmdService(action, ctx, d, yes) {
@@ -1160,23 +1725,21 @@ function readUpdateCache(file) {
1160
1725
  }
1161
1726
  }
1162
1727
 
1163
- /** The registry's latest version; null when offline, slower than 3 s, refused, or answered with something else. */
1164
- async function registryLatest(d, { background = false } = {}) {
1728
+ /** A plain GET of a public JSON document; null when offline, slower than `timeoutMs`, refused, or not JSON. */
1729
+ async function getJson(d, url, { background = false, timeoutMs, headers = { accept: "application/json" } }) {
1165
1730
  const ac = new AbortController();
1166
1731
  let timer;
1167
1732
  const late = new Promise((resolve) => {
1168
1733
  timer = (d.setTimer ?? setTimeout)(() => {
1169
1734
  ac.abort();
1170
1735
  resolve(null);
1171
- }, d.updateTimeoutMs ?? UPDATE_TIMEOUT_MS);
1736
+ }, timeoutMs);
1172
1737
  // start does not wait for the answer when the server fails early: the timer must not keep the CLI alive then.
1173
1738
  if (background) timer?.unref?.();
1174
1739
  });
1175
1740
  const ask = (async () => {
1176
- const res = await d.fetch(REGISTRY_LATEST, { method: "GET", headers: { accept: "application/json" }, signal: ac.signal });
1177
- if (!res?.ok) return null;
1178
- const v = (await res.json())?.version;
1179
- return typeof v === "string" && SEMVER.test(v.trim()) ? v.trim() : null;
1741
+ const res = await d.fetch(url, { method: "GET", headers, signal: ac.signal });
1742
+ return res?.ok ? await res.json() : null;
1180
1743
  })().catch(() => null);
1181
1744
  try {
1182
1745
  return await Promise.race([ask, late]);
@@ -1185,6 +1748,12 @@ async function registryLatest(d, { background = false } = {}) {
1185
1748
  }
1186
1749
  }
1187
1750
 
1751
+ /** The registry's latest version; null when offline, slower than 3 s, refused, or answered with something else. */
1752
+ async function registryLatest(d, { background = false } = {}) {
1753
+ const v = (await getJson(d, REGISTRY_LATEST, { background, timeoutMs: d.updateTimeoutMs ?? UPDATE_TIMEOUT_MS }))?.version;
1754
+ return typeof v === "string" && SEMVER.test(v.trim()) ? v.trim() : null;
1755
+ }
1756
+
1188
1757
  /**
1189
1758
  * This package's version and the registry's latest: from <home>/update-check.json when it is less than 24 h old, else
1190
1759
  * asked (and the answer saved). A failed ask is saved too, with the last known answer, so an offline machine is not
@@ -1225,6 +1794,90 @@ async function sayUpdate(check, d) {
1225
1794
  if (found) d.out(`A newer Watchbell is available: ${found.latest} (this is ${found.current}). Update with: watchbell update`);
1226
1795
  }
1227
1796
 
1797
+ // ---------------------------------------------------------------------------------------------------- Node.js runtime (D20)
1798
+
1799
+ // 1.2.2: the Node.js under Watchbell. The server runs on the Node.js that runs this CLI (d.execPath), so its version is
1800
+ // d.nodeVersion. Two plain GETs at once, nodejs.org's release list and endoflife.date's Node.js lines, at most once per
1801
+ // 12 h: the answer, or a failed ask, is kept in <home>/node-check.json like the update check's. The verdict is
1802
+ // scripts/node-runtime.mjs, shared with the console's Settings › Collector line. The update check's switches turn this
1803
+ // off too (WATCHBELL_NO_UPDATE_CHECK also turns off the server's own 12-hourly reads, src/lib/collector/node-runtime.ts). One warning line for a vulnerable or end-of-life Node.js; offline or an answer it can't read prints nothing,
1804
+ // and it never holds the start back.
1805
+ const NODE_CACHE = "node-check.json";
1806
+ const NODE_TIMEOUT_MS = 4000; // the release list is about 350 kB (about 40 kB gzipped)
1807
+ // Fix round 1 (M4): gzip only. Node's fetch would offer br, and Node2Shell, the advisory this check exists for, is in
1808
+ // Node's Brotli decoder: a vulnerable Node.js shouldn't Brotli-decode the very lists that flag it.
1809
+ const NODE_HEADERS = { accept: "application/json", "accept-encoding": "gzip" };
1810
+ const SERVICE_VERSION_TIMEOUT_MS = 1000;
1811
+
1812
+ function readNodeCache(file) {
1813
+ try {
1814
+ const c = JSON.parse(fs.readFileSync(file, "utf8"));
1815
+ const at = Date.parse(c?.checkedAt);
1816
+ if (!Number.isFinite(at)) return null;
1817
+ return { at, index: storedNodeIndex(c.index), indexOk: c.indexOk === true, cycles: storedNodeCycles(c.cycles) };
1818
+ } catch {
1819
+ return null; // none yet, or not ours to trust: ask again
1820
+ }
1821
+ }
1822
+
1823
+ async function lookupNodeAdvisories(ctx, d, { background = false } = {}) {
1824
+ const file = path.join(ctx.home, NODE_CACHE);
1825
+ const cached = readNodeCache(file);
1826
+ const now = d.now();
1827
+ if (cached && now >= cached.at && now - cached.at < NODE_CHECK_EVERY_MS) return cached;
1828
+ const timeoutMs = d.nodeTimeoutMs ?? NODE_TIMEOUT_MS;
1829
+ const [indexBody, eolBody] = await Promise.all([getJson(d, NODE_INDEX_URL, { background, timeoutMs, headers: NODE_HEADERS }), getJson(d, NODE_EOL_URL, { background, timeoutMs, headers: NODE_HEADERS })]);
1830
+ const index = parseNodeIndex(indexBody);
1831
+ const cycles = parseNodeEol(eolBody);
1832
+ // A failed source keeps its last good data; indexOk records whether this ask of nodejs.org worked ("ok" needs it).
1833
+ const next = { at: now, index: index ?? cached?.index ?? null, indexOk: index !== null, cycles: cycles ?? cached?.cycles ?? null };
1834
+ if (fs.existsSync(ctx.home)) {
1835
+ try {
1836
+ fs.writeFileSync(file, `${JSON.stringify({ checkedAt: new Date(now).toISOString(), indexOk: next.indexOk, index: next.index, cycles: next.cycles })}\n`);
1837
+ } catch {
1838
+ // a read-only home: the next start asks again
1839
+ }
1840
+ }
1841
+ return next;
1842
+ }
1843
+
1844
+ /** The version an installed service's Node.js reports ("v24.12.0"), or null when it can't be run within a second. */
1845
+ function serviceNodeVersion(node, d) {
1846
+ const r = d.runSync(node, ["--version"], { timeout: SERVICE_VERSION_TIMEOUT_MS });
1847
+ return r.status === 0 ? r.stdout.trim() : null;
1848
+ }
1849
+
1850
+ const samePath = (a, b, platform) => {
1851
+ const [x, y] = [path.resolve(a), path.resolve(b)];
1852
+ return platform === "win32" ? x.toLowerCase() === y.toLowerCase() : x === y;
1853
+ };
1854
+
1855
+ /**
1856
+ * D20. Never throws; the warning lines (none when this Node.js is fine, unknown or the check is off). `serviceNode`
1857
+ * (status only): the installed service's Node.js path; when it isn't this one and runs another version, that version
1858
+ * is checked too and named in its own line.
1859
+ */
1860
+ export async function checkNodeRuntime(ctx, d, { background = false, serviceNode = null } = {}) {
1861
+ try {
1862
+ if (updateCheckOff(ctx.merged ?? d.env)) return [];
1863
+ const data = await lookupNodeAdvisories(ctx, d, { background });
1864
+ const verdict = (version) => nodeVerdict(String(version), { index: data.index, indexFresh: data.indexOk, cycles: data.cycles }, d.now());
1865
+ const own = verdict(d.nodeVersion);
1866
+ const lines = [nodeWarningLine(own)];
1867
+ if (serviceNode && !samePath(serviceNode, d.execPath, d.platform)) {
1868
+ const theirs = verdict(serviceNodeVersion(serviceNode, d) ?? "");
1869
+ if (theirs.version !== null && theirs.version !== own.version) lines.push(nodeWarningLine(theirs, { service: serviceNode }));
1870
+ }
1871
+ return lines.filter(Boolean);
1872
+ } catch {
1873
+ return [];
1874
+ }
1875
+ }
1876
+
1877
+ async function sayNodeRuntime(check, d) {
1878
+ for (const line of check ? await check : []) d.err(line);
1879
+ }
1880
+
1228
1881
  // ---------------------------------------------------------------------------------------------------- network (D10)
1229
1882
 
1230
1883
  const unbracket = (h) => h.replace(/^\[(.*)\]$/, "$1");
@@ -1283,17 +1936,40 @@ function announceNetwork(ctx, d) {
1283
1936
 
1284
1937
  // ---------------------------------------------------------------------------------------------------- update (D9)
1285
1938
 
1286
- const NPM_UPDATE_ARGS = ["install", "-g", "watchbell@latest"];
1287
- const NPM_UPDATE = `npm ${NPM_UPDATE_ARGS.join(" ")}`;
1288
1939
  const PS_START = "Start-ScheduledTask -TaskName $env:WB_TASK";
1289
1940
 
1290
- /** The npm next to the running Node.js (npm.cmd on Windows, run through System32's cmd.exe); null if cmd can't take it. */
1291
- export function npmCommand(d) {
1941
+ /**
1942
+ * 1.2.2: the npm prefix this copy was installed into, from its own folder: <prefix>/lib/node_modules/watchbell on
1943
+ * Linux and macOS, <prefix>\node_modules\watchbell on Windows. Null for any other layout (a project's node_modules,
1944
+ * pnpm, a source checkout): npm then installs where it always does, and the "still holds" check catches a miss.
1945
+ */
1946
+ export function installPrefix(pkgRoot, platform) {
1947
+ const root = path.resolve(pkgRoot);
1948
+ const name = (p) => (platform === "win32" ? path.basename(p).toLowerCase() : path.basename(p));
1949
+ const modules = path.dirname(root);
1950
+ if (name(root) !== "watchbell" || name(modules) !== "node_modules") return null;
1951
+ if (platform === "win32") return path.dirname(modules);
1952
+ const lib = path.dirname(modules);
1953
+ return name(lib) === "lib" ? path.dirname(lib) : null;
1954
+ }
1955
+
1956
+ const npmUpdateArgs = (prefix) => ["install", "-g", ...(prefix ? ["--prefix", prefix] : []), "watchbell@latest"];
1957
+ /** The update command as a person types it (the prefix quoted when it has a space). */
1958
+ const npmUpdateText = (prefix) => `npm ${npmUpdateArgs(prefix).map((a) => (/\s/.test(a) ? `"${a}"` : a)).join(" ")}`;
1959
+
1960
+ /**
1961
+ * The npm next to the running Node.js (npm.cmd on Windows, run through System32's cmd.exe), installing into `prefix`
1962
+ * when it is known; null if cmd can't take the paths.
1963
+ */
1964
+ export function npmCommand(d, prefix = null) {
1292
1965
  const p = d.platform === "win32" ? path.win32 : path.posix;
1293
1966
  const npm = p.join(p.dirname(d.execPath), d.platform === "win32" ? "npm.cmd" : "npm");
1294
- if (d.platform !== "win32") return { npm, cmd: npm, args: NPM_UPDATE_ARGS, opts: {} };
1295
- if (/["%\r\n]/.test(npm)) return null; // cmd expands % even inside quotes
1296
- return { npm, cmd: system32Tool(d, "cmd.exe"), args: ["/d", "/s", "/c", `""${npm}" ${NPM_UPDATE_ARGS.join(" ")}"`], opts: { windowsVerbatimArguments: true } };
1967
+ const args = npmUpdateArgs(prefix);
1968
+ if (d.platform !== "win32") return { npm, cmd: npm, args, opts: {} };
1969
+ // cmd expands % even inside quotes, and a quoted path ending in \ would escape its closing quote.
1970
+ if (/["%\r\n]/.test(npm + (prefix ?? "")) || prefix?.endsWith("\\")) return null;
1971
+ const line = args.map((a) => (a === prefix ? `"${a}"` : a)).join(" ");
1972
+ return { npm, cmd: system32Tool(d, "cmd.exe"), args: ["/d", "/s", "/c", `""${npm}" ${line}"`], opts: { windowsVerbatimArguments: true } };
1297
1973
  }
1298
1974
 
1299
1975
  const writableDir = (dir) => {
@@ -1369,7 +2045,9 @@ function packageName(pkgRoot) {
1369
2045
  }
1370
2046
 
1371
2047
  /**
1372
- * D9: `npm install -g watchbell@latest` with the npm next to this Node.js, only while Watchbell is stopped. A running
2048
+ * D9: `npm install -g watchbell@latest` with the npm next to this Node.js, only while Watchbell is stopped; since 1.2.2
2049
+ * with `--prefix` of the folder this copy runs from (installPrefix), so a Node.js elsewhere on PATH (nvm next to a
2050
+ * copy in ~/.local) can no longer take the update. A running
1373
2051
  * service of the package is stopped cleanly first and started again after (also when npm failed: the old version
1374
2052
  * then runs on). 0: updated or already the latest; 1: running, npm failed, or the service did not stop.
1375
2053
  */
@@ -1391,9 +2069,11 @@ export async function cmdUpdate({ ctx }, d) {
1391
2069
  return 0;
1392
2070
  }
1393
2071
  if (latest === null) d.out("Could not ask registry.npmjs.org for the latest version; npm will try.");
1394
- const npm = npmCommand(d);
2072
+ const prefix = installPrefix(d.pkgRoot, d.platform);
2073
+ const NPM_UPDATE = npmUpdateText(prefix);
2074
+ const npm = npmCommand(d, prefix);
1395
2075
  if (!npm) {
1396
- d.err(`The folder of this Node.js can't go on a cmd command line. Stop Watchbell and run: ${NPM_UPDATE}`);
2076
+ d.err(`The folder of this Node.js or of Watchbell can't go on a cmd command line. Stop Watchbell and run: ${NPM_UPDATE}`);
1397
2077
  return 1;
1398
2078
  }
1399
2079
  const service = await runningService(ctx, d);
@@ -1417,7 +2097,7 @@ export async function cmdUpdate({ ctx }, d) {
1417
2097
  return 1;
1418
2098
  }
1419
2099
  }
1420
- d.out(`Updating Watchbell ${current}${latest ? ` to ${latest}` : ""}: ${npm.npm} ${NPM_UPDATE_ARGS.join(" ")}`);
2100
+ d.out(`Updating Watchbell ${current}${latest ? ` to ${latest}` : ""}: ${npm.npm} ${NPM_UPDATE.slice(4)}`);
1421
2101
  // POSIX: npm starts with "#!/usr/bin/env node", so this Node.js goes first on PATH, else npm runs (and installs for)
1422
2102
  // whichever node PATH finds first. A large maxBuffer: a verbose .npmrc must not get npm killed mid-install.
1423
2103
  const env = d.platform === "win32" ? d.env : { ...d.env, PATH: [path.posix.dirname(d.execPath), d.env.PATH].filter(isSet).join(":") };
@@ -1436,7 +2116,12 @@ export async function cmdUpdate({ ctx }, d) {
1436
2116
  const now = packageVersion(d.pkgRoot);
1437
2117
  if (now === current && newer !== null && newer > 0) {
1438
2118
  code = 1;
1439
- d.err(`npm finished, but ${d.pkgRoot} still holds Watchbell ${now}: this npm installs somewhere else (see npm prefix -g).`);
2119
+ d.err(`npm finished, but ${d.pkgRoot} still holds Watchbell ${now}: the new version went to another folder.`);
2120
+ d.err(
2121
+ prefix
2122
+ ? `npm was told to install into ${prefix}, where this copy runs from. A copy made with npm link, or kept by another tool (volta, pnpm), updates its own way; "npm ls -g --prefix ${/\s/.test(prefix) ? `"${prefix}"` : prefix} watchbell" shows what that folder holds.`
2123
+ : `This copy is not in an npm global folder (<prefix>/${d.platform === "win32" ? "" : "lib/"}node_modules/watchbell), so update it the way you installed it. "npm prefix -g" shows where npm installs.`,
2124
+ );
1440
2125
  } else d.out(now === current ? `Watchbell ${now} is up to date.` : `Updated Watchbell ${current} to ${now}.`);
1441
2126
  }
1442
2127
  if (service) {
@@ -1461,8 +2146,10 @@ export async function main(argv, overrides = {}) {
1461
2146
  return 0;
1462
2147
  }
1463
2148
  if (errors.length) {
1464
- for (const e of errors) d.err(`watchbell: ${e}`);
1465
- d.err("Run watchbell --help for the commands.");
2149
+ // An unknown option is its own complete line; every other mistake gets the prefix and the pointer to --help.
2150
+ const unknown = (e) => e.startsWith("Unknown option ");
2151
+ for (const e of errors) d.err(unknown(e) ? e : `watchbell: ${e}`);
2152
+ if (!errors.every(unknown)) d.err("Run watchbell --help for the commands.");
1466
2153
  return 2;
1467
2154
  }
1468
2155
  const major = Number.parseInt(String(d.nodeVersion).split(".")[0], 10);
@@ -1480,7 +2167,7 @@ export async function main(argv, overrides = {}) {
1480
2167
  }
1481
2168
  switch (opts.command) {
1482
2169
  case "start":
1483
- return cmdStart(ctx, d, { open: opts.open, foreground: false, newKey: opts.newKey });
2170
+ return cmdStart(ctx, d, { open: opts.open, foreground: false, newKey: opts.newKey, verbose: opts.verbose });
1484
2171
  case "run":
1485
2172
  if (underLaunchd(d)) return runUnderLaunchd(ctx, d);
1486
2173
  return cmdStart(ctx, d, { open: false, foreground: true, newKey: false });