watchbell 1.0.0 → 1.1.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/LICENSE +1 -1
- package/README.md +123 -84
- package/bin/watchbell.mjs +593 -23
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +3 -3
- package/server/.next/prerender-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 +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +38 -37
- 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/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +38 -37
- 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/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/page.js +38 -37
- 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/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +38 -37
- 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/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/[...slug]/page.js +38 -37
- 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/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/alerts/page.js +38 -37
- 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/server-reference-manifest.json +23 -23
- package/server/.next/server/app/(console)/apps/[id]/page.js +38 -37
- 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/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/apps/page.js +38 -37
- 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/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/backups/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/catalog/page.js +38 -37
- 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/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/connections/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/d1/page.js +38 -37
- 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/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/deployments/page.js +38 -37
- 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/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/dns/page.js +38 -37
- 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/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/domains/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/events/page.js +38 -37
- 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/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/firebase/page.js +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/logs/page.js +38 -37
- 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)/neon/page/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/neon/page.js +38 -37
- 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/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/overview/page.js +38 -37
- 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/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/repos/[id]/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/repos/page.js +38 -37
- 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/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/settings/page.js +38 -37
- 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/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/sql/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/status/page.js +38 -37
- 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/server-reference-manifest.json +29 -29
- package/server/.next/server/app/(console)/supabase/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/topology/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/turso/page.js +38 -37
- 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/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/upstash/page.js +38 -37
- 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/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/uptime/page.js +38 -37
- 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/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/welcome/page.js +38 -37
- 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/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 +2 -2
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- 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 +48 -46
- 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 +52 -50
- package/server/.next/server/app/api/daily/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 +48 -46
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +19 -18
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +22 -21
- 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 +20 -19
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +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 +9 -8
- 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 +18 -17
- 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 +18 -17
- 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 +18 -17
- 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/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js +4 -3
- 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/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/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/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 +9 -8
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js +8 -8
- 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/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/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/chunks/{[root-of-the-server]__09qqv-zsz9qhr._.js → [root-of-the-server]__00hb7hqa7qktx._.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]__06f9e4kpi0mw8._.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]__1n32c8l_j8jt4._.js → [root-of-the-server]__0abdjgj-muln9._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1jrqehmo6kq8x._.js → [root-of-the-server]__0alnp_0qkhzze._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0znb_m_wygjdc._.js → [root-of-the-server]__0erdelc9_06nk._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0u66-8g4ql645._.js → [root-of-the-server]__0grtjjr51j6xe._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0-ok-3r9xtz0y._.js → [root-of-the-server]__0hpdrg-m0n6ty._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1z3-s7wc9-uc6._.js → [root-of-the-server]__0m7_0rarf_x86._.js} +2 -2
- 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]__0p3lnkpxf2-xz._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08n3x1x850wqc._.js → [root-of-the-server]__0qmkpydmx3ljf._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_6eq1806attx._.js → [root-of-the-server]__0r-zdzq6ki5gr._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__157yb_wl7w4ly._.js → [root-of-the-server]__0rak0ce6prxwp._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__081ywec7cjq3d._.js → [root-of-the-server]__0rxrv00e5e6fj._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1_5q9zgl6p5_3._.js → [root-of-the-server]__0sivlmcvkc1uq._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1x9tt_2yhozwe._.js → [root-of-the-server]__0vp-x4ifpr3p9._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0j0medewrv95l._.js → [root-of-the-server]__0z-41cwvkliev._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__06iz-tlpv7pqm._.js → [root-of-the-server]__0zd61mh-juh2i._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mtlynfv-vklo._.js → [root-of-the-server]__1-q6_msattgcu._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__018ux7xja83l6._.js → [root-of-the-server]__1-rqermjb77se._.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]__11k46kam6tbia._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mhtnnebbepzx._.js → [root-of-the-server]__11kfkk5yxz4ge._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ymon9r-17xe_._.js → [root-of-the-server]__13be7gbo81td4._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0uyagcs61c0t_._.js → [root-of-the-server]__13scfgchwlitx._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__14zpwd7xntffk._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__15tt645jfx-br._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__08801yoxfe_os._.js → [root-of-the-server]__15zbj_ehkvv-n._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__16sp8qurcwsnf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1_1-jgxiadvs0._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_2akhn6c9eqq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c2u-bg524-_w._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c8_e0jqh_8na._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0qpf0qusq792k._.js → [root-of-the-server]__1flvcyht5uk7h._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1g-be2zoiz2tf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1h96ebyza_vlh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__02ihdvnmhshoe._.js → [root-of-the-server]__1hw6s0e7p2-6g._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1j26i51ankv-z._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1ldcwvd42rpuz._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0q691wec2busx._.js → [root-of-the-server]__1objhlwwrjfjk._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0wt74rsaz-308._.js → [root-of-the-server]__1qzor1nqajuyp._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__18mztbxkzaxjs._.js → [root-of-the-server]__1rf3slum5swk2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1sj7uwyq1gpet._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0tb-63ts77gqd._.js → [root-of-the-server]__1tefe1f5835t_._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__132wlw6sbwt1d._.js → [root-of-the-server]__1vi0u2vkv3tk0._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__202r0hxhr5bnu._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__2196hxm-s7u6e._.js +3 -0
- package/server/.next/server/chunks/{_076dwl7r_5vcl._.js → _061mqfu1rkl7g._.js} +4 -4
- package/server/.next/server/chunks/{_0594j_bb0l80e._.js → _0c_vrxu6rin-k._.js} +2 -2
- package/server/.next/server/chunks/_0ejcrge5k4quv._.js +9 -9
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +3 -0
- package/server/.next/server/chunks/_0qawxzcf--lyq._.js +2 -2
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
- package/server/.next/server/chunks/{_0m49djgc1t4wg._.js → _0qrn1v02iivm8._.js} +2 -2
- package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +2 -2
- package/server/.next/server/chunks/_0vz0de4gz70-e._.js +1 -1
- package/server/.next/server/chunks/_103ai6ybnpq1k._.js +1 -1
- package/server/.next/server/chunks/_108e86rhye0o1._.js +1 -1
- package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
- package/server/.next/server/chunks/{_0r4am1mgz4dg_._.js → _1b63jfweu0o04._.js} +2 -2
- package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +9 -9
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
- package/server/.next/server/chunks/{_08tppw9ujlpke._.js → _1i57ar6zvd7yb._.js} +4 -4
- package/server/.next/server/chunks/{_11p2ejgai2a78._.js → _1k2cwp1_wt6qm._.js} +2 -2
- package/server/.next/server/chunks/_1kcmwgs544mo-._.js +1 -1
- package/server/.next/server/chunks/{_0n5m3o7at0adm._.js → _1kj2yv4-wk2kp._.js} +4 -4
- package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +1 -1
- package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +3 -0
- package/server/.next/server/chunks/_1nuf-l7izvfl_._.js +1 -1
- package/server/.next/server/chunks/{_1rw6_0nf-3sxs._.js → _1ozrnl_on86u7._.js} +4 -4
- package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +1 -1
- package/server/.next/server/chunks/_1xeuk6g48m3_1._.js +3 -0
- package/server/.next/server/chunks/{src_0uxqs7150nhx2._.js → src_014zbodp4djeb._.js} +2 -2
- package/server/.next/server/chunks/{src_0n42os1q41rha._.js → src_04pgj--n_d4w5._.js} +2 -2
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/{src_01wdnb4skk1wz._.js → src_08bzavsfds295._.js} +2 -2
- package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +3 -0
- package/server/.next/server/chunks/{src_1-r51arho90p7._.js → src_0k78ifotuztod._.js} +2 -2
- package/server/.next/server/chunks/src_0o4-snj7wkaav._.js +1 -1
- package/server/.next/server/chunks/{src_0d-zi077mzm6v._.js → src_0xqorb3-ef3ub._.js} +2 -2
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +1 -1
- package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +1 -1
- package/server/.next/server/chunks/src_instrumentation-node_ts_1c--sr1k7_8k2._.js +3 -0
- package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +6 -6
- package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +2 -2
- package/server/.next/server/chunks/src_lib_0cbs2jlrw1qbh._.js +3 -0
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +6 -6
- package/server/.next/server/chunks/src_lib_0vl2-zp4wzw7n._.js +3 -0
- package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +1 -1
- package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +2 -2
- package/server/.next/server/chunks/src_lib_13g9xjx8ci00z._.js +3 -0
- package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +6 -6
- package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +2 -2
- package/server/.next/server/chunks/src_lib_1yd94hta5y1hx._.js +3 -0
- package/server/.next/server/chunks/src_lib_brand-env_ts_1wcm1bjuismq_._.js +3 -0
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
- package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_backup-db_ts_19rtzbv84xz_h._.js +2 -2
- package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
- package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +9 -9
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
- package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +9 -9
- package/server/.next/server/chunks/src_lib_time_ts_1__07rt8x18k-._.js +3 -0
- package/server/.next/server/chunks/src_lib_time_ts_1a27wp71yhgti._.js +3 -0
- package/server/.next/server/chunks/src_lib_time_ts_1qlwgp7nprvbi._.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]__1u-jgivpw0_oh._.js → [externals]__0vbbz7arebnub._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.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]__04a21b9fkrqs3._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ijk9z1ot_xi4._.js → [root-of-the-server]__07n1hb3mk44lt._.js} +2 -2
- 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]__0ct71emqfru3b._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1fdzriy6yyu5d._.js → [root-of-the-server]__0hbk3gqja86zp._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.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]__0op0kqh43wd-a._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tkmutq84zkeh._.js → [root-of-the-server]__0ryl_hnreck66._.js} +2 -2
- 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]__0wf8q7-o-4n8y._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryb947ux5cq7._.js → [root-of-the-server]__11y6b96ofb-c5._.js} +2 -2
- 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]__0aahjz4fnt4c_._.js → [root-of-the-server]__13rgl1h4g39l-._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1csz822qejxk-._.js → [root-of-the-server]__168ahi_n-kf90._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11-ssp_43878t._.js → [root-of-the-server]__18b1wk6-2gq4x._.js} +2 -2
- 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]__0lks-6wz-rmk5._.js → [root-of-the-server]__1drr27jyyhw7p._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1e-xqsuqsd4ub._.js +3 -0
- 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]__1lx2k37wgre3d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1n1pq5j5p4_qn._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.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]__1xa91qls2i3j4._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__204_t7bzma353._.js +3 -0
- 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/_06kwu83_fmex9._.js +2 -2
- package/server/.next/server/chunks/ssr/{_14bz_443syxhi._.js → _06sp8cllu_ljh._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_18t7ov64ycb-w._.js → _08u2qnetu4ghm._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.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/_0cukja7zcxh7e._.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/_0mgclon6_oh87._.js +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.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/_0uogspz6zrvwk._.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/_11o43qq2eyx_r._.js +3 -0
- package/server/.next/server/chunks/ssr/{_06_f735j-1i20._.js → _12348a3ug1-wo._.js} +2 -2
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
- package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
- 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/{_08y82qdosn7ga._.js → _1_ojvke28lw3y._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
- 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/{_0o0-2ela2_qqd._.js → _1exwj9ou5yh71._.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/_1i77n2n-wb98v._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ibagew7zj8y6._.js +3 -0
- 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/_1qt1czw3w8dww._.js +3 -0
- 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/_20ln-4gu85-yt._.js +3 -0
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0i6y4bkm-0cm3._.js → _216rrmkts392q._.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_03amng1-xhfd1.js +1 -1
- 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)_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/src_00ze92e3aolj8._.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_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0qu78tivj78-x._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_1eermasnm2cgy._.js → src_11_hakxhnybdd._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.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_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_connect_connect-view_tsx_04abz05n7hdsd._.js +15 -15
- 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_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_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_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_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)_1ppp9j5e2rtqf._.js → src_app_(console)_1olpa0osy74mq._.js} +2 -2
- 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]_088bs149wsgca._.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)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +1 -1
- 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)_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)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- 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)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.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)_supabase_0ib3m2ch9gu-4._.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_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.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_124xn9wb2fasu._.js → src_app_signin_1y1xla7bcc5a1._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +3 -0
- 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_lib_005l0kcpyu43o._.js +3 -3
- package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
- package/server/.next/server/chunks/ssr/{src_lib_1l8ej-zoyyegd._.js → src_lib_0vl2-zp4wzw7n._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.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_demo_20hj85e_64pp1._.js → src_lib_demo_20zjotuzm1lm8._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
- package/server/.next/server/chunks/ssr/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_time_ts_1ualgyi3irm1z._.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_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_views-db_ts_1jbnr41mskha2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +4 -4
- package/server/.next/server/chunks/ssr/src_private_explorer_explorer_tsx_04m_tdottspjs._.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 +3 -3
- 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 +133 -133
- package/server/.next/static/chunks/0-7by9f00qb4d.js +1 -0
- package/server/.next/static/chunks/{2k9ytb8jmg14_.js → 010bc8dzhxd_0.js} +1 -1
- package/server/.next/static/chunks/01oee9tptcjdb.js +1 -0
- package/server/.next/static/chunks/02uvde7i-78p5.js +1 -0
- package/server/.next/static/chunks/{2rdmebof0d_c4.js → 03fjh6klyhqv4.js} +1 -1
- package/server/.next/static/chunks/{1o_q7_4ulcq9x.js → 06lmwdlx-fkr8.js} +1 -1
- package/server/.next/static/chunks/{1ieazx9t3vl5p.js → 08w0t5q93_9mu.js} +1 -1
- package/server/.next/static/chunks/{1mlvn70-zqjvi.js → 0anet8wttkax1.js} +1 -1
- package/server/.next/static/chunks/0ao7kjrp6bp3l.js +1 -0
- package/server/.next/static/chunks/0b0rwd99q942r.js +1 -0
- package/server/.next/static/chunks/{1ts_fd_r1kcrv.js → 0dhgqjjm0zj6_.js} +1 -1
- package/server/.next/static/chunks/{2jlv5ekbb0wu2.js → 0dnjs3de2e_d1.js} +1 -1
- package/server/.next/static/chunks/{29p15vj15jcsb.js → 0ilml-p3iktnr.js} +1 -1
- package/server/.next/static/chunks/{43_va15lk2zc1.js → 0j_5norjm-kef.js} +1 -1
- package/server/.next/static/chunks/0nx0h-723nd_u.js +7 -0
- package/server/.next/static/chunks/0unx038_2rfsp.js +1 -0
- package/server/.next/static/chunks/0y_0w1ek5fakj.js +1 -0
- package/server/.next/static/chunks/1483hxa9hair1.js +1 -0
- package/server/.next/static/chunks/{1gmof0n5nswkk.js → 18gwem_5y9wnt.js} +1 -1
- package/server/.next/static/chunks/1aoqsoecu-fy_.js +1 -0
- package/server/.next/static/chunks/1endj3d7bewa1.js +1 -0
- package/server/.next/static/chunks/1j18pg23fzwv_.js +1 -0
- package/server/.next/static/chunks/{0wlc502815llk.js → 1k01h6men2hvb.js} +1 -1
- package/server/.next/static/chunks/{158-i6phe17yl.js → 1mdaf7mwcfafr.js} +1 -1
- package/server/.next/static/chunks/{0li9-xjc40g51.js → 1o4mdgq5lu1g_.js} +1 -1
- package/server/.next/static/chunks/{3dokgd9nungcr.js → 1t2iu6ufyxecz.js} +1 -1
- package/server/.next/static/chunks/{0wtboeftyamyk.js → 1vi8tyc1ou2o3.js} +1 -1
- package/server/.next/static/chunks/1xy80z39ducub.js +1 -0
- package/server/.next/static/chunks/1yb4_s_96v9tf.js +1 -0
- package/server/.next/static/chunks/{2v14aqfx8wv9o.js → 2-8ra6gmaw_pb.js} +1 -1
- package/server/.next/static/chunks/{1-1hfgat2l_o9.js → 2cmw27buw9oce.js} +1 -1
- package/server/.next/static/chunks/{3f5sxz8awpdog.js → 2lv5qmgi8nm4h.js} +1 -1
- package/server/.next/static/chunks/2mj8z5a9dz7bh.js +1 -0
- package/server/.next/static/chunks/{1gb8jvw-g7fr7.js → 2n-h6_0i3mpxo.js} +1 -1
- package/server/.next/static/chunks/{2cjfogw85k3h-.js → 2pbnh717ldzfl.js} +1 -1
- package/server/.next/static/chunks/2qltilq3pn4ia.js +1 -0
- package/server/.next/static/chunks/{30fczssqw6xys.js → 2ufr23d_eyosj.js} +1 -1
- package/server/.next/static/chunks/2wqgz94tksucm.js +1 -0
- package/server/.next/static/chunks/{3tqh7fwtd_k_l.js → 2z6a725ntvlr6.js} +2 -2
- package/server/.next/static/chunks/{2fo6iuxb0ec7f.js → 2zdjxqgm-44u1.js} +1 -1
- package/server/.next/static/chunks/{026asl66kuq3f.js → 340ecjh1jzqjd.js} +15 -15
- package/server/.next/static/chunks/{2z1xy8l4s3usi.js → 3alfhqlczff2s.js} +1 -1
- package/server/.next/static/chunks/{36ureqoyz5e06.js → 3col9buetdxvh.js} +2 -2
- package/server/.next/static/chunks/{1zi37go-xtasg.js → 3o45i7xbzm0w-.js} +1 -1
- package/server/.next/static/chunks/{0cannaigw8lhi.js → 3o7se0ypyiqmz.js} +1 -1
- package/server/.next/static/chunks/{1c4fx4kipvnqz.js → 3oe302ug_esoe.js} +1 -1
- package/server/.next/static/chunks/3s7hj7g12rmuh.js +1 -0
- package/server/.next/static/chunks/{2fj4o7-stsvht.js → 3uujo4bht1tqo.js} +1 -1
- package/server/.next/static/chunks/3w445wy3mpp2f.js +1 -0
- package/server/.next/static/chunks/{2kmerzslng988.js → 3ypdfkwyovory.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0grnl7ncqcjft._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0m8w2-7618scn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0p_b0m2cstlrl._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zxjft8y2r575._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__114vjjaqb2wyv._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12uyws-qe6wxs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__139pgc0wpc7kg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1bwgi7nn5-hc3._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1k8s02gwythps._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lf_lo1wqcbcg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1niiijc82bgoj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1on_3p53yn6fs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1q90luznbe9-l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1r15vmrh2r06l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1woerg3tb4ls3._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1zaomh_4901_f._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__20lwsd6a4wnpe._.js +0 -3
- package/server/.next/server/chunks/_03bua_9n4apok._.js +0 -3
- package/server/.next/server/chunks/_08y82qdosn7ga._.js +0 -3
- package/server/.next/server/chunks/_1bcsmpznxhk9h._.js +0 -3
- package/server/.next/server/chunks/_1he3nioua8ee5._.js +0 -3
- package/server/.next/server/chunks/_1lpcbqj4uzrsh._.js +0 -3
- package/server/.next/server/chunks/src_0l-no1yc1_izn._.js +0 -3
- package/server/.next/server/chunks/src_156ewlek-4a4z._.js +0 -3
- package/server/.next/server/chunks/src_lib_0-ylqsh7whlj2._.js +0 -3
- package/server/.next/server/chunks/src_lib_0f0p6-l5vvduu._.js +0 -3
- package/server/.next/server/chunks/src_lib_15a3m-j_urkkp._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__06s-dfcfuperv._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__07or1m2vwon1m._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0d9lwldljqtvx._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0uklr553mp86_._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1cykncw1_xcno._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1ih2a_fbqu7ko._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1j7_a902k_8es._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1ofzjllv-b0o0._.js +0 -3
- package/server/.next/server/chunks/ssr/_040ixxsgfs0vi._.js +0 -3
- package/server/.next/server/chunks/ssr/_0ux6eo_w1x155._.js +0 -3
- package/server/.next/server/chunks/ssr/_12o9qqjoik4q4._.js +0 -3
- package/server/.next/server/chunks/ssr/_1k2q3yt1h6cfs._.js +0 -3
- package/server/.next/server/chunks/ssr/_1zhtvg8t3jtxe._.js +0 -3
- package/server/.next/server/chunks/ssr/_200p6me5_kp2j._.js +0 -3
- package/server/.next/server/chunks/ssr/src_00s82lfm2ga7-._.js +0 -3
- package/server/.next/server/chunks/ssr/src_13hsrg6rdvh-d._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1xgsz_do2xpr2._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_shell_shell_tsx_1cpq-hbch_dvj._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_0y40wht-o-oc2._.js +0 -3
- package/server/.next/static/chunks/03qto0oyf2r1n.js +0 -1
- package/server/.next/static/chunks/0c7pskzfstcdh.js +0 -1
- package/server/.next/static/chunks/0n_l4a3za5-q8.js +0 -1
- package/server/.next/static/chunks/0t96fqp1vsmrp.js +0 -1
- package/server/.next/static/chunks/1sm8wxvlpowwg.js +0 -1
- package/server/.next/static/chunks/1teh52nh5dujq.js +0 -1
- package/server/.next/static/chunks/1v4hl1z0y1npd.js +0 -1
- package/server/.next/static/chunks/1vh2psoqw3ddc.js +0 -1
- package/server/.next/static/chunks/1xau8pf40_upi.js +0 -7
- package/server/.next/static/chunks/1z2rcngn3-7i5.js +0 -1
- package/server/.next/static/chunks/210qrsqvmgaet.js +0 -1
- package/server/.next/static/chunks/2llric-1orr3y.js +0 -1
- package/server/.next/static/chunks/2wb9a1xth0yhf.js +0 -1
- package/server/.next/static/chunks/34gs6c2dsgtqy.js +0 -1
- package/server/.next/static/chunks/3ag6t3ta58rih.js +0 -1
- package/server/.next/static/chunks/3gkta99h3_5i2.js +0 -1
- /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → n3Kt7dFNHr9KDw7DgGz0m}/_buildManifest.js +0 -0
- /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → n3Kt7dFNHr9KDw7DgGz0m}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → n3Kt7dFNHr9KDw7DgGz0m}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,399582,e=>{let t=(0,e.i(33550).f)("outline","copy","Copy",[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);e.s(["f",0,t],399582)},469472,e=>{let t=(0,e.i(33550).f)("outline","user-plus","UserPlus",[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4",key:"svg-3"}]]);e.s(["f",0,t],469472)},225913,e=>{var t=e.i(207670);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>n=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:s,defaultVariants:l}=t,o=Object.keys(s).map(e=>{let t=null==n?void 0:n[e],r=null==l?void 0:l[e];if(null===t)return null;let i=a(t)||a(r);return s[e][i]}),d=n&&Object.entries(n).reduce((e,t)=>{let[a,r]=t;return void 0===r||(e[a]=r),e},{});return r(e,o,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:a,className:r,...n}=t;return Object.entries(n).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...l,...d}[t]):({...l,...d})[t]===a})?[...e,a,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}])},239430,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(428325),i=e.i(95187);let s=(0,i.createServerReference)("402fea4b08c8ac33c19125a2ac3b5c3c3c393709dd",i.callServer,void 0,i.findSourceMapURL,"setActionsRepoAction");e.s(["ActionsRepoForm",0,function({current:e}){let[i,l]=(0,a.useState)(e??""),[o,d]=(0,a.useTransition)();return(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("input",{className:`${n.S} w-72 font-mono`,placeholder:"yourname/watchbell-actions",value:i,onChange:e=>l(e.target.value),"aria-label":"Actions repository"}),(0,t.jsx)(n.K,{size:"sm",onClick:()=>d(async()=>{let e=await s(i);e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)}),disabled:o||i.trim()===(e??""),children:o?"Saving…":"Save"})]})}],239430)},211032,e=>{var t=e.i(843476),a=e.i(469472),r=e.i(271645),n=e.i(846696),i=e.i(428325),s=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("60ea36905bdd58e367c451e908f5449de946ae3569",l.callServer,void 0,l.findSourceMapURL,"addMember"),d=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function c({added:e,onDone:a}){let[l,o]=(0,r.useState)(!1),d=async()=>{try{await navigator.clipboard.writeText(e.password),o(!0)}catch{n.c.error("Couldn't copy. Select the password and copy it yourself.")}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsxs)(s.F,{className:"text-base",children:[e.email," was added"]}),(0,t.jsx)(s.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Share this temporary password with them privately (not in a group chat or a ticket). It is shown only now and works for 7 days; they choose their own at their first sign-in."})]}),(0,t.jsx)("div",{className:"px-[18px] pb-3.5 pt-1.5",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface-2 px-3 py-2",children:[(0,t.jsx)("code",{className:"flex-1 select-all break-all font-mono text-[14px] tracking-wide","aria-label":"Temporary password",children:e.password}),(0,t.jsx)(i.K,{size:"sm",onClick:d,children:l?"Copied":"Copy"})]})}),(0,t.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,t.jsx)(i.K,{variant:"primary",onClick:a,children:"Done"})})]})}function u({onDone:e}){let[l,p,f]=(0,r.useActionState)(async(e,t)=>{let a=await o(e,t);return a.ok||a.fieldErrors||n.c.error(a.error),a},null);if(l?.ok&&l.data)return(0,t.jsx)(c,{added:l.data,onDone:e});let x=l&&!l.ok?l.fieldErrors??{}:{};return(0,t.jsxs)("form",{action:p,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(s.F,{className:"text-base",children:"Add member"}),(0,t.jsx)(s.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"This creates their account with a temporary password, shown once on the next screen."})]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsx)(i.O,{id:"add-email",label:"Email",error:x.email,children:(0,t.jsx)("input",{id:"add-email",name:"email",type:"email",placeholder:"name@example.com",className:i.S})}),(0,t.jsxs)("fieldset",{className:"mb-3.5",children:[(0,t.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:d.map(([e,a,r])=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,t.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,t.jsxs)("span",{children:[a,(0,t.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),x.role&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:x.role})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(i.K,{onClick:e,disabled:f,children:"Cancel"}),(0,t.jsx)(i.K,{type:"submit",variant:"primary",disabled:f,children:f?"Adding…":"Add member"})]})]})}e.s(["AddMemberDialog",0,function(){let[e,a]=(0,r.useState)(!1);return(0,t.jsxs)(s.N,{open:e,onOpenChange:a,children:[(0,t.jsx)(s.a,{render:(0,t.jsx)(i.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Add member"}),(0,t.jsx)(s.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,t.jsx)(u,{onDone:()=>a(!1)})})]})}],211032)},92267,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(46200),i=e.i(428325);let s={qstashPerDay:1e3,webAnalyticsEvents:5e4,vercelInvocations:1e6,vercelCpuHours:4,vercelMemoryGbH:360,warnPct:70,errPct:90},l=[{key:"qstashPerDay",label:"Upstash QStash messages",unit:"a day",min:1,max:1e7},{key:"webAnalyticsEvents",label:"Vercel Web Analytics events",unit:"a month",min:1,max:1e8},{key:"vercelInvocations",label:"Vercel function invocations",unit:"a month",min:1,max:1e9},{key:"vercelCpuHours",label:"Vercel active CPU",unit:"hours a month",min:1,max:1e4},{key:"vercelMemoryGbH",label:"Vercel provisioned memory",unit:"GB-hours a month",min:1,max:1e5},{key:"warnPct",label:"Warn from",unit:"% used",min:10,max:99},{key:"errPct",label:"Alarm from",unit:"% used",min:11,max:100}];var o=e.i(975157),d=e.i(95187);let c=(0,d.createServerReference)("00d834d5ee2d9a4a8cf0debc6506a17aaeb2530a26",d.callServer,void 0,d.findSourceMapURL,"resetBudget"),u=(0,d.createServerReference)("40a73d5d6eb2c99a47f7e47b1dbf1dd3894fee710a",d.callServer,void 0,d.findSourceMapURL,"saveBudget"),p=e=>Object.fromEntries(l.map(t=>[t.key,String(e[t.key])]));e.s(["BudgetForm",0,function({saved:e}){let[d,f]=(0,a.useState)(p(e)),[x,m]=(0,a.useState)({}),[h,g]=(0,a.useTransition)(),v=l.some(t=>d[t.key]!==String(e[t.key])),b=l.every(t=>e[t.key]===s[t.key]);return(0,t.jsxs)("div",{children:[l.map(e=>(0,t.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,t.jsxs)("label",{htmlFor:`bud-${e.key}`,className:"font-medium",children:[e.label,(0,t.jsxs)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:["Published free limit: ",s[e.key].toLocaleString("en-US")," ",e.unit]})]}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{id:`bud-${e.key}`,inputMode:"numeric",className:(0,o.f)(i.S,"w-[160px] font-mono text-[12.5px]"),value:d[e.key],"aria-invalid":!!x[e.key],onChange:t=>f(a=>({...a,[e.key]:t.target.value}))}),(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:e.unit})]}),x[e.key]&&(0,t.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:x[e.key]})]})]},e.key)),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-3",children:[(0,t.jsx)(i.K,{variant:"primary",onClick:function(){g(async()=>{let e=await u(d);m(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:h||!v,children:h?"Saving…":"Save"}),v&&(0,t.jsx)(i.K,{variant:"ghost",onClick:()=>{f(p(e)),m({})},children:"Cancel"}),!b&&(0,t.jsx)(n.f,{trigger:(0,t.jsx)(i.K,{children:"Reset to defaults"}),title:"Reset the free tier limits?",body:"The table goes back to the published free plans as last checked.",cta:"Reset",onConfirm:async()=>{let e=await c();return e.ok&&f(p(s)),{ok:e.ok,message:(e.ok?e.message:e.error)??""}}})]})]})}],92267)},178059,e=>{var t=e.i(843476),a=e.i(469472),r=e.i(271645),n=e.i(846696),i=e.i(428325),s=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("6062021d4ea50c0fc8f73c4e216a3687a54be0b12c",l.callServer,void 0,l.findSourceMapURL,"inviteUser"),d=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function c({onDone:e}){let[l,u,p]=(0,r.useActionState)(async(t,a)=>{let r=await o(t,a);return r.ok?(n.c.success(r.message??"Invite saved."),e()):r.fieldErrors||n.c.error(r.error),r},null),f=l&&!l.ok?l.fieldErrors??{}:{};return(0,t.jsxs)("form",{action:u,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(s.F,{className:"text-base",children:"Invite user"}),(0,t.jsx)(s.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"They sign in at the console's sign-in page with this email. The invite lasts 7 days."})]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsx)(i.O,{id:"inv-email",label:"Email",error:f.email,children:(0,t.jsx)("input",{id:"inv-email",name:"email",type:"email",placeholder:"name@example.com",className:i.S})}),(0,t.jsxs)("fieldset",{className:"mb-3.5",children:[(0,t.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:d.map(([e,a,r])=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,t.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,t.jsxs)("span",{children:[a,(0,t.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),f.role&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:f.role})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(i.K,{onClick:e,disabled:p,children:"Cancel"}),(0,t.jsx)(i.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save invite"})]})]})}e.s(["InviteDialog",0,function(){let[e,a]=(0,r.useState)(!1);return(0,t.jsxs)(s.N,{open:e,onOpenChange:a,children:[(0,t.jsx)(s.a,{render:(0,t.jsx)(i.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Invite user"}),(0,t.jsx)(s.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,t.jsx)(c,{onDone:()=>a(!1)})})]})}],178059)},471169,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(46200),n=e.i(428325);let i={owner:"Owner",operator:"Operator",viewer:"Viewer"};var s=e.i(95187);let l=(0,s.createServerReference)("600316714ce9ef9a37e3a43dec8ec14111b494d714",s.callServer,void 0,s.findSourceMapURL,"changeRole"),o=(0,s.createServerReference)("406aa0e657c3e8b6b31fe28dea792c1db1d9b96ada",s.callServer,void 0,s.findSourceMapURL,"removeMember"),d=(0,s.createServerReference)("40e0a5b9362ddc166ff183f9e3eea0be5077002681",s.callServer,void 0,s.findSourceMapURL,"revokeInvite"),c=e=>({ok:e.ok,message:(e.ok?e.message:e.error)??""});e.s(["RemoveMember",0,function({memberId:e,email:a,deletesAccount:i=!1}){return(0,t.jsx)(r.f,{trigger:(0,t.jsx)(n.K,{size:"sm",children:"Remove"}),title:`Remove ${a}?`,body:i?"They lose access right away. Their account and sessions are deleted.":"They lose access right away. Nothing else changes.",cta:"Remove",danger:!0,onConfirm:async()=>c(await o(e))})},"RevokeInvite",0,function({inviteId:e,email:a}){return(0,t.jsx)(r.f,{trigger:(0,t.jsx)(n.K,{size:"sm",children:"Withdraw"}),title:`Withdraw the invite for ${a}?`,body:"They can no longer join with the email they received.",cta:"Withdraw",danger:!0,onConfirm:async()=>c(await d(e))})},"RoleSelect",0,function({memberId:e,email:s,role:o}){let d,[u,p]=(0,a.useState)(o),f=(d={owner:"Owners can manage connections, users, and settings, including removing other owners.",operator:"They can redeploy, restore, wake, and silence alerts. They can't change connections, users, or settings.",viewer:"They become read-only, with no logs and no actions."},{title:"owner"===u?`Make ${s} an Owner?`:`Change ${s} to ${i[u]}?`,body:"owner"===o?`They lose access to connections, users, and settings. ${d[u]}`:d[u],cta:"owner"===u?"Make Owner":`Change to ${i[u]}`,danger:"owner"===u||"owner"===o});return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("select",{"aria-label":`Role for ${s}`,value:u,className:"rounded-md border border-line-strong bg-surface px-2 py-1 text-[13px]",onChange:e=>p(e.target.value),children:[(0,t.jsx)("option",{value:"owner",children:"Owner"}),(0,t.jsx)("option",{value:"operator",children:"Operator"}),(0,t.jsx)("option",{value:"viewer",children:"Viewer"})]}),u!==o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.f,{trigger:(0,t.jsx)(n.K,{size:"sm",variant:"primary",children:"Save"}),title:f.title,body:f.body,cta:f.cta,danger:f.danger,onConfirm:async()=>c(await l(e,u))}),(0,t.jsx)(n.K,{size:"sm",variant:"ghost",onClick:()=>p(o),children:"Cancel"})]})]})}],471169)},544661,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(428325),i=e.i(691106);let s={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(s);var o=e.i(975157),d=e.i(95187);let c=(0,d.createServerReference)("406692f0127a2c9b0a38cb0aaf63b68a9e4b03afec",d.callServer,void 0,d.findSourceMapURL,"saveRetention");e.s(["RetentionForm",0,function({saved:e,rows:d}){let[u,p]=(0,a.useState)(e),[f,x]=(0,a.useState)({}),[m,h]=(0,a.useTransition)(),g=l.some(t=>u[t]!==e[t]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:i.o,children:[(0,t.jsx)(i.U,{head:["Data","Kept for","Notes"]}),(0,t.jsx)("tbody",{children:d.map(e=>(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:i.z,children:(0,t.jsx)("label",{htmlFor:`ret-${e.key}`,children:e.kind})}),(0,t.jsxs)("td",{className:i.z,children:[(0,t.jsx)("select",{id:`ret-${e.key}`,className:(0,o.f)(n.S,"w-[130px]"),value:u[e.key],"aria-invalid":!!f[e.key],onChange:t=>p(a=>({...a,[e.key]:Number(t.target.value)})),children:s[e.key].map(e=>(0,t.jsxs)("option",{value:e,children:[e," days"]},e))}),f[e.key]&&(0,t.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:f[e.key]})]}),(0,t.jsx)("td",{className:`${i.z} whitespace-normal text-ink-soft`,children:e.note})]},e.key))})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-[18px] py-3",children:[(0,t.jsx)(n.K,{variant:"primary",onClick:function(){h(async()=>{let e=await c(Object.fromEntries(l.map(e=>[e,String(u[e])])));x(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:m||!g,children:m?"Saving…":"Save"}),g&&(0,t.jsx)(n.K,{variant:"ghost",onClick:()=>{p(e),x({})},children:"Cancel"})]})]})}],544661)},486927,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(54131),i=e.i(428325),s=e.i(364440),l=e.i(691106),o=e.i(789279);let d=/^[a-z0-9-]{3,40}$/;function c(e){return e.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+/,"").slice(0,40).replace(/-+$/,"")||"monitor"}var u=e.i(975157),p=e.i(95187);let f=(0,p.createServerReference)("4083991f41c4c9fca23ad27d178ed8e52940f9c58b",p.callServer,void 0,p.findSourceMapURL,"saveStatusPageSettings"),x="min-w-0 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]";function m({id:e,label:a,help:r,error:n,children:i}){return(0,t.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,t.jsxs)("label",{htmlFor:e,className:"font-medium",children:[a,r&&(0,t.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:r})]}),(0,t.jsxs)("div",{className:"min-w-0",children:[i,n&&(0,t.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:n})]})]})}e.s(["StatusPageTab",0,function({settings:e,siteUrl:p}){let h=e.page,[g,v]=(0,a.useState)(h?.published??!1),[b,y]=(0,a.useState)(h?.slug??""),[j,k]=(0,a.useState)(h?.title??""),[w,N]=(0,a.useState)(h?.announcement??""),[S,C]=(0,a.useState)(e.monitors),[R,z]=(0,a.useState)({}),[M,A]=(0,a.useTransition)(),T=p.replace(/\/+$/,""),E=`${T}/s/${b||"{slug}"}`,K=S.find(e=>e.shown&&e.displayName.trim()),O=`${E}/badge/${K?c(K.displayName):"{name}"}.svg`,P=(e,t)=>C(a=>a.map(a=>a.id===e?{...a,...t}:a));return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)(i.N,{title:"Public status page",children:[(0,t.jsx)(m,{id:"sp-published",label:"Status page",help:"The console's only page without sign-in. It shows the names you choose, the current state, 90-day bars and maintenance. Never addresses, error text or provider names.",children:(0,t.jsxs)("label",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)("input",{id:"sp-published",type:"checkbox",className:"size-4 accent-brand",checked:g,onChange:e=>v(e.target.checked)}),"Published"]})}),(0,t.jsx)(m,{id:"sp-slug",label:"Address",help:"3–40 lowercase letters, digits or dashes.",error:R.slug,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("input",{id:"sp-slug",className:(0,u.f)(i.S,"max-w-[200px] font-mono text-[12.5px]"),value:b,maxLength:40,placeholder:"my-apps",autoComplete:"off",spellCheck:!1,"aria-invalid":!!R.slug,onChange:e=>y(e.target.value.toLowerCase())}),(0,t.jsx)("code",{className:x,children:(0,t.jsx)(n.MaskedText,{text:E})}),h?.published&&(0,t.jsx)("a",{className:(0,i.R)({size:"sm"}),href:`/s/${h.slug}`,target:"_blank",rel:"noopener noreferrer",children:"Preview"})]})}),(0,t.jsx)(m,{id:"sp-title",label:"Title",error:R.title,children:(0,t.jsx)("input",{id:"sp-title",className:(0,u.f)(i.S,"max-w-[320px]"),value:j,maxLength:80,placeholder:"e.g. My apps","aria-invalid":!!R.title,onChange:e=>k(e.target.value)})}),(0,t.jsx)(m,{id:"sp-note",label:"Announcement",help:"Optional. Shown at the top until you clear it.",children:(0,t.jsx)("input",{id:"sp-note",className:(0,u.f)(i.S,"max-w-[420px]"),value:w,maxLength:200,placeholder:"e.g. Moving to a new database tonight",onChange:e=>N(e.target.value)})}),(0,t.jsx)(m,{label:"Badges",help:"Uptime badge per monitor, for READMEs. Cached 5 minutes.",children:(0,t.jsx)("code",{className:(0,u.f)(x,"block"),children:(0,t.jsx)(n.MaskedText,{text:O})})})]}),(0,t.jsxs)(i.N,{title:"Monitors on the page",flush:!0,meta:`${S.filter(e=>e.shown).length} shown`,children:[(0,t.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-ink-soft",children:"Visitors see only the public name, never the app, its address or its database. The page lists them in this order."}),R.monitors&&(0,t.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-err",role:"alert",children:R.monitors}),0===S.length?(0,t.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No monitors yet. Add one on the Uptime page first."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:l.o,children:[(0,t.jsx)(l.U,{head:["Show","Monitor","Public name"]}),(0,t.jsx)("tbody",{children:S.map(e=>(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:(0,u.f)(l.z,"w-[60px]"),children:(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:e.shown,"aria-label":`Show ${e.path} on the public page`,onChange:t=>P(e.id,{shown:t.target.checked})})}),(0,t.jsx)("td",{className:l.z,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-[7px]",children:[(0,t.jsx)(s.f,{kind:"mon"}),(0,t.jsxs)("span",{children:[(0,t.jsx)(n.Masked,{kind:"app",real:e.appName}),(0,t.jsx)("span",{className:"text-ink-faint",children:"heartbeat"===e.kind?` \xb7 ${e.path}`:e.path})]}),"heartbeat"===e.kind&&(0,t.jsx)(i.E,{children:"Heartbeat"})]})}),(0,t.jsx)("td",{className:l.z,children:(0,t.jsx)("input",{className:(0,u.f)(i.S,"w-[220px]"),value:e.displayName,maxLength:60,placeholder:e.shown?"Public name":"","aria-label":"Public name",disabled:!e.shown,onChange:t=>P(e.id,{displayName:t.target.value})})})]},e.id))})]})}),(0,t.jsx)("div",{className:"px-[18px] py-3",children:(0,t.jsx)(i.K,{variant:"primary",onClick:function(){var e;let t,a,n,i,s,l,u,p={slug:b,title:j,announcement:w,published:g,monitors:S.filter(e=>e.shown).map(e=>({monitorId:e.id,displayName:e.displayName}))},x=(t=p&&"object"==typeof p&&!Array.isArray(p)?p:{},a={},(n="string"==typeof(e=t.slug)&&d.test(e)?e:null)||(a.slug="Use 3–40 lowercase letters, digits or dashes."),(i=("string"==typeof t.title?t.title:"").trim().slice(0,80))||(a.title="Give the page a title."),s=("string"==typeof t.announcement?t.announcement:"").trim().slice(0,200)||null,u=((l=Array.isArray(t.monitors)?t.monitors:void 0===t.monitors?[]:null)??[]).map((e,t)=>{let a=e&&"object"==typeof e?e:{};return{monitorId:"string"==typeof a.monitorId?a.monitorId:"",displayName:("string"==typeof a.displayName?a.displayName:"").trim().slice(0,60),position:t}}),(!l||u.some(e=>!(0,o.f)(e.monitorId)||!e.displayName)?a.monitors="Every monitor needs a public name.":u.length>30?a.monitors="A status page can show at most 30 monitors.":new Set(u.map(e=>e.monitorId)).size!==u.length?a.monitors="A monitor can be on the page only once.":new Set(u.map(e=>c(e.displayName))).size!==u.length&&(a.monitors="Two monitors can't share a public name."),Object.keys(a).length||!n)?{ok:!1,fieldErrors:a}:{ok:!0,value:{slug:n,title:i,announcement:s,published:!0===t.published,monitors:u}});x.ok?(z({}),A(async()=>{let e=await f(p);if(!e.ok){z(e.fieldErrors??{}),r.c.error(e.error);return}r.c.success(e.message??"Status page saved. It updates within a minute.")})):z(x.fieldErrors)},disabled:M,children:M?"Saving…":"Save"})})]})]})}],486927)},46200,e=>{var t=e.i(843476),a=e.i(146874),r=e.i(239692),n=e.i(271645),i=e.i(846696),s=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:f,danger:x=!1,onConfirm:m}){let[h,g]=(0,n.useState)(!1),v=d??h,[b,y]=(0,n.useTransition)();function j(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(v),(0,t.jsxs)(o.N,{open:v,onOpenChange:e=>{b||j(e)},children:[void 0!==e&&((0,n.isValidElement)(e)?(0,t.jsx)(o.a,{render:e}):(0,t.jsx)(o.a,{children:e})),(0,t.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${x?"text-err":"text-ink-soft"}`,children:x?(0,t.jsx)(a.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.F,{className:"text-base",children:u}),(0,t.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(s.K,{onClick:()=>j(!1),disabled:b,children:"Keep as is"}),(0,t.jsx)(s.K,{variant:x?"danger":"primary",onClick:function(){y(async()=>{try{let e=await m();e.ok?(i.c.success(e.message),j(!1)):i.c.error(e.message)}catch{i.c.error("Something went wrong. Try again.")}})},disabled:b,children:b?"Working…":f})]})]})]})}])},778085,e=>{var t=e.i(843476),a=e.i(399582),r=e.i(846696),n=e.i(428325);e.s(["CopyButton",0,function({text:e,label:i="Copy"}){async function s(){try{await navigator.clipboard.writeText(e),r.c.success("Copied.")}catch{r.c.error("Couldn't copy. Select the text and copy it by hand.")}}return(0,t.jsxs)(n.K,{size:"sm",onClick:s,children:[(0,t.jsx)(a.f,{size:14,"aria-hidden":!0})," ",i]})}])},364440,e=>{var t=e.i(843476);e.i(522016),e.i(54131);var a=e.i(975157);let r={app:["APP","bg-brand-soft text-brand"],db:["DB","bg-teal-soft text-teal"],br:["BR","bg-teal-soft text-teal"],fs:["FS","bg-teal-soft text-teal"],mon:["MON","bg-amber-soft text-amber"],dpl:["DPL","bg-gray-soft text-ink-soft"],dom:["DOM","bg-gray-soft text-ink-soft"],dns:["DNS","bg-gray-soft text-ink-soft"],usr:["USR","bg-gray-soft text-ink-soft"]};e.s(["f",0,function({kind:e}){let[n,i]=r[e];return(0,t.jsx)("span",{className:(0,a.f)("rounded px-[5px] py-px font-mono text-[10.5px] font-medium tracking-[0.02em]",i),children:n})}])},776639,e=>{var t=e.i(843476),a=e.i(526323),r=e.i(828376),r=r,n=e.i(209977),i=e.i(921637),s=e.i(141708),l=e.i(593480),o=e.i(309169),d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),f=e.i(552245);let x=u.forwardRef(function(e,t){let{render:a,className:r,disabled:n=!1,focusableWhenDisabled:i=!1,nativeButton:s=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:n,focusableWhenDisabled:i,native:s});return(0,f.a)("button",e,{state:{disabled:n},ref:[t,c],props:[o,d]})}),m=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:a="default",size:r="default",...n}){return(0,t.jsx)(x,{"data-slot":"button",className:(0,c.f)(m({variant:a,size:r,className:e})),...n})}var g=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let b=(0,g.f)(v);function y({...e}){return(0,t.jsx)(n.f.Portal,{"data-slot":"dialog-portal",...e})}function j({className:e,...a}){return(0,t.jsx)(s.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a})}e.s(["N",0,function({...e}){return(0,t.jsx)(a.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:a,showCloseButton:r=!0,...n}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(j,{}),(0,t.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n,children:[a,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(b,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...a}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...a})},"F",0,function({className:e,...a}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...a})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},677572,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(951437),n=e.i(146376),i=e.i(667865),s=e.i(552245),l=e.i(53687),o=e.i(733332);let d=a.createContext(void 0);function c(){let e=a.useContext(d);if(void 0===e)throw Error((0,o.f)(64));return e}let u={tabActivationDirection:e=>({"data-activation-direction":e})};var p=e.i(675606),f=e.i(216856),f=f,x=f,m=f;let h=a.forwardRef(function(e,o){let{className:c,defaultValue:h=0,onValueChange:b,orientation:y="horizontal",render:j,value:k,style:w,...N}=e,S=void 0!==e.defaultValue,C=a.useRef([]),[R,z]=a.useState(()=>new Map),[M,A]=(0,r.f)({controlled:k,default:h,name:"Tabs",state:"value"}),T=void 0!==k,[E,K]=a.useState(()=>new Map),O=a.useRef(void 0),P=a.useCallback(e=>g(E,e),[E]),[I,D]=a.useState(()=>({previousValue:M,tabActivationDirection:"none"})),{previousValue:$,tabActivationDirection:L}=I,U=L,V=!1;$!==M&&(U=v($,M,y,E),V=null!=$&&null!=M&&null==P(M));let F=V?$:M,_=$!==F||L!==U;(0,n.f)(()=>{_&&D({previousValue:F,tabActivationDirection:U})},[F,_,U]);let B=(0,i.f)((e,t)=>{t.activationDirection=v(M,e,y,E),b?.(e,t),t.isCanceled||A(()=>e)}),H=(0,i.f)((e,t)=>{b?.(e,(0,p.j)(t,void 0,void 0,{activationDirection:"none"}))}),W=(0,i.f)((e,t)=>(z(a=>{let r=new Map(a);return r.set(e,t),r}),()=>{z(a=>{if(a.get(e)!==t)return a;let r=new Map(a);return r.delete(e),r})})),q=a.useCallback(e=>R.get(e),[R]),G=a.useCallback(e=>{for(let t of E.values())if(e===t.value)return t.id},[E]),Z=a.useMemo(()=>({getTabElementBySelectedValue:P,getTabIdByPanelValue:G,getTabPanelIdByValue:q,onValueChange:B,orientation:y,registerMountedTabPanel:W,setTabMap:K,tabActivationDirection:U,value:M}),[P,G,q,B,y,W,K,U,M]),J=a.useMemo(()=>{for(let e of E.values())if(e.value===M)return e},[E,M]),X=a.useMemo(()=>{for(let e of E.values())if(!e.disabled)return e.value},[E]),Q=a.useRef(!S),Y=a.useRef(h),ee=a.useRef(S),et=a.useRef(!1);(0,n.f)(()=>{if(T)return;function e(e,t){A(()=>e),D({previousValue:e,tabActivationDirection:"none"}),H(e,t),Q.current=!1}if(0===E.size){et.current&&null!==M&&!O.current?.isConnected&&e(null,x.missing);return}et.current=!0,O.current=E.keys().next().value;let t=J?.disabled,a=null==J&&null!==M;if(t||M!==Y.current||(ee.current=!1),ee.current&&t&&M===Y.current)return;let r=Q.current;if(t||a){let a=X??null;if(M===a){Q.current=!1;return}let n=x.missing;r?n=f.initial:t&&(n=m.disabled),e(a,n);return}r&&null!=J&&(H(M,f.initial),Q.current=!1)},[X,T,H,J,A,E,M]);let ea={orientation:y,tabActivationDirection:U},er=(0,s.a)("div",e,{state:ea,ref:o,props:N,stateAttributesMapping:u});return(0,t.jsx)(d.Provider,{value:Z,children:(0,t.jsx)(l.f,{elementsRef:C,children:er})})});function g(e,t){for(let[a,r]of e.entries())if(t===r.value)return a;return null}function v(e,t,a,r){if(null==e||null==t)return"none";let[n,i,s]="horizontal"===a?["left","left","right"]:["top","up","down"],l=g(r,e),o=g(r,t);if(null==l||null==o)return l!==o&&("number"==typeof e||"string"==typeof e)&&typeof e==typeof t?t>e?s:i:"none";let d=l.getBoundingClientRect()[n],c=o.getBoundingClientRect()[n];return c<d?i:c>d?s:"none"}var b=e.i(108868),y=e.i(788015),j=e.i(540886);let k="data-composite-item-active";var w=e.i(395530),N=e.i(838452);let S=a.createContext(void 0);var C=e.i(380025),R=e.i(584446);let z=a.forwardRef(function(e,t){let{className:r,disabled:l=!1,render:d,value:f,id:x,nativeButton:m=!0,style:h,...g}=e,{value:v,getTabPanelIdByValue:z,onValueChange:M,orientation:A,tabActivationDirection:T}=c(),{activateOnFocus:E,registerTabResizeObserverElement:K,tabsListElement:O}=function(){let e=a.useContext(S);if(void 0===e)throw Error((0,o.f)(65));return e}(),{highlightedIndex:P,onHighlightedIndexChange:I}=(0,N.o)(),D=(0,y.f)(x),$=a.useMemo(()=>({disabled:l,id:D,value:f}),[l,D,f]),{compositeProps:L,compositeRef:U,index:V}=(0,w.f)({metadata:$}),F=f===v,_=a.useRef(!1),B=a.useRef(null),H=(0,i.f)(e=>{B.current?.(),B.current=e?K(e):null});(0,n.f)(()=>{if(_.current){_.current=!1;return}if(F&&V>-1&&P!==V){if(null!=O){let e=(0,R.T)((0,b.f)(O));if(e&&(0,R.I)(O,e))return}l||I(V)}},[F,V,P,I,l,O]);let{getButtonProps:W,buttonRef:q}=(0,j.f)({disabled:l,native:m,focusableWhenDisabled:!0}),G=z(f),Z=a.useRef(!1),J=a.useRef(!1);function X(e){M(f,(0,p.j)(C.f.none,e.nativeEvent,void 0,{activationDirection:"none"}))}return(0,s.a)("button",e,{state:{disabled:l,active:F,orientation:A,tabActivationDirection:T},ref:[t,q,U,H],props:[L,{role:"tab","aria-controls":G,"aria-selected":F,id:D,onClick:function(e){F||l||X(e)},onFocus:function(e){F||l||E&&(!Z.current||J.current)&&X(e)},onPointerDown:function(e){if(F||l)return;Z.current=!0,J.current=0===e.button;let t=(0,b.f)(e.currentTarget);function a(){Z.current=!1,J.current=!1,t.removeEventListener("pointerup",a),t.removeEventListener("pointercancel",a)}t.addEventListener("pointerup",a),t.addEventListener("pointercancel",a)},[k]:F?"":void 0,onKeyDownCapture(){_.current=!0}},g,W],stateAttributesMapping:u})});var M=e.i(144394),A=e.i(474354),T=e.i(137584),E=e.i(223910),K=e.i(673553),O=e.i(180862),O=O,P=O;O.startingStyle,P.endingStyle;let I={...u,...A.f},D=a.forwardRef(function(e,t){let{className:r,value:i,render:l,keepMounted:o=!1,style:d,...u}=e,{value:p,getTabIdByPanelValue:f,orientation:x,tabActivationDirection:m,registerMountedTabPanel:h}=c(),g=(0,y.f)(),{ref:v,index:b}=(0,K.f)(),j=i===p,{mounted:k,transitionStatus:w,setMounted:N}=(0,E.f)(j),S=!k,C=f(i),R=a.useRef(null),z=(0,s.a)("div",e,{state:{hidden:S,orientation:x,tabActivationDirection:m,transitionStatus:w},ref:[t,v,R],props:[{"aria-labelledby":C,hidden:S,id:g,role:"tabpanel",tabIndex:j?0:-1,inert:(0,M.f)(!j),"data-index":b},u],stateAttributesMapping:I});return((0,T.f)({open:j,ref:R,onComplete(){j||N(!1)}}),(0,n.f)(()=>{if(null!=g&&(!S||o))return h(i,g)},[S,o,i,g,h]),o||k)?z:null});var $=e.i(956789),L=e.i(828918),U=e.i(673327),V=e.i(621082),F=e.i(872855);function _(e){let{render:r,className:o,style:d,refs:c=$.v,props:u=$.v,state:p=$.w,stateAttributesMapping:f,highlightedIndex:x,onHighlightedIndexChange:m,orientation:h,grid:g,loopFocus:v,onLoop:b,enableHomeAndEndKeys:y,onMapChange:j,stopEventPropagation:w=!0,rootRef:S,disabledIndices:C,modifierKeys:z,highlightItemOnHover:M=!1,tag:A="div",...T}=e,{props:E,highlightedIndex:K,onHighlightedIndexChange:O,elementsRef:P,onMapChange:I,relayKeyboardEvent:D}=function(e){let{loopFocus:t=!0,orientation:r="both",grid:s,onLoop:l,direction:o,highlightedIndex:d,onHighlightedIndexChange:c,rootRef:u,enableHomeAndEndKeys:p=!1,stopEventPropagation:f,disabledIndices:x,modifierKeys:m=$.v}=e,[h,g]=a.useState(0),v=null!=s,b=a.useRef(null),y=(0,L.A)(b,u),j=a.useRef([]),w=a.useRef(!1),N=a.useRef(null),S=d??h,C=(0,i.f)((e,t=!1)=>{if(N.current=j.current[e]??null,(c??g)(e),t){let t=j.current[e];(0,U.l)(b.current,t,o,r)}}),z=(0,i.f)(e=>{if(0===e.size)return;if(w.current){let e=j.current,t=e.indexOf(N.current);if(-1===t){let t=e[S];!t||(0,V.K)(e,S,x)?C(function(e,t){let a=-1;for(let r=0;r<e.length;r+=1){let n=e[r];if(!(!n||(0,V.K)(e,r,t))){if(n.hasAttribute(k))return r;-1===a&&(a=r)}}return Math.max(a,0)}(e,x)):N.current=t}else t!==S&&C(t);return}w.current=!0;let t=Array.from(e.keys()),a=t.find(e=>e?.hasAttribute(k))??null,n=a?e.get(a)?.index??-1:-1;if(-1!==n)C(n);else if((0,V.K)(t,S,x)){let e=(0,V.e)(t,{disabledIndices:x});(0,V.c)(t,e)||C(e)}(0,U.l)(b.current,a,o,r)});(0,n.f)(()=>{if(null==x||null!=d||!w.current)return;let e=j.current;if((0,V.K)(e,S,x)){let t=(0,V.e)(e,{disabledIndices:x});(0,V.c)(e,t)||C(t)}},[x,d,S,j,C]);let M=(0,i.f)((e,t,a)=>l?l(e,t,a,j):a),A=(0,i.f)(e=>{let a=e.key===U.Z||e.key===U.C;if(!U.J.has(e.key)||!p&&a||function(e,t){for(let a of U.a)if(!t.includes(a)&&e.getModifierState(a))return!0;return!1}(e,m)||!b.current)return;let n="rtl"===o,i=n?U.b:U.q,d=n?U.q:U.b,c="vertical"===r?U.e:i,u="vertical"===r?U.V:d,h=(0,R.Z)(e.nativeEvent);if(null!=h&&(0,U.X)(h)&&!(null==h||h.hasAttribute("disabled")||"true"===h.getAttribute("aria-disabled"))){let t=h.selectionStart,a=h.selectionEnd,r=h.value;if(null==t||e.shiftKey||t!==a||e.key!==u&&t<r.length||e.key!==c&&t>0)return}let g=S,y=(0,V.J)(j,x),k=(0,V._)(j,x);null!=s&&(g=s({disabledIndices:x,elementsRef:j,event:e,highlightedIndex:S,loopFocus:t,maxIndex:k,minIndex:y,onLoop:M,orientation:r,rtl:n}));let w="vertical"!==r&&e.key===i||"horizontal"!==r&&e.key===U.e,N="vertical"!==r&&e.key===d||"horizontal"!==r&&e.key===U.V;p&&(e.key===U.Z?g=y:e.key===U.C&&(g=k)),g===S&&(w||N)&&(t&&g===k&&w?(g=y,l&&(g=l(e,S,g,j))):t&&g===y&&N?(g=k,l&&(g=l(e,S,g,j))):g=(0,V.e)(j.current,{startingIndex:g,decrement:N,disabledIndices:x})),g===S||(0,V.c)(j.current,g)||(f&&e.stopPropagation(),(v||a||w||N)&&e.preventDefault(),C(g,!0),queueMicrotask(()=>{j.current[g]?.focus()}))});return{props:{ref:y,onFocus(e){let t=b.current,a=(0,R.Z)(e.nativeEvent);t&&null!=a&&(0,U.X)(a)&&a.setSelectionRange(0,a.value.length)},onKeyDown:A},highlightedIndex:S,onHighlightedIndexChange:C,elementsRef:j,onMapChange:z,relayKeyboardEvent:A}}({grid:g,loopFocus:v,onLoop:b,orientation:h,highlightedIndex:x,onHighlightedIndexChange:m,rootRef:S,stopEventPropagation:w,enableHomeAndEndKeys:y,direction:(0,F.f)(),disabledIndices:C,modifierKeys:z}),_=(0,s.a)(A,e,{state:p,ref:c,props:[E,...u,T],stateAttributesMapping:f}),B=a.useMemo(()=>({highlightedIndex:K,onHighlightedIndexChange:O,highlightItemOnHover:M,relayKeyboardEvent:D}),[K,O,M,D]);return(0,t.jsx)(N.e.Provider,{value:B,children:(0,t.jsx)(l.f,{elementsRef:P,onMapChange:e=>{j?.(e),I(e)},children:_})})}let B=a.forwardRef(function(e,r){let{activateOnFocus:s=!1,className:l,loopFocus:o=!0,render:d,style:p,...f}=e,{orientation:x,setTabMap:m,tabActivationDirection:h}=c(),[g,v]=a.useState(0),[b,y]=a.useState(null),j=a.useRef(new Set),k=a.useRef(new Set),w=a.useRef(null);(0,n.f)(()=>{if("u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{j.current.forEach(e=>{e()})});return w.current=e,b&&e.observe(b),k.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),w.current=null}},[b]);let N=(0,i.f)(e=>(j.current.add(e),()=>{j.current.delete(e)})),C=(0,i.f)(e=>(k.current.add(e),w.current?.observe(e),()=>{k.current.delete(e),w.current?.unobserve(e)})),R=a.useMemo(()=>({activateOnFocus:s,registerIndicatorUpdateListener:N,registerTabResizeObserverElement:C,tabsListElement:b}),[s,N,C,b]);return(0,t.jsx)(S.Provider,{value:R,children:(0,t.jsx)(_,{render:d,className:l,style:p,state:{orientation:x,tabActivationDirection:h},refs:[r,y],props:[{"aria-orientation":"vertical"===x?"vertical":void 0,role:"tablist"},f],stateAttributesMapping:u,highlightedIndex:g,enableHomeAndEndKeys:!0,loopFocus:o,orientation:x,onHighlightedIndexChange:v,onMapChange:m,disabledIndices:$.v})})});e.s(["List",0,B,"Panel",0,D,"Root",0,h,"Tab",0,z],69281);var H=e.i(69281),H=H,W=H,q=H,G=H,Z=e.i(225913),J=e.i(975157);let X=(0,Z.f)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"w-full justify-start gap-1 overflow-x-auto bg-transparent p-0 shadow-[inset_0_-1px_0_var(--oc-line)] group-data-horizontal/tabs:h-auto"}},defaultVariants:{variant:"default"}});e.s(["Tabs",0,function({className:e,orientation:a="horizontal",...r}){return(0,t.jsx)(H.Root,{"data-slot":"tabs","data-orientation":a,className:(0,J.f)("group/tabs flex gap-2 data-horizontal:flex-col",e),...r})},"TabsContent",0,function({className:e,...a}){return(0,t.jsx)(G.Panel,{"data-slot":"tabs-content",className:(0,J.f)("flex-1 text-sm outline-none",e),...a})},"TabsList",0,function({className:e,variant:a="default",...r}){return(0,t.jsx)(W.List,{"data-slot":"tabs-list","data-variant":a,className:(0,J.f)(X({variant:a}),e),...r})},"TabsTrigger",0,function({className:e,...a}){return(0,t.jsx)(q.Tab,{"data-slot":"tabs-trigger",className:(0,J.f)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100","group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:px-3 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:text-sm group-data-[variant=line]/tabs-list:font-normal group-data-[variant=line]/tabs-list:text-ink-soft group-data-[variant=line]/tabs-list:hover:text-ink group-data-[variant=line]/tabs-list:data-active:font-medium group-data-[variant=line]/tabs-list:data-active:text-ink group-data-[variant=line]/tabs-list:after:bg-brand group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:after:bottom-0","dark:group-data-[variant=line]/tabs-list:text-ink-soft dark:group-data-[variant=line]/tabs-list:hover:text-ink dark:group-data-[variant=line]/tabs-list:data-active:text-ink",e),...a})}],677572)},789279,e=>{let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&t.test(e)])}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,399582,e=>{let t=(0,e.i(33550).f)("outline","copy","Copy",[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);e.s(["f",0,t],399582)},469472,e=>{let t=(0,e.i(33550).f)("outline","user-plus","UserPlus",[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4",key:"svg-3"}]]);e.s(["f",0,t],469472)},225913,e=>{var t=e.i(207670);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>n=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:s,defaultVariants:l}=t,o=Object.keys(s).map(e=>{let t=null==n?void 0:n[e],r=null==l?void 0:l[e];if(null===t)return null;let i=a(t)||a(r);return s[e][i]}),d=n&&Object.entries(n).reduce((e,t)=>{let[a,r]=t;return void 0===r||(e[a]=r),e},{});return r(e,o,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:a,className:r,...n}=t;return Object.entries(n).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...l,...d}[t]):({...l,...d})[t]===a})?[...e,a,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}])},239430,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(428325),i=e.i(95187);let s=(0,i.createServerReference)("401c32ac35624a22f3a473ca616f87f174df8fc130",i.callServer,void 0,i.findSourceMapURL,"setActionsRepoAction");e.s(["ActionsRepoForm",0,function({current:e}){let[i,l]=(0,a.useState)(e??""),[o,d]=(0,a.useTransition)();return(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("input",{className:`${n.S} w-72 font-mono`,placeholder:"yourname/watchbell-actions",value:i,onChange:e=>l(e.target.value),"aria-label":"Actions repository"}),(0,t.jsx)(n.K,{size:"sm",onClick:()=>d(async()=>{let e=await s(i);e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)}),disabled:o||i.trim()===(e??""),children:o?"Saving…":"Save"})]})}],239430)},211032,e=>{var t=e.i(843476),a=e.i(469472),r=e.i(271645),n=e.i(846696),i=e.i(428325),s=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("602fa4b3feb2a9e57fdbe35746b488ebe183c69ed8",l.callServer,void 0,l.findSourceMapURL,"addMember"),d=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function c({added:e,onDone:a}){let[l,o]=(0,r.useState)(!1),d=async()=>{try{await navigator.clipboard.writeText(e.password),o(!0)}catch{n.c.error("Couldn't copy. Select the password and copy it yourself.")}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsxs)(s.F,{className:"text-base",children:[e.email," was added"]}),(0,t.jsx)(s.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Share this temporary password with them privately (not in a group chat or a ticket). It is shown only now and works for 7 days; they choose their own at their first sign-in."})]}),(0,t.jsx)("div",{className:"px-[18px] pb-3.5 pt-1.5",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface-2 px-3 py-2",children:[(0,t.jsx)("code",{className:"flex-1 select-all break-all font-mono text-[14px] tracking-wide","aria-label":"Temporary password",children:e.password}),(0,t.jsx)(i.K,{size:"sm",onClick:d,children:l?"Copied":"Copy"})]})}),(0,t.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,t.jsx)(i.K,{variant:"primary",onClick:a,children:"Done"})})]})}function u({onDone:e}){let[l,p,f]=(0,r.useActionState)(async(e,t)=>{let a=await o(e,t);return a.ok||a.fieldErrors||n.c.error(a.error),a},null);if(l?.ok&&l.data)return(0,t.jsx)(c,{added:l.data,onDone:e});let x=l&&!l.ok?l.fieldErrors??{}:{};return(0,t.jsxs)("form",{action:p,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(s.F,{className:"text-base",children:"Add member"}),(0,t.jsx)(s.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"This creates their account with a temporary password, shown once on the next screen."})]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsx)(i.O,{id:"add-email",label:"Email",error:x.email,children:(0,t.jsx)("input",{id:"add-email",name:"email",type:"email",placeholder:"name@example.com",className:i.S})}),(0,t.jsxs)("fieldset",{className:"mb-3.5",children:[(0,t.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:d.map(([e,a,r])=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,t.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,t.jsxs)("span",{children:[a,(0,t.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),x.role&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:x.role})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(i.K,{onClick:e,disabled:f,children:"Cancel"}),(0,t.jsx)(i.K,{type:"submit",variant:"primary",disabled:f,children:f?"Adding…":"Add member"})]})]})}e.s(["AddMemberDialog",0,function(){let[e,a]=(0,r.useState)(!1);return(0,t.jsxs)(s.N,{open:e,onOpenChange:a,children:[(0,t.jsx)(s.a,{render:(0,t.jsx)(i.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Add member"}),(0,t.jsx)(s.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,t.jsx)(u,{onDone:()=>a(!1)})})]})}],211032)},92267,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(46200),i=e.i(428325);let s={qstashPerDay:1e3,webAnalyticsEvents:5e4,vercelInvocations:1e6,vercelCpuHours:4,vercelMemoryGbH:360,warnPct:70,errPct:90},l=[{key:"qstashPerDay",label:"Upstash QStash messages",unit:"a day",min:1,max:1e7},{key:"webAnalyticsEvents",label:"Vercel Web Analytics events",unit:"a month",min:1,max:1e8},{key:"vercelInvocations",label:"Vercel function invocations",unit:"a month",min:1,max:1e9},{key:"vercelCpuHours",label:"Vercel active CPU",unit:"hours a month",min:1,max:1e4},{key:"vercelMemoryGbH",label:"Vercel provisioned memory",unit:"GB-hours a month",min:1,max:1e5},{key:"warnPct",label:"Warn from",unit:"% used",min:10,max:99},{key:"errPct",label:"Alarm from",unit:"% used",min:11,max:100}];var o=e.i(975157),d=e.i(95187);let c=(0,d.createServerReference)("003ad3320b8c80d9350cfe330615d091cecd86c04e",d.callServer,void 0,d.findSourceMapURL,"resetBudget"),u=(0,d.createServerReference)("40323832a2075064b7493f126e83836beea553f8ab",d.callServer,void 0,d.findSourceMapURL,"saveBudget"),p=e=>Object.fromEntries(l.map(t=>[t.key,String(e[t.key])]));e.s(["BudgetForm",0,function({saved:e}){let[d,f]=(0,a.useState)(p(e)),[x,m]=(0,a.useState)({}),[h,g]=(0,a.useTransition)(),v=l.some(t=>d[t.key]!==String(e[t.key])),b=l.every(t=>e[t.key]===s[t.key]);return(0,t.jsxs)("div",{children:[l.map(e=>(0,t.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,t.jsxs)("label",{htmlFor:`bud-${e.key}`,className:"font-medium",children:[e.label,(0,t.jsxs)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:["Published free limit: ",s[e.key].toLocaleString("en-US")," ",e.unit]})]}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{id:`bud-${e.key}`,inputMode:"numeric",className:(0,o.f)(i.S,"w-[160px] font-mono text-[12.5px]"),value:d[e.key],"aria-invalid":!!x[e.key],onChange:t=>f(a=>({...a,[e.key]:t.target.value}))}),(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:e.unit})]}),x[e.key]&&(0,t.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:x[e.key]})]})]},e.key)),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-3",children:[(0,t.jsx)(i.K,{variant:"primary",onClick:function(){g(async()=>{let e=await u(d);m(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:h||!v,children:h?"Saving…":"Save"}),v&&(0,t.jsx)(i.K,{variant:"ghost",onClick:()=>{f(p(e)),m({})},children:"Cancel"}),!b&&(0,t.jsx)(n.f,{trigger:(0,t.jsx)(i.K,{children:"Reset to defaults"}),title:"Reset the free tier limits?",body:"The table goes back to the published free plans as last checked.",cta:"Reset",onConfirm:async()=>{let e=await c();return e.ok&&f(p(s)),{ok:e.ok,message:(e.ok?e.message:e.error)??""}}})]})]})}],92267)},178059,e=>{var t=e.i(843476),a=e.i(469472),r=e.i(271645),n=e.i(846696),i=e.i(428325),s=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("6048ae2cc1b52a98d6d2cee7a2d3d2887d633072ba",l.callServer,void 0,l.findSourceMapURL,"inviteUser"),d=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function c({onDone:e}){let[l,u,p]=(0,r.useActionState)(async(t,a)=>{let r=await o(t,a);return r.ok?(n.c.success(r.message??"Invite saved."),e()):r.fieldErrors||n.c.error(r.error),r},null),f=l&&!l.ok?l.fieldErrors??{}:{};return(0,t.jsxs)("form",{action:u,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(s.F,{className:"text-base",children:"Invite user"}),(0,t.jsx)(s.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"They sign in at the console's sign-in page with this email. The invite lasts 7 days."})]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsx)(i.O,{id:"inv-email",label:"Email",error:f.email,children:(0,t.jsx)("input",{id:"inv-email",name:"email",type:"email",placeholder:"name@example.com",className:i.S})}),(0,t.jsxs)("fieldset",{className:"mb-3.5",children:[(0,t.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:d.map(([e,a,r])=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,t.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,t.jsxs)("span",{children:[a,(0,t.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),f.role&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:f.role})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(i.K,{onClick:e,disabled:p,children:"Cancel"}),(0,t.jsx)(i.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save invite"})]})]})}e.s(["InviteDialog",0,function(){let[e,a]=(0,r.useState)(!1);return(0,t.jsxs)(s.N,{open:e,onOpenChange:a,children:[(0,t.jsx)(s.a,{render:(0,t.jsx)(i.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Invite user"}),(0,t.jsx)(s.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,t.jsx)(c,{onDone:()=>a(!1)})})]})}],178059)},471169,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(46200),n=e.i(428325);let i={owner:"Owner",operator:"Operator",viewer:"Viewer"};var s=e.i(95187);let l=(0,s.createServerReference)("607aaa4c437ae43252e8d35196116845a0c21afb75",s.callServer,void 0,s.findSourceMapURL,"changeRole"),o=(0,s.createServerReference)("40a8fb5f1b27af2d2ec36300ae576899e415b6861d",s.callServer,void 0,s.findSourceMapURL,"removeMember"),d=(0,s.createServerReference)("40d4a4262d3e2fa5b3449a3d69998fa0deead9301d",s.callServer,void 0,s.findSourceMapURL,"revokeInvite"),c=e=>({ok:e.ok,message:(e.ok?e.message:e.error)??""});e.s(["RemoveMember",0,function({memberId:e,email:a,deletesAccount:i=!1}){return(0,t.jsx)(r.f,{trigger:(0,t.jsx)(n.K,{size:"sm",children:"Remove"}),title:`Remove ${a}?`,body:i?"They lose access right away. Their account and sessions are deleted.":"They lose access right away. Nothing else changes.",cta:"Remove",danger:!0,onConfirm:async()=>c(await o(e))})},"RevokeInvite",0,function({inviteId:e,email:a}){return(0,t.jsx)(r.f,{trigger:(0,t.jsx)(n.K,{size:"sm",children:"Withdraw"}),title:`Withdraw the invite for ${a}?`,body:"They can no longer join with the email they received.",cta:"Withdraw",danger:!0,onConfirm:async()=>c(await d(e))})},"RoleSelect",0,function({memberId:e,email:s,role:o}){let d,[u,p]=(0,a.useState)(o),f=(d={owner:"Owners can manage connections, users, and settings, including removing other owners.",operator:"They can redeploy, restore, wake, and silence alerts. They can't change connections, users, or settings.",viewer:"They become read-only, with no logs and no actions."},{title:"owner"===u?`Make ${s} an Owner?`:`Change ${s} to ${i[u]}?`,body:"owner"===o?`They lose access to connections, users, and settings. ${d[u]}`:d[u],cta:"owner"===u?"Make Owner":`Change to ${i[u]}`,danger:"owner"===u||"owner"===o});return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("select",{"aria-label":`Role for ${s}`,value:u,className:"rounded-md border border-line-strong bg-surface px-2 py-1 text-[13px]",onChange:e=>p(e.target.value),children:[(0,t.jsx)("option",{value:"owner",children:"Owner"}),(0,t.jsx)("option",{value:"operator",children:"Operator"}),(0,t.jsx)("option",{value:"viewer",children:"Viewer"})]}),u!==o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.f,{trigger:(0,t.jsx)(n.K,{size:"sm",variant:"primary",children:"Save"}),title:f.title,body:f.body,cta:f.cta,danger:f.danger,onConfirm:async()=>c(await l(e,u))}),(0,t.jsx)(n.K,{size:"sm",variant:"ghost",onClick:()=>p(o),children:"Cancel"})]})]})}],471169)},544661,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(428325),i=e.i(691106);let s={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(s);var o=e.i(975157),d=e.i(95187);let c=(0,d.createServerReference)("40e3220ce754cbe4bf0a92b153c5b8134efe2f86dc",d.callServer,void 0,d.findSourceMapURL,"saveRetention");e.s(["RetentionForm",0,function({saved:e,rows:d}){let[u,p]=(0,a.useState)(e),[f,x]=(0,a.useState)({}),[m,h]=(0,a.useTransition)(),g=l.some(t=>u[t]!==e[t]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:i.o,children:[(0,t.jsx)(i.U,{head:["Data","Kept for","Notes"]}),(0,t.jsx)("tbody",{children:d.map(e=>(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:i.z,children:(0,t.jsx)("label",{htmlFor:`ret-${e.key}`,children:e.kind})}),(0,t.jsxs)("td",{className:i.z,children:[(0,t.jsx)("select",{id:`ret-${e.key}`,className:(0,o.f)(n.S,"w-[130px]"),value:u[e.key],"aria-invalid":!!f[e.key],onChange:t=>p(a=>({...a,[e.key]:Number(t.target.value)})),children:s[e.key].map(e=>(0,t.jsxs)("option",{value:e,children:[e," days"]},e))}),f[e.key]&&(0,t.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:f[e.key]})]}),(0,t.jsx)("td",{className:`${i.z} whitespace-normal text-ink-soft`,children:e.note})]},e.key))})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-[18px] py-3",children:[(0,t.jsx)(n.K,{variant:"primary",onClick:function(){h(async()=>{let e=await c(Object.fromEntries(l.map(e=>[e,String(u[e])])));x(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:m||!g,children:m?"Saving…":"Save"}),g&&(0,t.jsx)(n.K,{variant:"ghost",onClick:()=>{p(e),x({})},children:"Cancel"})]})]})}],544661)},486927,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(846696),n=e.i(54131),i=e.i(428325),s=e.i(364440),l=e.i(691106),o=e.i(789279);let d=/^[a-z0-9-]{3,40}$/;function c(e){return e.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+/,"").slice(0,40).replace(/-+$/,"")||"monitor"}var u=e.i(975157),p=e.i(95187);let f=(0,p.createServerReference)("40a8c72658197f3d3b9887fa7ab7bfd53676ec4093",p.callServer,void 0,p.findSourceMapURL,"saveStatusPageSettings"),x="min-w-0 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]";function m({id:e,label:a,help:r,error:n,children:i}){return(0,t.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,t.jsxs)("label",{htmlFor:e,className:"font-medium",children:[a,r&&(0,t.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:r})]}),(0,t.jsxs)("div",{className:"min-w-0",children:[i,n&&(0,t.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:n})]})]})}e.s(["StatusPageTab",0,function({settings:e,siteUrl:p}){let h=e.page,[g,v]=(0,a.useState)(h?.published??!1),[b,y]=(0,a.useState)(h?.slug??""),[j,k]=(0,a.useState)(h?.title??""),[w,N]=(0,a.useState)(h?.announcement??""),[S,C]=(0,a.useState)(e.monitors),[R,z]=(0,a.useState)({}),[M,A]=(0,a.useTransition)(),T=p.replace(/\/+$/,""),E=`${T}/s/${b||"{slug}"}`,K=S.find(e=>e.shown&&e.displayName.trim()),O=`${E}/badge/${K?c(K.displayName):"{name}"}.svg`,P=(e,t)=>C(a=>a.map(a=>a.id===e?{...a,...t}:a));return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)(i.N,{title:"Public status page",children:[(0,t.jsx)(m,{id:"sp-published",label:"Status page",help:"The console's only page without sign-in. It shows the names you choose, the current state, 90-day bars and maintenance. Never addresses, error text or provider names.",children:(0,t.jsxs)("label",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)("input",{id:"sp-published",type:"checkbox",className:"size-4 accent-brand",checked:g,onChange:e=>v(e.target.checked)}),"Published"]})}),(0,t.jsx)(m,{id:"sp-slug",label:"Address",help:"3–40 lowercase letters, digits or dashes.",error:R.slug,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("input",{id:"sp-slug",className:(0,u.f)(i.S,"max-w-[200px] font-mono text-[12.5px]"),value:b,maxLength:40,placeholder:"my-apps",autoComplete:"off",spellCheck:!1,"aria-invalid":!!R.slug,onChange:e=>y(e.target.value.toLowerCase())}),(0,t.jsx)("code",{className:x,children:(0,t.jsx)(n.MaskedText,{text:E})}),h?.published&&(0,t.jsx)("a",{className:(0,i.R)({size:"sm"}),href:`/s/${h.slug}`,target:"_blank",rel:"noopener noreferrer",children:"Preview"})]})}),(0,t.jsx)(m,{id:"sp-title",label:"Title",error:R.title,children:(0,t.jsx)("input",{id:"sp-title",className:(0,u.f)(i.S,"max-w-[320px]"),value:j,maxLength:80,placeholder:"e.g. My apps","aria-invalid":!!R.title,onChange:e=>k(e.target.value)})}),(0,t.jsx)(m,{id:"sp-note",label:"Announcement",help:"Optional. Shown at the top until you clear it.",children:(0,t.jsx)("input",{id:"sp-note",className:(0,u.f)(i.S,"max-w-[420px]"),value:w,maxLength:200,placeholder:"e.g. Moving to a new database tonight",onChange:e=>N(e.target.value)})}),(0,t.jsx)(m,{label:"Badges",help:"Uptime badge per monitor, for READMEs. Cached 5 minutes.",children:(0,t.jsx)("code",{className:(0,u.f)(x,"block"),children:(0,t.jsx)(n.MaskedText,{text:O})})})]}),(0,t.jsxs)(i.N,{title:"Monitors on the page",flush:!0,meta:`${S.filter(e=>e.shown).length} shown`,children:[(0,t.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-ink-soft",children:"Visitors see only the public name, never the app, its address or its database. The page lists them in this order."}),R.monitors&&(0,t.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-err",role:"alert",children:R.monitors}),0===S.length?(0,t.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No monitors yet. Add one on the Uptime page first."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:l.o,children:[(0,t.jsx)(l.U,{head:["Show","Monitor","Public name"]}),(0,t.jsx)("tbody",{children:S.map(e=>(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:(0,u.f)(l.z,"w-[60px]"),children:(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:e.shown,"aria-label":`Show ${e.path} on the public page`,onChange:t=>P(e.id,{shown:t.target.checked})})}),(0,t.jsx)("td",{className:l.z,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-[7px]",children:[(0,t.jsx)(s.f,{kind:"mon"}),(0,t.jsxs)("span",{children:[(0,t.jsx)(n.Masked,{kind:"app",real:e.appName}),(0,t.jsx)("span",{className:"text-ink-faint",children:"heartbeat"===e.kind?` \xb7 ${e.path}`:e.path})]}),"heartbeat"===e.kind&&(0,t.jsx)(i.E,{children:"Heartbeat"})]})}),(0,t.jsx)("td",{className:l.z,children:(0,t.jsx)("input",{className:(0,u.f)(i.S,"w-[220px]"),value:e.displayName,maxLength:60,placeholder:e.shown?"Public name":"","aria-label":"Public name",disabled:!e.shown,onChange:t=>P(e.id,{displayName:t.target.value})})})]},e.id))})]})}),(0,t.jsx)("div",{className:"px-[18px] py-3",children:(0,t.jsx)(i.K,{variant:"primary",onClick:function(){var e;let t,a,n,i,s,l,u,p={slug:b,title:j,announcement:w,published:g,monitors:S.filter(e=>e.shown).map(e=>({monitorId:e.id,displayName:e.displayName}))},x=(t=p&&"object"==typeof p&&!Array.isArray(p)?p:{},a={},(n="string"==typeof(e=t.slug)&&d.test(e)?e:null)||(a.slug="Use 3–40 lowercase letters, digits or dashes."),(i=("string"==typeof t.title?t.title:"").trim().slice(0,80))||(a.title="Give the page a title."),s=("string"==typeof t.announcement?t.announcement:"").trim().slice(0,200)||null,u=((l=Array.isArray(t.monitors)?t.monitors:void 0===t.monitors?[]:null)??[]).map((e,t)=>{let a=e&&"object"==typeof e?e:{};return{monitorId:"string"==typeof a.monitorId?a.monitorId:"",displayName:("string"==typeof a.displayName?a.displayName:"").trim().slice(0,60),position:t}}),(!l||u.some(e=>!(0,o.f)(e.monitorId)||!e.displayName)?a.monitors="Every monitor needs a public name.":u.length>30?a.monitors="A status page can show at most 30 monitors.":new Set(u.map(e=>e.monitorId)).size!==u.length?a.monitors="A monitor can be on the page only once.":new Set(u.map(e=>c(e.displayName))).size!==u.length&&(a.monitors="Two monitors can't share a public name."),Object.keys(a).length||!n)?{ok:!1,fieldErrors:a}:{ok:!0,value:{slug:n,title:i,announcement:s,published:!0===t.published,monitors:u}});x.ok?(z({}),A(async()=>{let e=await f(p);if(!e.ok){z(e.fieldErrors??{}),r.c.error(e.error);return}r.c.success(e.message??"Status page saved. It updates within a minute.")})):z(x.fieldErrors)},disabled:M,children:M?"Saving…":"Save"})})]})]})}],486927)},46200,e=>{var t=e.i(843476),a=e.i(146874),r=e.i(239692),n=e.i(271645),i=e.i(846696),s=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:f,danger:x=!1,onConfirm:m}){let[h,g]=(0,n.useState)(!1),v=d??h,[b,y]=(0,n.useTransition)();function j(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(v),(0,t.jsxs)(o.N,{open:v,onOpenChange:e=>{b||j(e)},children:[void 0!==e&&((0,n.isValidElement)(e)?(0,t.jsx)(o.a,{render:e}):(0,t.jsx)(o.a,{children:e})),(0,t.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${x?"text-err":"text-ink-soft"}`,children:x?(0,t.jsx)(a.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.F,{className:"text-base",children:u}),(0,t.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(s.K,{onClick:()=>j(!1),disabled:b,children:"Keep as is"}),(0,t.jsx)(s.K,{variant:x?"danger":"primary",onClick:function(){y(async()=>{try{let e=await m();e.ok?(i.c.success(e.message),j(!1)):i.c.error(e.message)}catch{i.c.error("Something went wrong. Try again.")}})},disabled:b,children:b?"Working…":f})]})]})]})}])},778085,e=>{var t=e.i(843476),a=e.i(399582),r=e.i(846696),n=e.i(428325);e.s(["CopyButton",0,function({text:e,label:i="Copy"}){async function s(){try{await navigator.clipboard.writeText(e),r.c.success("Copied.")}catch{r.c.error("Couldn't copy. Select the text and copy it by hand.")}}return(0,t.jsxs)(n.K,{size:"sm",onClick:s,children:[(0,t.jsx)(a.f,{size:14,"aria-hidden":!0})," ",i]})}])},364440,e=>{var t=e.i(843476);e.i(522016),e.i(54131);var a=e.i(975157);let r={app:["APP","bg-brand-soft text-brand"],db:["DB","bg-teal-soft text-teal"],br:["BR","bg-teal-soft text-teal"],fs:["FS","bg-teal-soft text-teal"],mon:["MON","bg-amber-soft text-amber"],dpl:["DPL","bg-gray-soft text-ink-soft"],dom:["DOM","bg-gray-soft text-ink-soft"],dns:["DNS","bg-gray-soft text-ink-soft"],usr:["USR","bg-gray-soft text-ink-soft"]};e.s(["f",0,function({kind:e}){let[n,i]=r[e];return(0,t.jsx)("span",{className:(0,a.f)("rounded px-[5px] py-px font-mono text-[10.5px] font-medium tracking-[0.02em]",i),children:n})}])},776639,e=>{var t=e.i(843476),a=e.i(526323),r=e.i(828376),r=r,n=e.i(209977),i=e.i(921637),s=e.i(141708),l=e.i(593480),o=e.i(309169),d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),f=e.i(552245);let x=u.forwardRef(function(e,t){let{render:a,className:r,disabled:n=!1,focusableWhenDisabled:i=!1,nativeButton:s=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:n,focusableWhenDisabled:i,native:s});return(0,f.a)("button",e,{state:{disabled:n},ref:[t,c],props:[o,d]})}),m=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:a="default",size:r="default",...n}){return(0,t.jsx)(x,{"data-slot":"button",className:(0,c.f)(m({variant:a,size:r,className:e})),...n})}var g=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let b=(0,g.f)(v);function y({...e}){return(0,t.jsx)(n.f.Portal,{"data-slot":"dialog-portal",...e})}function j({className:e,...a}){return(0,t.jsx)(s.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a})}e.s(["N",0,function({...e}){return(0,t.jsx)(a.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:a,showCloseButton:r=!0,...n}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(j,{}),(0,t.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n,children:[a,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(b,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...a}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...a})},"F",0,function({className:e,...a}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...a})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},677572,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(951437),n=e.i(146376),i=e.i(667865),s=e.i(552245),l=e.i(53687),o=e.i(733332);let d=a.createContext(void 0);function c(){let e=a.useContext(d);if(void 0===e)throw Error((0,o.f)(64));return e}let u={tabActivationDirection:e=>({"data-activation-direction":e})};var p=e.i(675606),f=e.i(216856),f=f,x=f,m=f;let h=a.forwardRef(function(e,o){let{className:c,defaultValue:h=0,onValueChange:b,orientation:y="horizontal",render:j,value:k,style:w,...N}=e,S=void 0!==e.defaultValue,C=a.useRef([]),[R,z]=a.useState(()=>new Map),[M,A]=(0,r.f)({controlled:k,default:h,name:"Tabs",state:"value"}),T=void 0!==k,[E,K]=a.useState(()=>new Map),O=a.useRef(void 0),P=a.useCallback(e=>g(E,e),[E]),[I,D]=a.useState(()=>({previousValue:M,tabActivationDirection:"none"})),{previousValue:$,tabActivationDirection:L}=I,U=L,V=!1;$!==M&&(U=v($,M,y,E),V=null!=$&&null!=M&&null==P(M));let F=V?$:M,_=$!==F||L!==U;(0,n.f)(()=>{_&&D({previousValue:F,tabActivationDirection:U})},[F,_,U]);let B=(0,i.f)((e,t)=>{t.activationDirection=v(M,e,y,E),b?.(e,t),t.isCanceled||A(()=>e)}),H=(0,i.f)((e,t)=>{b?.(e,(0,p.j)(t,void 0,void 0,{activationDirection:"none"}))}),W=(0,i.f)((e,t)=>(z(a=>{let r=new Map(a);return r.set(e,t),r}),()=>{z(a=>{if(a.get(e)!==t)return a;let r=new Map(a);return r.delete(e),r})})),q=a.useCallback(e=>R.get(e),[R]),G=a.useCallback(e=>{for(let t of E.values())if(e===t.value)return t.id},[E]),Z=a.useMemo(()=>({getTabElementBySelectedValue:P,getTabIdByPanelValue:G,getTabPanelIdByValue:q,onValueChange:B,orientation:y,registerMountedTabPanel:W,setTabMap:K,tabActivationDirection:U,value:M}),[P,G,q,B,y,W,K,U,M]),J=a.useMemo(()=>{for(let e of E.values())if(e.value===M)return e},[E,M]),X=a.useMemo(()=>{for(let e of E.values())if(!e.disabled)return e.value},[E]),Q=a.useRef(!S),Y=a.useRef(h),ee=a.useRef(S),et=a.useRef(!1);(0,n.f)(()=>{if(T)return;function e(e,t){A(()=>e),D({previousValue:e,tabActivationDirection:"none"}),H(e,t),Q.current=!1}if(0===E.size){et.current&&null!==M&&!O.current?.isConnected&&e(null,x.missing);return}et.current=!0,O.current=E.keys().next().value;let t=J?.disabled,a=null==J&&null!==M;if(t||M!==Y.current||(ee.current=!1),ee.current&&t&&M===Y.current)return;let r=Q.current;if(t||a){let a=X??null;if(M===a){Q.current=!1;return}let n=x.missing;r?n=f.initial:t&&(n=m.disabled),e(a,n);return}r&&null!=J&&(H(M,f.initial),Q.current=!1)},[X,T,H,J,A,E,M]);let ea={orientation:y,tabActivationDirection:U},er=(0,s.a)("div",e,{state:ea,ref:o,props:N,stateAttributesMapping:u});return(0,t.jsx)(d.Provider,{value:Z,children:(0,t.jsx)(l.f,{elementsRef:C,children:er})})});function g(e,t){for(let[a,r]of e.entries())if(t===r.value)return a;return null}function v(e,t,a,r){if(null==e||null==t)return"none";let[n,i,s]="horizontal"===a?["left","left","right"]:["top","up","down"],l=g(r,e),o=g(r,t);if(null==l||null==o)return l!==o&&("number"==typeof e||"string"==typeof e)&&typeof e==typeof t?t>e?s:i:"none";let d=l.getBoundingClientRect()[n],c=o.getBoundingClientRect()[n];return c<d?i:c>d?s:"none"}var b=e.i(108868),y=e.i(788015),j=e.i(540886);let k="data-composite-item-active";var w=e.i(395530),N=e.i(838452);let S=a.createContext(void 0);var C=e.i(380025),R=e.i(584446);let z=a.forwardRef(function(e,t){let{className:r,disabled:l=!1,render:d,value:f,id:x,nativeButton:m=!0,style:h,...g}=e,{value:v,getTabPanelIdByValue:z,onValueChange:M,orientation:A,tabActivationDirection:T}=c(),{activateOnFocus:E,registerTabResizeObserverElement:K,tabsListElement:O}=function(){let e=a.useContext(S);if(void 0===e)throw Error((0,o.f)(65));return e}(),{highlightedIndex:P,onHighlightedIndexChange:I}=(0,N.o)(),D=(0,y.f)(x),$=a.useMemo(()=>({disabled:l,id:D,value:f}),[l,D,f]),{compositeProps:L,compositeRef:U,index:V}=(0,w.f)({metadata:$}),F=f===v,_=a.useRef(!1),B=a.useRef(null),H=(0,i.f)(e=>{B.current?.(),B.current=e?K(e):null});(0,n.f)(()=>{if(_.current){_.current=!1;return}if(F&&V>-1&&P!==V){if(null!=O){let e=(0,R.T)((0,b.f)(O));if(e&&(0,R.I)(O,e))return}l||I(V)}},[F,V,P,I,l,O]);let{getButtonProps:W,buttonRef:q}=(0,j.f)({disabled:l,native:m,focusableWhenDisabled:!0}),G=z(f),Z=a.useRef(!1),J=a.useRef(!1);function X(e){M(f,(0,p.j)(C.f.none,e.nativeEvent,void 0,{activationDirection:"none"}))}return(0,s.a)("button",e,{state:{disabled:l,active:F,orientation:A,tabActivationDirection:T},ref:[t,q,U,H],props:[L,{role:"tab","aria-controls":G,"aria-selected":F,id:D,onClick:function(e){F||l||X(e)},onFocus:function(e){F||l||E&&(!Z.current||J.current)&&X(e)},onPointerDown:function(e){if(F||l)return;Z.current=!0,J.current=0===e.button;let t=(0,b.f)(e.currentTarget);function a(){Z.current=!1,J.current=!1,t.removeEventListener("pointerup",a),t.removeEventListener("pointercancel",a)}t.addEventListener("pointerup",a),t.addEventListener("pointercancel",a)},[k]:F?"":void 0,onKeyDownCapture(){_.current=!0}},g,W],stateAttributesMapping:u})});var M=e.i(144394),A=e.i(474354),T=e.i(137584),E=e.i(223910),K=e.i(673553),O=e.i(180862),O=O,P=O;O.startingStyle,P.endingStyle;let I={...u,...A.f},D=a.forwardRef(function(e,t){let{className:r,value:i,render:l,keepMounted:o=!1,style:d,...u}=e,{value:p,getTabIdByPanelValue:f,orientation:x,tabActivationDirection:m,registerMountedTabPanel:h}=c(),g=(0,y.f)(),{ref:v,index:b}=(0,K.f)(),j=i===p,{mounted:k,transitionStatus:w,setMounted:N}=(0,E.f)(j),S=!k,C=f(i),R=a.useRef(null),z=(0,s.a)("div",e,{state:{hidden:S,orientation:x,tabActivationDirection:m,transitionStatus:w},ref:[t,v,R],props:[{"aria-labelledby":C,hidden:S,id:g,role:"tabpanel",tabIndex:j?0:-1,inert:(0,M.f)(!j),"data-index":b},u],stateAttributesMapping:I});return((0,T.f)({open:j,ref:R,onComplete(){j||N(!1)}}),(0,n.f)(()=>{if(null!=g&&(!S||o))return h(i,g)},[S,o,i,g,h]),o||k)?z:null});var $=e.i(956789),L=e.i(828918),U=e.i(673327),V=e.i(621082),F=e.i(872855);function _(e){let{render:r,className:o,style:d,refs:c=$.v,props:u=$.v,state:p=$.w,stateAttributesMapping:f,highlightedIndex:x,onHighlightedIndexChange:m,orientation:h,grid:g,loopFocus:v,onLoop:b,enableHomeAndEndKeys:y,onMapChange:j,stopEventPropagation:w=!0,rootRef:S,disabledIndices:C,modifierKeys:z,highlightItemOnHover:M=!1,tag:A="div",...T}=e,{props:E,highlightedIndex:K,onHighlightedIndexChange:O,elementsRef:P,onMapChange:I,relayKeyboardEvent:D}=function(e){let{loopFocus:t=!0,orientation:r="both",grid:s,onLoop:l,direction:o,highlightedIndex:d,onHighlightedIndexChange:c,rootRef:u,enableHomeAndEndKeys:p=!1,stopEventPropagation:f,disabledIndices:x,modifierKeys:m=$.v}=e,[h,g]=a.useState(0),v=null!=s,b=a.useRef(null),y=(0,L.A)(b,u),j=a.useRef([]),w=a.useRef(!1),N=a.useRef(null),S=d??h,C=(0,i.f)((e,t=!1)=>{if(N.current=j.current[e]??null,(c??g)(e),t){let t=j.current[e];(0,U.l)(b.current,t,o,r)}}),z=(0,i.f)(e=>{if(0===e.size)return;if(w.current){let e=j.current,t=e.indexOf(N.current);if(-1===t){let t=e[S];!t||(0,V.K)(e,S,x)?C(function(e,t){let a=-1;for(let r=0;r<e.length;r+=1){let n=e[r];if(!(!n||(0,V.K)(e,r,t))){if(n.hasAttribute(k))return r;-1===a&&(a=r)}}return Math.max(a,0)}(e,x)):N.current=t}else t!==S&&C(t);return}w.current=!0;let t=Array.from(e.keys()),a=t.find(e=>e?.hasAttribute(k))??null,n=a?e.get(a)?.index??-1:-1;if(-1!==n)C(n);else if((0,V.K)(t,S,x)){let e=(0,V.e)(t,{disabledIndices:x});(0,V.c)(t,e)||C(e)}(0,U.l)(b.current,a,o,r)});(0,n.f)(()=>{if(null==x||null!=d||!w.current)return;let e=j.current;if((0,V.K)(e,S,x)){let t=(0,V.e)(e,{disabledIndices:x});(0,V.c)(e,t)||C(t)}},[x,d,S,j,C]);let M=(0,i.f)((e,t,a)=>l?l(e,t,a,j):a),A=(0,i.f)(e=>{let a=e.key===U.Z||e.key===U.C;if(!U.J.has(e.key)||!p&&a||function(e,t){for(let a of U.a)if(!t.includes(a)&&e.getModifierState(a))return!0;return!1}(e,m)||!b.current)return;let n="rtl"===o,i=n?U.b:U.q,d=n?U.q:U.b,c="vertical"===r?U.e:i,u="vertical"===r?U.V:d,h=(0,R.Z)(e.nativeEvent);if(null!=h&&(0,U.X)(h)&&!(null==h||h.hasAttribute("disabled")||"true"===h.getAttribute("aria-disabled"))){let t=h.selectionStart,a=h.selectionEnd,r=h.value;if(null==t||e.shiftKey||t!==a||e.key!==u&&t<r.length||e.key!==c&&t>0)return}let g=S,y=(0,V.J)(j,x),k=(0,V._)(j,x);null!=s&&(g=s({disabledIndices:x,elementsRef:j,event:e,highlightedIndex:S,loopFocus:t,maxIndex:k,minIndex:y,onLoop:M,orientation:r,rtl:n}));let w="vertical"!==r&&e.key===i||"horizontal"!==r&&e.key===U.e,N="vertical"!==r&&e.key===d||"horizontal"!==r&&e.key===U.V;p&&(e.key===U.Z?g=y:e.key===U.C&&(g=k)),g===S&&(w||N)&&(t&&g===k&&w?(g=y,l&&(g=l(e,S,g,j))):t&&g===y&&N?(g=k,l&&(g=l(e,S,g,j))):g=(0,V.e)(j.current,{startingIndex:g,decrement:N,disabledIndices:x})),g===S||(0,V.c)(j.current,g)||(f&&e.stopPropagation(),(v||a||w||N)&&e.preventDefault(),C(g,!0),queueMicrotask(()=>{j.current[g]?.focus()}))});return{props:{ref:y,onFocus(e){let t=b.current,a=(0,R.Z)(e.nativeEvent);t&&null!=a&&(0,U.X)(a)&&a.setSelectionRange(0,a.value.length)},onKeyDown:A},highlightedIndex:S,onHighlightedIndexChange:C,elementsRef:j,onMapChange:z,relayKeyboardEvent:A}}({grid:g,loopFocus:v,onLoop:b,orientation:h,highlightedIndex:x,onHighlightedIndexChange:m,rootRef:S,stopEventPropagation:w,enableHomeAndEndKeys:y,direction:(0,F.f)(),disabledIndices:C,modifierKeys:z}),_=(0,s.a)(A,e,{state:p,ref:c,props:[E,...u,T],stateAttributesMapping:f}),B=a.useMemo(()=>({highlightedIndex:K,onHighlightedIndexChange:O,highlightItemOnHover:M,relayKeyboardEvent:D}),[K,O,M,D]);return(0,t.jsx)(N.e.Provider,{value:B,children:(0,t.jsx)(l.f,{elementsRef:P,onMapChange:e=>{j?.(e),I(e)},children:_})})}let B=a.forwardRef(function(e,r){let{activateOnFocus:s=!1,className:l,loopFocus:o=!0,render:d,style:p,...f}=e,{orientation:x,setTabMap:m,tabActivationDirection:h}=c(),[g,v]=a.useState(0),[b,y]=a.useState(null),j=a.useRef(new Set),k=a.useRef(new Set),w=a.useRef(null);(0,n.f)(()=>{if("u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{j.current.forEach(e=>{e()})});return w.current=e,b&&e.observe(b),k.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),w.current=null}},[b]);let N=(0,i.f)(e=>(j.current.add(e),()=>{j.current.delete(e)})),C=(0,i.f)(e=>(k.current.add(e),w.current?.observe(e),()=>{k.current.delete(e),w.current?.unobserve(e)})),R=a.useMemo(()=>({activateOnFocus:s,registerIndicatorUpdateListener:N,registerTabResizeObserverElement:C,tabsListElement:b}),[s,N,C,b]);return(0,t.jsx)(S.Provider,{value:R,children:(0,t.jsx)(_,{render:d,className:l,style:p,state:{orientation:x,tabActivationDirection:h},refs:[r,y],props:[{"aria-orientation":"vertical"===x?"vertical":void 0,role:"tablist"},f],stateAttributesMapping:u,highlightedIndex:g,enableHomeAndEndKeys:!0,loopFocus:o,orientation:x,onHighlightedIndexChange:v,onMapChange:m,disabledIndices:$.v})})});e.s(["List",0,B,"Panel",0,D,"Root",0,h,"Tab",0,z],69281);var H=e.i(69281),H=H,W=H,q=H,G=H,Z=e.i(225913),J=e.i(975157);let X=(0,Z.f)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"w-full justify-start gap-1 overflow-x-auto bg-transparent p-0 shadow-[inset_0_-1px_0_var(--oc-line)] group-data-horizontal/tabs:h-auto"}},defaultVariants:{variant:"default"}});e.s(["Tabs",0,function({className:e,orientation:a="horizontal",...r}){return(0,t.jsx)(H.Root,{"data-slot":"tabs","data-orientation":a,className:(0,J.f)("group/tabs flex gap-2 data-horizontal:flex-col",e),...r})},"TabsContent",0,function({className:e,...a}){return(0,t.jsx)(G.Panel,{"data-slot":"tabs-content",className:(0,J.f)("flex-1 text-sm outline-none",e),...a})},"TabsList",0,function({className:e,variant:a="default",...r}){return(0,t.jsx)(W.List,{"data-slot":"tabs-list","data-variant":a,className:(0,J.f)(X({variant:a}),e),...r})},"TabsTrigger",0,function({className:e,...a}){return(0,t.jsx)(q.Tab,{"data-slot":"tabs-trigger",className:(0,J.f)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100","group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:px-3 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:text-sm group-data-[variant=line]/tabs-list:font-normal group-data-[variant=line]/tabs-list:text-ink-soft group-data-[variant=line]/tabs-list:hover:text-ink group-data-[variant=line]/tabs-list:data-active:font-medium group-data-[variant=line]/tabs-list:data-active:text-ink group-data-[variant=line]/tabs-list:after:bg-brand group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:after:bottom-0","dark:group-data-[variant=line]/tabs-list:text-ink-soft dark:group-data-[variant=line]/tabs-list:hover:text-ink dark:group-data-[variant=line]/tabs-list:data-active:text-ink",e),...a})}],677572)},789279,e=>{let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&t.test(e)])}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,39205,e=>{"use strict";var t=e.i(843476);let o=(0,e.i(33550).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var r=e.i(271645),a=e.i(846696),c=e.i(428325),i=e.i(95187);let n=(0,i.createServerReference)("
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,39205,e=>{"use strict";var t=e.i(843476);let o=(0,e.i(33550).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var r=e.i(271645),a=e.i(846696),c=e.i(428325),i=e.i(95187);let n=(0,i.createServerReference)("40b63d289db7609c89e2b4b4b7f70351fb389b01f2",i.callServer,void 0,i.findSourceMapURL,"exportLogsCsv");e.s(["ExportButton",0,function({params:e}){let[i,s]=(0,r.useTransition)();return(0,t.jsxs)(c.K,{onClick:()=>s(async()=>{try{let t=await n(e);if(!t.ok||!t.data)return void a.c.error(t.ok?"Nothing to export.":t.error);let o=URL.createObjectURL(new Blob(["\uFEFF",t.data.csv],{type:"text/csv;charset=utf-8"})),r=document.createElement("a");r.href=o,r.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(r),r.click(),r.remove(),URL.revokeObjectURL(o),a.c.success(t.message??"Exported.")}catch{a.c.error("Something went wrong. Try again.")}}),disabled:i,children:[(0,t.jsx)(o,{size:16,"aria-hidden":!0}),i?"Exporting...":"Export CSV"]})}],39205)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,586926,e=>{"use strict";var t=e.i(843476),a=e.i(399582),s=e.i(844582),n=e.i(617708),o=e.i(77656),r=e.i(33550);let i=(0,r.f)("outline","trash","Trash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]);var l=e.i(357772),d=e.i(522016),p=e.i(271645),c=e.i(846696),m=e.i(428325),h=e.i(220806),u=e.i(975157),y=e.i(944971),x=e.i(684496);let f={name:"X-Client",in:"header",type:"string",required:!1,default:"api-explorer",example:"my-agent/1.0",description:"Names the caller as an agent (name/version) when the request doesn't say it otherwise. The API explorer sends api-explorer."},b=JSON.stringify({model:"gemini/gemini-3.8-flash",messages:[{role:"user",content:"Say hello in five words."}],stream:!1},null,2),g=JSON.stringify({generatedAt:"2026-10-13T00:41:12.000Z",apps:[{id:"orbit-blog",state:"down",uptime30d:98.71,database:null,lastDeploy:"abc1234 · failed 19:41",problems:[{kind:"monitor",where:"Monitor /",what:"HTTP 502",fix:"Open Logs (last hour) for errors; Check the latest deployment; roll back if it started after the deploy"}]},{id:"acme-shop",state:"degraded",uptime30d:99.9,database:"db-b",lastDeploy:"9f3c2a1 · 3 days ago",problems:[{kind:"database",where:"Database db-b",what:"Paused",fix:"Restore the database from its provider (Supabase restore)"}]}],monitors:{up:6,degraded:1,down:1,paused:0,items:[{app:"orbit-blog",path:"/",kind:"http",state:"down",lastStatus:502,latencyMs:311,uptime30d:98.71,lastCheckedAt:"2026-10-13T00:41:00.000Z"}]},alerts:{open:5,critical:1,items:[{title:"orbit-blog is down",severity:"critical",app:"orbit-blog",since:"2026-10-13T00:37:00.000Z",message:"HTTP 502 on /."}]},advisor:[{title:"Next.js 15 reaches end of life on 21 Oct 2026",app:"acme-shop",severity:"warning"}]},null,2),v=JSON.stringify({id:"orbit-blog",state:"down",uptime30d:98.71,database:null,lastDeploy:"abc1234 · failed 19:41",problems:[{kind:"monitor",where:"Monitor /",what:"HTTP 502",fix:"Open Logs (last hour) for errors; Check the latest deployment; roll back if it started after the deploy"}],monitors:[{path:"/",kind:"http",state:"down",lastStatus:502,latencyMs:311,uptime30d:98.71}]},null,2),k=JSON.stringify({app:"orbit-blog",notes:[{id:"5b0f8e0c-2f0a-4b53-9d54-6c1f0d6f6a11",severity:"warn",title:"Deploy failed twice today",body:"The last two production deploys failed at the build step. Roll back to the previous deployment, then fix the build and redeploy.",source:y.U.noteSource,model:"gemini-3.8-flash",createdAt:"2026-10-13T01:02:03.000Z"}]},null,2),w=[{id:"ai-chat",operationId:"createChatCompletion",tag:"AI",method:"post",path:"/api/v1/ai/chat/completions",access:"key",scope:"ai:invoke",scopeLabel:"ai:invoke",summary:"Chat completion (OpenAI-compatible)",description:"Forwards to the provider that owns the model (provider/model, or the default provider for a bare id), over its OpenAI-compatible endpoint. stream: true answers text/event-stream. Fields outside the OpenAI chat schema are rejected.",docsOnly:!1,params:[f],body:b,bodyDescription:"An OpenAI chat completion request.",response:{status:200,contentType:"application/json",description:"The provider's answer, with the model id as Watchbell names it.",example:JSON.stringify({id:"chatcmpl-wp-01JA8",object:"chat.completion",created:0x6ad01318,model:"gemini/gemini-3.8-flash",choices:[{index:0,finish_reason:"stop",message:{role:"assistant",content:"Hello there, nice to meet!"}}],usage:{prompt_tokens:9,completion_tokens:7,total_tokens:16}},null,2)},examples:[{name:"Hello in five words",body:b},{name:"Streaming (SSE)",body:JSON.stringify({model:"gemini/gemini-3.8-flash",messages:[{role:"user",content:"Count to five."}],stream:!0},null,2)},{name:y.U.advisorExample.name,body:JSON.stringify({model:"gemini/gemini-3.8-flash",messages:[{role:"system",content:y.U.advisorExample.system},{role:"user",content:y.U.advisorExample.user}],max_tokens:400},null,2)}]},{id:"ai-models",operationId:"listModels",tag:"AI",method:"get",path:"/api/v1/ai/models",access:"key",scope:"ai:invoke",scopeLabel:"ai:invoke",summary:"List enabled models",description:`The models turned on under AI Gateway › Models, in OpenAI's list format. Provider models are provider/model, owned_by watchbell, and work with /api/v1/ai/chat/completions. ${y.U.modelsAgSentence}A key pinned to a provider or model sees only that.`,docsOnly:!1,params:[f],response:{status:200,contentType:"application/json",description:"An OpenAI-style model list.",example:JSON.stringify({object:"list",data:[{id:"gemini/gemini-3.8-flash",object:"model",created:0,owned_by:"watchbell"},...y.U.agModelExamples]},null,2)}},{id:"ai-questions",operationId:"askQuestion",tag:"AI",method:"post",path:"/api/v1/ai/questions",access:"key",scope:"ai:invoke",scopeLabel:"ai:invoke",summary:"Ask a question about the console",description:`Asks a question about the console, answered from scrubbed console data (names aliased, no URLs, emails or keys). 1-2000 characters; text that looks like a key or token is refused with 400. Optional model from GET /api/v1/ai/models. Left out, or a provider model id (provider/model, e.g. test/prrojects): the owner's own provider answers in this request (a router combo can take ~25 s) and you get 201 with the answer; the question and answer are kept 7 days (GET pollUrl reads them back, the owner sees them under AI › Ask). A provider error answers with the gateway's message (400 model_not_enabled, 429, 502 upstream_error, 503 provider_not_connected) and nothing is stored.${y.U.askAgSentence}`,docsOnly:!1,params:[f],body:JSON.stringify({question:"Is anything about to run out this week?"},null,2),bodyDescription:"question: 1-2000 characters, plain text or markdown. model (optional): a provider model id or an ag/<id> from GET /api/v1/ai/models; left out = the default provider's default model.",response:{status:201,contentType:"application/json",description:"Answered now by the owner's provider. pollUrl reads the stored question back.",example:JSON.stringify({id:"8c1f2e0a-5b7d-4f3e-9a21-6d4c0b9e7f12",status:"answered",answer:"Nothing runs out this week. db-a is at 81% of its storage; plan a cleanup within a month.",answeredBy:{client:"watchpost",model:"test/prrojects"},askedAt:"2026-10-14T00:40:00.000Z",answeredAt:"2026-10-14T00:40:24.000Z",pollUrl:"https://ops.example.com/api/v1/ai/questions/8c1f2e0a-5b7d-4f3e-9a21-6d4c0b9e7f12"},null,2)},alsoResponses:[{status:202,contentType:"application/json",description:y.U.queued,example:JSON.stringify({id:"8c1f2e0a-5b7d-4f3e-9a21-6d4c0b9e7f12",status:"pending",askedAt:"2026-10-13T07:40:00.000Z",requestedModel:"ag/gemini-3.8-flash-high",pollUrl:"https://ops.example.com/api/v1/ai/questions/8c1f2e0a-5b7d-4f3e-9a21-6d4c0b9e7f12"},null,2)}]},{id:"ai-question",operationId:"getQuestion",tag:"AI",method:"get",path:"/api/v1/ai/questions/{id}",access:"key",scope:"ai:invoke",scopeLabel:"ai:invoke",summary:"A question and its answer",description:`One question this key asked with POST /api/v1/ai/questions, for 7 days. status is pending, answered or expired (no answer within 7 days). answer is the markdown answer (up to 8000 characters) from the owner's provider (answeredBy.client watchbell) or ${y.U.answeredByAgent}. Another key's or the owner's questions answer 404 like an unknown id. requestedModel is the ag/<id> asked for, or null (default).`,docsOnly:!1,params:[{name:"id",in:"path",type:"string",required:!0,example:"8c1f2e0a-5b7d-4f3e-9a21-6d4c0b9e7f12",description:"The id from POST /api/v1/ai/questions."},f],response:{status:200,contentType:"application/json",description:"The question; answer and answeredBy are null until it is answered.",example:JSON.stringify({id:"8c1f2e0a-5b7d-4f3e-9a21-6d4c0b9e7f12",status:"answered",question:"Is anything about to run out this week?",requestedModel:"ag/gemini-3.8-flash-high",answer:"Two things: the **db-b** Supabase project pauses on Friday without traffic, and the certificate of app-a renews automatically.",answeredBy:{client:y.U.answeredByClient,model:"gemini-3.8-flash-high"},askedAt:"2026-10-13T07:40:00.000Z",answeredAt:"2026-10-13T07:41:12.000Z"},null,2)}},{id:"status",operationId:"getStatus",tag:"Console",method:"get",path:"/api/v1/status",access:"key",scope:"read:status",scopeLabel:"read:status",summary:"Console summary",description:"Apps, monitors, open alerts and the advisor, scrubbed: database aliases, no URLs, emails or secrets.",docsOnly:!1,params:[{name:"include",in:"query",type:"string",required:!1,example:"apps,alerts",description:"Comma-separated sections to return: apps, monitors, alerts, advisor. Default: all four."},f],response:{status:200,contentType:"application/json",description:"The requested sections of the console snapshot.",example:g},examples:[{name:"Everything"},{name:"Only alerts",query:{include:"alerts"}}]},{id:"status-app",operationId:"getAppStatus",tag:"Console",method:"get",path:"/api/v1/status/apps/{app}",access:"key",scope:"read:status",scopeLabel:"read:status",summary:"One app with its Why problems",description:"Same shape as one entry of apps[], plus its monitors and the remedies. The app is its name or console id; 404 not_found when it isn't a watched app.",docsOnly:!1,params:[{name:"app",in:"path",type:"string",required:!0,example:"orbit-blog",description:"The app's name (as in apps[].id) or console id."},f],response:{status:200,contentType:"application/json",description:"One app.",example:v}},{id:"advice",operationId:"getAppAdvice",tag:"Console",method:"get",path:"/api/v1/advice",access:"key",scope:"read:status",scopeLabel:"read:status",summary:"Latest AI notes for one app",description:`The newest AI notes (up to 5, not dismissed) that ${y.U.adviceAgent} wrote about the app, scrubbed like /status. ${y.U.adviceFor} for the app by name or id; 404 not_found when it isn't a watched app.`,docsOnly:!1,params:[{name:"app",in:"query",type:"string",required:!0,example:"orbit-blog",description:"The app's name or console id."},f],response:{status:200,contentType:"application/json",description:"The app and its latest notes, newest first (an empty list when there are none).",example:k}},{id:"me",operationId:"getMe",tag:"Console",method:"get",path:"/api/v1/me",access:"key",scope:"any",scopeLabel:"any key",summary:"The calling key",description:"Name, prefix, scopes, rate limit and expiry of the key you send. Handy to test a key.",docsOnly:!1,params:[f],response:{status:200,contentType:"application/json",description:"The key's public details (never the key or its hash).",example:JSON.stringify({name:"laptop-agents",prefix:"wb_Lm9x",scopes:["ai:invoke","read:status"],rateLimitPerMin:30,expiresAt:null},null,2)}},{id:"openapi",operationId:"getOpenApi",tag:"Console",method:"get",path:"/api/v1/openapi.json",access:"keyOrOwner",scope:"any",scopeLabel:"any key or owner session",summary:"This OpenAPI 3.1 document",description:"The description every endpoint of this page is built from. Needs any valid key, or the owner's signed-in session (so the download button works).",docsOnly:!1,params:[f],response:{status:200,contentType:"application/json",description:"An OpenAPI 3.1 document.",example:JSON.stringify({openapi:"3.1.0",info:{title:"Watchbell API",version:"1.0.0"},paths:{"/api/v1/status":{get:{operationId:"getStatus"}}}},null,2)}},{id:"mcp",operationId:"mcpRpc",tag:"MCP",method:"post",path:"/api/v1/mcp",access:"key",scope:"read:status",scopeLabel:"read:status",summary:"MCP server (Streamable HTTP)",description:`JSON-RPC 2.0 for Model Context Protocol clients (${y.U.mcpClients}). initialize, tools/list and tools/call for the read-only tools; submit_ai_note needs write:notes. Answers JSON (no server-sent stream needed); GET and DELETE answer 405.`,docsOnly:!1,params:[{name:"Accept",in:"header",type:"string",required:!0,default:"application/json, text/event-stream",description:"Both types, as the MCP transport requires."},{name:"MCP-Protocol-Version",in:"header",type:"string",required:!1,default:"2025-06-18",description:"The protocol revision the client speaks."},f],body:JSON.stringify({jsonrpc:"2.0",id:1,method:"tools/list"},null,2),bodyDescription:"One JSON-RPC 2.0 message (batches are rejected).",response:{status:200,contentType:"application/json",description:"The JSON-RPC response.",example:JSON.stringify({jsonrpc:"2.0",id:1,result:{tools:[{name:"list_apps",description:"Every app with its state …"},{name:"get_app",description:"One app with its Why problems …"}]}},null,2)},examples:[{name:"tools/list",body:JSON.stringify({jsonrpc:"2.0",id:1,method:"tools/list"},null,2)},{name:"tools/call get_app",body:JSON.stringify({jsonrpc:"2.0",id:2,method:"tools/call",params:{name:"get_app",arguments:{app:"orbit-blog"}}},null,2)},{name:"initialize",body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"api-explorer",version:"1.0"}}},null,2)}]},{id:"health",operationId:"getHealth",tag:"Health",method:"get",path:"/api/health",access:"none",scope:null,scopeLabel:"no key",summary:"Liveness check",description:"Answers 200 while the console is up. Public, no database read; point an uptime checker at it.",docsOnly:!1,params:[],response:{status:200,contentType:"application/json",description:"Always ok while the console answers.",example:JSON.stringify({ok:!0,service:"watchbell"},null,2)}},{id:"ping",operationId:"pingHeartbeat",tag:"Heartbeats",method:"post",path:"/api/ping/{token}",access:"token",scope:null,scopeLabel:"heartbeat token",summary:"Heartbeat ping (GET and HEAD work too)",description:"A job tells Watchbell it ran. The token is shown once when the heartbeat monitor is created; Watchbell keeps only its hash, so this page can't fill it in. Paste it below to try a ping: it is used for this request only and never stored. A real ping changes the monitor's state.",docsOnly:!1,params:[{name:"token",in:"path",type:"string",required:!0,secret:!0,example:"hb_0123456789abcdef0123456789abcdef",description:"The heartbeat token (hb_ and 32 hex characters)."}],response:{status:200,contentType:"text/plain",description:"OK; 404 for an unknown token, 429 when pinged too often.",example:"OK"}},{id:"ping-start",operationId:"pingHeartbeatStart",tag:"Heartbeats",method:"post",path:"/api/ping/{token}/start",access:"token",scope:null,scopeLabel:"heartbeat token",summary:"Heartbeat: the job started",description:"Marks the start of a run. If no OK ping follows within the grace time the monitor is down. Same token rules as /api/ping/{token}.",docsOnly:!1,params:[{name:"token",in:"path",type:"string",required:!0,secret:!0,example:"hb_0123456789abcdef0123456789abcdef",description:"The heartbeat token."}],response:{status:200,contentType:"text/plain",description:"OK.",example:"OK"}},{id:"ping-fail",operationId:"pingHeartbeatFail",tag:"Heartbeats",method:"post",path:"/api/ping/{token}/fail",access:"token",scope:null,scopeLabel:"heartbeat token",summary:"Heartbeat: the job failed",description:"Reports a failure; the monitor goes down at once. Same token rules as /api/ping/{token}.",docsOnly:!1,params:[{name:"token",in:"path",type:"string",required:!0,secret:!0,example:"hb_0123456789abcdef0123456789abcdef",description:"The heartbeat token."}],response:{status:200,contentType:"text/plain",description:"OK.",example:"OK"}},{id:"collect",operationId:"runCollector",tag:"Scheduler",method:"post",path:"/api/collect",access:"secret",scope:null,scopeLabel:"scheduler secret",summary:"Collector run",description:"Called every minute by cron-job.org with Authorization: Bearer <COLLECTOR_SECRET>. Docs only: Try it would need the secret.",docsOnly:!0,bearerEnv:"COLLECTOR_SECRET",params:[],response:{status:200,contentType:"application/json",description:"The run's summary.",example:JSON.stringify({ok:!0,ran:["monitors","deployments"],errors:[]},null,2)}},{id:"watchdog",operationId:"runWatchdog",tag:"Scheduler",method:"post",path:"/api/watchdog",access:"secret",scope:null,scopeLabel:"QStash signature",summary:"Watchdog",description:"Called by Upstash QStash every 5 minutes with an Upstash-Signature header. Docs only.",docsOnly:!0,params:[],response:{status:200,contentType:"application/json",description:"Whether the collector looked stale.",example:JSON.stringify({stale:!1},null,2)}},{id:"daily",operationId:"runDaily",tag:"Scheduler",method:"get",path:"/api/daily",access:"secret",scope:null,scopeLabel:"cron secret",summary:"Daily job",get description(){return`Vercel Cron at ${(0,x.Q)()} with Authorization: Bearer <CRON_SECRET>. Docs only.`},docsOnly:!0,bearerEnv:"CRON_SECRET",params:[],response:{status:200,contentType:"application/json",description:"The job's summary.",example:JSON.stringify({ok:!0,errors:[]},null,2)}}],j=e=>"key"===e.access||"keyOrOwner"===e.access,N=e=>e.bearerEnv??(j(e)?"WATCHBELL_API_KEY":null),S="watchpost.explorer.examples.v1",O=new Set(["authorization","cookie","proxy-authorization"]),T=/\bw[bp]_[A-Za-z0-9]{20,}|\bhb_[0-9a-f]{32}\b|\bsk-[A-Za-z0-9_-]{20,}|\bAIza[0-9A-Za-z_-]{30,}|\bgsk_[A-Za-z0-9]{20,}/,$=e=>"object"==typeof e&&null!==e&&!Array.isArray(e)&&Object.values(e).every(e=>"string"==typeof e);function C(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.opId&&"string"==typeof e.name&&e.name.length>0&&e.name.length<=60&&$(e.path)&&$(e.query)&&$(e.headers)&&"string"==typeof e.body&&e.body.length<=2e4&&"string"==typeof e.savedAt}let A={defaultModel:null,options:[]},q=new Set(["/api/v1/ai/questions"]);function E(e){try{let t=JSON.parse(e);return"object"!=typeof t||null===t||Array.isArray(t)?null:t}catch{return null}}let I=e=>{let t=e?E(e):null;return!!t&&Object.hasOwn(t,"model")};function L(e,t,a){let s=Object.hasOwn(e,"model")?{...e,model:t}:{model:t,...e};return a?JSON.stringify(s,null,2):JSON.stringify(s)}let J=(e,t)=>void 0!==e&&I(e)?L(E(e),t,e.includes("\n")):e,z=e=>void 0!==e.body&&(I(e.body)||(e.examples??[]).some(e=>I(e.body))),_={get:"bg-teal-soft text-teal",post:"bg-brand-soft text-brand",head:"bg-gray-soft text-ink-soft"};function M({method:e,className:a}){return(0,t.jsx)("span",{className:(0,u.f)("inline-block min-w-[46px] rounded-[4px] px-[5px] py-px text-center font-mono text-[11px] font-medium",_[e],a),children:e.toUpperCase()})}function P(e){return{path:Object.fromEntries(e.params.filter(e=>"path"===e.in).map(e=>[e.name,e.default??""])),query:e.params.filter(e=>"query"===e.in).map(e=>({name:e.name,value:e.default??""})),headers:e.params.filter(e=>"header"===e.in).map(e=>({name:e.name,value:e.default??""})),body:e.body??""}}let R=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,U=/^[\x20-\x7e]*$/,K=new Set(["authorization","cookie","proxy-authorization","host","content-length"]),D={200:"OK",201:"Created",202:"Accepted",204:"No Content",301:"Moved Permanently",302:"Found",304:"Not Modified",400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",408:"Request Timeout",413:"Payload Too Large",429:"Too Many Requests",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout"},H=(0,r.f)("outline","check","Check",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]);function F({snippets:e}){let[s,n]=(0,p.useState)(0),[o,r]=(0,p.useState)(!1),i=(0,p.useId)(),l=e[Math.min(s,e.length-1)];async function d(){try{await navigator.clipboard.writeText(l.code),r(!0),setTimeout(()=>r(!1),1500)}catch{c.c.error("Couldn't copy. Select the text and copy it.")}}return(0,t.jsxs)("div",{className:"mt-1 overflow-hidden rounded-lg border border-line",children:[(0,t.jsxs)("div",{className:"flex items-center gap-0.5 overflow-x-auto border-b border-line bg-surface-2 px-1.5",role:"tablist","aria-label":"Snippet language",children:[e.map((e,a)=>(0,t.jsx)("button",{type:"button",role:"tab",id:`${i}-t${a}`,"aria-selected":a===s,"aria-controls":`${i}-p`,onClick:()=>n(a),className:(0,u.f)("-mb-px whitespace-nowrap border-b-2 border-transparent px-2.5 py-2 text-[13px] text-ink-soft",a===s&&"border-brand font-medium text-ink"),children:e.label},e.label)),(0,t.jsxs)(m.K,{size:"sm",className:"my-1 ml-auto",onClick:d,children:[o?(0,t.jsx)(H,{size:14,"aria-hidden":!0}):(0,t.jsx)(a.f,{size:14,"aria-hidden":!0}),o?"Copied":"Copy"]})]}),(0,t.jsx)("pre",{id:`${i}-p`,role:"tabpanel","aria-labelledby":`${i}-t${s}`,tabIndex:0,className:"m-0 overflow-x-auto bg-code-bg px-3.5 py-3 font-mono text-[12.5px] leading-[1.6] text-code-text",children:l.code})]})}let B=e=>`'${e.replace(/'/g,"'\\''")}'`,Z=e=>{try{return JSON.stringify(JSON.parse(e))}catch{return e.trim()}},G="watchpost:explorer-examples",W=(0,u.f)(m.S,"font-mono text-[12.5px]");function Q(e){return window.addEventListener("storage",e),window.addEventListener(G,e),()=>{window.removeEventListener("storage",e),window.removeEventListener(G,e)}}function V(){try{return window.localStorage.getItem(S)}catch{return null}}function X(e){try{return window.localStorage.setItem(S,JSON.stringify(e)),window.dispatchEvent(new Event(G)),!0}catch{return!1}}function Y({name:e,meta:a,children:s}){return(0,t.jsxs)("div",{className:"flex flex-col gap-1 min-[720px]:contents",children:[(0,t.jsx)("span",{className:"font-mono",children:e}),(0,t.jsx)("span",{className:"text-ink-faint",children:a}),s]})}let ee=(e,t)=>e?`${t} \xb7 ${e.type}${e.required?" · required":""}`:`${t} \xb7 string`;function et({op:e,origin:r,models:y}){var x;let f,b,g,v,k,w,[S,$]=(0,p.useState)(""),[A,I]=(0,p.useState)(()=>P(e)),[J,_]=(0,p.useState)(!1),[H,G]=(0,p.useState)(null),[ea,es]=(0,p.useState)(null),[en,eo]=(0,p.useState)(!1),[er,ei]=(0,p.useState)(""),[el,ed]=(0,p.useState)(null),[ep,ec]=(0,p.useState)(null),em=(0,p.useSyncExternalStore)(Q,V,()=>null),eh=(0,p.useMemo)(()=>(function(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(C).filter(e=>!T.test(JSON.stringify(e))).slice(0,100):[]}catch{return[]}})(em),[em]),eu=(b=e.id,eh.filter(e=>e.opId===b)),ey=j(e),ex=z(e),ef=q.has(e.path)?y.options:y.options.filter(e=>!e.async),eb=(g=E(A.body))&&"string"==typeof g.model?g.model:null,eg=null!==ea&&function(e){if(400!==e.status)return!1;let t=E(e.body),a=t?.error;return"object"==typeof a&&null!==a&&"model_not_enabled"===a.type}(ea),ev=(0,p.useMemo)(()=>(function(e,t,a={}){var s;let n,o=function(e,t,a){let s=[],n=e=>{let t=s.at(-1);t&&"lit"in t&&"lit"in e?t.lit+=e.lit:s.push(e)},o=t.replace(/\/+$/,"")+e.path;for(let t of e.params.filter(e=>"path"===e.in)){let e=o.indexOf(`{${t.name}}`);n({lit:o.slice(0,e)}),n(t.secret?{env:"HEARTBEAT_TOKEN"}:{lit:encodeURIComponent((a.path?.[t.name]??"").trim()||t.example||`{${t.name}}`)}),o=o.slice(e+t.name.length+2)}n({lit:o});let r=new URLSearchParams;for(let e of a.query??[])e.name.trim()&&e.value.trim()&&r.append(e.name.trim(),e.value.trim());return r.size&&n({lit:`?${r.toString()}`}),s}(e,t,a),r=e.method.toUpperCase(),i=N(e),l=void 0!==e.body?(a.body??e.body).trim():"",d=(s=""!==l,n=(a.headers??[]).map(e=>[e.name.trim(),e.value.trim()]).filter(([e,t])=>e&&t&&"authorization"!==e.toLowerCase()&&("x-client"!==e.toLowerCase()||"api-explorer"!==t)),s&&!n.some(([e])=>"content-type"===e.toLowerCase())&&n.push(["Content-Type","application/json"]),n),p=(e.response?.contentType??"").includes("json"),c=[`curl -X ${r} ${o.some(e=>"env"in e)?`"${o.map(e=>"lit"in e?e.lit.replace(/[\\"$`]/g,"\\$&"):`$\{${e.env}}`).join("")}"`:B(o.map(e=>"lit"in e?e.lit:"").join(""))}`,...i?[`-H "Authorization: Bearer $${i}"`]:[],...d.map(([e,t])=>`-H ${B(`${e}: ${t}`)}`),...l?[`-d ${B(Z(l))}`]:[]].join(" \\\n "),m=[`curl.exe -X ${r} "${o.map(e=>"lit"in e?e.lit.replace(/[`"$]/g,"`$&"):`$\{env:${e.env}}`).join("")}"`,...i?[`-H "Authorization: Bearer $\{env:${i}}"`]:[],...d.map(([e,t])=>`-H "${`${e}: ${t}`.replace(/[`"$]/g,"`$&")}"`),...l?[`--data-raw '${Z(l).replace(/'/g,"''").replace(/"/g,'\\"')}'`]:[]].join(" `\n "),h=[...i?[`Authorization: \`Bearer $\{process.env.${i}}\``]:[],...d.map(([e,t])=>`${/^[A-Za-z_$][\w$]*$/.test(e)?e:JSON.stringify(e)}: ${JSON.stringify(t)}`)],u="";if(l)try{u=`JSON.stringify(${JSON.stringify(JSON.parse(l),null,2).replace(/\n/g,"\n ")})`}catch{u=JSON.stringify(l)}return[{label:"curl",code:c},{label:"PowerShell",code:m},{label:"JavaScript (fetch)",code:[`const res = await fetch(${o.some(e=>"env"in e)?`\`${o.map(e=>"lit"in e?e.lit.replace(/[\\`]|\$\{/g,"\\$&"):`$\{process.env.${e.env}}`).join("")}\``:JSON.stringify(o.map(e=>"lit"in e?e.lit:"").join(""))}, {`,` method: "${r}",`,...h.length?[" headers: {",...h.map(e=>` ${e},`)," },"]:[],...u?[` body: ${u},`]:[],"});",`console.log(res.status, await res.${p?"json":"text"}());`].join("\n")}]})(e,r,{path:A.path,query:A.query,headers:A.headers,body:A.body}),[e,r,A]),ek=(e,t,a)=>I(s=>({...s,[e]:s[e].map((e,s)=>s===t?{...e,...a}:e)})),ew=e=>I(t=>({...t,[e]:[...t[e],{name:"",value:""}]}));async function ej(){let t=function(e,t,a,s){let n,o=e.path;for(let a of e.params.filter(e=>"path"===e.in)){let e=(t.path[a.name]??"").trim();if(!e)return{ok:!1,error:`Fill in the path parameter ${a.name}.`};o=o.replace(`{${a.name}}`,encodeURIComponent(e))}let r=new URLSearchParams;for(let a of t.query){let t=a.name.trim(),s=a.value.trim();if(t){if(!s){if(e.params.some(e=>"query"===e.in&&e.name===t&&e.required))return{ok:!1,error:`Fill in the query parameter ${t}.`};continue}r.append(t,s)}}let i={};for(let e of t.headers){let t=e.name.trim(),a=e.value.trim();if(t||a){if(!R.test(t))return{ok:!1,error:`"${t.slice(0,40)}" isn't a valid header name.`};if(K.has(t.toLowerCase()))return{ok:!1,error:`${t} can't be set here${"authorization"===t.toLowerCase()?": use the key field":""}.`};if(!U.test(a))return{ok:!1,error:`The value of ${t} has characters a header can't carry.`};a&&(i[t]=a)}}if(j(e)){let t=a.trim();if(!t)return{ok:!1,error:`Paste a console API key first${e.scope&&"any"!==e.scope?` (this endpoint needs ${e.scope})`:""}.`};if(!/^[\x21-\x7e]+$/.test(t))return{ok:!1,error:"That key has spaces or characters a key never has. Paste it again."};i.Authorization=`Bearer ${t}`}if(void 0!==e.body){if(!(n=t.body.trim()))return{ok:!1,error:"The JSON body is empty."};try{JSON.parse(n)}catch(e){return{ok:!1,error:`The body isn't valid JSON${e instanceof SyntaxError?`: ${e.message.slice(0,120)}`:"."}`}}Object.keys(i).some(e=>"content-type"===e.toLowerCase())||(i["Content-Type"]="application/json")}let l=o+(r.size?`?${r.toString()}`:"");return{ok:!0,request:{method:e.method.toUpperCase(),path:l,url:s.replace(/\/+$/,"")+l,headers:i,body:n}}}(e,A,S,r);if(!t.ok){G(t.error),es(null);return}G(null),_(!0);let a=performance.now();try{let{method:e,path:s,headers:n,body:o}=t.request,r=await fetch(s,{method:e,headers:n,body:o,cache:"no-store",credentials:"omit",signal:AbortSignal.timeout(65e3)}),i=await r.text(),l=[];r.headers.forEach((e,t)=>l.push([t,e])),es(function(e){let t,a=e.headers.find(([e])=>"content-type"===e.toLowerCase())?.[1]??"",s=e.text;if(a.includes("json")||/^\s*[{[]/.test(e.text))try{s=JSON.stringify(JSON.parse(e.text),null,2)}catch{}let n=s.length>2e5;return{status:e.status,statusText:e.statusText,tone:(t=e.status)>=200&&t<300?"ok":t>=300&&t<400?"warn":"err",ms:Math.round(e.ms),bytes:new TextEncoder().encode(e.text).length,headers:[...e.headers].sort(([e],[t])=>e.localeCompare(t)),body:n?s.slice(0,2e5):s,truncated:n}}({status:r.status,statusText:r.statusText,headers:l,text:i,ms:performance.now()-a}))}catch(e){es(null),G(e instanceof DOMException&&"TimeoutError"===e.name?"No answer after 65 seconds.":"The request didn't go through. Check that this deployment is reachable and try again.")}finally{_(!1)}}function eN(){var t;let a,s=function(e,t,a,s,n){let o=a.trim();if(!o)return{ok:!1,error:"Give the example a name."};if(o.length>60)return{ok:!1,error:"Use at most 60 characters for the name."};let r=new Set(e.params.filter(e=>e.secret).map(e=>e.name)),i=Object.fromEntries(Object.entries(t.path).filter(([e,t])=>t.trim()&&!r.has(e)).map(([e,t])=>[e,t.trim()])),l=Object.fromEntries(t.query.filter(e=>e.name.trim()&&e.value.trim()).map(e=>[e.name.trim(),e.value.trim()])),d=Object.fromEntries(t.headers.filter(e=>e.name.trim()&&e.value.trim()&&!O.has(e.name.trim().toLowerCase())).map(e=>[e.name.trim(),e.value.trim()])),p=t.body.trim();if(p.length>2e4)return{ok:!1,error:"That body is too long to save as an example."};let c={id:s,opId:e.id,name:o,path:i,query:l,headers:d,body:p,savedAt:n.toISOString()};return T.test(JSON.stringify(c))?{ok:!1,error:"That looks like a key or token. Remove it before saving; examples never keep secrets."}:{ok:!0,example:c}}(e,A,er,crypto.randomUUID(),new Date);if(!s.ok)return void c.c.error(s.error);let n=(t=s.example,(a=eh.find(e=>e.opId===t.opId&&e.name.toLowerCase()===t.name.toLowerCase()))||!(eh.length>=100)?{ok:!0,list:a?eh.map(e=>e===a?{...t,id:a.id}:e):[...eh,t]}:{ok:!1,error:"You can keep 100 examples. Delete one first."});n.ok?X(n.list)?(eo(!1),ei(""),c.c.success(`Saved “${s.example.name}” in this browser. Examples never keep the key.`)):c.c.error("This browser blocked saving. Examples need localStorage."):c.c.error(n.error)}function eS(){if(!el)return;let e=function(e,t,a){let s=a.trim();if(!s)return{ok:!1,error:"Give the example a name."};if(s.length>60)return{ok:!1,error:"Use at most 60 characters for the name."};let n=e.find(e=>e.id===t);return n?e.some(e=>e.id!==t&&e.opId===n.opId&&e.name.toLowerCase()===s.toLowerCase())?{ok:!1,error:"This endpoint already has an example with that name."}:{ok:!0,list:e.map(e=>e.id===t?{...e,name:s}:e)}:{ok:!1,error:"That example is gone."}}(eh,el.id,el.name);e.ok?X(e.list)?ed(null):c.c.error("This browser blocked saving. Examples need localStorage."):c.c.error(e.error)}function eO(t,a){let s,n;I((s=P(e),n=(e,t)=>{if(!t)return e;let a=e.map(e=>e.name in t?{...e,value:t[e.name]}:e);for(let[e,s]of Object.entries(t))a.some(t=>t.name===e)||a.push({name:e,value:s});return a},{path:{...s.path,...a.path??{}},query:n(s.query,a.query),headers:n(s.headers,a.headers),body:a.body??s.body})),G(null),c.c.success(`Loaded “${t}” into the request.`)}async function eT(){try{await navigator.clipboard.writeText(ea?.body??""),c.c.success("Copied the response body.")}catch{c.c.error("Couldn't copy. Select the text and copy it.")}}let e$=e.response&&(0,t.jsxs)("details",{open:e.docsOnly,className:"group",children:[(0,t.jsxs)("summary",{className:"cursor-pointer text-[13px] text-ink-soft",children:["Example response · ",(0,t.jsxs)("span",{className:"font-mono",children:[e.response.status," ",e.response.contentType]})]}),(0,t.jsx)("p",{className:"mb-1.5 mt-1.5 text-[13px] text-ink-soft",children:e.response.description}),(0,t.jsx)("pre",{className:"m-0 overflow-x-auto rounded-md bg-code-bg px-3.5 py-3 font-mono text-[12.5px] leading-[1.6] text-code-text",children:e.response.example})]}),eC=e.params.filter(e=>"path"===e.in),eA=eC.length+A.query.length+A.headers.length>0;return(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,t.jsxs)(m.N,{title:(0,t.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(M,{method:e.method}),(0,t.jsx)("code",{className:"font-mono text-[13px] font-normal [overflow-wrap:anywhere]",children:e.path})]}),meta:(0,t.jsx)("span",{className:"rounded-[4px] border border-line bg-surface-2 px-1.5 font-mono text-xs text-ink-soft",children:e.scopeLabel}),children:[(0,t.jsx)("p",{className:"font-medium",children:e.summary}),e.docsOnly?(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(m.M,{tone:"info",title:"Docs only",children:e.description})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"mb-3.5 mt-0.5 text-[13px] text-ink-soft",children:e.description}),ey&&(0,t.jsx)(m.O,{id:"api-key",label:"Console API key",help:(0,t.jsxs)(t.Fragment,{children:["Kept in this tab's memory only. Never saved, never sent anywhere but ",(0,t.jsx)("span",{className:"font-mono",children:r}),"."]}),children:(0,t.jsx)("input",{id:"api-key",type:"password",value:S,onChange:e=>$(e.target.value),className:W,autoComplete:"off",spellCheck:!1,"data-1p-ignore":!0,"data-lpignore":"true",placeholder:`wb_… (needs ${"any"===e.scope?"any scope":e.scope})`})}),eA&&(0,t.jsxs)("div",{className:"my-3 grid grid-cols-[minmax(0,1fr)] gap-x-3 gap-y-3 text-[13px] min-[720px]:grid-cols-[150px_120px_minmax(0,1fr)] min-[720px]:items-center min-[720px]:gap-y-2",children:[(0,t.jsx)("span",{className:"hidden text-xs text-ink-faint min-[720px]:block",children:"Name"}),(0,t.jsx)("span",{className:"hidden text-xs text-ink-faint min-[720px]:block",children:"In · type"}),(0,t.jsx)("span",{className:"hidden text-xs text-ink-faint min-[720px]:block",children:"Value"}),eC.map(e=>(0,t.jsx)(Y,{name:e.name,meta:ee(e,"path"),children:(0,t.jsx)("input",{className:W,"aria-label":`${e.name} (path)`,value:A.path[e.name]??"",placeholder:e.example,type:e.secret?"password":"text",autoComplete:"off",spellCheck:!1,"data-1p-ignore":!!e.secret||void 0,onChange:t=>I(a=>({...a,path:{...a.path,[e.name]:t.target.value}}))})},`path-${e.name}`)),["query","headers"].flatMap(a=>A[a].map((s,n)=>{let o=e.params.find(e=>e.in===("query"===a?"query":"header")&&e.name===s.name),r=e.params.some(e=>e.in===("query"===a?"query":"header")&&e.name===s.name),i="query"===a?"query":"header";return(0,t.jsx)(Y,{name:r?s.name:(0,t.jsx)("span",{className:"flex items-center gap-1",children:(0,t.jsx)("input",{className:W,"aria-label":`${i} name`,value:s.name,placeholder:`${i} name`,spellCheck:!1,onChange:e=>ek(a,n,{name:e.target.value})})}),meta:ee(o,i),children:(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("input",{className:W,"aria-label":`${s.name||i} (${i})`,value:s.value,placeholder:o?.example,spellCheck:!1,onChange:e=>ek(a,n,{value:e.target.value})}),!r&&(0,t.jsx)("button",{type:"button","aria-label":`Remove this ${i}`,title:"Remove",onClick:()=>I(e=>({...e,[a]:e[a].filter((e,t)=>t!==n)})),className:"grid size-8 shrink-0 place-items-center rounded-md text-ink-soft hover:bg-hover",children:(0,t.jsx)(l.f,{size:15,"aria-hidden":!0})})]})},`${a}-${n}`)}))]}),(0,t.jsxs)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,t.jsxs)(m.K,{size:"sm",variant:"ghost",onClick:()=>ew("query"),children:[(0,t.jsx)(n.f,{size:14,"aria-hidden":!0}),"Query parameter"]}),(0,t.jsxs)(m.K,{size:"sm",variant:"ghost",onClick:()=>ew("headers"),children:[(0,t.jsx)(n.f,{size:14,"aria-hidden":!0}),"Header"]})]}),ex&&(0===ef.length?(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["No model is on — switch one on under ",(0,t.jsx)(d.default,{href:"/ai/models",className:"text-brand",children:"Models"}),"."]}):(0,t.jsxs)("div",{className:"mb-3 flex flex-col gap-[5px]",children:[(0,t.jsx)("label",{htmlFor:"api-model",className:"text-[13px] font-medium",children:"Model"}),(0,t.jsxs)("select",{id:"api-model",className:(0,u.f)(W,"max-w-[420px]"),value:eb&&ef.some(e=>e.id===eb)?eb:"",onChange:e=>{e.target.value&&function(e){var t;let a,s=(t=A.body,(a=E(t.trim()))?{ok:!0,body:L(a,e,t.trim().includes("\n"))}:{ok:!1,error:"The body isn't valid JSON, so the model can't be set. Fix the JSON or edit the model by hand."});if(!s.ok)return ec(s.error);ec(null),I(e=>({...e,body:s.body}))}(e.target.value)},children:[!(eb&&ef.some(e=>e.id===eb))&&(0,t.jsx)("option",{value:"",children:eb?`${eb} (not on)`:"Pick a model"}),ef.map(e=>(0,t.jsx)("option",{value:e.id,children:e.isDefault?`${e.id} (default)`:e.id},e.id))]}),ep&&(0,t.jsx)("span",{role:"alert",className:"text-[12.5px] text-err",children:ep})]})),void 0!==e.body&&(0,t.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:"api-body",className:"text-[13px] font-medium",children:"JSON body"}),(0,t.jsx)(m.K,{size:"sm",variant:"ghost",className:"ml-auto",onClick:function(){try{I(e=>({...e,body:JSON.stringify(JSON.parse(e.body),null,2)}))}catch{c.c.error("The body isn't valid JSON, so it can't be formatted.")}},children:"Format"})]}),(0,t.jsx)("textarea",{id:"api-body",value:A.body,onChange:e=>{ec(null),I(t=>({...t,body:e.target.value}))},spellCheck:!1,className:(0,u.f)(W,"min-h-[150px] resize-y")}),e.bodyDescription&&(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:e.bodyDescription})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(m.K,{variant:"primary",onClick:ej,disabled:J,children:[(0,t.jsx)(s.f,{size:16,"aria-hidden":!0}),J?"Sending…":"Send"]}),(0,t.jsx)(m.K,{onClick:()=>eo(e=>!e),"aria-expanded":en,children:"Save as example"}),(0,t.jsx)(m.K,{variant:"ghost",onClick:function(){I(P(e)),G(null),es(null),eo(!1),c.c.success("Request reset to the starting values.")},children:"Reset"})]}),en&&(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,t.jsx)("input",{className:(0,u.f)(m.S,"max-w-[280px]"),"aria-label":"Example name",placeholder:"Example name",value:er,maxLength:60,autoFocus:!0,onChange:e=>ei(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eN(),"Escape"===e.key&&eo(!1)}}),(0,t.jsx)(m.K,{size:"sm",variant:"primary",onClick:eN,children:"Save"}),(0,t.jsx)(m.K,{size:"sm",variant:"ghost",onClick:()=>eo(!1),children:"Cancel"}),(0,t.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:["Stored in this browser only, without the key",eC.some(e=>e.secret)?" or the token":"","."]})]})]})]}),!e.docsOnly&&(0,t.jsxs)(m.N,{title:"Response",children:[(0,t.jsxs)("div",{"aria-live":"polite",children:[H&&(0,t.jsx)("p",{role:"alert",className:"mb-3 text-[13px] text-err",children:H}),J&&!ea&&(0,t.jsx)("p",{className:"text-ink-soft",children:"Sending…"}),!ea&&!J&&!H&&(0,t.jsx)(m.k,{icon:o.f,title:"No request yet",children:"Send to see the status, headers, timing and body."}),ea&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-2.5 flex flex-wrap items-center gap-x-3.5 gap-y-1 text-[13px]",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[(0,t.jsx)(h.Z,{state:ea.tone}),(v=ea.status,k=ea.statusText,`${v} ${k||D[v]||""}`.trim())]}),(0,t.jsxs)("span",{className:"font-mono text-ink-soft",children:[ea.ms," ms"]}),(0,t.jsx)("span",{className:"font-mono text-ink-soft",children:(w=ea.bytes)<1024?`${w} B`:`${(w/1024).toFixed(1)} KB`}),(0,t.jsxs)(m.K,{size:"sm",variant:"ghost",className:"ml-auto",onClick:eT,children:[(0,t.jsx)(a.f,{size:14,"aria-hidden":!0}),"Copy body"]})]}),eg&&(0,t.jsxs)("p",{className:"mb-2.5 text-[13px] text-ink-soft",children:["That model is off or unknown. Pick one from the Model list, or switch it on under ",(0,t.jsx)(d.default,{href:"/ai/models",className:"text-brand",children:"Models"}),"."]}),(0,t.jsxs)("details",{className:"mb-2.5",children:[(0,t.jsxs)("summary",{className:"cursor-pointer text-[13px] text-ink-soft",children:["Response headers (",ea.headers.length,")"]}),(0,t.jsx)("pre",{className:"m-0 mt-1.5 overflow-x-auto rounded-md bg-code-bg px-3.5 py-3 font-mono text-[12.5px] leading-[1.6] text-code-text",children:ea.headers.map(([e,t])=>`${e}: ${t}`).join("\n")})]}),(0,t.jsx)("pre",{className:"m-0 max-h-[460px] overflow-auto rounded-md bg-code-bg px-3.5 py-3 font-mono text-[12.5px] leading-[1.6] text-code-text",children:ea.body||"(empty body)"}),ea.truncated&&(0,t.jsx)("p",{className:"mt-1.5 text-[12.5px] text-ink-soft",children:"Only the first 200,000 characters are shown."})]})]}),(0,t.jsx)("div",{className:"mt-3.5",children:e$})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1100px]:grid-cols-2",children:[!e.docsOnly&&(0,t.jsxs)(m.N,{title:"Saved examples",meta:(0,t.jsx)("span",{children:"this browser"}),children:[(0,t.jsxs)("ul",{className:"m-0 list-none p-0",children:[(e.examples??[]).map(e=>(0,t.jsxs)("li",{className:"flex items-center gap-2 border-b border-line py-[7px] last:border-0",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 [overflow-wrap:anywhere]",children:e.name}),(0,t.jsx)("span",{className:"text-xs text-ink-faint",children:"from the spec"}),(0,t.jsx)(m.K,{size:"sm",variant:"ghost",onClick:()=>eO(e.name,e),children:"Load"})]},`spec-${e.name}`)),eu.map(e=>(0,t.jsx)("li",{className:"flex items-center gap-2 border-b border-line py-[7px] last:border-0",children:el?.id===e.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{className:(0,u.f)(m.S,"min-w-0 flex-1"),"aria-label":"New name",value:el.name,maxLength:60,autoFocus:!0,onChange:t=>ed({id:e.id,name:t.target.value}),onKeyDown:e=>{"Enter"===e.key&&eS(),"Escape"===e.key&&ed(null)}}),(0,t.jsx)(m.K,{size:"sm",variant:"primary",onClick:eS,children:"Save"}),(0,t.jsx)(m.K,{size:"sm",variant:"ghost",onClick:()=>ed(null),children:"Cancel"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 [overflow-wrap:anywhere]",children:e.name}),(0,t.jsx)(m.K,{size:"sm",variant:"ghost",onClick:()=>eO(e.name,{query:e.query,path:e.path,headers:e.headers,body:e.body}),children:"Load"}),(0,t.jsx)(m.K,{size:"sm",variant:"ghost",onClick:()=>ed({id:e.id,name:e.name}),children:"Rename"}),(0,t.jsx)("button",{type:"button","aria-label":`Delete ${e.name}`,title:"Delete",onClick:()=>(function(e){let t;X((t=e.id,eh.filter(e=>e.id!==t)))?c.c.success(`Deleted “${e.name}”.`):c.c.error("This browser blocked saving. Examples need localStorage.")})(e),className:"grid size-8 place-items-center rounded-md text-ink-soft hover:bg-hover",children:(0,t.jsx)(i,{size:15,"aria-hidden":!0})})]})},e.id))]}),!e.examples?.length&&!eu.length&&(0,t.jsx)("p",{className:"m-0 text-[13px] text-ink-soft",children:"No saved examples yet. Fill in a request and use Save as example."})]}),(0,t.jsx)(m.N,{title:"Snippets",meta:(0,t.jsx)("span",{children:(f=N(x=e))?`the secret comes from $${f}`:"token"===x.access?"the token comes from $HEARTBEAT_TOKEN":"no key needed"}),className:e.docsOnly?"min-[1100px]:col-span-2":void 0,children:(0,t.jsx)(F,{snippets:ev})})]}),e.docsOnly&&(0,t.jsx)(m.N,{title:"Example response",children:e$})]})}e.s(["Explorer",0,function({opId:e,origin:a,models:s=A}){var n;let o=e?w.find(t=>t.id===e):void 0;return o?(0,t.jsx)(et,{op:(n=s.defaultModel)&&z(o)?{...o,body:J(o.body,n),examples:o.examples?.map(e=>({...e,body:J(e.body,n)}))}:o,origin:a,models:s}):null}],586926)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let a=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,a],590246)},225913,e=>{var a=e.i(207670);let t=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=a.f;e.s(["f",0,(e,a)=>s=>{var n;if((null==a?void 0:a.variants)==null)return r(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:i,defaultVariants:l}=a,o=Object.keys(i).map(e=>{let a=null==s?void 0:s[e],r=null==l?void 0:l[e];if(null===a)return null;let n=t(a)||t(r);return i[e][n]}),d=s&&Object.entries(s).reduce((e,a)=>{let[t,r]=a;return void 0===r||(e[t]=r),e},{});return r(e,o,null==a||null==(n=a.compoundVariants)?void 0:n.reduce((e,a)=>{let{class:t,className:r,...s}=a;return Object.entries(s).every(e=>{let[a,t]=e;return Array.isArray(t)?t.includes({...l,...d}[a]):({...l,...d})[a]===t})?[...e,t,r]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}])},26681,e=>{var a=e.i(843476),t=e.i(11409),r=e.i(271645),s=e.i(846696),n=e.i(46200),i=e.i(428325),l=e.i(177106),o=e.i(95187);let d=(0,o.createServerReference)("40c2e867bb4ccad508933caa4e5d34f2534f0433c6",o.callServer,void 0,o.findSourceMapURL,"makeDefaultProvider"),c=(0,o.createServerReference)("40040b4b8fc35c29e3c6e4b8f451ee81c485eedba9",o.callServer,void 0,o.findSourceMapURL,"removeProvider"),u=(0,o.createServerReference)("60a68af64222af0511502c4a348b0897d19d921587",o.callServer,void 0,o.findSourceMapURL,"setProviderEnabled"),p=(0,o.createServerReference)("40cb59742414bbfe7c7c3d8b7814feb5fb89c17dd7",o.callServer,void 0,o.findSourceMapURL,"testProvider");function m(e){e.ok?s.c.success(e.message??"Done."):s.c.error(e.error??"Something went wrong.")}e.s(["DefaultProviderSelect",0,function({options:e,current:t}){let[s,n]=(0,r.useTransition)(),[l,o]=(0,r.useState)(t??"");return 0===e.length?(0,a.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,a.jsxs)("select",{"aria-label":"Default provider",className:`${i.S} w-auto`,value:l,disabled:s,onChange:e=>{let a=e.target.value;o(a),a&&n(async()=>m(await d(a)))},children:[!t&&(0,a.jsx)("option",{value:"",children:"None yet"}),e.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})},"EnabledSwitch",0,function({id:e,on:t,name:s}){let[n,i]=(0,r.useTransition)(),[l,o]=(0,r.useState)(t);return(0,a.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${s}: ${l?"on":"off"}`,children:[(0,a.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:l,disabled:n,"aria-label":`${s} enabled`,onChange:a=>{let t=a.target.checked;o(t),i(async()=>{let a=await u(e,t);a.ok||o(!t),m(a)})}}),(0,a.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,a.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:e,name:t,isDefault:s}){let[i,o]=(0,r.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.RowMenu,{label:`Actions for ${t}`,items:[...s?[]:[{label:"Make default",onSelect:async()=>m(await d(e))},"---"],{label:"Remove",danger:!0,onSelect:()=>o(!0)}]}),(0,a.jsx)(n.f,{open:i,onOpenChange:o,title:`Remove ${t}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let a=await c(e);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})},"TestProviderButton",0,function({id:e}){let[s,n]=(0,r.useTransition)();return(0,a.jsxs)(i.K,{size:"sm",disabled:s,onClick:()=>n(async()=>m(await p(e))),children:[(0,a.jsx)(t.f,{size:15,"aria-hidden":!0}),s?"Testing…":"Test"]})}],26681)},362512,e=>{var a=e.i(843476),t=e.i(590246),r=e.i(271645),s=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("60224f2ced3908f328ce284ce111dcbdfc947f94e5",l.callServer,void 0,l.findSourceMapURL,"connectProvider"),d=(0,l.createServerReference)("60cf4334e9ae0418003e01313271a9a30975004e04",l.callServer,void 0,l.findSourceMapURL,"replaceProviderKey");var c=e.i(944971);e.i(300975);let u={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:e=>`https://api.cloudflare.com/client/v4/accounts/${e.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:e=>(e.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};c.X.localUrl;var p=e.i(33550);let m=(0,p.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var f=e.i(38156);let x=(0,p.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),h={gemini:m,cloudflare:f.f,custom:x},g={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};e.s(["ProviderDialog",0,function({kind:e,replace:l,primary:p,label:m,selfhost:f=!1}){let x=u[e],v=h[e],[b,k]=(0,r.useState)(!1),[y,j]=(0,r.useTransition)(),[N,w]=(0,r.useState)(""),[S,C]=(0,r.useState)(""),[z,R]=(0,r.useState)(""),[M,U]=(0,r.useState)(l?.baseUrl??""),[P,A]=(0,r.useState)(!1),[I,T]=(0,r.useState)({}),[O,$]=(0,r.useState)(null),[K,L]=(0,r.useState)(null);function _(e){k(e),e||(L(null),w(""),C(""),R(""),U(l?.baseUrl??""),A(!1),T({}),$(null))}let F=l?`Replace key \xb7 ${l.name}`:`Connect ${x.name}`;return(0,a.jsxs)(i.N,{open:b,onOpenChange:_,children:[(0,a.jsx)(i.a,{className:(0,n.R)({size:"sm",variant:p?"primary":"secondary"}),children:m??(l?"Replace":"Connect")}),(0,a.jsxs)(i.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(v,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:F}),(0,a.jsxs)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[x.keyLabel,"cloudflare"===e?" and account ID":""]})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[x.where.url&&(0,a.jsxs)(a.Fragment,{children:["Open ",(0,a.jsxs)("a",{href:x.where.url,target:"_blank",rel:"noopener noreferrer",children:[x.where.url.replace("https://","")," ",(0,a.jsx)(t.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),x.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===e&&!l&&(0,a.jsx)(n.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:I.name,children:(0,a.jsx)("input",{id:"p-name",value:z,onChange:e=>R(e.target.value),placeholder:"my-llm",className:n.S,autoComplete:"off"})}),"custom"===e?(0,a.jsx)(n.O,{id:"p-base",label:"Base URL",help:f?c.X.baseUrlHelp.selfhost:c.X.baseUrlHelp.cloud,error:I.baseUrl,children:(0,a.jsx)("input",{id:"p-base",value:M,onChange:e=>U(e.target.value),placeholder:"https://example.com/v1",className:`${n.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,a.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,a.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===e?x.baseUrl({apiKey:"",accountId:"{account_id}"}):x.baseUrl({apiKey:""})})]}),"cloudflare"===e&&(0,a.jsx)(n.O,{id:"p-acct",label:"Account ID",error:I.accountId,children:(0,a.jsx)("input",{id:"p-acct",value:S,onChange:e=>C(e.target.value),placeholder:"32 hex characters",className:`${n.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,a.jsx)(n.O,{id:"p-key",label:x.keyLabel,help:"custom"===e&&f?c.X.keyHelp.selfhostCustom:c.X.keyHelp.cloud,error:I.apiKey,children:(0,a.jsx)("input",{id:"p-key",type:"password",value:N,onChange:e=>w(e.target.value),placeholder:g[e],className:`${n.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!l&&(0,a.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,a.jsx)("input",{type:"checkbox",checked:P,onChange:e=>A(e.target.checked)})," Make this the default provider"]}),O&&(0,a.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:O}),K&&(0,a.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,a.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",K.length," model",1===K.length?"":"s",":"]}),(0,a.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:K.map(e=>(0,a.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:e},e))}),(0,a.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,a.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:K?(0,a.jsx)(n.K,{variant:"primary",onClick:()=>_(!1),children:"Done"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.K,{onClick:()=>_(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(n.K,{variant:"primary",onClick:function(){j(async()=>{let a={apiKey:N,..."cloudflare"===e?{accountId:S}:{},..."custom"===e?{baseUrl:M,...l?{}:{name:z}}:{},makeDefault:P},t=l?await d(l.id,a):await o(e,a);if(T(t.ok?{}:t.fieldErrors??{}),$(t.ok||t.fieldErrors?null:t.error),t.ok){s.c.success(t.message??`${x.name} connected.`);let a=t.data?.models??[];"custom"===e&&a.length?L(a):_(!1)}})},disabled:y,children:y?"Testing…":l?"Test and replace":"Test and connect"})]})})]})]})}],362512)},46200,e=>{var a=e.i(843476),t=e.i(146874),r=e.i(239692),s=e.i(271645),n=e.i(846696),i=e.i(428325),l=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:m,danger:f=!1,onConfirm:x}){let[h,g]=(0,s.useState)(!1),v=d??h,[b,k]=(0,s.useTransition)();function y(e){void 0===d&&g(e),c?.(e)}return(0,l.useHoldRefresh)(v),(0,a.jsxs)(o.N,{open:v,onOpenChange:e=>{b||y(e)},children:[void 0!==e&&((0,s.isValidElement)(e)?(0,a.jsx)(o.a,{render:e}):(0,a.jsx)(o.a,{children:e})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${f?"text-err":"text-ink-soft"}`,children:f?(0,a.jsx)(t.f,{size:19}):(0,a.jsx)(r.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:u}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(i.K,{onClick:()=>y(!1),disabled:b,children:"Keep as is"}),(0,a.jsx)(i.K,{variant:f?"danger":"primary",onClick:function(){k(async()=>{try{let e=await x();e.ok?(n.c.success(e.message),y(!1)):n.c.error(e.message)}catch{n.c.error("Something went wrong. Try again.")}})},disabled:b,children:b?"Working…":m})]})]})]})}])},177106,e=>{var a=e.i(843476),t=e.i(33550);let r=(0,t.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),s=(0,t.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var n=e.i(271645),i=e.i(428325),l=e.i(500443),o=e.i(755146);e.s(["RowMenu",0,function({items:e,button:t=!1,label:d="Actions"}){let[c,u]=(0,n.useState)(!1);return(0,l.useHoldRefresh)(c),(0,a.jsxs)(o.G,{open:c,onOpenChange:u,children:[t?(0,a.jsxs)(o.X,{className:(0,i.R)(),children:[d," ",(0,a.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,a.jsx)(o.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,a.jsx)(s,{size:17})}),(0,a.jsx)(o.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,t)=>"---"===e?(0,a.jsx)(o.U,{},`sep-${t}`):(0,a.jsxs)(o.r,{disabled:void 0!==e.later||void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.later&&(0,a.jsxs)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:["Arrives in stage ",e.later]}),void 0===e.later&&void 0!==e.disabled&&(0,a.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,e=>{var a=e.i(843476),t=e.i(526323),r=e.i(828376),r=r,s=e.i(209977),n=e.i(921637),i=e.i(141708),l=e.i(593480),o=e.i(309169),d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),m=e.i(552245);let f=u.forwardRef(function(e,a){let{render:t,className:r,disabled:s=!1,focusableWhenDisabled:n=!1,nativeButton:i=!0,style:l,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:s,focusableWhenDisabled:n,native:i});return(0,m.a)("button",e,{state:{disabled:s},ref:[a,c],props:[o,d]})}),x=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:t="default",size:r="default",...s}){return(0,a.jsx)(f,{"data-slot":"button",className:(0,c.f)(x({variant:t,size:r,className:e})),...s})}var g=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let b=(0,g.f)(v);function k({...e}){return(0,a.jsx)(s.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...t}){return(0,a.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}e.s(["N",0,function({...e}){return(0,a.jsx)(t.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:t,showCloseButton:r=!0,...s}){return(0,a.jsxs)(k,{children:[(0,a.jsx)(y,{}),(0,a.jsxs)(l.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...s,children:[t,r&&(0,a.jsxs)(n.f.Close,{"data-slot":"dialog-close",render:(0,a.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,a.jsx)(b,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...t}){return(0,a.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...t})},"F",0,function({className:e,...t}){return(0,a.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...t})},"a",0,function({...e}){return(0,a.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)}])})();
|
|
@@ -64,7 +64,7 @@ begin
|
|
|
64
64
|
execute format('create policy ${c}_read on public.%I for select to ${c} using (true)', t.relname);
|
|
65
65
|
end loop;
|
|
66
66
|
end
|
|
67
|
-
$$;`;var p=e.i(758575),f=e.i(95187);let h=(0,f.createServerReference)("
|
|
67
|
+
$$;`;var p=e.i(758575),f=e.i(95187);let h=(0,f.createServerReference)("40ac18ae75d6597318c70ffd36aeb0fc3dc20c6a5e",f.callServer,void 0,f.findSourceMapURL,"createSqlAccessAutoAction"),m=(0,f.createServerReference)("403b4ee2458169c8f77a704e84e0c48a02a4d94187",f.callServer,void 0,f.findSourceMapURL,"deleteSqlAccess"),g=(0,f.createServerReference)("70cd026b100942b21ead3314f932b2d45ff4766380",f.callServer,void 0,f.findSourceMapURL,"setSqlAccess"),v=(0,f.createServerReference)("40775d44813230ec56ebc72459922d203fa0f98eac",f.callServer,void 0,f.findSourceMapURL,"sqlAutoStatusAction");function y({text:e}){return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("pre",{className:"max-h-56 overflow-auto whitespace-pre-wrap break-words rounded-md border border-line bg-sunken py-2 pl-3 pr-20 font-mono text-[12px] leading-relaxed text-ink",children:e}),(0,t.jsxs)(s.K,{size:"sm",variant:"ghost",className:"absolute right-1.5 top-1.5","aria-label":"Copy SQL",onClick:()=>navigator.clipboard.writeText(e).then(()=>o.c.success("Copied"),()=>o.c.error("Couldn't copy")),children:[(0,t.jsx)(n.f,{size:14})," Copy"]})]})}function _({id:e,alias:n,provider:a,connected:f}){let m,b,[z,w]=(0,i.useState)(!1),[k,$]=(0,i.useState)(""),[x,S]=(0,i.useState)(),[O,A]=(0,i.useState)(!1),[j,P]=(0,i.useTransition)(),[E,T]=(0,i.useState)({phase:"idle"}),[Z,N]=(0,i.useState)();(0,l.useHoldRefresh)(z);let R=(0,i.useRef)(0);function I(t){if(!j){let n;$(""),S(void 0),A(!1),N(void 0),R.current++,T({phase:"idle"}),w(t),t&&"supabase"===a&&(n=++R.current,T({phase:"checking"}),v(e).then(e=>{R.current===n&&T(e.ok&&e.data?{phase:"done",access:e.data}:{phase:"error",error:e.ok?"No answer.":e.error})},()=>{R.current===n&&T({phase:"error",error:"Couldn't check this project's token."})}))}}function D(t){P(async()=>{try{let r=await g(e,k,t);if(!r.ok){if(r.data?.needsWake){A(!0),S(void 0);return}S(r.fieldErrors?.dsn??r.error);return}o.c.success(`SQL access saved for ${n}`,{description:"Open Databases → SQL console to run a query."}),$(""),w(!1)}catch{o.c.error("Something went wrong. Try again.")}})}return(0,t.jsxs)(u.N,{open:z,onOpenChange:I,children:[(0,t.jsx)(u.a,{render:(0,t.jsx)(s.K,{size:"sm",children:f?"Replace SQL access":"Add SQL access"})}),(0,t.jsxs)(u.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(r,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(u.F,{className:"text-base",children:[f?"Replace":"Add"," SQL access for ",n]}),(0,t.jsx)(u.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"The SQL console connects with a read-only Postgres role you create. The console never reads your app's own secrets."})]})]}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),D(!1)},children:[(0,t.jsxs)("div",{className:"max-h-[65vh] overflow-y-auto px-[18px] pt-2 text-[13px] text-ink-soft",children:["supabase"===a&&(0,t.jsx)("div",{className:"mb-3 rounded-md border border-line px-3 py-2.5",children:"done"===E.phase&&E.access.can?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"text-ink",children:["Watchbell can set this up for you: it creates (or resets) the role ",(0,t.jsx)("span",{className:"font-mono",children:c})," with SELECT only, checks that it can't write, and saves the pooler string encrypted. The password is generated on the server and never shown."]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,t.jsx)(s.K,{type:"button",variant:"primary",size:"sm",disabled:j,onClick:function(){N(void 0),P(async()=>{try{let t=await h(e);if(!t.ok)return void N(t.error);o.c.success(`SQL access created for ${n}`,{description:`Read-only role ${c}, checked and saved. Open Databases → SQL console to run a query.`}),w(!1)}catch{o.c.error("Something went wrong. Try again.")}})},children:j?"Setting up…":"Set up automatically (read-only)"}),(0,t.jsx)("span",{className:"text-[12px] text-ink-faint",children:"Or do it by hand below."})]}),Z&&(0,t.jsx)("p",{className:"mt-2 text-[12.5px] text-err",role:"alert",children:Z})]}):"done"!==E.phase||E.access.can?"error"===E.phase?(0,t.jsxs)("p",{children:["Automatic setup couldn't be checked: ",E.error," Follow the steps below."]}):(0,t.jsx)("p",{className:"text-ink-faint",children:"Checking whether this project's token can set the role up…"}):(0,t.jsx)("p",{children:"scope"===(m=E.access).reason?`This project's token can't create the role (missing ${m.missing.join(", ")}). Automatic setup needs a token with Database: Read-write and Connection pooling: Read; replace it on Connections, or follow the steps below.`:`Automatic setup isn't available right now: ${m.error} Follow the steps below.`})}),"neon"===a&&(0,t.jsx)("p",{className:"mb-2 text-[12.5px]",children:"Neon: API can't grant SELECT; run the SQL once."}),(0,t.jsxs)("ol",{className:"mb-3 list-decimal space-y-2 pl-5",children:[(0,t.jsxs)("li",{children:["Create the role. Replace the password first.",(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(y,{text:(b="supabase"===a?"postgres":"neondb_owner",`-- Run as ${b} in the ${"supabase"===a?"Supabase SQL Editor":"Neon SQL Editor"}. Use a long random password.
|
|
68
68
|
create role ${c} login password 'REPLACE-with-a-long-random-password';
|
|
69
69
|
alter role ${c} set default_transaction_read_only = on;
|
|
70
70
|
alter role ${c} set statement_timeout = '5s';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,617708,e=>{let i=(0,e.i(33550).f)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);e.s(["f",0,i],617708)},258277,e=>{var i=e.i(843476),a=e.i(617708),l=e.i(357772),t=e.i(271645),s=e.i(846696),n=e.i(428325),r=e.i(500443),m=e.i(975157);let o=["requests","tokens"],
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,617708,e=>{let i=(0,e.i(33550).f)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);e.s(["f",0,i],617708)},258277,e=>{var i=e.i(843476),a=e.i(617708),l=e.i(357772),t=e.i(271645),s=e.i(846696),n=e.i(428325),r=e.i(500443),m=e.i(975157);let o=["requests","tokens"],c=["minute","day","week"];var d=e.i(95187);let u=(0,d.createServerReference)("60a56b0bc2cbda9717bbec189e7b9eb4910f8ccff2",d.callServer,void 0,d.findSourceMapURL,"saveLimits"),p={minute:"per minute",day:"per day",week:"per week"};function x({provider:e}){let[d,h]=(0,t.useState)(()=>e.limits.map(e=>({...e,limit:String(e.limit)}))),[v,g]=(0,t.useState)(!1),[f,b]=(0,t.useState)(null),[j,w]=(0,t.useTransition)();(0,r.useHoldRefresh)(v);let S=(e,i)=>{h(a=>a.map((a,l)=>l===e?{...a,...i}:a)),g(!0),b(null)};return(0,i.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,i.jsx)("div",{className:"mb-1.5 text-[13px] font-medium",children:e.name}),0===d.length&&(0,i.jsx)("p",{className:"mb-2 text-[12.5px] text-ink-faint",children:"No limits entered. Add one to count calls against it."}),d.map((a,t)=>(0,i.jsxs)("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-x-2 gap-y-1.5",children:[(0,i.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,i.jsx)("select",{className:(0,m.f)(n.S,"w-auto"),"aria-label":`${e.name} limit ${t+1} metric`,value:a.metric,onChange:e=>S(t,{metric:e.target.value}),children:o.map(e=>(0,i.jsx)("option",{value:e,children:e},e))}),(0,i.jsx)("select",{className:(0,m.f)(n.S,"w-auto"),"aria-label":`${e.name} limit ${t+1} window`,value:a.window,onChange:e=>S(t,{window:e.target.value}),children:c.map(e=>(0,i.jsx)("option",{value:e,children:p[e]},e))}),(0,i.jsx)("input",{className:(0,m.f)(n.S,"w-[120px] font-mono"),inputMode:"numeric","aria-label":`${e.name} limit ${t+1} value`,value:a.limit,onChange:e=>S(t,{limit:e.target.value})}),(0,i.jsx)("input",{className:(0,m.f)(n.S,"w-[150px] font-mono"),"aria-label":`${e.name} limit ${t+1} model (all = every model)`,placeholder:"model, or all",value:a.scope,onChange:e=>S(t,{scope:e.target.value})})]}),(0,i.jsx)("button",{type:"button","aria-label":`Remove limit ${t+1}`,className:"rounded-md p-1.5 text-ink-faint hover:bg-hover hover:text-ink",onClick:()=>{h(e=>e.filter((e,i)=>i!==t)),g(!0),b(null)},children:(0,i.jsx)(l.f,{size:15,"aria-hidden":!0})})]},t)),f&&(0,i.jsx)("p",{className:"mb-2 text-[12.5px] text-err",role:"alert",children:f}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsxs)(n.K,{size:"sm",disabled:d.length>=10,onClick:()=>{h(e=>[...e,{metric:"requests",scope:"all",limit:"",window:"day"}]),g(!0)},children:[(0,i.jsx)(a.f,{size:14,"aria-hidden":!0}),"Add limit"]}),(0,i.jsx)(n.K,{size:"sm",variant:"primary",disabled:!v||j,onClick:()=>w(async()=>{try{let i=await u(e.id,d);i.ok?(s.c.success(i.message??"Limits saved."),g(!1),b(null)):b(i.error)}catch{b("Something went wrong. Try again.")}}),children:j?"Saving...":"Save"})]})]})}e.s(["LimitsForm",0,function({providers:e}){return(0,i.jsx)(i.Fragment,{children:e.map(e=>(0,i.jsx)(x,{provider:e},e.id))})}],258277)}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let a=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,a],531219)},83229,e=>{var a=e.i(843476),s=e.i(271645),t=e.i(846696),i=e.i(54131),n=e.i(428325),l=e.i(95187);let r=(0,l.createServerReference)("
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let a=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,a],531219)},83229,e=>{var a=e.i(843476),s=e.i(271645),t=e.i(846696),i=e.i(54131),n=e.i(428325),l=e.i(95187);let r=(0,l.createServerReference)("408f164f1c25f13ec7c64a1853d55884158ff2b8d1",l.callServer,void 0,l.findSourceMapURL,"scanDependencies");e.s(["DepsScanButton",0,function({appId:e,appName:l}){let[o,c]=(0,s.useTransition)(),d=(0,s.useRef)(!1),p=(0,i.useMask)();return(0,a.jsx)(n.K,{size:"sm",onClick:()=>{if(d.current)return;d.current=!0;let a=t.c.loading(`Scanning the dependencies of ${p("app",l)}. This can take up to half a minute.`);c(async()=>{try{let s=await r(e);s.ok?s.data?.vulns?t.c.warning(s.message??"",{id:a}):t.c.success(s.message??"",{id:a}):t.c.error(s.error,{id:a})}catch{t.c.error("Something went wrong. Try again.",{id:a})}finally{d.current=!1}})},disabled:o,children:o?"Scanning…":"Scan now"})}],83229)},943458,e=>{var a=e.i(843476),s=e.i(531219),t=e.i(522016),i=e.i(618566),n=e.i(271645),l=e.i(54131),r=e.i(428325),o=e.i(541299),c=e.i(364440),d=e.i(220806),p=e.i(691106);let x={q:"",linked:"",visibility:""},u=e=>e.pushedAt&&Date.parse(e.pushedAt)||0;var f=e.i(684496),h=e.i(322534),m=e.i(495784),g=e.i(975157);let b=["Repository","Apps","Branch","Last push","Language","Advisories","Actions"],v="font-mono text-[12.5px]";function j({isPrivate:e,archived:s}){return(0,a.jsxs)("span",{className:"inline-flex gap-1",children:[(0,a.jsx)("span",{className:(0,g.f)("rounded-[5px] border px-1.5 text-xs",e?"border-line bg-sunken text-ink-soft":"border-brand/30 bg-brand-soft text-brand"),children:e?"private":"public"}),s&&(0,a.jsx)("span",{className:"rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-faint",children:"archived"})]})}e.s(["RepoList",0,function({items:e,nowMs:k}){let N,y=(0,i.useRouter)(),[w,C]=(0,n.useState)(x),[S,P]=(0,n.useState)(1),L=new Date(k),M=(N=w.q.trim().toLowerCase(),e.filter(e=>!w.linked||"linked"===w.linked==e.apps.length>0).filter(e=>!w.visibility||"private"===w.visibility===e.private).filter(e=>!N||e.fullName.toLowerCase().includes(N)||e.apps.some(e=>e.name.toLowerCase().includes(N))||(e.language??"").toLowerCase()===N).sort((e,a)=>u(a)-u(e)||e.fullName.localeCompare(a.fullName))),z=(0,m.$)(M,S);z.page!==S&&P(z.page);let $=e=>{C({...w,...e}),P(1)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[(0,a.jsx)("input",{className:(0,g.f)(r.S,"w-[240px] max-[720px]:w-full"),placeholder:"Filter by name","aria-label":"Filter by name",value:w.q,onChange:e=>$({q:e.target.value})}),(0,a.jsxs)("select",{className:(0,g.f)(r.S,"w-auto"),"aria-label":"Linked to an app",value:w.linked,onChange:e=>$({linked:e.target.value}),children:[(0,a.jsx)("option",{value:"",children:"Linked and unlinked"}),(0,a.jsx)("option",{value:"linked",children:"Linked to an app"}),(0,a.jsx)("option",{value:"unlinked",children:"Not linked"})]}),(0,a.jsxs)("select",{className:(0,g.f)(r.S,"w-auto"),"aria-label":"Visibility",value:w.visibility,onChange:e=>$({visibility:e.target.value}),children:[(0,a.jsx)("option",{value:"",children:"Private and public"}),(0,a.jsx)("option",{value:"private",children:"Private"}),(0,a.jsx)("option",{value:"public",children:"Public"})]}),(0,a.jsxs)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:[(0,h.f)(M.length)," · newest push first"]})]}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:p.o,children:[(0,a.jsx)(p.U,{head:b}),(0,a.jsx)("tbody",{children:z.rows.map(e=>(0,a.jsxs)("tr",{className:(0,g.f)(p.C,"cursor-pointer"),onClick:()=>{let a;return a=e.id,y.push(`/repos/${a}`)},children:[(0,a.jsx)("td",{className:p.z,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,a.jsx)(t.default,{href:`/repos/${e.id}`,className:v,onClick:e=>e.stopPropagation(),children:(0,a.jsx)(l.Masked,{kind:"repo",real:e.fullName,inLink:!0})}),(0,a.jsx)(j,{isPrivate:e.private,archived:e.archived})]})}),(0,a.jsx)("td",{className:p.z,children:e.apps.length?(0,a.jsx)("span",{className:"flex flex-wrap gap-1",children:e.apps.map(e=>(0,a.jsxs)(t.default,{href:`/apps/${e.id}`,onClick:e=>e.stopPropagation(),className:"inline-flex items-center gap-1 rounded-[5px] border border-line px-1.5 py-px text-xs hover:bg-hover",children:[(0,a.jsx)(c.f,{kind:"app"}),(0,a.jsx)(l.Masked,{kind:"app",real:e.name,inLink:!0})]},e.id))}):(0,a.jsx)("span",{className:"text-ink-faint",children:"—"})}),(0,a.jsx)("td",{className:(0,g.f)(p.z,v),children:e.defaultBranch??"—"}),(0,a.jsx)("td",{className:p.z,children:e.pushedAt?(0,f.$)(new Date(e.pushedAt),L):(0,a.jsx)("span",{className:"text-ink-faint",children:"never"})}),(0,a.jsx)("td",{className:(0,g.f)(p.z,!e.language&&"text-ink-faint"),children:e.language??"—"}),(0,a.jsx)("td",{className:p.z,children:null===e.advisories?(0,a.jsx)("span",{className:"text-ink-faint",title:"Not scanned",children:"—"}):0===e.advisories?(0,a.jsx)(d.F,{state:"ok",children:"None"}):(0,a.jsxs)(d.F,{state:"warn",children:[(0,a.jsx)("span",{className:v,children:e.advisories})," open"]})}),(0,a.jsx)("td",{className:p.z,children:e.actions?(0,a.jsx)(d.F,{state:e.actions.state,children:e.actions.label}):(0,a.jsx)("span",{className:"text-ink-faint",children:"—"})})]},e.id))})]})}),0===M.length&&e.length>0&&(0,a.jsxs)(r.k,{icon:s.f,title:"No results",children:["Nothing matches these filters."," ",(0,a.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{C(x),P(1)},children:"Clear filters"})]}),(0,a.jsx)(o.f,{page:z.page,pages:z.pages,text:(0,m.z)(z),onPage:P})]})},"VisibilityTag",0,j],943458)},541299,495784,e=>{var a=e.i(843476),s=e.i(271645),t=e.i(428325),i=e.i(975157);function n(e,a,s=25){let t=e.length,i=Math.max(1,Math.ceil(t/s)),l=Math.min(Math.max(Number.isFinite(a)?Math.floor(a):1,1),i),r=(l-1)*s,o=e.slice(r,r+s);return{rows:o,page:l,pages:i,from:0===t?0:r+1,to:r+o.length,total:t}}e.s(["f",0,function({page:e,pages:n,text:l,onPage:r,bleed:o=!1}){let c=(0,s.useRef)(null),d=(0,s.useRef)(null);if((0,s.useEffect)(()=>{null!==d.current&&(c.current?.querySelectorAll("button")[d.current]?.focus(),d.current=null)},[e]),n<=1)return null;let p=(e,a)=>{(e<=1||e>=n)&&(d.current=a),r(e)};return(0,a.jsxs)("div",{className:(0,i.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",o?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,a.jsx)("span",{role:"status",children:l}),(0,a.jsxs)("span",{ref:c,className:"ml-auto flex gap-1.5",children:[(0,a.jsx)(t.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>p(e-1,1),children:"‹ Previous"}),(0,a.jsx)(t.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=n,onClick:()=>p(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,a,s,t){return t<=1?null:a>0&&null!==s?s:e[0]?.id??null},"$",0,n,"f",0,function(e,a,s,t=25){let i=null===s?0:Math.max(0,e.findIndex(e=>e.id===s)),l=n(e.slice(i),a,t);return 0===i||l.page>1?{...l,shift:i}:{...n(e,1,t),shift:0}},"z",0,function(e,a=0,s=e.total){return`${e.from+a}–${e.to+a} of ${s}`}],495784)},346072,e=>{var a=e.i(843476),s=e.i(271645),t=e.i(541299),i=e.i(691106),n=e.i(495784);e.s(["PlainTable",0,function({head:e,rows:l}){let[r,o]=(0,s.useState)(1),c=(0,n.$)(l,r);return c.page!==r&&o(c.page),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:i.o,children:[(0,a.jsx)(i.U,{head:e}),(0,a.jsx)("tbody",{children:c.rows.map(e=>(0,a.jsx)(s.Fragment,{children:e.row},e.key))})]})}),(0,a.jsx)(t.f,{page:c.page,pages:c.pages,text:(0,n.z)(c),onPage:o})]})}])},364440,e=>{var a=e.i(843476);e.i(522016),e.i(54131);var s=e.i(975157);let t={app:["APP","bg-brand-soft text-brand"],db:["DB","bg-teal-soft text-teal"],br:["BR","bg-teal-soft text-teal"],fs:["FS","bg-teal-soft text-teal"],mon:["MON","bg-amber-soft text-amber"],dpl:["DPL","bg-gray-soft text-ink-soft"],dom:["DOM","bg-gray-soft text-ink-soft"],dns:["DNS","bg-gray-soft text-ink-soft"],usr:["USR","bg-gray-soft text-ink-soft"]};e.s(["f",0,function({kind:e}){let[i,n]=t[e];return(0,a.jsx)("span",{className:(0,s.f)("rounded px-[5px] py-px font-mono text-[10.5px] font-medium tracking-[0.02em]",n),children:i})}])},322534,e=>{e.i(684496),e.s(["f",0,e=>`${e} item${1===e?"":"s"}`])}])})();
|