watchbell 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/app-path-routes-manifest.json +1 -0
- package/server/.next/build-manifest.json +116 -105
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/routes-manifest.json +6 -0
- package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/[...slug]/page.js +55 -53
- package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/alerts/page.js +54 -52
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +23 -23
- package/server/.next/server/app/(console)/apps/[id]/page.js +54 -52
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/apps/page.js +54 -52
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/backups/page.js +54 -52
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/catalog/page.js +54 -52
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +54 -54
- package/server/.next/server/app/(console)/connections/page.js +60 -58
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/d1/page.js +54 -52
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/deployments/page.js +54 -52
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/dns/page.js +54 -52
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/domains/page.js +54 -52
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/events/page.js +54 -52
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/firebase/page.js +55 -53
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/logs/page.js +54 -52
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
- package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
- package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
- package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
- package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/neon/page.js +54 -52
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/overview/page.js +54 -52
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/repos/[id]/page.js +54 -52
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/repos/page.js +54 -52
- package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/settings/page.js +54 -52
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/sql/page.js +54 -52
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/status/page.js +54 -52
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +29 -29
- package/server/.next/server/app/(console)/supabase/page.js +54 -52
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/topology/page.js +54 -52
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/turso/page.js +54 -52
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/upstash/page.js +54 -52
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/uptime/page.js +54 -52
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/welcome/page.js +55 -53
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/collect/route.js +74 -71
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/daily/route.js +66 -63
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/health/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +71 -68
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +4 -4
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +2 -2
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +2 -2
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +5 -5
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js +5 -5
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +4 -4
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +4 -4
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +19 -18
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/build-manifest.json +3 -3
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/page/build-manifest.json +3 -3
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/setup/page/build-manifest.json +3 -3
- package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/signin/page/build-manifest.json +3 -3
- package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app-paths-manifest.json +1 -0
- package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0hju4mctdmvz9._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0rak0ce6prxwp._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-q6_msattgcu._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0vctt_0kj1gz4._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14zpwd7xntffk._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__15tt645jfx-br._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11kfkk5yxz4ge._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0hpdrg-m0n6ty._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0i3n8l6ecdb4u._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0v1kcolrxwmob._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__0t8d8b4qkw3y-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0m7_0rarf_x86._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0z-07azr3zk8s._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0x0x6v75re5_e._.js → [root-of-the-server]__0zxyfd7u67hmv._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1rf3slum5swk2._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1flvcyht5uk7h._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0alnp_0qkhzze._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1objhlwwrjfjk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vi0u2vkv3tk0._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1hw6s0e7p2-6g._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1qzor1nqajuyp._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
- package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
- package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
- package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
- package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
- package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
- package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
- package/server/.next/server/chunks/_0ejcrge5k4quv._.js +1 -1
- package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
- package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
- package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
- package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
- package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +1 -1
- package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
- package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
- package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
- package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
- package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
- package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
- package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
- package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
- package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
- package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
- package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
- package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
- package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +1 -1
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +1 -1
- package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
- package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
- package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
- package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
- package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
- package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
- package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
- package/server/.next/server/chunks/{src_08bzavsfds295._.js → src_0kwnhwi77unm7._.js} +2 -2
- package/server/.next/server/chunks/src_0xqorb3-ef3ub._.js +1 -1
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
- package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
- package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
- package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
- package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
- package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
- package/server/.next/server/chunks/{src_0k78ifotuztod._.js → src_1no_yh953mran._.js} +2 -2
- package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +6 -0
- package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
- package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
- package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
- package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
- package/server/.next/server/chunks/{src_lib_0vl2-zp4wzw7n._.js → src_lib_1p21oczr6lh5a._.js} +1 -1
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
- package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
- package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
- package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
- package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
- package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
- package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0vbbz7arebnub._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__13rgl1h4g39l-._.js → [root-of-the-server]__052_cprs0alpy._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18b1wk6-2gq4x._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__168ahi_n-kf90._.js → [root-of-the-server]__08479d23kb1xv._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1drr27jyyhw7p._.js → [root-of-the-server]__08fqg76puqdfr._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__07n1hb3mk44lt._.js → [root-of-the-server]__0acmauri7z1sg._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryl_hnreck66._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xa91qls2i3j4._.js → [root-of-the-server]__0h9gtpapca7i_._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hbk3gqja86zp._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11y6b96ofb-c5._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1n1pq5j5p4_qn._.js → [root-of-the-server]__1owrn7crnsybx._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
- package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
- package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
- package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
- package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
- package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
- package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
- package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
- package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
- package/server/.next/server/chunks/ssr/{_08u2qnetu4ghm._.js → _0ooh0hh-r_12s._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/{_06sp8cllu_ljh._.js → _0pn3dn9s9es51._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
- package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
- package/server/.next/server/chunks/ssr/{_12348a3ug1-wo._.js → _0r04c1-snv6jw._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
- package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
- package/server/.next/server/chunks/ssr/{_216rrmkts392q._.js → _0tnfblwwlyvq2._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1exwj9ou5yh71._.js → _0x1vi7mal3bqd._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1ibagew7zj8y6._.js → _11w5w9dpxcf1w._.js} +2 -2
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
- package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
- package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
- package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
- package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
- package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
- package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
- package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
- package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
- package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
- package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
- package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/src_11iuy79j_finh._.js +3 -0
- package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
- package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
- package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
- package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_11_hakxhnybdd._.js → src_1ottjkdvhje3g._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
- package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_1olpa0osy74mq._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_neon_1ubea__gt06o0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_16-sh45tpob8n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_1y1xla7bcc5a1._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_0vl2-zp4wzw7n._.js → src_lib_1p21oczr6lh5a._.js} +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
- package/server/.next/server/chunks/ssr/src_lib_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
- package/server/.next/server/chunks/ssr/{src_lib_demo_20zjotuzm1lm8._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +116 -105
- package/server/.next/server/next-font-manifest.js +1 -1
- package/server/.next/server/next-font-manifest.json +4 -0
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +212 -166
- package/server/.next/static/chunks/{3w445wy3mpp2f.js → 08dak2kh1c6_7.js} +1 -1
- package/server/.next/static/chunks/{2-8ra6gmaw_pb.js → 0b9slopuz4e8a.js} +1 -1
- package/server/.next/static/chunks/{3col9buetdxvh.js → 0dp-tuwkw7xf8.js} +2 -2
- package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
- package/server/.next/static/chunks/{010bc8dzhxd_0.js → 0h9i512dn01kj.js} +1 -1
- package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
- package/server/.next/static/chunks/{3s7hj7g12rmuh.js → 0icohez16w-ei.js} +1 -1
- package/server/.next/static/chunks/{08w0t5q93_9mu.js → 0j1wzqg4ukm70.js} +1 -1
- package/server/.next/static/chunks/{2cmw27buw9oce.js → 0kscmnb071fci.js} +1 -1
- package/server/.next/static/chunks/0ld78j1d4j201.js +1 -0
- package/server/.next/static/chunks/{1yb4_s_96v9tf.js → 0qlb-l1uyqku5.js} +1 -1
- package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
- package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
- package/server/.next/static/chunks/{0dhgqjjm0zj6_.js → 1-oetq3mwlhds.js} +1 -1
- package/server/.next/static/chunks/{3uujo4bht1tqo.js → 11ywzwmfd_pt0.js} +1 -1
- package/server/.next/static/chunks/{1aoqsoecu-fy_.js → 1jaozq01v9r6e.js} +1 -1
- package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
- package/server/.next/static/chunks/{3o7se0ypyiqmz.js → 1lsu_fxiyaeiz.js} +1 -1
- package/server/.next/static/chunks/{1endj3d7bewa1.js → 1o3_amrh-sxr3.js} +1 -1
- package/server/.next/static/chunks/{1vi8tyc1ou2o3.js → 1w9o_jo_pejc5.js} +1 -1
- package/server/.next/static/chunks/{0nx0h-723nd_u.js → 1yvbs41m8_4nc.js} +2 -2
- package/server/.next/static/chunks/{0unx038_2rfsp.js → 22alexnun_rdm.js} +1 -1
- package/server/.next/static/chunks/{06lmwdlx-fkr8.js → 27qwmt1w6-iri.js} +1 -1
- package/server/.next/static/chunks/{02uvde7i-78p5.js → 29humkd2-_1oo.js} +1 -1
- package/server/.next/static/chunks/{0-7by9f00qb4d.js → 29j96yfhxsf41.js} +1 -1
- package/server/.next/static/chunks/{1483hxa9hair1.js → 29qnnsjsgsia6.js} +1 -1
- package/server/.next/static/chunks/{2pbnh717ldzfl.js → 2ii8j9xuvv604.js} +1 -1
- package/server/.next/static/chunks/{2ufr23d_eyosj.js → 2m0ftj__ody0m.js} +1 -1
- package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
- package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
- package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
- package/server/.next/static/chunks/{1o4mdgq5lu1g_.js → 2toeyr9b_nk0e.js} +1 -1
- package/server/.next/static/chunks/{2zdjxqgm-44u1.js → 2w7qxt7ux-m1-.js} +1 -1
- package/server/.next/static/chunks/{18gwem_5y9wnt.js → 2zc1osymeruya.js} +1 -1
- package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
- package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
- package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
- package/server/.next/static/chunks/{2z6a725ntvlr6.js → 3gl2k6v182lli.js} +2 -2
- package/server/.next/static/chunks/{2lv5qmgi8nm4h.js → 3gurl_36kr7sg.js} +1 -1
- package/server/.next/static/chunks/{2n-h6_0i3mpxo.js → 3h-i_hcaaf7vs.js} +1 -1
- package/server/.next/static/chunks/{0dnjs3de2e_d1.js → 3kznplgmzot89.js} +1 -1
- package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
- package/server/.next/static/chunks/{1t2iu6ufyxecz.js → 3n_n6yeienmn-.js} +1 -1
- package/server/.next/static/chunks/{01oee9tptcjdb.js → 3nqciag05fif0.js} +1 -1
- package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
- package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
- package/server/.next/static/chunks/{03fjh6klyhqv4.js → 3shbvizselyoq.js} +1 -1
- package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
- package/server/.next/static/chunks/{3alfhqlczff2s.js → 3yv-enyk37whg.js} +1 -1
- package/server/node_modules/@next/env/package.json +1 -1
- package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
- package/server/node_modules/next/dist/build/index.js +3 -3
- package/server/node_modules/next/dist/build/swc/index.js +1 -1
- package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
- package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
- package/server/node_modules/next/dist/build/webpack-config.js +3 -3
- package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
- package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
- package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
- package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
- package/server/node_modules/next/dist/server/config.js +1 -1
- package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
- package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
- package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
- package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
- package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
- package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/server/node_modules/next/package.json +11 -11
- package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0abdjgj-muln9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0rxrv00e5e6fj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zd61mh-juh2i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__13scfgchwlitx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__15zbj_ehkvv-n._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16sp8qurcwsnf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_1-jgxiadvs0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_2akhn6c9eqq._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c2u-bg524-_w._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c8_e0jqh_8na._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1g-be2zoiz2tf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1h96ebyza_vlh._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ldcwvd42rpuz._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1sj7uwyq1gpet._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__202r0hxhr5bnu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__2196hxm-s7u6e._.js +0 -3
- package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
- package/server/.next/server/chunks/_061mqfu1rkl7g._.js +0 -34
- package/server/.next/server/chunks/_0c_vrxu6rin-k._.js +0 -3
- package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
- package/server/.next/server/chunks/_0qrn1v02iivm8._.js +0 -3
- package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
- package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
- package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
- package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
- package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
- package/server/.next/server/chunks/_1b63jfweu0o04._.js +0 -3
- package/server/.next/server/chunks/_1i57ar6zvd7yb._.js +0 -34
- package/server/.next/server/chunks/_1k2cwp1_wt6qm._.js +0 -3
- package/server/.next/server/chunks/_1kj2yv4-wk2kp._.js +0 -34
- package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
- package/server/.next/server/chunks/_1ozrnl_on86u7._.js +0 -34
- package/server/.next/server/chunks/_1xeuk6g48m3_1._.js +0 -3
- package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
- package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
- package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
- package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
- package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
- package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
- package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
- package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
- package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
- package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
- package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
- package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
- package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04a21b9fkrqs3._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wf8q7-o-4n8y._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1e-xqsuqsd4ub._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__204_t7bzma353._.js +0 -3
- package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
- package/server/.next/server/chunks/ssr/_11o43qq2eyx_r._.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
- package/server/.next/server/chunks/ssr/src_0qu78tivj78-x._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
- package/server/.next/static/chunks/0anet8wttkax1.js +0 -1
- package/server/.next/static/chunks/0ao7kjrp6bp3l.js +0 -1
- package/server/.next/static/chunks/0b0rwd99q942r.js +0 -1
- package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
- package/server/.next/static/chunks/0ilml-p3iktnr.js +0 -1
- package/server/.next/static/chunks/0y_0w1ek5fakj.js +0 -1
- package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
- package/server/.next/static/chunks/1k01h6men2hvb.js +0 -1
- package/server/.next/static/chunks/1mdaf7mwcfafr.js +0 -1
- package/server/.next/static/chunks/2mj8z5a9dz7bh.js +0 -1
- package/server/.next/static/chunks/2qltilq3pn4ia.js +0 -1
- package/server/.next/static/chunks/2wqgz94tksucm.js +0 -1
- package/server/.next/static/chunks/3ypdfkwyovory.js +0 -1
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
and message = ${r.message}
|
|
3
3
|
and coalesce(last_at, at) >= ${s.toISOString()}::timestamptz order by coalesce(last_at, at) desc limit 1)`).returning({id:n.events.id})).length)continue}await o.insert(n.events).values({at:e,resourceId:r.resourceId,type:r.type,kind:r.kind,message:r.message,detail:r.detail,actorUserId:r.actorUserId??null,reason:a,count:1})}}e.s(["t",0,36e5,"L",0,function(e){if(e.resource)return e.resource;if("ProviderIncident"===e.reason||"ProviderRecovered"===e.reason){let t=a.exec(e.message);if(t)return t[1]}return"system"===e.type?"collector":"console"},"y",0,s,"w",0,i],165788),e.s(["f",0,d],656083)},400687,e=>{function t(e){let t=new Headers(e);return t.set("Cache-Control","no-store"),t}e.s(["O",0,function(e,r,n,o){return Response.json({error:{type:e,message:r}},{status:n,headers:t(o)})},"E",0,function(e,r){return Response.json(e,{...r,headers:t(r?.headers)})}])}]})();
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=_01s3_8ssosvqi._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[909592,e=>{var t=e.i(794588);e.s(["z",0,t])},79322,e=>{var t=e.i(794588);e.s(["z",0,t])},710075,e=>{var t=e.i(794588);e.s(["z",0,t])},932378,e=>{var t=e.i(794588);e.s(["z",0,t])},295017,e=>{var t=e.i(511302),n=e.i(553184),a=e.i(741630),r=e.i(370705),s=e.i(217702),o=e.i(141757),l=e.i(10566),i=e.i(45115),u=e.i(530298);let d=u.ops.table("supabase_metrics_keys",{resourceId:(0,i.q)("resource_id").primaryKey().references(()=>u.resources.id,{onDelete:"cascade"}),keyCiphertext:(0,o.f)("key_ciphertext").notNull(),keyIv:(0,o.f)("key_iv").notNull(),keyVersion:(0,n.f)("key_version").notNull().default(1),addedBy:(0,i.q)("added_by"),latest:(0,a.y)("latest").$type(),lastTryAt:(0,l._)("last_try_at",{withTimezone:!0}),lastOkAt:(0,l._)("last_ok_at",{withTimezone:!0}),lastError:(0,o.f)("last_error"),createdAt:(0,l._)("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:(0,l._)("updated_at",{withTimezone:!0}).notNull().defaultNow()}),c=u.ops.table("supabase_metrics",{resourceId:(0,i.q)("resource_id").notNull().references(()=>u.resources.id,{onDelete:"cascade"}),hour:(0,l._)("hour",{withTimezone:!0}).notNull(),samples:(0,n.f)("samples").notNull().default(0),cpuSamples:(0,n.f)("cpu_samples").notNull().default(0),cpuAvg:(0,s.f)("cpu_avg"),cpuMax:(0,s.f)("cpu_max"),memAvg:(0,s.f)("mem_avg"),memMax:(0,s.f)("mem_max"),diskPct:(0,s.f)("disk_pct"),connUsed:(0,n.f)("conn_used"),connMax:(0,n.f)("conn_max")},e=>[(0,r._)({columns:[e.resourceId,e.hour]}),(0,t.y)("supabase_metrics_hour_idx").on(e.hour)]);e.s(["l",0,c,"A",0,d])},200123,e=>{e.s(["f",0,function(e){if(Array.isArray(e))return e;let t=e?.rows;return Array.isArray(t)?t:[]}])},516506,e=>{let t=e=>(e??0).toLocaleString("en-US"),n={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:e=>`${t(e)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:e=>`No collector run for ${t(e)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:e=>`p95 > ${t(e)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"Production deployment state = ERROR"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase status = INACTIVE"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:e=>`TLS certificate expires in < ${t(e)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:e=>`Domain expires in < ${t(e)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Database size > ${t(e)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:e=>`> ${t(e)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:e=>`Daily reads > ${t(e)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase project without API traffic for ${t(e)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase CPU > ${t(e)}% for 15 min, RAM > ${t(Math.min(99,(e??80)+10))}%, disk > ${t(e)}% or connections > ${t(e)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Turso, Upstash or D1 usage > ${t(e)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:e=>`Account credential expires in < ${t(e)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a high or critical advisory (OSV.dev)"}};Object.keys(n),e.s(["_",0,n,"h",0,e=>"string"==typeof e&&e in n])},27479,e=>{let t=e=>e?e.getTime():null;function n(e,t){return!e||"object"!=typeof e||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1]&&new Date(e[1]).getTime()>t.getTime()))}e.s(["Q",0,function(e,t,n,a=new Set){let r=new Set(n.map(e=>`${e.resourceId}/${e.id}`));return e.flatMap(e=>{let n=t.get(e.externalId);return!n||a.has(n)||r.has(`${e.id}/${n}`)?[]:[{appId:e.id,deploymentId:n}]})},"E",0,function(e,n){return!e||e.state!==n.state||e.target!==n.target||e.branch!==n.branch||e.commitSha!==n.commitSha||e.commitMessage!==n.commitMessage||e.source!==n.source||e.url!==n.url||t(e.buildingAt)!==t(n.buildingAt)||t(e.readyAt)!==t(n.readyAt)},"Y",0,function(e,t,a){let r=new Date(a.getTime()+216e5).toISOString();return{...n(e,a),...Object.fromEntries(t.map(e=>[e,r]))}},"K",0,function(e){try{return new URL(e).pathname}catch{return"/"}},"a",0,function(e,t){let n=[...new Map(e.map(e=>[e.id,e])).values()].sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()),a=t??n[0]?.id??null,r=n.findIndex(e=>e.id===a);return{currentId:a,previousId:r>=0?n[r+1]?.id??null:null}},"S",0,(e,t)=>new Set(Object.keys(n(e,t)))])},816173,e=>{let t=(e,t)=>t??(e?`HTTP ${e}`:"No answer");e.s(["I",0,3,"V",0,function(e){return e.monitors.includes("err")?"err":e.building?"build":e.monitors.includes("warn")||e.dbPaused?"warn":e.monitors.length?"ok":"unknown"},"L",0,function(e,t,n,a){if(e===t.state)return null;let r={resourceId:n,type:"deployment",at:a,detail:`${t.branch??"unknown branch"} \xb7 ${t.sha?t.sha.slice(0,7):"no commit"}`},s=e=>null!==e&&a.getTime()-e.getTime()<=6e5;return"building"===t.state?void 0===e&&s(t.createdAt)?{...r,kind:"build",message:"Deployment started"}:null:void 0!==e||s(t.readyAt??t.createdAt)?"ready"===t.state?{...r,kind:"ok",message:"Deployment ready"}:"error"===t.state?{...r,kind:"fail",message:"Deployment failed"}:{...r,kind:"off",message:"Deployment canceled"}:null},"F",0,function(e){let{prev:n,next:a}=e,r=!0===e.heartbeat;if(n===a||"unknown"===n&&!(r&&"err"===a))return null;let s={resourceId:e.resourceId,type:"monitor",at:e.at};return"err"===a?{...s,kind:"err",message:"Monitor down",detail:r?t(null,e.error):`${t(e.code,e.error)} on 3 checks in a row`}:"warn"===a?{...s,kind:"warn",message:"Monitor degraded",detail:t(e.code,e.error)}:"ok"===a?{...s,kind:"ok",message:"Monitor recovered",detail:r?`${e.path} pinged again`:`${e.path} answers again`}:null},"G",0,function(e,t){if(t.ok)return{state:"ok",failStreak:0};let n=e+1;return{state:n>=3?"err":"warn",failStreak:n}}])},887103,e=>{let t=/^([A-Za-z_:][A-Za-z0-9_:]*)(\{.*\})?\s+(\S+)(?:\s+-?\d+)?\s*$/,n=e=>e.length?e.reduce((e,t)=>e+t.value,0):null,a=["pg_settings_max_connections","pg_max_connections"],r=new Set(["rootfs","tmpfs","overlay","squashfs","devtmpfs"]),s=e=>Math.round(10*e)/10,o=e=>Math.min(100,Math.max(0,e)),l=(e,t)=>null!==e&&null!==t&&t>0?s(o(e/t*100)):null,i=(e,t,n)=>null===n?e:null===e||0===t?n:s((e*t+n)/(t+1)),u=(e,t)=>null===t?e:null===e?t:Math.max(e,t);e.s(["x",0,3,"B",0,function(e,t,n){if(!e||n.getTime()-new Date(e.at).getTime()>12e5)return null;let a=[],r=e.recent.filter(e=>n.getTime()-new Date(e.at).getTime()<=96e4),s=r.length?new Date(r[r.length-1].at).getTime()-new Date(r[0].at).getTime():0;r.length>=3&&s>=54e4&&r.every(e=>e.cpu>t.cpu)&&a.push(`CPU ${Math.round(Math.min(...r.map(e=>e.cpu)))}%+ for 15 min (limit ${t.cpu}%)`),null!==e.memPct&&e.memPct>t.ram&&a.push(`RAM ${Math.round(e.memPct)}% (limit ${t.ram}%)`),null!==e.diskPct&&e.diskPct>t.disk&&a.push(`disk ${Math.round(e.diskPct)}% (limit ${t.disk}%)`);let o=l(e.connUsed,e.connMax);return null!==o&&o>t.conn&&a.push(`connections ${e.connUsed} of ${e.connMax} (limit ${t.conn}%)`),a},"V",0,e=>{let t=e??80;return{cpu:t,ram:Math.min(99,t+10),disk:t,conn:t}},"c",0,function(e,t){let s=t&&e.some(e=>e.labels.supabase_identifier===t)?e.filter(e=>void 0===e.labels.supabase_identifier||e.labels.supabase_identifier===t):e,o=e=>s.filter(t=>t.name===e&&Number.isFinite(t.value)),l=o("node_cpu_seconds_total"),i=n(l),u=n(l.filter(e=>"idle"===e.labels.mode)),d=e=>o(e)[0]?.value??null,c=e=>{let t=o(e).filter(e=>!r.has(e.labels.fstype??""));return(t.find(e=>"/data"===e.labels.mountpoint)??t.find(e=>"/"===e.labels.mountpoint)??null)?.value??null};return{cpu:null!==i&&null!==u?{busy:i-u,total:i}:null,memTotal:d("node_memory_MemTotal_bytes"),memAvailable:d("node_memory_MemAvailable_bytes"),diskSize:c("node_filesystem_size_bytes"),diskAvail:c("node_filesystem_avail_bytes"),backends:n(o("pg_stat_database_num_backends")),maxConnections:a.map(d).find(e=>null!==e)??null}},"b",0,e=>new Date(36e5*Math.floor(e.getTime()/36e5)),"n",0,function(e,t){let n=e??{samples:0,cpuSamples:0,cpuAvg:null,cpuMax:null,memAvg:null,memMax:null,diskPct:null,connUsed:null,connMax:null},a=null===n.memAvg?0:n.samples;return{samples:n.samples+1,cpuSamples:n.cpuSamples+ +(null!==t.cpuPct),cpuAvg:i(n.cpuAvg,n.cpuSamples,t.cpuPct),cpuMax:u(n.cpuMax,t.cpuPct),memAvg:i(n.memAvg,a,t.memPct),memMax:u(n.memMax,t.memPct),diskPct:t.diskPct??n.diskPct,connUsed:u(n.connUsed,t.connUsed),connMax:t.connMax??n.connMax}},"E",0,function(e,t,n){var a;let r=n.toISOString(),i=(a=e?.prev,{cpuPct:function(e,t){if(!e||!t)return null;let n=new Date(t.at).getTime()-new Date(e.at).getTime();if(!(n>0)||n>18e5)return null;let a=t.total-e.total,r=t.busy-e.busy;return a<=0||r<0?null:s(o(r/a*100))}(a,t.cpu?{at:r,...t.cpu}:null),memPct:null!==t.memTotal&&null!==t.memAvailable?l(t.memTotal-t.memAvailable,t.memTotal):null,diskPct:null!==t.diskSize&&null!==t.diskAvail?l(t.diskSize-t.diskAvail,t.diskSize):null,connUsed:null===t.backends?null:Math.round(t.backends),connMax:null===t.maxConnections?null:Math.round(t.maxConnections)}),u=(e?.recent??[]).filter(e=>n.getTime()-new Date(e.at).getTime()<=24e5);return null!==i.cpuPct&&u.push({at:r,cpu:i.cpuPct}),{...i,at:r,prev:t.cpu?{at:r,...t.cpu}:null,recent:u.slice(-8)}},"a",0,function(e){let n=[];for(let r of e.split("\n")){var a;let e=r.trim();if(!e||e.startsWith("#"))continue;let s=t.exec(e);if(!s)continue;let o=s[2]?function(e){let t={},n=1,a=e.length-1;for(;n<a;){for(;n<a&&(","===e[n]||" "===e[n]);)n++;if(n>=a)break;let r=e.indexOf("=",n);if(r<0)return null;let s=e.slice(n,r).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(s)||'"'!==e[r+1])return null;let o=r+2,l="";for(;o<a;o++){let t=e[o];if("\\"===t){let t=e[o+1];l+="n"===t?"\n":t,o++}else if('"'===t)break;else l+=t}if('"'!==e[o])return null;t[s]=l,n=o+1}return t}(s[2]):{};if(!o)continue;let l="NaN"===(a=s[3])?0/0:"+Inf"===a||"Inf"===a?1/0:"-Inf"===a?-1/0:Number(a);Number.isNaN(l)&&"NaN"!==s[3]||n.push({name:s[1],labels:o,value:l})}return n},"T",0,function(e,t){let n=e.getTime();return(null===t||!(n-t<27e4))&&(Math.floor(n/6e4)%5==0||null!==t&&n-t>=6e5)}])},516464,e=>{let t={cuHours:100,storageBytes:0x40000000,transferBytes:0x140000000,branches:10,scaleToZeroMin:5};function n(e){return e.disabled?{state:"err",label:"Suspended"}:"init"===e.state||e.pendingState&&e.pendingState!==e.state?{state:"build",label:"Starting"}:"active"===e.state?{state:"ok",label:"Active"}:"idle"===e.state?{state:"idle",label:"Idle"}:{state:"unknown",label:"Unknown"}}e.s(["a",0,t,"p",0,function(e){if((e.computeSeconds??0)>=3600*t.cuHours)return{state:"err",label:"CU-hours used up"};if(!e.endpoints.length)return{state:"unknown",label:"No compute"};let a=e.endpoints.map(n);return a.some(e=>"err"===e.state)?{state:"err",label:"Compute suspended"}:a.some(e=>"ok"===e.state)?{state:"ok",label:"Active"}:a.some(e=>"build"===e.state)?{state:"build",label:"Starting"}:a.every(e=>"idle"===e.state)?{state:"idle",label:"Idle"}:{state:"unknown",label:"Unknown"}}])},788264,e=>{var t=e.i(492973),n=e.i(260417),a=e.i(75064),r=e.i(246517),s=e.i(909592);let o=t.z.string().nullable().optional(),l=n.z.number().nullable().optional(),i=t.z.string().nullable().optional(),u=a.z.object({status:t.z.string().optional(),region:i,pgVersion:i,orgSlug:i,freeOrg:r.z.boolean().nullable().optional(),pausedBeforeSeen:r.z.boolean().optional(),lastGoodState:t.z.string().optional(),lastTrafficAt:o,trafficAt:o,trafficError:i,health:s.z.array(a.z.object({name:t.z.string(),status:t.z.string()})).nullable().optional(),healthAt:o,healthError:i,sizeBytes:l,sizeAt:o,sizeError:i}),d=a.z.object({id:t.z.string(),branchId:t.z.string(),state:t.z.string(),pendingState:t.z.string().nullable(),disabled:r.z.boolean(),minCu:n.z.number(),maxCu:n.z.number(),lastActive:t.z.string().nullable()}),c=a.z.object({id:t.z.string(),name:t.z.string(),isDefault:r.z.boolean(),logicalSize:n.z.number().nullable()}),m=a.z.object({region:i,pgVersion:n.z.number().nullable().optional(),orgId:i,computeSeconds:l,transferBytes:l,periodStart:o,periodEnd:o,activeSeconds:l,endpoints:s.z.array(d).optional(),branches:s.z.array(c).optional(),lastGoodState:t.z.string().optional()}),p=a.z.object({displayName:i,latencyMs:l,pingError:i,pingReason:i,pingKind:i,reads:l,writes:l,deletes:l,opsAt:o,opsError:i,authUsers:l,authAt:o,authError:i,lastGoodState:t.z.string().optional()}),f=a.z.object({org:i,group:i,primaryRegion:i,plan:i,blockReads:r.z.boolean().optional(),blockWrites:r.z.boolean().optional(),rowsRead:l,rowsWritten:l,storageBytes:l,orgRowsRead:l,orgRowsWritten:l,orgStorageBytes:l,orgDatabases:l,usageAt:o,usageError:i,lastGoodState:t.z.string().optional()}),g=a.z.object({region:i,status:i,type:i,dailyCommands:l,monthlyRequests:l,storageBytes:l,monthlyBandwidthBytes:l,statsAt:o,statsError:i,lastGoodState:t.z.string().optional()}),h=a.z.object({accountId:i,createdAt:o,sizeBytes:l,numTables:l,readReplication:i,detailsAt:o,detailsError:i,rowsRead:l,rowsWritten:l,readQueries:l,writeQueries:l,accountRowsRead:l,accountRowsWritten:l,accountSizeBytes:l,accountDatabases:l,usageDay:i,usageAt:o,usageError:i,lastGoodState:t.z.string().optional()});e.s(["x",0,h,"w",0,p,"s",0,m,"k",0,function(e,t){if(!t||"object"!=typeof t)return{};let n={};for(let[a,r]of Object.entries(e.shape)){let e=t[a];if(void 0===e)continue;let s=r.safeParse(e);s.success&&(n[a]=s.data)}return n},"B",0,u,"N",0,f,"e",0,g])},88316,e=>{let t={ACTIVE_HEALTHY:["ok","Active healthy"],ACTIVE_UNHEALTHY:["warn","Active unhealthy"],INACTIVE:["paused","Paused"],RESTORING:["build","Restoring"],COMING_UP:["build","Starting"],PAUSING:["build","Pausing"],GOING_DOWN:["build","Pausing"],RESTARTING:["build","Restarting"],UPGRADING:["build","Upgrading"],RESIZING:["build","Resizing"],RESTORE_FAILED:["err","Restore failed"],PAUSE_FAILED:["err","Pause failed"],INIT_FAILED:["err","Setup failed"],REMOVED:["off","Removed"]},n=e=>"INACTIVE"!==e&&"REMOVED"!==e;e.s(["R",0,524288e3,"e",0,7,"_",0,function(e){let t=e.filter(e=>!1!==e.freeOrg&&n(e.status));return{used:t.length,total:2,left:Math.max(0,2-t.length),planUnknown:e.some(e=>null===e.freeOrg)}},"H",0,function(e){return e.filter(e=>e.total>0).reduce((e,t)=>!e||t.at>e?t.at:e,null)},"z",0,function(e){return!("ACTIVE_HEALTHY"!==e.status||!e.lastTrafficAt||e.now.getTime()-e.lastTrafficAt.getTime()>864e5)&&(!e.sizeAt||e.now.getTime()-e.sizeAt.getTime()>=828e5)},"P",0,function(e){let[n,a]=t[e]??["unknown","Unknown"];return{state:n,label:a}},"Z",0,n])},164617,e=>{var t=e.i(728335);e.s(["G",0,20,"H",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}$/.test(e.lastError)?e.lastError:null},"X",0,function(e){return e.ok?`Answered ${e.statusCode} in ${e.latencyMs} ms.`:`Failed: ${e.error??"no answer"}.`},"i",0,function(e){return!e.paused&&!e.ownerPaused},"T",0,function(e,n){let a=`Checked ${(0,t.ago)(e.lastCheckedAt,n)}`;return e.lastError?`${a}: failed (${e.lastError}).`:e.lastStatus!==e.expectedStatus?`${a}: failed (${null===e.lastStatus?"no answer":`HTTP ${e.lastStatus}`}).`:null===e.lastLatencyMs?`${a}: ${e.lastStatus}.`:`${a}: ${e.lastStatus} in ${e.lastLatencyMs} ms.`},"S",0,function(e){if(e<=0)return null;let t=1===e;return`${e} app${t?"":"s"} ${t?"is":"are"} over the 20-monitor limit, so ${t?"its monitor stays":"their monitors stay"} paused. Pause or delete one, then resume ${t?"it":"them"} on Uptime.`},"Y",0,function(e){return e.filter(e=>e.paused&&!e.ownerPaused).map(e=>e.id)}])},292178,e=>{function t(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if("string"!=typeof e||!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function n(e,t){return e?Math.floor((e.getTime()-t.getTime())/864e5):null}let a=e=>e.toLowerCase().replace(/\.$/,""),r=e=>a(e).endsWith(".vercel.app"),s=["76.76.21.21"],o=/(^|\.)vercel-dns(-\d+)?\.com$/;function l(e,t=[]){return"CNAME"===e.type?o.test(a(e.content)):"A"===e.type&&[...s,...t].includes(e.content.trim())}let i=e=>e.includes("err")?"err":e.includes("warn")?"warn":"ok",u=e=>`${e} day${1===e?"":"s"}`;function d(e,t,a,r){let s=n(t,r);return null===s?null:s<0?{state:"err",reason:`${e} expired ${u(-s)} ago`}:s<a?{state:"warn",reason:`${e} expires in ${u(s)}`}:null}e.s(["H",0,10,"g",0,n,"k",0,function(e,n){let a=[];if(e.vercel?.misconfigured&&a.push({state:"warn",reason:"Vercel says the DNS is misconfigured"}),r(e.host))return{state:i(a.map(e=>e.state)),reasons:a.map(e=>e.reason)};if(!e.tls&&!e.vercel&&!e.records.length)return{state:"unknown",reasons:[]};if(e.tls?.error)a.push({state:"warn",reason:`TLS check failed: ${e.tls.error}`});else if(e.tls){let r=d("Certificate",t(e.tls.notAfter),14,n);r?a.push(r):!1===e.tls.authorized&&a.push({state:"err",reason:"Certificate isn't trusted"})}(function(e,t=[]){return e.filter(e=>e.proxied&&l(e,t))})(e.records,e.vercel?.recommendedIps??[]).length&&a.push({state:"warn",reason:"Proxied by Cloudflare in front of Vercel"});let s=d("Domain",t(e.zoneRdap?.expiresAt),30,n);return s&&a.push(s),{state:i(a.map(e=>e.state)),reasons:a.map(e=>e.reason)}},"Y",0,function(e,n){let a=t(e);return!a||n.getTime()-a.getTime()>=72e6},"e",0,r,"Z",0,t,"n",0,function(e){let{prev:t,next:n}=e;if(null===t||"unknown"===t||t===n||"unknown"===n)return null;let a={resourceId:e.resourceId,type:"system",at:e.at};return"ok"===n?{...a,reason:"NetworkRecovered",kind:"ok",message:`${e.name} is fine again`,detail:null}:{...a,reason:"NetworkAttention",kind:n,message:`${e.name} needs attention`,detail:e.reasons.join(" · ")||null}},"l",0,l,"Q",0,function(e,t){let n=a(e);return t.filter(e=>a(e.name)===n)},"J",0,function(e,t){let n=a(e);return t.map(a).filter(e=>n===e||n.endsWith(`.${e}`)).sort((e,t)=>t.length-e.length)[0]??null},"G",0,function(e,n){if(!e.status)return{state:"unknown",reasons:[]};let a=[];"moved"===e.status?a.push({state:"err",reason:"The zone moved away from Cloudflare"}):"active"!==e.status&&a.push({state:"warn",reason:`Zone is ${e.status}`}),e.paused&&a.push({state:"warn",reason:"Cloudflare is paused for this zone"});let r=d("Domain",t(e.rdap?.expiresAt),30,n);return r&&a.push(r),{state:i(a.map(e=>e.state)),reasons:a.map(e=>e.reason)}}])},412948,e=>{var t=e.i(728335);function n(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}e.s(["m",0,function(e,t){for(let e of t)try{let t=new URL(e);if("https:"!==t.protocol&&"http:"!==t.protocol||!t.host)continue;return t.host}catch{}return`${e}.vercel.app`},"F",0,function(e){try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},"$",0,function(e,a){if(!e)return"—";if("building"===e.state)return`building ${function(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${String(t%60).padStart(2,"0")}s`:`${Math.floor(n/60)}h ${String(n%60).padStart(2,"0")}m`}(a.getTime()-(e.buildingAt??e.createdAt).getTime())}`;let r=e.readyAt??e.createdAt;return"error"===e.state?`failed ${(0,t.sameDay)(r,a)?(0,t.clock)(r):n(r,a)}`:"canceled"===e.state?`canceled ${n(r,a)}`:n(r,a)},"C",0,e=>null===e?"—":`${(Math.floor(100*e+1e-6)/100).toFixed(2)}%`,"_",0,e=>e?e.slice(0,7):"—"])}]})();
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_03qlijpos6a21._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[26972,e=>{var t=e.i(954757);e.s(["z",0,t])},427221,e=>{var t=e.i(954757);e.s(["z",0,t])},827857,899370,e=>{var t=e.i(954757);e.s(["z",0,t],827857),e.s(["z",0,t],899370)},835135,e=>{var t=e.i(954757);e.s(["z",0,t])},462820,e=>{e.s(["X",0,{proposedBy:e=>e,auditPrefix:"Auto-actions: ",autoRunSaved:"Auto-actions saved.",settingsAudit:{autoRun:"Settings: auto-run changed",autoRollback:"Settings: auto-rollback changed",autoSecurity:"Settings: automatic security fixes changed"},telegramDecided:(e,t)=>`Proposal ${e} from Telegram: ${t}`,approvalsOff:"Approval buttons are off. Notices keep their link to Auto-actions.",notifyFallback:{en:"Watchbell",id:"Watchbell"},logTag:"auto-actions"},"I",0,{overviewSub:"Apps and agents call Watchbell with their own console keys. Gemini CLI, OpenClaw and other MCP clients read the console over MCP; an API provider you connect (Gemini) answers chat completions. Watchbell applies each key's limit and shows who is calling.",overviewNoProvider:", or connect an agent over MCP.",promptHint:"Paste this into Gemini CLI, OpenClaw or another agent so it knows how to reach Watchbell.",connectHint:"Gemini CLI, OpenClaw and other MCP clients: config snippets, the tools they get and the automation prompts.",clientExamples:"gemini-cli, openclaw",modelsReadFailed:"reading the agent models failed",defaultModelReadFailed:"reading the agent default model failed",palette:{connectKeywords:[]}},"J",0,{empty:"Ask one above, or from an app's Why dialog. Answers come from your AI providers. Questions are kept 7 days.",agModelSuffix:" (agent)",waiting:"Waiting for an answer…",hint:"Answers come from your AI providers, here in a few seconds. Kept 7 days."},"B",0,{noProvider:"No AI provider is connected. Connect one under AI Gateway › Bring your own key.",queuedAudit:e=>`Question for the agent queued: ${e}`,alreadyWaiting:"That question is already waiting for the agent.",sentApp:"Sent. The agent answers the next time it checks in; the answer shows here and on AI › Ask.",sentGeneral:"Sent. The agent answers the next time it checks in.",tooMany:e=>`${e} questions are already waiting for the agent. Let it answer some first.`},"C",0,{agentTitle:e=>`An agent is connected over MCP (${e} model${1===e?"":"s"}).`,agentBody:"Ask, the Playground and POST /api/v1/ai/questions go to the agent. Only real-time /api/v1/ai/chat needs a provider.",noneBody:"Calls to /api/v1/ai answer 503 provider_not_connected, and Ask AI and summaries need a provider too. MCP still works.",infoAgentTitle:"An agent is connected over MCP; a provider here is only for instant answers.",infoAgentBody:"Connect Gemini or Workers AI if you want answers in seconds (real-time /api/v1/ai/chat). Ask and the Playground already work through the agent.",infoBody:"Agents over MCP work without one. Connect Gemini or Workers AI for answers in seconds (Ask AI, the Why dialog, summaries)."},"K",0,{prApproved:"This PR was opened by Watchbell after the owner approved the **Open package update PR** proposal in Watchbell.",cardProposes:"Auto-actions propose an update pull request for high and critical ones.",lockfileIntro:"Update PRs get their package-lock.json from a GitHub Actions run in your own small repository (free; runs on GitHub, install scripts off). Set it up once:",githubWriteDetail:"Contents and Pull requests write are used only when you approve a PR in Auto-actions"},"S",0,{env:[]},"n",0,{notSet:(e,t=!1)=>`${e} ${t?"aren't":"isn't"} set in app/.env (restart Watchbell after adding ${t?"them":"it"}).`,setting:"a setting in app/.env",keyHome:"app/.env (OPS_ENCRYPTION_KEY)",checkWhere:"in app/.env",apply:"restart Watchbell"},"D",0,{writeNotesLong:"Off unless you tick it. Lets an agent post AI notes (MCP tool submit_ai_note) that show on Overview and the app page, and answer the questions you ask with Ask AI (MCP tool answer_question). It can't write anything else.",pinMessage:"Only Gemini models (names starting with gemini), or a model of this custom provider (listed or added on Models).",namePlaceholder:"my-agent"},"U",0,{noteSource:"gemini-cli",modelsAgSentence:"",agModelExamples:[],askAgSentence:" An agent model (ag/<id>, listed only while an agent reports its models) is queued for that agent instead: 202 pending, poll pollUrl until status is answered or expired (at most 20 wait, 429 quota_exceeded).",queued:"Queued for an agent (an ag/<id> model; or the same question from this key was already waiting). Poll pollUrl.",answeredByAgent:"an agent",answeredByClient:"gemini-cli/1.0",adviceAgent:"an agent such as Gemini CLI",mcpClients:"Gemini CLI, OpenClaw and others",advisorExample:{name:"Assistant prompt from another app",system:"You are a release assistant for a small team. Answer in two short paragraphs.",user:"Which of my apps should I look at first this morning?"},adviceFor:"Ask"},"T",0,{hint:"via an agent · ~10–40 s",subAgent:"Try a model with your owner session. Provider models answer in seconds and nothing is stored. Agent models answer through the AI inbox in about 10–40 s; those questions also show on AI › Ask.",giveUp:"No answer after 10 minutes. It will still show on AI › Ask when the agent answers.",emptyAnswer:"(The agent answered without text.)",answerMeta:(e,t)=>`${e} \xb7 agent \xb7 ${t} s`,expired:"The agent didn't answer this question in time.",notTaken:"The agent didn't take the question. Try again.",groupLabel:"Agent",sending:"Sending to the agent…",thinking:"The agent is thinking…",howTitle:"How an agent answers",howBody:"Your question goes to the AI inbox; your agent checks it, reads the console over MCP and answers, usually in about 10–40 s."},"Y",0,{noGoogleModels:e=>`${e} answered but offers no Google text models (Gemini or Gemma).`,onlyGoogleOffered:"Only Google models (Gemini, Gemma on Workers AI) can be offered.",modelsLine:"Google only: gemini-* and Gemma (@cf/google/gemma-*) on Workers AI.",localUrl:"Outside self-host mode Watchbell can't reach your computer or network. Use a public https:// URL.",baseUrlHelp:{cloud:"HTTPS only. Must answer GET /models.",selfhost:"Any OpenAI-compatible server that answers GET /models. http:// on your own machine or network works too (for example Ollama at http://localhost:11434/v1)."},keyHelp:{cloud:"Encrypted before it's stored. Never shown again, never sent to the browser.",selfhostCustom:"Optional for a server on your own machine or network (Ollama, LM Studio). If you enter one, it's encrypted before it's stored and never shown again."},noKey:"No key"},"V",0,{sub:"Model work through Watchbell: calls to your own provider keys, and the runs your agents report over MCP. Token counts are the ones each source reports.",agentRequests:"agent runs",costAgents:"Agents: billed by their own plans",quotaTitle:"Agent quota (estimate)",quotaNote:"Estimate from runs Watchbell made. Use of the same account elsewhere isn't counted; the agent's own numbers are in its app.",emptyRecent:"Requests appear here once an app or an agent calls a model through Watchbell.",graphLabel:"Agents",graphSub:"reported over MCP",providerName:"Agent runs · reported over MCP",limitsAudit:"Agent quota estimates changed"},"s",0,{amount:"Free",note:"Self-hosting costs nothing: Watchbell runs on your own computer or server, with its own built-in database.",free:[["Your computer or server","The console and every check"],["Built-in database","No database account needed"],["Telegram","Alerts (optional)"],["Google Drive","Monthly backups (optional)"]],alertsStep:{text:"Set up alerts",href:"/alerts"}},"v",0,{ask:"Ask the agent",askAgain:"Ask the agent again",keptNote:"A question for the agent is kept for 7 days.",answeredFallback:"Agent",answerTitle:"The agent’s answer",expired:e=>`The last question to the agent (${e}) got no answer within 7 days.`,recConnect:"Connect a provider or an agent to get AI notes"}])},492665,68381,e=>{let t;var n=e.i(26972),o=e.i(835135),a=e.i(427221),s=e.i(61675),r=e.i(827857),i=e.i(899370),l=e.i(371289),d=e.i(462820);let u=(e=process.env)=>"production"!==e.NODE_ENV,h=/^(localhost|127\.0\.0\.1|\[::1\])$/i,c=e=>/^[123]x0{20}[A-Z]{2}$/.test(e.trim());function g(e){if(u(e))return[];let t=[];for(let n of(e.NEXT_PUBLIC_TURNSTILE_SITE_KEY&&c(e.NEXT_PUBLIC_TURNSTILE_SITE_KEY)&&t.push("NEXT_PUBLIC_TURNSTILE_SITE_KEY is a Cloudflare test key"),e.SITE_URL&&function(e){try{return h.test(new URL(e).hostname)}catch{return!1}}(e.SITE_URL)&&t.push("SITE_URL points at localhost"),d.S.env))e[n]&&t.push(`${n} is set (ignored in production)`);return t}e.s(["l",0,g,"F",0,u,"u",0,c],68381);let p=n.z.object({NEXT_PUBLIC_SUPABASE_URL:o.z.url(),NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY:a.z.string().min(20),SUPABASE_SECRET_KEY:a.z.string().min(20),DATABASE_URL:a.z.string().startsWith("postgres"),OPS_ENCRYPTION_KEY:a.z.string().refine(e=>32===Buffer.from(e,"base64").length,"must be 32 bytes, base64"),OWNER_EMAIL:s.z.email(),SITE_URL:o.z.url(),NEXT_PUBLIC_TURNSTILE_SITE_KEY:a.z.string().min(10)}),m=e=>r.z.union([i.z.literal(""),e]).default(""),w=p.extend({NEXT_PUBLIC_SUPABASE_URL:m(o.z.url()),NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY:m(a.z.string().min(20)),SUPABASE_SECRET_KEY:m(a.z.string().min(20)),DATABASE_URL:m(r.z.union([a.z.string().startsWith("postgres"),a.z.string().startsWith("pglite:")])),OWNER_EMAIL:m(s.z.email()),NEXT_PUBLIC_TURNSTILE_SITE_KEY:m(a.z.string().min(10))});e.s(["f",0,function(){return t??=function(e){let t=("cloud"===(0,l.c)(e)?p:w).safeParse(e);if(!t.success){let e=t.error.issues.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${e}`)}if("production"===e.NODE_ENV&&c(t.data.NEXT_PUBLIC_TURNSTILE_SITE_KEY))throw Error("Missing or invalid environment variables: NEXT_PUBLIC_TURNSTILE_SITE_KEY (a test key in production)");let n=g(e).filter(e=>!e.startsWith("NEXT_PUBLIC_TURNSTILE_SITE_KEY"));return n.length&&console.warn(`env: ${n.join("; ")}`),t.data}(process.env)}],492665)},371289,e=>{var t=e.i(159203);function n(e=process.env){let o=(0,t.N)(e,"MODE"),a=(o?.value??"").trim().toLowerCase();if(""===a)return"cloud";if("cloud"===a||"selfhost"===a||"demo"===a)return a;throw Error(`${o?.name??"WATCHBELL_MODE"} must be cloud, selfhost or demo`)}e.s(["r",0,()=>"cloud"===n(),"W",0,(e=process.env)=>"demo"===n(e),"c",0,n,"F",0,(e=process.env)=>"cloud"!==n(e)])}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[26972,e=>{var t=e.i(954757);e.s(["z",0,t])},427221,e=>{var t=e.i(954757);e.s(["z",0,t])},827857,899370,e=>{var t=e.i(954757);e.s(["z",0,t],827857),e.s(["z",0,t],899370)},835135,e=>{var t=e.i(954757);e.s(["z",0,t])},462820,e=>{e.s(["X",0,{proposedBy:e=>e,auditPrefix:"Auto-actions: ",autoRunSaved:"Auto-actions saved.",settingsAudit:{autoRun:"Settings: auto-run changed",autoRollback:"Settings: auto-rollback changed",autoSecurity:"Settings: automatic security fixes changed"},telegramDecided:(e,t)=>`Proposal ${e} from Telegram: ${t}`,approvalsOff:"Approval buttons are off. Notices keep their link to Auto-actions.",notifyFallback:{en:"Watchbell",id:"Watchbell"},logTag:"auto-actions"},"I",0,{overviewSub:"Apps and agents call Watchbell with their own console keys. Gemini CLI, OpenClaw and other MCP clients read the console over MCP; an API provider you connect (Gemini) answers chat completions. Watchbell applies each key's limit and shows who is calling.",overviewNoProvider:", or connect an agent over MCP.",promptHint:"Paste this into Gemini CLI, OpenClaw or another agent so it knows how to reach Watchbell.",connectHint:"Gemini CLI, OpenClaw and other MCP clients: config snippets, the tools they get and the automation prompts.",clientExamples:"gemini-cli, openclaw",modelsReadFailed:"reading the agent models failed",defaultModelReadFailed:"reading the agent default model failed",palette:{connectKeywords:[]}},"J",0,{empty:"Ask one above, or from an app's Why dialog. Answers come from your AI providers. Questions are kept 7 days.",agModelSuffix:" (agent)",waiting:"Waiting for an answer…",hint:"Answers come from your AI providers, here in a few seconds. Kept 7 days."},"B",0,{noProvider:"No AI provider is connected. Connect one under AI Gateway › Bring your own key.",queuedAudit:e=>`Question for the agent queued: ${e}`,alreadyWaiting:"That question is already waiting for the agent.",sentApp:"Sent. The agent answers the next time it checks in; the answer shows here and on AI › Ask.",sentGeneral:"Sent. The agent answers the next time it checks in.",tooMany:e=>`${e} questions are already waiting for the agent. Let it answer some first.`},"C",0,{agentTitle:e=>`An agent is connected over MCP (${e} model${1===e?"":"s"}).`,agentBody:"Ask, the Playground and POST /api/v1/ai/questions go to the agent. Only real-time /api/v1/ai/chat needs a provider.",noneBody:"Calls to /api/v1/ai answer 503 provider_not_connected, and Ask AI and summaries need a provider too. MCP still works.",infoAgentTitle:"An agent is connected over MCP; a provider here is only for instant answers.",infoAgentBody:"Connect Gemini or Workers AI if you want answers in seconds (real-time /api/v1/ai/chat). Ask and the Playground already work through the agent.",infoBody:"Agents over MCP work without one. Connect Gemini or Workers AI for answers in seconds (Ask AI, the Why dialog, summaries)."},"K",0,{prApproved:"This PR was opened by Watchbell after the owner approved the **Open package update PR** proposal in Watchbell.",cardProposes:"Auto-actions propose an update pull request for high and critical ones.",lockfileIntro:"Update PRs get their package-lock.json from a GitHub Actions run in your own small repository (free; runs on GitHub, install scripts off). Set it up once:",githubWriteDetail:"Contents and Pull requests write are used only when you approve a PR in Auto-actions"},"S",0,{env:[]},"n",0,{notSet:(e,t=!1)=>`${e} ${t?"aren't":"isn't"} set in your .env file (~/.watchbell/.env with npm, app/.env with the installers; restart Watchbell after adding ${t?"them":"it"}).`,setting:"a setting in your .env file (~/.watchbell/.env with npm, app/.env with the installers)",keyHome:"your .env file (OPS_ENCRYPTION_KEY; ~/.watchbell/.env with npm, app/.env with the installers)",checkWhere:"in your .env file (~/.watchbell/.env with npm, app/.env with the installers)",apply:"restart Watchbell"},"D",0,{writeNotesLong:"Off unless you tick it. Lets an agent post AI notes (MCP tool submit_ai_note) that show on Overview and the app page, and answer the questions you ask with Ask AI (MCP tool answer_question). It can't write anything else.",pinMessage:"Only Gemini models (names starting with gemini), or a model of this custom provider (listed or added on Models).",namePlaceholder:"my-agent"},"U",0,{noteSource:"gemini-cli",modelsAgSentence:"",agModelExamples:[],askAgSentence:" An agent model (ag/<id>, listed only while an agent reports its models) is queued for that agent instead: 202 pending, poll pollUrl until status is answered or expired (at most 20 wait, 429 quota_exceeded).",queued:"Queued for an agent (an ag/<id> model; or the same question from this key was already waiting). Poll pollUrl.",answeredByAgent:"an agent",answeredByClient:"gemini-cli/1.0",adviceAgent:"an agent such as Gemini CLI",mcpClients:"Gemini CLI, OpenClaw and others",advisorExample:{name:"Assistant prompt from another app",system:"You are a release assistant for a small team. Answer in two short paragraphs.",user:"Which of my apps should I look at first this morning?"},adviceFor:"Ask"},"T",0,{hint:"via an agent · ~10–40 s",subAgent:"Try a model with your owner session. Provider models answer in seconds and nothing is stored. Agent models answer through the AI inbox in about 10–40 s; those questions also show on AI › Ask.",giveUp:"No answer after 10 minutes. It will still show on AI › Ask when the agent answers.",emptyAnswer:"(The agent answered without text.)",answerMeta:(e,t)=>`${e} \xb7 agent \xb7 ${t} s`,expired:"The agent didn't answer this question in time.",notTaken:"The agent didn't take the question. Try again.",groupLabel:"Agent",sending:"Sending to the agent…",thinking:"The agent is thinking…",howTitle:"How an agent answers",howBody:"Your question goes to the AI inbox; your agent checks it, reads the console over MCP and answers, usually in about 10–40 s."},"Y",0,{noGoogleModels:e=>`${e} answered but offers no Google text models (Gemini or Gemma).`,onlyGoogleOffered:"Only Google models (Gemini, Gemma on Workers AI) can be offered.",modelsLine:"Google only: gemini-* and Gemma (@cf/google/gemma-*) on Workers AI.",localUrl:"Outside self-host mode Watchbell can't reach your computer or network. Use a public https:// URL.",baseUrlHelp:{cloud:"HTTPS only. Must answer GET /models.",selfhost:"Any OpenAI-compatible server that answers GET /models. http:// on your own machine or network works too (for example Ollama at http://localhost:11434/v1)."},keyHelp:{cloud:"Encrypted before it's stored. Never shown again, never sent to the browser.",selfhostCustom:"Optional for a server on your own machine or network (Ollama, LM Studio). If you enter one, it's encrypted before it's stored and never shown again."},noKey:"No key"},"V",0,{sub:"Model work through Watchbell: calls to your own provider keys, and the runs your agents report over MCP. Token counts are the ones each source reports.",agentRequests:"agent runs",costAgents:"Agents: billed by their own plans",quotaTitle:"Agent quota (estimate)",quotaNote:"Estimate from runs Watchbell made. Use of the same account elsewhere isn't counted; the agent's own numbers are in its app.",emptyRecent:"Requests appear here once an app or an agent calls a model through Watchbell.",graphLabel:"Agents",graphSub:"reported over MCP",providerName:"Agent runs · reported over MCP",limitsAudit:"Agent quota estimates changed"},"s",0,{amount:"Free",note:"Self-hosting costs nothing: Watchbell runs on your own computer or server, with its own built-in database.",free:[["Your computer or server","The console and every check"],["Built-in database","No database account needed"],["Telegram","Alerts (optional)"],["Google Drive","Monthly backups (optional)"]],alertsStep:{text:"Set up alerts",href:"/alerts"}},"v",0,{ask:"Ask the agent",askAgain:"Ask the agent again",keptNote:"A question for the agent is kept for 7 days.",answeredFallback:"Agent",answerTitle:"The agent’s answer",expired:e=>`The last question to the agent (${e}) got no answer within 7 days.`,recConnect:"Connect a provider or an agent to get AI notes"}])},492665,68381,e=>{let t;var n=e.i(26972),o=e.i(835135),a=e.i(427221),s=e.i(61675),r=e.i(827857),i=e.i(899370),l=e.i(371289),d=e.i(462820);let h=(e=process.env)=>"production"!==e.NODE_ENV,u=/^(localhost|127\.0\.0\.1|\[::1\])$/i,c=e=>/^[123]x0{20}[A-Z]{2}$/.test(e.trim());function g(e){if(h(e))return[];let t=[];for(let n of(e.NEXT_PUBLIC_TURNSTILE_SITE_KEY&&c(e.NEXT_PUBLIC_TURNSTILE_SITE_KEY)&&t.push("NEXT_PUBLIC_TURNSTILE_SITE_KEY is a Cloudflare test key"),e.SITE_URL&&function(e){try{return u.test(new URL(e).hostname)}catch{return!1}}(e.SITE_URL)&&t.push("SITE_URL points at localhost"),d.S.env))e[n]&&t.push(`${n} is set (ignored in production)`);return t}e.s(["l",0,g,"F",0,h,"u",0,c],68381);let p=n.z.object({NEXT_PUBLIC_SUPABASE_URL:o.z.url(),NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY:a.z.string().min(20),SUPABASE_SECRET_KEY:a.z.string().min(20),DATABASE_URL:a.z.string().startsWith("postgres"),OPS_ENCRYPTION_KEY:a.z.string().refine(e=>32===Buffer.from(e,"base64").length,"must be 32 bytes, base64"),OWNER_EMAIL:s.z.email(),SITE_URL:o.z.url(),NEXT_PUBLIC_TURNSTILE_SITE_KEY:a.z.string().min(10)}),m=e=>r.z.union([i.z.literal(""),e]).default(""),w=p.extend({NEXT_PUBLIC_SUPABASE_URL:m(o.z.url()),NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY:m(a.z.string().min(20)),SUPABASE_SECRET_KEY:m(a.z.string().min(20)),DATABASE_URL:m(r.z.union([a.z.string().startsWith("postgres"),a.z.string().startsWith("pglite:")])),OWNER_EMAIL:m(s.z.email()),NEXT_PUBLIC_TURNSTILE_SITE_KEY:m(a.z.string().min(10))});e.s(["f",0,function(){return t??=function(e){let t=("cloud"===(0,l.c)(e)?p:w).safeParse(e);if(!t.success){let e=t.error.issues.map(e=>e.path.join(".")).join(", ");throw Error(`Missing or invalid environment variables: ${e}`)}if("production"===e.NODE_ENV&&c(t.data.NEXT_PUBLIC_TURNSTILE_SITE_KEY))throw Error("Missing or invalid environment variables: NEXT_PUBLIC_TURNSTILE_SITE_KEY (a test key in production)");let n=g(e).filter(e=>!e.startsWith("NEXT_PUBLIC_TURNSTILE_SITE_KEY"));return n.length&&console.warn(`env: ${n.join("; ")}`),t.data}(process.env)}],492665)},371289,e=>{var t=e.i(159203);function n(e=process.env){let o=(0,t.N)(e,"MODE"),a=(o?.value??"").trim().toLowerCase();if(""===a)return"cloud";if("cloud"===a||"selfhost"===a||"demo"===a)return a;throw Error(`${o?.name??"WATCHBELL_MODE"} must be cloud, selfhost or demo`)}e.s(["r",0,()=>"cloud"===n(),"W",0,(e=process.env)=>"demo"===n(e),"c",0,n,"F",0,(e=process.env)=>"cloud"!==n(e)])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_09l75j3ey14tc._.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[776544,e=>{var t=e.i(861600),n=e.i(294965),r=e.i(598513);e.S([t,"40c832c1cb4d08de607f7c28ebd8c12c81db13d5de,f",0,n,"005bca3b321fa1689d5e5022bbb4f13ad091eb8bea,E,40d3db7aac69b6369d24b322149c324656bd616aeb,T,40ffef108c2dcbae5506a4b1db680dd6650d90942d,G",0,r,"400377fe21a6e6d6b06833a94a049e9d003540bb29,m,405da22bdf65979e2100290e7e2499d92481b1bd20,F,4076334e1d31fb13874692fd64c8df0d88522f791d,G"],776544)},713095,(e,t,n)=>{function r(e){for(let t=0;t<e.length;t++){let n=e[t];if("function"!=typeof n)throw Error(`A "use server" file can only export async functions, found ${typeof n}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ensureServerEntryExports",{enumerable:!0,get:function(){return r}})},137936,(e,t,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"registerServerReference",{enumerable:!0,get:function(){return r.registerServerReference}});let r=e.r(211857)},502330,e=>{let t="You are the assistant inside Watchbell, a console that monitors the owner's web apps. Answer only from the data in the user's message. Say so plainly when the data does not cover the question. Never invent names, numbers, dates or causes. Names such as db-a or account-1 are aliases of private names: use them as written and do not guess what they stand for. Be brief and concrete. Short markdown is fine; no HTML.";function n(e,t=300){let r=String(e??"").replace(/[a-z][a-z0-9+.-]*:\/\/\S*/gi,"[url]").replace(/\b(?:wp|hb)_[A-Za-z0-9]{6,}/g,"[secret]").replace(/\b(?:sk-|gsk_|AIza|AQ\.)[A-Za-z0-9_.-]{6,}/g,"[secret]").replace(/postgres(?:ql)?/gi,"[db]").replace(/@/g,"(at)").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t-1)}…`:r}function r(e){let t=[`App: ${n(e.id,80)}`,`State: ${n(e.state,20)}`,`Uptime, last 30 days: ${null===e.uptime30d?"unknown":`${Math.round(100*e.uptime30d)/100}%`}`,`Database: ${e.database?n(e.database,40):"none"}`,`Last deploy: ${e.lastDeploy?n(e.lastDeploy,40):"unknown"}`];return e.problems.length?(t.push("Problems:"),e.problems.slice(0,10).forEach((e,r)=>{t.push(`${r+1}. [${n(e.kind,30)}] ${n(e.where,120)}: ${n(e.what)}${e.fix?` What the console suggests: ${n(e.fix)}`:""}`)})):t.push("Problems: none reported."),t}e.s(["o",0,t,"R",0,function(e){let t=[`Why is the app "${n(e.id,80)}" ${n(e.state,20)}, and what should the owner do first? Answer in short markdown (under 1,500 characters), only from this data; say so if it does not cover the cause.`,"",...r(e)].join("\n");return t.length>2e3?`${t.slice(0,1999)}…`:t},"u",0,function(e,r){let s=JSON.stringify(function e(t,r=0){return"string"==typeof t?n(t):r>4?null:Array.isArray(t)?t.slice(0,50).map(t=>e(t,r+1)):t&&"object"==typeof t?Object.fromEntries(Object.entries(t).slice(0,30).map(([t,s])=>[n(t,40),e(s,r+1)])):"number"==typeof t||"boolean"==typeof t||null===t?t:null}(e),null,1);return[{role:"system",content:t},{role:"user",content:`Console data (scrubbed, generated ${n(e.generatedAt,40)}):
|
|
3
|
+
${s}
|
|
4
|
+
|
|
5
|
+
Question: ${n(r,2e3)}`}]},"O",0,n,"N",0,function(e){let r=e.slice(0,40).map(e=>`- [${n(e.severity,20)}] ${n(e.title)} (app: ${n(e.app,80)})`);return[{role:"system",content:t},{role:"user",content:[`Summarise these ${e.length} recommendations in two or three sentences, most urgent first. Name each app once.`,"",...r].join("\n")}]},"r",0,function(e){return[{role:"system",content:t},{role:"user",content:["Explain in at most five sentences what is likely going on with this app and what to do first.","",...r(e)].join("\n")}]}])}]})();
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=_0a7533vs89s78._.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module.exports=[[132245,(e,t,r)=>{function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var o=i?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}},738458,(e,t,r)=>{let s;Object.defineProperty(r,"__esModule",{value:!0}),r.parseCookie=h,r.parse=h,r.stringifyCookie=function(e,t){let r=t?.encode||encodeURIComponent,s=[];for(let t of Object.keys(e)){let a=e[t];if(void 0===a)continue;if(!n.test(t))throw TypeError(`cookie name is invalid: ${t}`);let o=r(a);if(!i.test(o))throw TypeError(`cookie val is invalid: ${a}`);s.push(`${t}=${o}`)}return s.join("; ")},r.stringifySetCookie=d,r.serialize=d,r.parseSetCookie=function(e,t){let r=t?.decode||g,s=e.length,n=p(e,0,s),i=f(e,0,n),a=-1===i?{name:"",value:r(m(e,0,n))}:{name:m(e,0,i),value:r(m(e,i+1,n))},o=n+1;for(;o<s;){let t=p(e,o,s),r=f(e,o,t),n=-1===r?m(e,o,t):m(e,o,r),i=-1===r?void 0:m(e,r+1,t);switch(n.toLowerCase()){case"httponly":a.httpOnly=!0;break;case"secure":a.secure=!0;break;case"partitioned":a.partitioned=!0;break;case"domain":a.domain=i;break;case"path":a.path=i;break;case"max-age":i&&l.test(i)&&(a.maxAge=Number(i));break;case"expires":if(!i)break;let c=new Date(i);Number.isFinite(c.valueOf())&&(a.expires=c);break;case"priority":if(!i)break;let u=i.toLowerCase();("low"===u||"medium"===u||"high"===u)&&(a.priority=u);break;case"samesite":if(!i)break;let h=i.toLowerCase();("lax"===h||"strict"===h||"none"===h)&&(a.sameSite=h)}o=t+1}return a},r.stringifySetCookie=d,r.serialize=d;let n=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,i=/^[\u0021-\u003A\u003C-\u007E]*$/,a=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,o=/^[\u0020-\u003A\u003D-\u007E]*$/,l=/^-?\d+$/,c=Object.prototype.toString,u=((s=function(){}).prototype=Object.create(null),s);function h(e,t){let r=new u,s=e.length;if(s<2)return r;let n=t?.decode||g,i=0;do{let t=f(e,i,s);if(-1===t)break;let a=p(e,i,s);if(t>a){i=e.lastIndexOf(";",t-1)+1;continue}let o=m(e,i,t);void 0===r[o]&&(r[o]=n(m(e,t+1,a))),i=a+1}while(i<s)return r}function d(e,t,r){let s="object"==typeof e?e:{...r,name:e,value:String(t)},l=("object"==typeof t?t:r)?.encode||encodeURIComponent;if(!n.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let u=s.value?l(s.value):"";if(!i.test(u))throw TypeError(`argument val is invalid: ${s.value}`);let h=s.name+"="+u;if(void 0!==s.maxAge){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);h+="; Max-Age="+s.maxAge}if(s.domain){if(!a.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);h+="; Domain="+s.domain}if(s.path){if(!o.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);h+="; Path="+s.path}if(s.expires){var d;if(d=s.expires,"[object Date]"!==c.call(d)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);h+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(h+="; HttpOnly"),s.secure&&(h+="; Secure"),s.partitioned&&(h+="; Partitioned"),s.priority)switch("string"==typeof s.priority?s.priority.toLowerCase():void 0){case"low":h+="; Priority=Low";break;case"medium":h+="; Priority=Medium";break;case"high":h+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch("string"==typeof s.sameSite?s.sameSite.toLowerCase():s.sameSite){case!0:case"strict":h+="; SameSite=Strict";break;case"lax":h+="; SameSite=Lax";break;case"none":h+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return h}function p(e,t,r){let s=e.indexOf(";",t);return -1===s?r:s}function f(e,t,r){let s=e.indexOf("=",t);return s<r?s:-1}function m(e,t,r){let s=t,n=r;do{let t=e.charCodeAt(s);if(32!==t&&9!==t)break}while(++s<n)for(;n>s;){let t=e.charCodeAt(n-1);if(32!==t&&9!==t)break;n--}return e.slice(s,n)}function g(e){if(-1===e.indexOf("%"))return e;try{return decodeURIComponent(e)}catch(t){return e}}},63493,e=>{var t=e.i(31194);e.n(t)},133791,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return l},useLinkStatus:function(){return o.useLinkStatus}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(132245),a=e.r(133210),o=i._(e.r(63493));function l(e){let t=e.legacyBehavior,r="string"==typeof e.children||"number"==typeof e.children||"string"==typeof e.children?.type,s=e.children?.type?.$$typeof===Symbol.for("react.client.reference");return!t||r||s||(e.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,a.jsx)(o.default,{...e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},385585,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"after",{enumerable:!0,get:function(){return i}});let s=e.r(556704),n=e.r(832319);function i(e){let t=s.workAsyncStorage.getStore(),r=n.workUnitAsyncStorage.getStore();if(!t||!r)throw Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context");let{afterContext:i}=t;return i.after(e,r)}},910473,(e,t,r)=>{var s,n;Object.defineProperty(r,"__esModule",{value:!0}),s=e.r(385585),n=r,Object.keys(s).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:function(){return s[e]}})})},476550,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"connection",{enumerable:!0,get:function(){return h}});let s=e.r(556704),n=e.r(832319),i=e.r(258200),a=e.r(183589),o=e.r(225176),l=e.r(679847);e.r(865832);let c=e.r(585346),u=e.r(748448);function h(){let e=s.workAsyncStorage.getStore(),t=n.workUnitAsyncStorage.getStore();if(e){if(t&&!(0,l.isRequestApiAllowedInCurrentPhase)(t))throw Error(`Route ${e.route} used \`connection()\` inside \`after()\` while rendering. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`);if(e.forceStatic)return Promise.resolve(void 0);if(e.dynamicShouldError)throw new a.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);if(t)switch(t.type){case"cache":{let t=(0,u.createConnectionInPublicUseCacheError)(e.route);throw Error.captureStackTrace(t,h),(0,o.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"private-cache":{let t=(0,u.createConnectionInPrivateUseCacheError)(e.route);throw Error.captureStackTrace(t,h),(0,o.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"unstable-cache":throw(0,u.createConnectionInUnstableCacheError)(e.route);case"build-time-generator":throw Error(`Route ${e.route} used \`connection()\` inside \`${t.functionName}\`. This is not supported because \`${t.functionName}\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`);case"prerender":case"prerender-client":case"prerender-runtime":return(0,o.makeDynamicHangingPromise)(t.renderSignal,e.route,"`connection()`");case"validation-client":{let e="`connection`";throw new c.InvariantError(`${e} must not be used within a Client Component. Next.js should be preventing ${e} from being included in Client Components statically, but did not in this case.`)}case"prerender-legacy":return(0,i.throwToInterruptStaticGeneration)("connection",e,t);case"request":if((0,i.trackDynamicDataInDynamicRender)(t),t.asyncApiPromises)return t.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,n.throwForMissingRequestStore)("connection")}},133210,(e,t,r)=>{t.exports=e.r(307450).vendored["react-rsc"].ReactJsxRuntime},310086,(e,t,r)=>{t.exports=e.r(307450).vendored["react-rsc"].ReactServerDOMTurbopackServer},853702,(e,t,r)=>{function s(){throw Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead')}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageResponse",{enumerable:!0,get:function(){return s}})},628661,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextResponse",{enumerable:!0,get:function(){return h}});let s=e.r(86547),n=e.r(723866),i=e.r(287790),a=e.r(770956),o=e.r(86547),l=Symbol("internal response"),c=new Set([301,302,303,307,308]);function u(e,t){var r;if(null==e||null==(r=e.request)?void 0:r.headers){if(!(e.request.headers instanceof Headers))throw Error("request.headers must be an instance of Headers");let r=[];for(let[s,n]of e.request.headers)t.set("x-middleware-request-"+s,n),r.push(s);t.set("x-middleware-override-headers",r.join(","))}}class h extends Response{constructor(e,t={}){super(e,t);let r=this.headers,c=new Proxy(new o.ResponseCookies(r),{get(e,n,i){switch(n){case"delete":case"set":return(...i)=>{let a=Reflect.apply(e[n],e,i),l=new Headers(r);return a instanceof o.ResponseCookies&&r.set("x-middleware-set-cookie",a.getAll().map(e=>(0,s.stringifyCookie)(e)).join(",")),u(t,l),a};default:return a.ReflectAdapter.get(e,n,i)}}});this[l]={cookies:c,url:t.url?new n.NextURL(t.url,{headers:(0,i.toNodeOutgoingHttpHeaders)(r),nextConfig:t.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[l].cookies}static json(e,t){let r=Response.json(e,t);return new h(r.body,r)}static redirect(e,t){let r="number"==typeof t?t:(null==t?void 0:t.status)??307;if(!c.has(r))throw RangeError('Failed to execute "redirect" on "response": Invalid status code');let s="object"==typeof t?t:{},n=new Headers(null==s?void 0:s.headers);return n.set("Location",(0,i.validateURL)(e)),new h(null,{...s,headers:n,status:r})}static rewrite(e,t){let r=new Headers(null==t?void 0:t.headers);return r.set("x-middleware-rewrite",(0,i.validateURL)(e)),u(t,r),new h(null,{...t,headers:r})}static next(e){let t=new Headers(null==e?void 0:e.headers);return t.set("x-middleware-next","1"),u(e,t),new h(null,{...e,headers:t})}}},374644,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"URLPattern",{enumerable:!0,get:function(){return s}});let s="u"<typeof URLPattern?void 0:URLPattern},276870,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var s,n={isBot:function(){return o},userAgent:function(){return c},userAgentFromString:function(){return l}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=(s=e.r(547850))&&s.__esModule?s:{default:s};function o(e){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(e)}function l(e){return{...(0,a.default)(e),isBot:void 0!==e&&o(e)}}function c({headers:e}){return l(e.get("user-agent")||void 0)}},352565,e=>{var t=e.i(310086);(0,t.registerClientReference)(function(){throw Error("Attempted to call AliasProvider() from the server but AliasProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","AliasProvider"),(0,t.registerClientReference)(function(){throw Error("Attempted to call DbName() from the server but DbName is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","DbName"),(0,t.registerClientReference)(function(){throw Error("Attempted to call Masked() from the server but Masked is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","Masked");let r=(0,t.registerClientReference)(function(){throw Error("Attempted to call MaskedText() from the server but MaskedText is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","MaskedText");(0,t.registerClientReference)(function(){throw Error("Attempted to call Reveal() from the server but Reveal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","Reveal"),(0,t.registerClientReference)(function(){throw Error("Attempted to call maskedValue() from the server but maskedValue is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","maskedValue"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useAliasBook() from the server but useAliasBook is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","useAliasBook"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useMask() from the server but useMask is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","useMask"),(0,t.registerClientReference)(function(){throw Error("Attempted to call usePrivacy() from the server but usePrivacy is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/alias.tsx","usePrivacy"),e.s(["MaskedText",0,r])},639307,e=>{var t=e.i(352565);e.n(t)},455891,e=>{var t=e.i(336763),r=e.i(75064),s=e.i(492973),n=e.i(79322),i=e.i(909592),a=e.i(406212),o=e.i(530298),l=e.i(27479),c=e.i(728335);let u=e=>{let t=(0,c.calendarDate)(e);return`${t.day} ${t.month} ${t.year}`},h=c.dayKey;var d=e.i(857799),p=e.i(123076),f=e.i(70377),m=e.i(586307),g=e.i(827439);let b="advisor.latest",y=r.z.object({key:s.z.string(),severity:n.z.enum(["warning","info"]),appId:s.z.string().nullable(),subject:s.z.string(),title:s.z.string(),why:s.z.string(),fix:s.z.string(),href:s.z.string()}),w=r.z.object({at:s.z.string(),items:i.z.array(y)});async function v(e){let r=(0,t.and)((0,t.eq)(o.resources.kind,"app"),(0,t.eq)(o.resources.monitored,!0),(0,t.isNull)(o.resources.goneAt)),s=await (0,g.P)(),n=await (0,m.V)(),[i,c,u,h,b]=await Promise.all([(0,a.db)().select({id:o.monitors.id,appId:o.monitors.resourceId,appName:o.resources.name,url:o.monitors.url,kind:o.monitors.kind,name:o.monitors.name,paused:o.monitors.paused,ownerPaused:o.monitors.ownerPaused,lastStatus:o.monitors.lastStatus,expectedStatus:o.monitors.expectedStatus,lastPingAt:o.monitors.lastPingAt,createdAt:o.monitors.createdAt}).from(o.monitors).innerJoin(o.resources,(0,t.eq)(o.resources.id,o.monitors.resourceId)).where(r).orderBy(o.resources.name,o.monitors.url).limit(f.O.monitors),(0,a.db)().select({id:o.resources.id,name:o.resources.name,version:o.appSecurity.version}).from(o.resources).innerJoin(o.appSecurity,(0,t.eq)(o.appSecurity.resourceId,o.resources.id)).where(r).orderBy(o.resources.name).limit(f.O.apps),(0,a.db)().select({id:o.resources.id,name:o.resources.name,kind:o.resources.kind,accountId:o.resources.accountId,accountLabel:o.accounts.label,state:o.snapshots.state}).from(o.resources).innerJoin(o.accounts,(0,t.eq)(o.accounts.id,o.resources.accountId)).leftJoin(o.snapshots,(0,t.eq)(o.snapshots.resourceId,o.resources.id)).where((0,t.and)((0,t.inArray)(o.resources.kind,[...d.H]),(0,t.eq)(o.resources.monitored,!0),(0,t.isNull)(o.resources.goneAt))).orderBy(o.resources.name).limit(f.O.databases),(0,a.db)().select({appId:o.links.fromResourceId,dbId:o.links.toResourceId}).from(o.links).where((0,t.eq)(o.links.kind,"uses_db")).limit(f.O.apps),(0,a.db)().select({id:o.accounts.id,provider:o.accounts.provider,label:o.accounts.label,expiresAt:o.accounts.expiresAt,scopeNote:o.accounts.scopeNote}).from(o.accounts).orderBy(o.accounts.label).limit(200)]);return{now:e,monitors:i.map(e=>({id:e.id,appId:e.appId,appName:e.appName,path:"heartbeat"===e.kind?e.url:(0,l.K)(e.url),kind:e.kind,name:e.name,paused:e.paused||e.ownerPaused,lastStatus:e.lastStatus,expectedStatus:e.expectedStatus,lastPingAt:e.lastPingAt,createdAt:e.createdAt})),eol:function(e,t){if(!t)return null;let r=t.cycles.find(e=>!e.isEol)?.latest??null,s=[];for(let n of e){let e=n.version?.split(".")[0],i=e?t.cycles.find(t=>t.name===e):void 0;i&&s.push({appId:n.id,appName:n.name,cycle:i.name,eolFrom:i.eolFrom?new Date(`${i.eolFrom}T00:00:00Z`):null,latest:r})}return s}(c,s),headers:null,dbs:u.map(e=>({id:e.id,name:e.name,provider:(0,d.Z)(e.kind),accountId:e.accountId,accountLabel:e.accountLabel,state:e.state??"unknown"})),slots:(0,p.f)(n).map(e=>({account:e.account,used:e.used,total:e.total,planUnknown:e.planUnknown})),links:h,accounts:b}}async function k(e){let t=function(e){let t=[];for(let r of e.eol??[]){if(!r.eolFrom||r.eolFrom.getTime()-e.now.getTime()>2592e6)continue;let s=r.eolFrom.getTime()<=e.now.getTime(),n=r.latest?.split(".")[0];t.push({key:`next-eol:${r.appId}:${r.cycle}`,severity:"warning",appId:r.appId,subject:r.appName,title:`Next.js ${r.cycle} ${s?"reached":"reaches"} end of life on ${u(r.eolFrom)}`,why:`No security fixes after that date.${r.latest?` Latest is ${r.latest}.`:""}`,fix:n?`Upgrade to Next.js ${n}.`:"Upgrade Next.js.",href:"https://endoflife.date/nextjs"})}for(let r of e.monitors)!r.paused&&("heartbeat"===r.kind&&!r.lastPingAt&&e.now.getTime()-r.createdAt.getTime()>864e5&&t.push({key:`hb-silent:${r.id}`,severity:"warning",appId:r.appId,subject:r.appName,title:`${r.name??"A heartbeat"} has never pinged`,why:"It was added more than a day ago and no job has called its URL.",fix:"Add the ping to the job, or delete the monitor.",href:"/uptime"}),"http"===r.kind&&"/"===r.path&&200===r.expectedStatus&&null!==r.lastStatus&&[401,403,404].includes(r.lastStatus)&&t.push({key:`monitor-root:${r.id}:${r.lastStatus}`,severity:"info",appId:r.appId,subject:r.appName,title:`The monitor on / answers ${r.lastStatus}`,why:`A login or missing page answering ${r.lastStatus} makes the monitor look down.`,fix:`Point the monitor at a public health route, or expect ${r.lastStatus}.`,href:"/uptime"}));for(let r of e.headers??[]){if(!r.missing.length)continue;let e=[...r.missing].sort();t.push({key:`headers:${r.appId}:${e.join(",")}`,severity:"info",appId:r.appId,subject:r.appName,title:`Missing security headers: ${e.join(", ")}`,why:"Browsers use them to block clickjacking, sniffing and downgrade attacks.",fix:"Add them in next.config headers().",href:"https://developer.mozilla.org/en-US/observatory"})}for(let r of e.slots??[])r.used<r.total||t.push({key:`no-slot:${r.account}`,severity:"warning",appId:null,subject:`supabase \xb7 ${r.account}`,title:`Account ${r.account} has no free slot`,why:r.planUnknown?"Two projects are active. If this account is on the free plan (it couldn't be read), a paused one can't be restored here.":"Both free projects are active, so a paused one can't be restored here.",fix:"Pause one project, or move one to another account.",href:"/supabase"});if(e.dbs&&e.links){let r=new Set(e.links.map(e=>e.dbId));for(let s of e.dbs.filter(e=>!r.has(e.id)))t.push({key:`db-unlinked:${s.id}`,severity:"info",appId:null,subject:s.name,title:"Database isn't linked to any app",why:"Topology and the app status can't use it.",fix:"Link it from the app page.",href:"/apps"})}for(let r of e.accounts)"supabase"===r.provider&&r.scopeNote&&/all[- ]access/i.test(r.scopeNote)&&t.push({key:`broad-cred:${r.id}`,severity:"info",appId:null,subject:`supabase \xb7 ${r.label}`,title:`${r.label} uses an all-access token`,why:"The console only reads; a broader token is a bigger risk if it ever leaks.",fix:"Replace it with a read-only token in Connections, then revoke the old one in Supabase.",href:"/connections"});for(let r of e.accounts){if(!r.expiresAt)continue;let s=r.expiresAt.getTime()-e.now.getTime();s>=12096e5&&s<=5184e6&&t.push({key:`cred-60:${r.id}:${h(r.expiresAt)}`,severity:"info",appId:null,subject:`${r.provider} \xb7 ${r.label}`,title:`The ${r.provider} credential ${r.label} expires on ${(0,c.dayMonth)(r.expiresAt)}`,why:"An expired credential stops every reading from that account.",fix:"Create a new one and use Replace credential in Connections.",href:"/connections"})}return t.map((e,t)=>({r:e,i:t})).sort((e,t)=>("warning"!==e.r.severity)-("warning"!==t.r.severity)||e.i-t.i).map(({r:e})=>e).slice(0,50)}(await v(e)),r={at:e.toISOString(),items:t};return await (0,a.db)().insert(o.settings).values({key:b,value:r}).onConflictDoUpdate({target:o.settings.key,set:{value:r,updatedAt:e}}),t}async function _(e){let[r]=await (0,a.db)().select({value:o.settings.value}).from(o.settings).where((0,t.eq)(o.settings.key,b)).limit(1),s=w.safeParse(r?.value);return s.success?s.data.items:k(e)}async function S(e,r){var s;let n=await _(e);if(!n.length)return[];let i=await (0,a.db)().select({key:o.recommendationDismissals.key,dismissedAt:o.recommendationDismissals.dismissedAt}).from(o.recommendationDismissals).where((0,t.inArray)(o.recommendationDismissals.key,n.map(e=>e.key))).limit(50),l=(s=new Map(i.map(e=>[e.key,e.dismissedAt])),n.filter(t=>{let r=s.get(t.key);return!r||e.getTime()-r.getTime()>=2592e6}));return r?l.filter(e=>e.appId===r):l}e.s(["T",0,S,"O",0,k],455891)},42784,464161,e=>{var t=e.i(336763),r=e.i(396918),s=e.i(406212),n=e.i(530298),i=e.i(412948),a=e.i(178233),o=e.i(785194),l=e.i(70377),c=e.i(586307),u=e.i(764266),h=e.i(471843);e.i(333407);var d=e.i(706959),p=e.i(706539),f=e.i(380719),m=e.i(584820);let g=e=>"string"==typeof e&&e?e:null;async function b(e,b){let y=await (0,s.db)().select({r:n.resources,s:n.snapshots,sec:n.appSecurity,accStatus:n.accounts.status}).from(n.resources).leftJoin(n.accounts,(0,t.eq)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.eq)(n.snapshots.resourceId,n.resources.id)).leftJoin(n.appSecurity,(0,t.eq)(n.appSecurity.resourceId,n.resources.id)).where((0,t.and)((0,t.eq)(n.resources.kind,"app"),(0,t.eq)(n.resources.monitored,!0),b?(0,t.eq)(n.resources.id,b):void 0)).orderBy(n.resources.name).limit(l.O.apps);if(!y.length)return[];let w=y.map(e=>e.r.id),v=(await (0,s.db)().select().from(n.monitors).where((0,t.inArray)(n.monitors.resourceId,w)).orderBy(n.monitors.createdAt).limit(l.O.monitors)).map(f.M),k=await (0,s.db)().selectDistinctOn([n.deployments.resourceId]).from(n.deployments).where((0,t.and)((0,t.inArray)(n.deployments.resourceId,w),(0,t.eq)(n.deployments.target,"production"))).orderBy(n.deployments.resourceId,(0,r.desc)(n.deployments.createdAtProvider)),_=await (0,p._)(v.map(e=>e.id),e),S=await (0,p.P)(w,e),x=await (0,c.F)(w),A=v.length?await (0,d.f)():[];return y.map(({r:t,s:r,sec:s,accStatus:n})=>{let c=v.filter(e=>e.appId===t.id).map(t=>({...t,maintUntil:(0,u.x)(A,{monitorId:t.id,appId:t.appId},e)?.end??null})),d=g(t.meta.createdAt),p=k.find(e=>e.resourceId===t.id);return{id:t.id,name:t.name,gone:null!==t.goneAt,state:r?.state??"unknown",stateSince:r?.stateSince??null,domain:(0,i.m)(t.name,c.map(e=>e.url)),framework:g(t.meta.framework),productionBranch:g(t.meta.productionBranch),createdAt:d?new Date(d):null,teamName:g(t.meta.teamName),teamSlug:g(t.meta.teamSlug),repo:g(t.meta.repo),repoType:g(t.meta.repoType),functionRegions:Array.isArray(t.meta.functionRegions)?t.meta.functionRegions.filter(e=>"string"==typeof e):[],monitors:c,lastDeploy:p?(0,h.f)(p):null,uptime30:(0,o.Y)(c.flatMap(t=>(0,o.w)(_.get(t.id),e,o.I))),response:S.get(t.id)??{hourly:Array.from({length:l.A.responseHours},()=>null),p95:null,p50:null},days:new Map(c.flatMap(e=>{let t=_.get(e.id);return t?[[e.id,t]]:[]})),security:s?(0,m.Z)(s):null,database:x.get(t.id)??null,dbPaused:r?.data.dbPaused===!0,pageViews:(0,a.G)(r?.data),pageViewsNote:(0,a.R)({gone:null!==t.goneAt,teamId:g(t.meta.teamId),accountOk:"ok"===n,hasProductionDeploy:void 0!==p})}})}e.s(["f",0,b],42784);var y=e.i(533102);y.sql`coalesce(${n.events.lastAt}, ${n.events.at})`,e.s([],464161)},471843,e=>{e.i(406212),e.i(530298),e.s(["f",0,function(e){return{id:e.id,externalId:e.externalId,state:e.state,target:e.target,branch:e.branch,commitSha:e.commitSha,commitMessage:e.commitMessage,url:e.url,createdAt:e.createdAtProvider,buildingAt:e.buildingAt,readyAt:e.readyAt,isCurrent:e.isCurrent,isPreviousProduction:e.isPreviousProduction}}])},328586,e=>{var t=e.i(336763),r=e.i(396918),s=e.i(406212),n=e.i(530298),i=e.i(112515),a=e.i(803237),o=e.i(93387);let l=e=>e.trim().toLowerCase();var c=e.i(802641),u=e.i(958948);async function h(e){let l=e?(0,t.and)((0,t.eq)(n.accounts.id,e),(0,t.eq)(n.accounts.provider,"github")):(0,t.eq)(n.accounts.provider,"github"),[c]=await (0,s.db)().select().from(n.accounts).where(l).orderBy((0,r.asc)(n.accounts.createdAt)).limit(1);if(!c)return null;let u=(0,a.V)({ciphertext:c.credentialCiphertext,iv:c.credentialIv},(0,o.serverEnv)().OPS_ENCRYPTION_KEY);return{account:c,token:u,problem:(0,i.A)(u)}}async function d(e,t,r){let s=0;for(let n=0;n<e.length&&!(Date.now()>t);n+=5){let t=e.slice(n,n+5);s+=t.length,await Promise.allSettled(t.map(r))}return s}async function p(e,r,a={}){var o,c;let m,g,b=await h(e);if(!b)return{ok:!1,error:"GitHub isn't connected."};let{account:y,token:w,problem:v}=b;if(v||!w)return{ok:!1,error:v??"The credential can't be read."};let k=await (0,u.o)(w,a);if(!k.ok){let e=(0,i.E)({ok:!1,kind:"scope"===k.kind?"auth":"missing"===k.kind?"transient":k.kind,error:k.error});return e&&await (0,s.db)().update(n.accounts).set({...e,updatedAt:new Date}).where((0,t.eq)(n.accounts.id,y.id)),{ok:!1,error:k.error}}let _=new Date,S=(o=await (0,s.db)().select({id:n.githubRepos.id,externalId:n.githubRepos.externalId,goneAt:n.githubRepos.goneAt}).from(n.githubRepos).where((0,t.eq)(n.githubRepos.accountId,y.id)).limit(1e3),c=k.data.repos,m=new Map(o.map(e=>[e.externalId,e])),g=new Set(c.map(e=>e.id)),{insert:c.filter(e=>!m.has(e.id)),update:c.filter(e=>m.has(e.id)).map(e=>({id:m.get(e.id).id,repo:e})),gone:o.filter(e=>!g.has(e.externalId)&&!e.goneAt).map(e=>e.id)}),x=e=>({owner:e.owner,name:e.name,fullName:e.fullName,defaultBranch:e.defaultBranch,private:e.private,archived:e.archived,htmlUrl:e.htmlUrl,pushedAt:e.pushedAt});await (0,s.db)().transaction(async e=>{for(let r of S.update)await e.update(n.githubRepos).set({...x(r.repo),lastSeenAt:_,goneAt:null,updatedAt:_}).where((0,t.eq)(n.githubRepos.id,r.id));S.insert.length&&await e.insert(n.githubRepos).values(S.insert.map(e=>({accountId:y.id,externalId:e.id,...x(e)}))).onConflictDoNothing({target:[n.githubRepos.accountId,n.githubRepos.externalId]}),S.gone.length&&await e.update(n.githubRepos).set({goneAt:_,updatedAt:_}).where((0,t.and)((0,t.inArray)(n.githubRepos.id,S.gone),(0,t.isNull)(n.githubRepos.goneAt)))});let A=await (0,s.db)().select().from(n.githubRepos).where((0,t.eq)(n.githubRepos.accountId,y.id)).limit(1e3),T=[];k.data.truncated&&T.push("Only the 300 most recently pushed repositories are listed.");let R=!1;await d(A.filter(e=>!e.archived&&!e.goneAt&&(!e.packageCheckedAt||null!==e.pushedAt&&e.pushedAt>e.packageCheckedAt)).sort((e,t)=>(t.pushedAt?.getTime()??0)-(e.pushedAt?.getTime()??0)).slice(0,10),r,async e=>{let r=await (0,u.q)(w,e.fullName,a);r.ok?await (0,s.db)().update(n.githubRepos).set({packageName:r.data,packageCheckedAt:new Date,updatedAt:new Date}).where((0,t.eq)(n.githubRepos.id,e.id)):"scope"===r.kind&&(R=!0)}),R&&T.push("Some package.json files can't be read: give the token Contents read on those repositories.");let E=await (0,s.db)().select({id:n.resources.id,name:n.resources.name,meta:n.resources.meta}).from(n.resources).where((0,t.and)((0,t.eq)(n.resources.kind,"app"),(0,t.isNull)(n.resources.goneAt))).limit(500),I=await (0,s.db)().select({appId:n.appRepos.appId,repoId:n.appRepos.repoId,source:n.appRepos.source}).from(n.appRepos).limit(500),O=e=>"string"==typeof e&&e?e:null,j=function(e,t,r){let s=new Map(t.filter(e=>!e.goneAt).map(e=>[l(e.fullName),e.id])),n=new Map(r.map(e=>[e.appId,e])),i=[];for(let t of e){if("github"!==t.repoType||!t.repo)continue;let e=s.get(l(t.repo));if(!e)continue;let r=n.get(t.id);r?.source!=="manual"&&r?.repoId!==e&&i.push({appId:t.id,repoId:e})}return i}(E.map(e=>({id:e.id,name:e.name,repo:O(e.meta.repo),repoType:O(e.meta.repoType)})),A,I);for(let e of j)await (0,s.db)().insert(n.appRepos).values({appId:e.appId,repoId:e.repoId,source:"vercel"}).onConflictDoUpdate({target:n.appRepos.appId,set:{repoId:e.repoId,source:"vercel",updatedAt:new Date},setWhere:(0,t.ne)(n.appRepos.source,"manual")});let C=await (0,s.db)().selectDistinct({id:n.githubRepos.id,fullName:n.githubRepos.fullName,defaultBranch:n.githubRepos.defaultBranch}).from(n.appRepos).innerJoin(n.githubRepos,(0,t.eq)(n.githubRepos.id,n.appRepos.repoId)).where((0,t.and)((0,t.eq)(n.githubRepos.accountId,y.id),(0,t.isNull)(n.githubRepos.goneAt))).limit(500),$=!1,P=await d(C,r,async e=>{let t=await (0,u.W)(w,e.fullName,e.defaultBranch,a);t.ok?await f(e.id,t.data):"scope"===t.kind&&($=!0)});$&&T.push("Some Actions runs can't be read: give the token Actions read on those repositories."),P<C.length&&T.push(`${C.length-P} Actions status${C.length-P==1?"":"es"} left for the next run, time budget used.`);let N=await (0,u.k)(w,a);return await (0,s.db)().update(n.accounts).set({lastSyncAt:_,status:"ok",lastError:null,updatedAt:_,...N.ok?{expiresAt:N.data.expiresAt}:{}}).where((0,t.eq)(n.accounts.id,y.id)),{ok:!0,repos:A.filter(e=>!e.goneAt).length,linked:C.length,newLinks:j.length,notes:T}}async function f(e,r){await (0,s.db)().update(n.githubRepos).set({actions:r,actionsCheckedAt:new Date,updatedAt:new Date}).where((0,t.eq)(n.githubRepos.id,e))}async function m(e){let[r]=await (0,s.db)().select({id:n.accounts.id}).from(n.accounts).where((0,t.eq)(n.accounts.provider,"github")).limit(1);if(!r)return null;if(Date.now()>e)return"left for the next run, time budget used";let i=await p(r.id,e);return i.ok?null:i.error}async function g(e){if(!(0,c.f)(e))return{ok:!1,reason:"no-repo",error:"That app no longer exists."};let[r]=await (0,s.db)().select({r:n.githubRepos}).from(n.appRepos).innerJoin(n.githubRepos,(0,t.eq)(n.githubRepos.id,n.appRepos.repoId)).where((0,t.and)((0,t.eq)(n.appRepos.appId,e),(0,t.isNull)(n.githubRepos.goneAt))).limit(1);if(!r)return{ok:!1,reason:"no-repo",error:"This app isn't linked to a GitHub repository yet."};let i=await h(r.r.accountId);return i?.token?{ok:!0,fullName:r.r.fullName,defaultBranch:r.r.defaultBranch,token:i.token}:{ok:!1,reason:"no-token",error:"The GitHub token can't be read; check the GitHub connection."}}e.s(["D",0,m,"l",0,g],328586)},451682,313903,205746,e=>{var t=e.i(336763),r=e.i(157406),s=e.i(533102),n=e.i(406212),i=e.i(530298),a=e.i(122603),o=e.i(803237),l=e.i(333407),c=e.i(93387),u=e.i(765503),h=e.i(666680),d=e.i(75064),p=e.i(909592),f=e.i(932378),m=e.i(246517),g=e.i(492973),b=e.i(794588);e.s(["z",0,b],313903);var b=b,y=e.i(260417);let w=["debug","info","warning","error","fatal","trace"],v=d.z.object({rows:p.z.array(f.z.unknown()).catch([]),hasMoreRows:m.z.boolean().catch(!1)}),k=d.z.object({requestId:g.z.string().min(1),timestamp:g.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),b.NEVER):new Date(r)}),deploymentId:g.z.string().nullish().catch(null),requestMethod:g.z.string().nullish().catch(null),requestPath:g.z.string().nullish().catch(null),statusCode:y.z.number().nullish().catch(null),logs:p.z.array(f.z.unknown()).nullish().catch(null),events:p.z.array(f.z.unknown()).nullish().catch(null)}),_=d.z.object({level:g.z.string().nullish().catch(null),message:g.z.string().nullish().catch(null)}),S=d.z.object({source:g.z.string().nullish().catch(null)}),x=(e,t)=>(0,h.createHash)("sha1").update(`${e}
|
|
2
|
-
${t}`).digest("hex").slice(0,8),A=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function T(e,t,r,s){let n=(s.now??new Date).getTime(),i=Math.max(s.since.getTime(),n-864e5),o=s.until.getTime();if(i>=o)return{ok:!0,lines:[],more:!1};let l=s.maxRows??300,c=s.levels?new Set(s.levels):null,u=e=>!c||c.has(e),h=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],d=s.fetch??fetch,p=new AbortController,f=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,g=(0,a.X)(m),b=()=>p.signal.aborted&&!s.signal?.aborted?A("transient","Vercel's log history didn't answer in time."):A("transient","Reading Vercel's log history was cancelled."),y=[],T=!1;try{for(let n=0;n<3;n++){let a,c=new URLSearchParams({projectId:r,ownerId:t,page:String(n),startDate:String(i),endDate:String(o)});s.deploymentId&&c.set("deploymentId",s.deploymentId),s.environment&&c.set("environment",s.environment),h.length&&c.set("level",h.join(","));let p=null;try{let t=await Promise.race([d(`https://vercel.com/api/logs/request-logs?${c}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),g]);if(401===t.status||403===t.status)p=A("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=A("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=A("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{a=await Promise.race([t.json(),g])}catch(e){if(m.aborted)throw e;p=A("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=A("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?b():A("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(a),t=e.success&&a&&"object"==typeof a?Object.keys(a):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=k.safeParse(e);if(!s.success)return[];let n=s.data,i={at:n.timestamp,requestMethod:n.requestMethod??null,requestPath:n.requestPath??null,statusCode:n.statusCode??null,deploymentId:n.deploymentId??null,source:(n.events??[]).map(e=>S.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},a=[],o=new Map;for(let e of n.logs??[]){let r=_.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":w.includes(t)?t:"info"}(r.data.level),l=x(s,r.data.message),c=o.get(l)??0;o.set(l,c+1),t(s)&&a.push({rowId:`${n.requestId}:${l}${c?`#${c}`:""}`,level:s,message:r.data.message,...i})}if(null!=n.statusCode&&n.statusCode>=500&&t("error")&&!a.some(e=>"error"===e.level||"fatal"===e.level)&&a.push({rowId:`${n.requestId}:status`,level:"error",message:`${n.requestMethod??"GET"} ${n.requestPath??"/"} → ${n.statusCode}`,...i}),r&&0===a.length){let e=n.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&a.push({rowId:`${n.requestId}:request`,level:r,message:`${n.requestMethod??"GET"} ${n.requestPath??"/"}${e>0?` → ${e}`:""}`,...i})}return a}(t,u,s.requests));if(!(T=e.data.hasMoreRows)||y.length>=l)break}else p=A("format","Vercel's log history answered in a format the console doesn't recognise.");else p=A("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===n)return p;T=!0;break}}}finally{clearTimeout(f),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>l&&(y.splice(0,y.length-l),T=!0),{ok:!0,lines:y,more:T}}e.s(["f",0,T],205746);var R=e.i(728335);let E=["warning","error","fatal"],I="logs_read_cursor";async function O(e){let[r]=await (0,n.db)().select().from(i.accounts).where((0,t.and)((0,t.eq)(i.accounts.provider,"vercel"),(0,t.eq)(i.accounts.status,"ok"))).limit(1),s=r?(0,o.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,c.serverEnv)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,n.db)().select({appId:i.resources.id,appName:i.resources.name,projectId:i.resources.externalId,meta:i.resources.meta,deploymentId:i.deployments.externalId}).from(i.deployments).innerJoin(i.resources,(0,t.eq)(i.resources.id,i.deployments.resourceId)).where((0,t.and)((0,t.eq)(i.deployments.isCurrent,!0),(0,t.eq)(i.resources.accountId,r.id),(0,t.eq)(i.resources.monitored,!0),(0,t.isNull)(i.resources.goneAt),...e?[(0,t.eq)(i.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let j=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,u.l)((0,u.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,u.n)(t.requestPath?(0,u.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function C(e,o,c){let u,[h]=await (0,n.db)().select().from(i.settings).where((0,t.eq)(i.settings.key,"logs.disabled")).limit(1);if(h?.value===!0)return;let d=await O(null);if(!d.length)return;let p=(0,R.dayStart)((0,R.dayKey)(e)),f=new Map((await (0,n.db)().select({id:i.storedLogs.resourceId,n:s.sql`count(*)::int`}).from(i.storedLogs).where((0,t.and)((0,t.inArray)(i.storedLogs.resourceId,d.map(e=>e.appId)),(0,t.gte)(i.storedLogs.at,p))).groupBy(i.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,n.db)().select({id:i.storedLogs.resourceId,at:(0,r.max)(i.storedLogs.at)}).from(i.storedLogs).where((0,t.inArray)(i.storedLogs.resourceId,d.map(e=>e.appId))).groupBy(i.storedLogs.resourceId)).map(e=>[e.id,e.at])),[g]=await (0,n.db)().select().from(i.settings).where((0,t.eq)(i.settings.key,I)).limit(1),b=(u=g?.value)&&"object"==typeof u&&!Array.isArray(u)?Object.fromEntries(Object.entries(u).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,w=await (0,a.P)(d,3,t=>{if(Date.now()+8500>o)return Promise.resolve(null);let r=[m.get(t.appId)?.getTime(),b[t.appId]?Date.parse(b[t.appId]):void 0].filter(e=>void 0!==e),s=new Date(Math.max(r.length?Math.max(...r)-3e5:y,y));return T(t.token,t.teamId,t.projectId,{since:s,until:e,now:e,levels:E,environment:"production",maxRows:300})}),v=d.map((e,t)=>{let r=w[t];return r?r.ok?(r.more&&c.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>E.includes(e.level))):(c.push(`logs/${e.appName}: ${r.error}`),[]):[]}),k=v.flat().map(e=>e.rowId),_=new Set(k.length?(await (0,n.db)().select({rowId:i.storedLogs.rowId}).from(i.storedLogs).where((0,t.inArray)(i.storedLogs.rowId,k))).map(e=>e.rowId):[]),S=[];for(let[e,t]of d.entries()){let r=v[e].filter(e=>!_.has(e.rowId));if(!r.length)continue;let s=f.get(t.appId)??0,a=Math.max(0,1e3-s),o=(a>=r.length?r:r.slice(r.length-a)).map(e=>j(t,e));o.length&&await (0,n.db)().insert(i.storedLogs).values(o).onConflictDoNothing({target:i.storedLogs.rowId}),s+r.length>=1e3&&S.push(t.appId)}let x=d.filter((e,t)=>w[t]?.ok);if(x.length){let t={};for(let e of d)b[e.appId]&&(t[e.appId]=b[e.appId]);for(let r of x)t[r.appId]=e.toISOString();await (0,n.db)().insert(i.settings).values({key:I,value:t}).onConflictDoUpdate({target:i.settings.key,set:{value:t,updatedAt:new Date}})}await (0,l.f)(S.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}e.s(["g",0,O,"_",0,C],451682)},584820,902509,e=>{var t=e.i(336763),r=e.i(533102),s=e.i(406212),n=e.i(530298),i=e.i(122603),a=e.i(541211),o=e.i(333407);let l=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,c="[\"'`]";function u(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let h={"&":"&",""":'"',"'":"'","'":"'","/":"/","/":"/"},d=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>h[e]??h[e.toLowerCase()]??e),p=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${c}(${l})${c}`,"g"),f=RegExp(String.raw`version\s*:\s*${c}(${l})${c}\s*,\s*appDir\s*:`,"g"),m=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${c}(${l})${c}`,"g"),g=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,b=e=>e.replace(/[$]/g,"\\$");var y=e.i(52535);async function w(e,t,r={}){let s=r.deadline??1/0,n=r.now??(()=>new Date),a=e=>Math.floor(Math.min(e,s)-Date.now()),o=Date.now()+15e3;if(0>=a(o))return null;let h=(e,r)=>({version:t?.version??null,status:e,findings:t?.findings??[],reason:r,checkedAt:n()}),v=(e,t)=>(0,i.K)(e,{maxBytes:3145728,timeoutMs:a(o),lookup:r.lookup,fetch:r.fetch,userAgent:"OpsConsole-Security/1.0 (+https://west-solutions.web.id)",sameOrigin:t}),k=await v(`https://${e}/`,"www");if(!k.ok&&k.error===i.l)return h("unknown","the site redirects to another host");if(!k.ok||200!==k.status)return Date.now()>=s?null:h("error",`Couldn't load the site: ${k.ok?`HTTP ${k.status}`:k.error}`);let _=(function(e,t){let r;try{r=new URL(t)}catch{return[]}let s=new Set,n=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(d(t[2].trim()),r)}catch{continue}if("https:"===e.protocol&&e.origin===r.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!s.has(e.href))){var i;s.add(e.href),n.push({href:e.href,rank:(i=e.pathname,/\/main-app[-.]/.test(i)?0:/\/(main|app-index)[-.]/.test(i)?1:/\/(webpack|polyfills|framework)[-.]/.test(i)?3:2),i:n.length})}}return n.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})(k.body,k.url).slice(0,12);if(0===_.length)return h("unknown",k.body.includes("/_next/")?"version not exposed":"not a Next.js site");let S=null,x=0,A=!1;for(let e of _){if(0>=a(o)){A=!0;break}let t=await v(e,!0);if(t.ok&&200===t.status&&(x++,S=function(e){for(let t of e.matchAll(p))if(u(t[1]))return t[1];for(let t of[f,m])for(let r of e.matchAll(t))if(u(r[1]))return r[1];for(let t of e.matchAll(g)){let r=t[1]??"version",s=RegExp(String.raw`(?:^|[^\w$.])${b(r)}\s*=\s*${c}(${l})${c}`,"g"),n=null;for(let r of e.matchAll(s)){if((r.index??0)>=(t.index??0))break;n=r[1]}if(n&&u(n))return n}return null}(t.body)))break}if(!S)return Date.now()>=s?null:A||0>=a(o)?h("error","Reading the site's scripts took longer than 15 s"):0===x?h("error","Couldn't load the site's scripts"):h("unknown","version not exposed");let T=a(Date.now()+1e4);if(T<=0)return null;let R=await (0,y.y)(S,{timeoutMs:T,fetch:r.fetch});return R.ok?{version:S,status:R.findings.length?"vulnerable":"ok",findings:R.findings,reason:null,checkedAt:n()}:Date.now()>=s?null:h("error",R.error)}e.s(["P",0,w,"F",0,function(e,t){return Math.min(t+35e3,e+55e3)}],902509);var v=e.i(631065),k=e.i(412948),_=e.i(70377);function S(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function x(e){let i=await (0,s.db)().select({id:n.resources.id,name:n.resources.name,sec:n.appSecurity}).from(n.resources).leftJoin(n.appSecurity,(0,t.eq)(n.appSecurity.resourceId,n.resources.id)).where((0,t.and)((0,t.eq)(n.resources.kind,"app"),(0,t.eq)(n.resources.monitored,!0),(0,t.isNull)(n.resources.goneAt),e?(0,t.eq)(n.resources.id,e):void 0)).orderBy(r.sql`${n.appSecurity.checkedAt} asc nulls first`,n.resources.name).limit(_.O.apps);if(!i.length)return[];let a=await (0,s.db)().select({resourceId:n.monitors.resourceId,url:n.monitors.url}).from(n.monitors).where((0,t.inArray)(n.monitors.resourceId,i.map(e=>e.id))).orderBy(n.monitors.createdAt).limit(_.O.monitors);return i.map(e=>({id:e.id,name:e.name,prev:e.sec?S(e.sec):null,host:(0,k.m)(e.name,a.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function A(e,i){await (0,s.db)().transaction(async s=>{await s.execute(r.sql`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[a]=await s.select().from(n.appSecurity).where((0,t.eq)(n.appSecurity.resourceId,e.id)).limit(1),l=a?S(a):null;if(l&&l.checkedAt.getTime()>=i.checkedAt.getTime())return;let c="unknown"===i.status||"error"===i.status?{...i,version:l?l.version:i.version,findings:l?l.findings:i.findings}:i,u={framework:"next",version:c.version,status:c.status,findings:c.findings,reason:c.reason,checkedAt:c.checkedAt};await s.insert(n.appSecurity).values({resourceId:e.id,...u}).onConflictDoUpdate({target:n.appSecurity.resourceId,set:u,setWhere:r.sql`${n.appSecurity.checkedAt} < excluded.checked_at`});let h=(0,v.t)(e.name,l,c);h&&await (0,o.f)([{type:"system",kind:h.kind,message:h.message,detail:h.detail,resourceId:e.id,at:c.checkedAt,reason:"ok"===h.kind?"NextClean":"NextVulnerable"}],s)})}async function T(e){let t=await x(),r=0,s=0,n=[];return await (0,i.P)(t,3,async t=>{if(e-Date.now()<3e3)return void s++;try{let n=await w(t.host,t.prev,{deadline:e});if(!n)return void s++;await A(t,n),r++}catch(e){n.push(`${t.name}: ${(0,a.safeError)(e)}`)}}),{checked:r,skipped:s,failed:n}}e.s(["h",0,T,"Z",0,S],584820)},486118,e=>{let t;var r,s,n=e.i(547963),i=e.i(804308),a=e.i(515683),o=e.i(25734),l=e.i(27626),c=e.i(64858),u=e.i(248744),h=e.i(379593),d=e.i(423660),p=e.i(717799),f=e.i(336763),m=e.i(396918),g=e.i(406212),b=e.i(530298),y=e.i(503313),w=e.i(595262),v=e.i(732077),k=e.i(908223),_=e.i(328586),S=e.i(406197),x=e.i(964964),A=e.i(958948),T=e.i(348657),R=e.i(198552),E=e.i(205746),I=e.i(760859),O=e.i(518581),j=e.i(633075),C=e.i(108621),$=e.i(809303);async function P(e){let t=Date.now();try{let r=await fetch(e,{redirect:"manual",signal:AbortSignal.timeout(x.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),s=401===r.status||403===r.status?(await r.text().catch(()=>"")).slice(0,8192):"";return{status:r.status,ms:Date.now()-t,authWall:(0,x.S)(r.status,s,r.headers)}}catch{return{status:null,ms:Date.now()-t,authWall:!1}}}async function N(t,r){let{extensions:s}=await e.A(27505);return await s.runner?.lockfileJobActive(t,r).catch(()=>!1)??!1}let D={rows:async()=>await (0,g.db)().select({id:b.dependencyPrs.id,repoId:b.dependencyPrs.repoId,appId:b.dependencyPrs.appId,proposalId:b.dependencyPrs.proposalId,number:b.dependencyPrs.number,branch:b.dependencyPrs.branch,baseBranch:b.dependencyPrs.baseBranch,headSha:b.dependencyPrs.headSha,title:b.dependencyPrs.title,packages:b.dependencyPrs.packages,auto:b.dependencyPrs.auto,stage:b.dependencyPrs.stage,smokeMode:b.dependencyPrs.smokeMode,previewReadyAt:b.dependencyPrs.previewReadyAt,openedAt:b.dependencyPrs.openedAt,fullName:b.githubRepos.fullName,appName:b.resources.name}).from(b.dependencyPrs).innerJoin(b.githubRepos,(0,f.eq)(b.githubRepos.id,b.dependencyPrs.repoId)).leftJoin(b.resources,(0,f.eq)(b.resources.id,b.dependencyPrs.appId)).where((0,f.inArray)(b.dependencyPrs.stage,[...x.X])).orderBy((0,m.asc)(b.dependencyPrs.openedAt)).limit(10),security:$.X,rollback:$.K,writeToken:async()=>{let e=await (0,k.G)();return e&&"unreadable"!==e?e.token:null},readToken:async e=>{let t=await (0,_.l)(e);return t.ok?t.token:null},vercel:async e=>{let t=await (0,S.p)(e,"app"),r=t?.resource.meta.teamId;return t&&"string"==typeof r&&t.resource.externalId?{token:t.token,teamId:r,projectId:t.resource.externalId}:null},monitorUrls:async e=>(await (0,g.db)().select({url:b.monitors.url}).from(b.monitors).where((0,f.and)((0,f.eq)(b.monitors.resourceId,e),(0,f.eq)(b.monitors.kind,"http"))).limit(10)).map(e=>e.url),pull:T.b,checks:T.s,runs:A.L,previews:R.C,probe:P,errorLogs:async(e,t,r,s)=>{let n=await (0,E.f)(e.token,e.teamId,e.projectId,{since:r,until:s,now:s,deploymentId:t,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return n.ok?n.lines.length:null},merge:T.C,save:async(e,t,r,s)=>{await (0,g.db)().update(b.dependencyPrs).set({...t,stageText:s,checkedAt:new Date}).where((0,f.eq)(b.dependencyPrs.id,e)),r&&await (0,g.db)().update(O.O).set({result:s}).where((0,f.eq)(O.O.id,r)).catch(()=>void 0)},notify:e=>(0,C.y)(e),lockfileBusy:async(e,t,r)=>await N(e,t)||await (0,v.W)(r,t),audit:(e,t)=>(0,w.f)({kind:"ok",message:e,resourceId:t,actorUserId:null}),book:()=>(0,y.f)()};async function U(e,t,r=D){let s={watched:0,merged:0,stopped:0},n=()=>t-Date.now(),i=await r.rows();if(!i.length)return s;let[a,o,l]=await Promise.all([r.security().catch(()=>null),r.rollback().catch(()=>null),r.writeToken().catch(()=>null)]);if(!l)return s;let c=await r.book().catch(()=>I.a);for(let t of i){if(15e3>n())break;if(t.auto||a?.enabled)try{let n=await L(t,e,l,o?.enabled===!0,r);if(!n)continue;s.watched++;let i=t.appName?(0,I.r)(c,t.appName):"app";await q(t,n,i,o?.windowMin??30,e,l,r,s)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}return s}async function L(e,t,r,s,n){let i=await n.pull(r,e.fullName,e.number);if(!i.ok)return null;let a=await n.checks(r,e.fullName,i.data.headSha),o=null;if(a.ok&&null===a.data.checkRuns&&e.appId){let t=await n.readToken(e.appId),r=t?await n.runs(t,e.fullName,i.data.headSha):null;o=r?.ok?r.data:null}a.ok||(a={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let l=(0,x.j)({...a.data,actionRuns:o}),c={state:null,readyAt:null},u=null,h=e.appId?await n.vercel(e.appId):null;if(h&&"success"===l&&i.data.headSha===e.headSha){let r=await n.previews(h.token,h.teamId,h.projectId,i.data.headSha),s=r.ok?r.data.find(e=>"preview"===e.target)??r.data[0]??null:null;if(s&&(c={state:s.state,readyAt:s.readyAt??("ready"===s.state?t:null)},"ready"===s.state&&s.url)){let r=e.previewReadyAt??c.readyAt??t;if("logs"!==e.smokeMode){let t=(0,x.E)(e.appId?await n.monitorUrls(e.appId):[]),r=await Promise.all(t.map(async e=>({path:e,...await n.probe(`https://${s.url}${e}`)})));u=(0,x.L)(r)}u||(u=(0,x.n)(r,t,await n.errorLogs(h,s.id,r,t).catch(()=>null))),c.readyAt=r}}return{step:(0,x.M)({now:t,openedAt:e.openedAt,pr:{state:i.data.state,merged:i.data.merged,mergeable:i.data.mergeable,headSha:i.data.headSha},recordedSha:e.headSha,checks:l,preview:c,smoke:u,autoRollbackOn:s}),smoke:u,previewReadyAt:c.readyAt,headSha:i.data.headSha}}async function q(e,t,r,s,n,i,a,o){let{step:l}=t,c=t.smoke?{smokeMode:t.smoke.mode}:{},u=t.previewReadyAt?{previewReadyAt:t.previewReadyAt}:{},h={app:r,number:e.number,packages:e.packages};if("wait"===l.kind)return void await a.save(e.id,{stage:l.stage,...c,...u,...l.resetSha?{headSha:l.resetSha,previewReadyAt:null,smokeMode:null}:{}},e.proposalId,(0,x.m)(e.number,l.stage,l.reason));if("done"===l.kind)return void await a.save(e.id,{stage:l.stage,finishedAt:n},e.proposalId,(0,x.m)(e.number,l.stage));if("stop"===l.kind&&("CI gagal"===l.reason||"CI failed"===l.reason)&&await a.lockfileBusy?.(e.repoId,e.branch,e.fullName).catch(()=>!1))return void await a.save(e.id,{stage:"checks"},e.proposalId,(0,x.m)(e.number,"checks","waiting for the lockfile from the runner"));if("stop"===l.kind){await a.save(e.id,{stage:l.stage,finishedAt:n,...c},e.proposalId,(0,x.m)(e.number,l.stage,"ready-manual"===l.stage?null:l.reason)),o.stopped++,await a.notify({...h,kind:"ready-manual"===l.stage?"ready-manual":"stopped",reason:l.reason}).catch(()=>void 0);return}await a.save(e.id,{stage:"merging",...c,...u},e.proposalId,(0,x.m)(e.number,"merging"));let d=await a.merge(i,e.fullName,e.number,e.branch,e.baseBranch,e.headSha,e.title);if(d.ok){await a.save(e.id,{stage:"merged",mergedSha:d.data.sha,finishedAt:n},e.proposalId,(0,x.m)(e.number,"merged")),o.merged++,await a.audit(`${j.v}PR #${e.number} merged \xb7 ${e.packages.join(", ")}`.slice(0,200),e.appId).catch(()=>void 0),await a.notify({...h,kind:"merged",windowMin:s}).catch(()=>void 0);return}if(409===d.status)return void await a.save(e.id,{stage:"checks"},e.proposalId,(0,x.m)(e.number,"checks","new commit on the PR branch, checking again"));let p=405===d.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${d.error}`.slice(0,150);await a.save(e.id,{stage:"failed",finishedAt:n},e.proposalId,(0,x.m)(e.number,"failed",p)),o.stopped++,await a.notify({...h,kind:"stopped",reason:p}).catch(()=>void 0)}let M=null;async function B(e,t){if((0,x.f)(e,M)){M=e.getTime();try{let r=await U(e,t?.deadline??e.getTime()+5e4);r.watched&&console.log(`deps/watch: ${r.watched} PR, ${r.merged} merged, ${r.stopped} stopped`)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}}var z=e.i(653587),F=e.i(452475);let W={nav:[{group:"AI & API",after:"Observe",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...n.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},H={dailySteps:[{name:"ai-usage-retention",run:a.$}]},G={WhyAiSlot:h.f,RecSummarySlot:u.f,AiNotesSlot:c.f,dailySteps:[{name:"advisor-summary",run:l.f}],minuteSteps:[{name:"advisor-notes",run:o.f}]},K={dailySteps:[{name:"ai-notes-retention",run:d.v}]},J={nav:[{group:"Automation",after:"Observe",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:z.t}],minuteSteps:[{name:"auto-actions",run:z.Z},{name:"deps-pr-watch",run:B}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:p.f}]},V={telegramCallback:F.proposalCallback},Y=function(...e){let t={nav:[],palette:[]};for(let r of e){for(let e of r.nav??[]){let r=t.nav.find(t=>t.group===e.group);r?r.items=[...r.items,...e.items]:t.nav.push({...e,items:[...e.items]})}t.palette.push(...r.palette??[]),r.dailySteps?.length&&(t.dailySteps=[...t.dailySteps??[],...r.dailySteps]),r.minuteSteps?.length&&(t.minuteSteps=[...t.minuteSteps??[],...r.minuteSteps]),r.WhyAiSlot&&(t.WhyAiSlot=r.WhyAiSlot),r.RecSummarySlot&&(t.RecSummarySlot=r.RecSummarySlot),r.AiNotesSlot&&(t.AiNotesSlot=r.AiNotesSlot),r.DevNotesSlot&&(t.DevNotesSlot=r.DevNotesSlot),r.office&&(t.office=r.office),r.settingsTabs?.length&&(t.settingsTabs=[...t.settingsTabs??[],...r.settingsTabs]),r.telegramCallback&&(t.telegramCallback=r.telegramCallback),r.runner&&(t.runner=r.runner),r.RepoPreviewSlot&&(t.RepoPreviewSlot=r.RepoPreviewSlot)}return t}({...W,palette:(r=W.palette??[],s={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(t=r.findIndex(e=>"/ai"===e.href))<0?[...r,s]:[...r.slice(0,t+1),s,...r.slice(t+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,i.f)()}]},H,{},{},K,J,G,V);e.s(["extensions",0,Y],486118)},178233,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let n=t(r.total24h),i=null===r.visitors24h?null:t(r.visitors24h);if(null===n||null===i&&null!==r.visitors24h)return null;let a=36e5*Math.floor(s/36e5),o=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let n=36e5*Math.floor(r/36e5);o.set(n,(o.get(n)??0)+s)}return{enabled:!0,total:n,visitors:i,hours:Array.from({length:24},(e,t)=>{let r=a-(23-t)*36e5;return{at:new Date(r),views:o.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])},530831,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-rollback-form.tsx","AutoRollbackForm");e.s(["AutoRollbackForm",0,t])},657753,e=>{var t=e.i(530831);e.n(t)},842941,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-run-form.tsx","AutoRunForm");e.s(["AutoRunForm",0,t])},27295,e=>{var t=e.i(842941);e.n(t)},699286,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-security-form.tsx","AutoSecurityForm");e.s(["AutoSecurityForm",0,t])},783671,e=>{var t=e.i(699286);e.n(t)},804308,515683,585585,e=>{var t=e.i(533102),r=e.i(406212);e.i(333407);var s=e.i(518581);async function n(){await (0,r.db)().execute(t.sql`
|
|
2
|
+
${t}`).digest("hex").slice(0,8),A=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function T(e,t,r,s){let n=(s.now??new Date).getTime(),i=Math.max(s.since.getTime(),n-864e5),o=s.until.getTime();if(i>=o)return{ok:!0,lines:[],more:!1};let l=s.maxRows??300,c=s.levels?new Set(s.levels):null,u=e=>!c||c.has(e),h=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],d=s.fetch??fetch,p=new AbortController,f=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,g=(0,a.X)(m),b=()=>p.signal.aborted&&!s.signal?.aborted?A("transient","Vercel's log history didn't answer in time."):A("transient","Reading Vercel's log history was cancelled."),y=[],T=!1;try{for(let n=0;n<3;n++){let a,c=new URLSearchParams({projectId:r,ownerId:t,page:String(n),startDate:String(i),endDate:String(o)});s.deploymentId&&c.set("deploymentId",s.deploymentId),s.environment&&c.set("environment",s.environment),h.length&&c.set("level",h.join(","));let p=null;try{let t=await Promise.race([d(`https://vercel.com/api/logs/request-logs?${c}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),g]);if(401===t.status||403===t.status)p=A("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=A("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=A("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{a=await Promise.race([t.json(),g])}catch(e){if(m.aborted)throw e;p=A("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=A("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?b():A("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(a),t=e.success&&a&&"object"==typeof a?Object.keys(a):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=k.safeParse(e);if(!s.success)return[];let n=s.data,i={at:n.timestamp,requestMethod:n.requestMethod??null,requestPath:n.requestPath??null,statusCode:n.statusCode??null,deploymentId:n.deploymentId??null,source:(n.events??[]).map(e=>S.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},a=[],o=new Map;for(let e of n.logs??[]){let r=_.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":w.includes(t)?t:"info"}(r.data.level),l=x(s,r.data.message),c=o.get(l)??0;o.set(l,c+1),t(s)&&a.push({rowId:`${n.requestId}:${l}${c?`#${c}`:""}`,level:s,message:r.data.message,...i})}if(null!=n.statusCode&&n.statusCode>=500&&t("error")&&!a.some(e=>"error"===e.level||"fatal"===e.level)&&a.push({rowId:`${n.requestId}:status`,level:"error",message:`${n.requestMethod??"GET"} ${n.requestPath??"/"} → ${n.statusCode}`,...i}),r&&0===a.length){let e=n.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&a.push({rowId:`${n.requestId}:request`,level:r,message:`${n.requestMethod??"GET"} ${n.requestPath??"/"}${e>0?` → ${e}`:""}`,...i})}return a}(t,u,s.requests));if(!(T=e.data.hasMoreRows)||y.length>=l)break}else p=A("format","Vercel's log history answered in a format the console doesn't recognise.");else p=A("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===n)return p;T=!0;break}}}finally{clearTimeout(f),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>l&&(y.splice(0,y.length-l),T=!0),{ok:!0,lines:y,more:T}}e.s(["f",0,T],205746);var R=e.i(728335);let E=["warning","error","fatal"],I="logs_read_cursor";async function O(e){let[r]=await (0,n.db)().select().from(i.accounts).where((0,t.and)((0,t.eq)(i.accounts.provider,"vercel"),(0,t.eq)(i.accounts.status,"ok"))).limit(1),s=r?(0,o.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,c.serverEnv)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,n.db)().select({appId:i.resources.id,appName:i.resources.name,projectId:i.resources.externalId,meta:i.resources.meta,deploymentId:i.deployments.externalId}).from(i.deployments).innerJoin(i.resources,(0,t.eq)(i.resources.id,i.deployments.resourceId)).where((0,t.and)((0,t.eq)(i.deployments.isCurrent,!0),(0,t.eq)(i.resources.accountId,r.id),(0,t.eq)(i.resources.monitored,!0),(0,t.isNull)(i.resources.goneAt),...e?[(0,t.eq)(i.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let j=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,u.l)((0,u.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,u.n)(t.requestPath?(0,u.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function C(e,o,c){let u,[h]=await (0,n.db)().select().from(i.settings).where((0,t.eq)(i.settings.key,"logs.disabled")).limit(1);if(h?.value===!0)return;let d=await O(null);if(!d.length)return;let p=(0,R.dayStart)((0,R.dayKey)(e)),f=new Map((await (0,n.db)().select({id:i.storedLogs.resourceId,n:s.sql`count(*)::int`}).from(i.storedLogs).where((0,t.and)((0,t.inArray)(i.storedLogs.resourceId,d.map(e=>e.appId)),(0,t.gte)(i.storedLogs.at,p))).groupBy(i.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,n.db)().select({id:i.storedLogs.resourceId,at:(0,r.max)(i.storedLogs.at)}).from(i.storedLogs).where((0,t.inArray)(i.storedLogs.resourceId,d.map(e=>e.appId))).groupBy(i.storedLogs.resourceId)).map(e=>[e.id,e.at])),[g]=await (0,n.db)().select().from(i.settings).where((0,t.eq)(i.settings.key,I)).limit(1),b=(u=g?.value)&&"object"==typeof u&&!Array.isArray(u)?Object.fromEntries(Object.entries(u).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,w=await (0,a.P)(d,3,t=>{if(Date.now()+8500>o)return Promise.resolve(null);let r=[m.get(t.appId)?.getTime(),b[t.appId]?Date.parse(b[t.appId]):void 0].filter(e=>void 0!==e),s=new Date(Math.max(r.length?Math.max(...r)-3e5:y,y));return T(t.token,t.teamId,t.projectId,{since:s,until:e,now:e,levels:E,environment:"production",maxRows:300})}),v=d.map((e,t)=>{let r=w[t];return r?r.ok?(r.more&&c.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>E.includes(e.level))):(c.push(`logs/${e.appName}: ${r.error}`),[]):[]}),k=v.flat().map(e=>e.rowId),_=new Set(k.length?(await (0,n.db)().select({rowId:i.storedLogs.rowId}).from(i.storedLogs).where((0,t.inArray)(i.storedLogs.rowId,k))).map(e=>e.rowId):[]),S=[];for(let[e,t]of d.entries()){let r=v[e].filter(e=>!_.has(e.rowId));if(!r.length)continue;let s=f.get(t.appId)??0,a=Math.max(0,1e3-s),o=(a>=r.length?r:r.slice(r.length-a)).map(e=>j(t,e));o.length&&await (0,n.db)().insert(i.storedLogs).values(o).onConflictDoNothing({target:i.storedLogs.rowId}),s+r.length>=1e3&&S.push(t.appId)}let x=d.filter((e,t)=>w[t]?.ok);if(x.length){let t={};for(let e of d)b[e.appId]&&(t[e.appId]=b[e.appId]);for(let r of x)t[r.appId]=e.toISOString();await (0,n.db)().insert(i.settings).values({key:I,value:t}).onConflictDoUpdate({target:i.settings.key,set:{value:t,updatedAt:new Date}})}await (0,l.f)(S.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}e.s(["g",0,O,"_",0,C],451682)},584820,902509,e=>{var t=e.i(336763),r=e.i(533102),s=e.i(406212),n=e.i(530298),i=e.i(122603),a=e.i(541211),o=e.i(333407);let l=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,c="[\"'`]";function u(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let h={"&":"&",""":'"',"'":"'","'":"'","/":"/","/":"/"},d=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>h[e]??h[e.toLowerCase()]??e),p=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${c}(${l})${c}`,"g"),f=RegExp(String.raw`version\s*:\s*${c}(${l})${c}\s*,\s*appDir\s*:`,"g"),m=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${c}(${l})${c}`,"g"),g=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,b=e=>e.replace(/[$]/g,"\\$");var y=e.i(52535);async function w(e,t,r={}){let s=r.deadline??1/0,n=r.now??(()=>new Date),a=e=>Math.floor(Math.min(e,s)-Date.now()),o=Date.now()+15e3;if(0>=a(o))return null;let h=(e,r)=>({version:t?.version??null,status:e,findings:t?.findings??[],reason:r,checkedAt:n()}),v=(e,t)=>(0,i.K)(e,{maxBytes:3145728,timeoutMs:a(o),lookup:r.lookup,fetch:r.fetch,userAgent:"OpsConsole-Security/1.0 (+https://west-solutions.web.id)",sameOrigin:t}),k=await v(`https://${e}/`,"www");if(!k.ok&&k.error===i.l)return h("unknown","the site redirects to another host");if(!k.ok||200!==k.status)return Date.now()>=s?null:h("error",`Couldn't load the site: ${k.ok?`HTTP ${k.status}`:k.error}`);let _=(function(e,t){let r;try{r=new URL(t)}catch{return[]}let s=new Set,n=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(d(t[2].trim()),r)}catch{continue}if("https:"===e.protocol&&e.origin===r.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!s.has(e.href))){var i;s.add(e.href),n.push({href:e.href,rank:(i=e.pathname,/\/main-app[-.]/.test(i)?0:/\/(main|app-index)[-.]/.test(i)?1:/\/(webpack|polyfills|framework)[-.]/.test(i)?3:2),i:n.length})}}return n.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})(k.body,k.url).slice(0,12);if(0===_.length)return h("unknown",k.body.includes("/_next/")?"version not exposed":"not a Next.js site");let S=null,x=0,A=!1;for(let e of _){if(0>=a(o)){A=!0;break}let t=await v(e,!0);if(t.ok&&200===t.status&&(x++,S=function(e){for(let t of e.matchAll(p))if(u(t[1]))return t[1];for(let t of[f,m])for(let r of e.matchAll(t))if(u(r[1]))return r[1];for(let t of e.matchAll(g)){let r=t[1]??"version",s=RegExp(String.raw`(?:^|[^\w$.])${b(r)}\s*=\s*${c}(${l})${c}`,"g"),n=null;for(let r of e.matchAll(s)){if((r.index??0)>=(t.index??0))break;n=r[1]}if(n&&u(n))return n}return null}(t.body)))break}if(!S)return Date.now()>=s?null:A||0>=a(o)?h("error","Reading the site's scripts took longer than 15 s"):0===x?h("error","Couldn't load the site's scripts"):h("unknown","version not exposed");let T=a(Date.now()+1e4);if(T<=0)return null;let R=await (0,y.y)(S,{timeoutMs:T,fetch:r.fetch});return R.ok?{version:S,status:R.findings.length?"vulnerable":"ok",findings:R.findings,reason:null,checkedAt:n()}:Date.now()>=s?null:h("error",R.error)}e.s(["P",0,w,"F",0,function(e,t){return Math.min(t+35e3,e+55e3)}],902509);var v=e.i(631065),k=e.i(412948),_=e.i(70377);function S(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function x(e){let i=await (0,s.db)().select({id:n.resources.id,name:n.resources.name,sec:n.appSecurity}).from(n.resources).leftJoin(n.appSecurity,(0,t.eq)(n.appSecurity.resourceId,n.resources.id)).where((0,t.and)((0,t.eq)(n.resources.kind,"app"),(0,t.eq)(n.resources.monitored,!0),(0,t.isNull)(n.resources.goneAt),e?(0,t.eq)(n.resources.id,e):void 0)).orderBy(r.sql`${n.appSecurity.checkedAt} asc nulls first`,n.resources.name).limit(_.O.apps);if(!i.length)return[];let a=await (0,s.db)().select({resourceId:n.monitors.resourceId,url:n.monitors.url}).from(n.monitors).where((0,t.inArray)(n.monitors.resourceId,i.map(e=>e.id))).orderBy(n.monitors.createdAt).limit(_.O.monitors);return i.map(e=>({id:e.id,name:e.name,prev:e.sec?S(e.sec):null,host:(0,k.m)(e.name,a.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function A(e,i){await (0,s.db)().transaction(async s=>{await s.execute(r.sql`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[a]=await s.select().from(n.appSecurity).where((0,t.eq)(n.appSecurity.resourceId,e.id)).limit(1),l=a?S(a):null;if(l&&l.checkedAt.getTime()>=i.checkedAt.getTime())return;let c="unknown"===i.status||"error"===i.status?{...i,version:l?l.version:i.version,findings:l?l.findings:i.findings}:i,u={framework:"next",version:c.version,status:c.status,findings:c.findings,reason:c.reason,checkedAt:c.checkedAt};await s.insert(n.appSecurity).values({resourceId:e.id,...u}).onConflictDoUpdate({target:n.appSecurity.resourceId,set:u,setWhere:r.sql`${n.appSecurity.checkedAt} < excluded.checked_at`});let h=(0,v.t)(e.name,l,c);h&&await (0,o.f)([{type:"system",kind:h.kind,message:h.message,detail:h.detail,resourceId:e.id,at:c.checkedAt,reason:"ok"===h.kind?"NextClean":"NextVulnerable"}],s)})}async function T(e){let t=await x(),r=0,s=0,n=[];return await (0,i.P)(t,3,async t=>{if(e-Date.now()<3e3)return void s++;try{let n=await w(t.host,t.prev,{deadline:e});if(!n)return void s++;await A(t,n),r++}catch(e){n.push(`${t.name}: ${(0,a.safeError)(e)}`)}}),{checked:r,skipped:s,failed:n}}e.s(["h",0,T,"Z",0,S],584820)},486118,e=>{let t;var r,s,n=e.i(547963),i=e.i(804308),a=e.i(515683),o=e.i(25734),l=e.i(27626),c=e.i(64858),u=e.i(248744),h=e.i(379593),d=e.i(423660),p=e.i(717799),f=e.i(336763),m=e.i(396918),g=e.i(406212),b=e.i(530298),y=e.i(503313),w=e.i(595262),v=e.i(638809),k=e.i(732077),_=e.i(908223),S=e.i(328586),x=e.i(406197),A=e.i(964964),T=e.i(958948),R=e.i(348657),E=e.i(198552),I=e.i(205746),O=e.i(760859),j=e.i(518581),C=e.i(633075),$=e.i(108621),P=e.i(809303);async function N(e){let t=Date.now();try{let r=await fetch(e,{redirect:"manual",signal:AbortSignal.timeout(A.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),s=401===r.status||403===r.status?(await r.text().catch(()=>"")).slice(0,8192):"";return{status:r.status,ms:Date.now()-t,authWall:(0,A.S)(r.status,s,r.headers)}}catch{return{status:null,ms:Date.now()-t,authWall:!1}}}async function D(t,r){let{extensions:s}=await e.A(27505);return await s.runner?.lockfileJobActive(t,r).catch(()=>!1)??!1}let U={rows:async()=>await (0,g.db)().select({id:b.dependencyPrs.id,repoId:b.dependencyPrs.repoId,appId:b.dependencyPrs.appId,proposalId:b.dependencyPrs.proposalId,number:b.dependencyPrs.number,branch:b.dependencyPrs.branch,baseBranch:b.dependencyPrs.baseBranch,headSha:b.dependencyPrs.headSha,title:b.dependencyPrs.title,packages:b.dependencyPrs.packages,auto:b.dependencyPrs.auto,stage:b.dependencyPrs.stage,smokeMode:b.dependencyPrs.smokeMode,previewReadyAt:b.dependencyPrs.previewReadyAt,openedAt:b.dependencyPrs.openedAt,fullName:b.githubRepos.fullName,appName:b.resources.name}).from(b.dependencyPrs).innerJoin(b.githubRepos,(0,f.eq)(b.githubRepos.id,b.dependencyPrs.repoId)).leftJoin(b.resources,(0,f.eq)(b.resources.id,b.dependencyPrs.appId)).where((0,f.inArray)(b.dependencyPrs.stage,[...A.X])).orderBy((0,m.asc)(b.dependencyPrs.openedAt)).limit(10),security:P.X,rollback:P.K,writeToken:async()=>{let e=await (0,_.G)();return e&&"unreadable"!==e?e.token:null},readToken:async e=>{let t=await (0,S.l)(e);return t.ok?t.token:null},vercel:async e=>{let t=await (0,x.p)(e,"app"),r=t?.resource.meta.teamId;return t&&"string"==typeof r&&t.resource.externalId?{token:t.token,teamId:r,projectId:t.resource.externalId}:null},monitorUrls:async e=>(await (0,g.db)().select({url:b.monitors.url}).from(b.monitors).where((0,f.and)((0,f.eq)(b.monitors.resourceId,e),(0,f.eq)(b.monitors.kind,"http"))).limit(10)).map(e=>e.url),pull:R.b,checks:R.s,runs:T.L,previews:E.C,probe:N,errorLogs:async(e,t,r,s)=>{let n=await (0,I.f)(e.token,e.teamId,e.projectId,{since:r,until:s,now:s,deploymentId:t,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return n.ok?n.lines.length:null},merge:R.C,save:async(e,t,r,s)=>{await (0,g.db)().update(b.dependencyPrs).set({...t,stageText:s,checkedAt:new Date}).where((0,f.eq)(b.dependencyPrs.id,e)),r&&await (0,g.db)().update(j.O).set({result:s}).where((0,f.eq)(j.O.id,r)).catch(()=>void 0)},notify:e=>(0,$.y)(e),lockfileBusy:async(e,t,r)=>await D(e,t)||await (0,k.W)(r,t),audit:(e,t)=>(0,w.f)({kind:"ok",message:e,resourceId:t,actorUserId:null}),book:()=>(0,y.f)()};async function L(e,t,r=U){let s={watched:0,merged:0,stopped:0},n=()=>t-Date.now(),i=await r.rows();if(!i.length)return s;let[a,o,l]=await Promise.all([r.security().catch(()=>null),r.rollback().catch(()=>null),r.writeToken().catch(()=>null)]);if(!l)return s;let c=await r.book().catch(()=>O.a);for(let t of i){if(15e3>n())break;if(t.auto||a?.enabled)try{let n=await q(t,e,l,o?.enabled===!0,r);if(!n)continue;s.watched++;let i=t.appName?(0,O.r)(c,t.appName):"app";await M(t,n,i,o?.windowMin??30,e,l,r,s)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}return s}async function q(e,t,r,s,n){let i=await n.pull(r,e.fullName,e.number);if(!i.ok)return null;let a=await n.checks(r,e.fullName,i.data.headSha),o=null;if(a.ok&&null===a.data.checkRuns&&e.appId){let t=await n.readToken(e.appId),r=t?await n.runs(t,e.fullName,i.data.headSha):null;o=r?.ok?r.data:null}a.ok||(a={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let l=(0,A.j)({...a.data,actionRuns:o}),c={state:null,readyAt:null},u=null,h=e.appId?await n.vercel(e.appId):null;if(h&&"success"===l&&i.data.headSha===e.headSha){let r=await n.previews(h.token,h.teamId,h.projectId,i.data.headSha),s=r.ok?r.data.find(e=>"preview"===e.target)??r.data[0]??null:null;if(s&&(c={state:s.state,readyAt:s.readyAt??("ready"===s.state?t:null)},"ready"===s.state&&s.url)){let r=e.previewReadyAt??c.readyAt??t;if("logs"!==e.smokeMode){let t=(0,A.E)(e.appId?await n.monitorUrls(e.appId):[]),r=await Promise.all(t.map(async e=>({path:e,...await n.probe(`https://${s.url}${e}`)})));u=(0,A.L)(r)}u||(u=(0,A.n)(r,t,await n.errorLogs(h,s.id,r,t).catch(()=>null))),c.readyAt=r}}return{step:(0,A.M)({now:t,openedAt:e.openedAt,pr:{state:i.data.state,merged:i.data.merged,mergeable:i.data.mergeable,headSha:i.data.headSha},recordedSha:e.headSha,checks:l,preview:c,smoke:u,autoRollbackOn:s}),smoke:u,previewReadyAt:c.readyAt,headSha:i.data.headSha}}async function M(e,t,r,s,n,i,a,o){let{step:l}=t,c=t.smoke?{smokeMode:t.smoke.mode}:{},u=t.previewReadyAt?{previewReadyAt:t.previewReadyAt}:{},h={app:r,number:e.number,packages:e.packages};if("wait"===l.kind)return void await a.save(e.id,{stage:l.stage,...c,...u,...l.resetSha?{headSha:l.resetSha,previewReadyAt:null,smokeMode:null}:{}},e.proposalId,(0,A.m)(e.number,l.stage,l.reason));if("done"===l.kind)return void await a.save(e.id,{stage:l.stage,finishedAt:n},e.proposalId,(0,A.m)(e.number,l.stage));if("stop"===l.kind&&("CI gagal"===l.reason||"CI failed"===l.reason)&&await a.lockfileBusy?.(e.repoId,e.branch,e.fullName).catch(()=>!1))return void await a.save(e.id,{stage:"checks"},e.proposalId,(0,A.m)(e.number,"checks","waiting for the lockfile from the runner"));if("stop"===l.kind){await a.save(e.id,{stage:l.stage,finishedAt:n,...c},e.proposalId,(0,A.m)(e.number,l.stage,"ready-manual"===l.stage?null:l.reason)),o.stopped++,await a.notify({...h,kind:"ready-manual"===l.stage?"ready-manual":"stopped",reason:l.reason}).catch(()=>void 0);return}await a.save(e.id,{stage:"merging",...c,...u},e.proposalId,(0,A.m)(e.number,"merging"));let d=await a.merge(i,e.fullName,e.number,e.branch,e.baseBranch,e.headSha,e.title);if(d.ok){await a.save(e.id,{stage:"merged",mergedSha:d.data.sha,finishedAt:n},e.proposalId,(0,A.m)(e.number,"merged")),o.merged++,await a.audit(`${C.v}PR #${e.number} merged \xb7 ${e.packages.join(", ")}`.slice(0,200),e.appId).catch(()=>void 0),await a.notify({...h,kind:"merged",windowMin:s}).catch(()=>void 0);return}if(409===d.status)return void await a.save(e.id,{stage:"checks"},e.proposalId,(0,A.m)(e.number,"checks","new commit on the PR branch, checking again"));let p=405===d.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${d.error}`.slice(0,150);await a.save(e.id,{stage:"failed",finishedAt:n},e.proposalId,(0,A.m)(e.number,"failed",p)),o.stopped++,await a.notify({...h,kind:"stopped",reason:p}).catch(()=>void 0)}let B=null;async function z(e,t,r=v.I){if((0,A.f)(e,B)&&!(await r()).has("devops")){B=e.getTime();try{let r=await L(e,t?.deadline??e.getTime()+5e4);r.watched&&console.log(`deps/watch: ${r.watched} PR, ${r.merged} merged, ${r.stopped} stopped`)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}}var F=e.i(653587),W=e.i(452475);let H={nav:[{section:"manage",after:"settings",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...n.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},G={dailySteps:[{name:"ai-usage-retention",run:a.$}]},K={WhyAiSlot:h.f,RecSummarySlot:u.f,AiNotesSlot:c.f,dailySteps:[{name:"advisor-summary",run:l.f}],minuteSteps:[{name:"advisor-notes",run:o.f}]},J={dailySteps:[{name:"ai-notes-retention",run:d.v}]},V={nav:[{section:"manage",after:"alerts",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:F.t}],minuteSteps:[{name:"auto-actions",run:F.Z},{name:"deps-pr-watch",run:z}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:p.f}]},Y={telegramCallback:W.proposalCallback},X=function(...e){let t={nav:[],palette:[]};for(let r of e){for(let e of r.nav??[]){let r=t.nav.find(t=>t.section===e.section&&t.after===e.after);r?r.items=[...r.items,...e.items]:t.nav.push({...e,items:[...e.items]})}t.palette.push(...r.palette??[]),r.dailySteps?.length&&(t.dailySteps=[...t.dailySteps??[],...r.dailySteps]),r.minuteSteps?.length&&(t.minuteSteps=[...t.minuteSteps??[],...r.minuteSteps]),r.WhyAiSlot&&(t.WhyAiSlot=r.WhyAiSlot),r.RecSummarySlot&&(t.RecSummarySlot=r.RecSummarySlot),r.AiNotesSlot&&(t.AiNotesSlot=r.AiNotesSlot),r.DevNotesSlot&&(t.DevNotesSlot=r.DevNotesSlot),r.office&&(t.office=r.office),r.settingsTabs?.length&&(t.settingsTabs=[...t.settingsTabs??[],...r.settingsTabs]),r.telegramCallback&&(t.telegramCallback=r.telegramCallback),r.runner&&(t.runner=r.runner),r.RepoPreviewSlot&&(t.RepoPreviewSlot=r.RepoPreviewSlot)}return t}({...H,palette:(r=H.palette??[],s={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(t=r.findIndex(e=>"/ai"===e.href))<0?[...r,s]:[...r.slice(0,t+1),s,...r.slice(t+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,i.f)()}]},G,{},{},J,V,K,Y);e.s(["extensions",0,X],486118)},178233,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let n=t(r.total24h),i=null===r.visitors24h?null:t(r.visitors24h);if(null===n||null===i&&null!==r.visitors24h)return null;let a=36e5*Math.floor(s/36e5),o=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let n=36e5*Math.floor(r/36e5);o.set(n,(o.get(n)??0)+s)}return{enabled:!0,total:n,visitors:i,hours:Array.from({length:24},(e,t)=>{let r=a-(23-t)*36e5;return{at:new Date(r),views:o.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])},530831,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-rollback-form.tsx","AutoRollbackForm");e.s(["AutoRollbackForm",0,t])},657753,e=>{var t=e.i(530831);e.n(t)},842941,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-run-form.tsx","AutoRunForm");e.s(["AutoRunForm",0,t])},27295,e=>{var t=e.i(842941);e.n(t)},699286,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-security-form.tsx","AutoSecurityForm");e.s(["AutoSecurityForm",0,t])},783671,e=>{var t=e.i(699286);e.n(t)},804308,515683,585585,e=>{var t=e.i(533102),r=e.i(406212);e.i(333407);var s=e.i(518581);async function n(){await (0,r.db)().execute(t.sql`
|
|
3
3
|
delete from ops.ai_agents where id in (select id from ops.ai_agents order by last_seen_at desc offset ${2e3})
|
|
4
4
|
`)}e.s(["f",0,n],804308);var i=e.i(885298);let a={name:"watchpost-console",version:"5c",via:"console",userAgent:"Watchbell console"},o=t.sql.raw("'00000000-0000-0000-0000-000000000000'::uuid");async function l(e,s){let n=e.client,i=e.tool??e.model,a=e.tokensIn??0,l=e.tokensOut??0,c=JSON.stringify(s.map(e=>({provider_id:e.providerId,scope:e.scope.slice(0,100),metric:e.metric.slice(0,40),used:e.used,limit:e.limit,remaining:e.remaining,reset_at:e.resetAt?.toISOString()??null,source:e.source}))),u=e.at.toISOString();await (0,r.db)().execute(t.sql`
|
|
5
5
|
with agent as (
|