watchbell 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/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 +22 -12
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +60 -60
- 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 +30 -20
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/(private)/ai/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +60 -60
- 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 +26 -16
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +60 -60
- 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)/alerts/page/server-reference-manifest.json +36 -26
- package/server/.next/server/app/(console)/alerts/page.js +60 -60
- 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 +37 -27
- package/server/.next/server/app/(console)/apps/[id]/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/apps/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/backups/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/catalog/page.js +60 -60
- 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 +31 -21
- package/server/.next/server/app/(console)/connections/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/d1/page.js +60 -60
- 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 +26 -16
- package/server/.next/server/app/(console)/deployments/page.js +60 -60
- 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 +27 -17
- package/server/.next/server/app/(console)/dns/page.js +60 -60
- 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 +22 -12
- package/server/.next/server/app/(console)/domains/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/events/page.js +60 -60
- 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 +27 -17
- package/server/.next/server/app/(console)/firebase/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/logs/page.js +60 -60
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +21 -11
- package/server/.next/server/app/(console)/manage/sections/page.js +60 -60
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +31 -21
- package/server/.next/server/app/(console)/neon/page.js +60 -60
- 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 +28 -18
- package/server/.next/server/app/(console)/overview/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/repos/[id]/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/repos/page.js +60 -60
- 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 +30 -20
- package/server/.next/server/app/(console)/settings/page.js +60 -60
- 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 +27 -17
- package/server/.next/server/app/(console)/sql/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/status/page.js +60 -60
- 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 +39 -29
- package/server/.next/server/app/(console)/supabase/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/topology/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/turso/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/upstash/page.js +60 -60
- 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 +34 -24
- package/server/.next/server/app/(console)/uptime/page.js +60 -60
- 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 +25 -15
- package/server/.next/server/app/(console)/welcome/page.js +60 -60
- 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 +17 -7
- package/server/.next/server/app/api/collect/route.js +63 -63
- 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 +17 -7
- package/server/.next/server/app/api/daily/route.js +45 -45
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js +2 -2
- 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 +17 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +42 -42
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +4 -3
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +2 -2
- 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 +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +4 -3
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +4 -3
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +15 -15
- package/server/.next/server/app/api/watchdog/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.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 +14 -14
- 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 +14 -14
- 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]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/setup/page/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 +23 -23
- 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/{[externals]__0ia-wyj5qrosx._.js → [externals]__1-y7b_mfadqi-._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0igl_rsv6z3fr._.js → [externals]__1b3dgyi9diwhy._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0mh8e6gkgfswq._.js → [externals]__1dd9hhrnxhegy._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0_e2eoq7w3ff_._.js → [root-of-the-server]__0-zrmrb4499ay._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ezd1s2862iob._.js → [root-of-the-server]__02h-ec_gusm_2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0exicuoq6gmph._.js → [root-of-the-server]__038br8sr9eepd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__20ng0hgzxagf_._.js → [root-of-the-server]__040a3il587nja._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0cc32xnniktg9._.js → [root-of-the-server]__04iumkvxok49x._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__01vos42kjq9nn._.js → [root-of-the-server]__0655w3_d4ejfb._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0-ftc1hhcjcl2._.js → [root-of-the-server]__09dk9k-9q4d16._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0a5op--7u5_xh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__040ix5fqb_zb-._.js → [root-of-the-server]__0a5t6bkr3-uqw._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1gt_-h9n48pwi._.js → [root-of-the-server]__0c0pkv3an1lg-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0185dne3slx7e._.js → [root-of-the-server]__0cmp5mwchd8sn._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0oqltt9cni6m0._.js → [root-of-the-server]__0ct18spdi1leu._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0r88w3qhrtzz_._.js → [root-of-the-server]__0db2p-om-b_4s._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__09uh8gefrxmkg._.js → [root-of-the-server]__0fc4c9-xzmkol._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0rb1-3538-pq9._.js → [root-of-the-server]__0jswmvddgl3sb._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ms1uw85c5wg2._.js → [root-of-the-server]__0lco43i5w25zg._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ikiyg3u02ofv._.js → [root-of-the-server]__0m_nqt44ioex_._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0w_og0zl6hqzj._.js → [root-of-the-server]__0qme276hvajvy._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0r3cq1lecww4e._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0070gc9ml0mf7._.js → [root-of-the-server]__0r_6xpjwcdrda._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0rctmpp7p7cp9._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1hl9k6e1o7xh2._.js → [root-of-the-server]__0s8wo4espz6eu._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1ol4c4uzqqqfw._.js → [root-of-the-server]__0sp5xoed3-994._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0sabwm3w1rm0q._.js → [root-of-the-server]__0ubalx5w0ds9m._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0vv63vp8y0fs-._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0-st5xltl53h9._.js → [root-of-the-server]__0w07p3ypro834._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0x6qqr79pq_j9._.js → [root-of-the-server]__0whk62ebfu1u0._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1vqs8o9bv1wbk._.js → [root-of-the-server]__0x4_tt5v17fx3._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0znmcklxfccvk._.js → [root-of-the-server]__0x929r1phz1oi._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__01yzy5zxsekxi._.js → [root-of-the-server]__0ycpg444s91lb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0z3hf530bwcq_._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1cc__h9taeylv._.js → [root-of-the-server]__0zkeao78mms1_._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0y_xyc1cyvtej._.js → [root-of-the-server]__0zwr7fll4dm9q._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0cz3da2wx3_wd._.js → [root-of-the-server]__1-2ckgdamg0-j._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1-ne3clcouvm2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-xgpr5q148ze._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1bce11artflky._.js → [root-of-the-server]__12lrpnd-dhawi._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__14-pt1-s1o5ex._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0x47i6wm-cd1z._.js → [root-of-the-server]__14jw0y_hj7jmw._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__05jzua9637vlo._.js → [root-of-the-server]__15vqo7amys573._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__16jyhasrd2ojp._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0kzpzdkpz_nt0._.js → [root-of-the-server]__177l2p7kcj-16._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__186-sa38csgot._.js → [root-of-the-server]__17dr2z1o1hsvk._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08-puk3_gawjd._.js → [root-of-the-server]__17jngidngj3rb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1_zr2xlmtkn4l._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1aagly59gw-xf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1bg8grh9kfims._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0tykhzqhwdx_k._.js → [root-of-the-server]__1bjvjngj7lvqi._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1c0cb3ur16yhh._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c1nhm-kj5kqu._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1g4iy2tasmn0f._.js → [root-of-the-server]__1d1u-wejsfl84._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__05pabbazg42oy._.js → [root-of-the-server]__1g6xpr_typmce._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1a7_3nq1jjab-._.js → [root-of-the-server]__1jjusd74y8gd5._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1jvy8r4n-62x7._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kr6f03r82mk6._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kwldcrcmwc0x._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1lq25064c4ny_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1m8gyvj7rkapj._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1nm0sjvuf9jrb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0i75m0es1m3hf._.js → [root-of-the-server]__1p3fqi03x5du8._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1pa_syiho939h._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1qmdi981syrsn._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__195ax9c1nsi5b._.js → [root-of-the-server]__1r24segt1slar._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1r9v6qgjwlv32._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0xqgsjnebebv8._.js → [root-of-the-server]__1smidspfoqz48._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__20r_62r36t28o._.js → [root-of-the-server]__1t87mhqedigsz._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1u5my3-gpw499._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1ny8nr52qvr4i._.js → [root-of-the-server]__20sp5m_w5iklm._.js} +2 -2
- package/server/.next/server/chunks/{_1_9n8x5ncta29._.js → _0-jfehdfklu-i._.js} +2 -2
- package/server/.next/server/chunks/{_1cq1vvbp6pglr._.js → _0-ub844lc_z_a._.js} +3 -3
- package/server/.next/server/chunks/_05hhw0eql5-dv._.js +10 -0
- package/server/.next/server/chunks/{_0zj10_al6r59j._.js → _08fv52mqg619m._.js} +2 -2
- package/server/.next/server/chunks/{_1myv9csc_in08._.js → _08z7lmk32r__5._.js} +3 -3
- package/server/.next/server/chunks/_0b7rdk-4lrvfy._.js +10 -0
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/{_1n-fm2bdo9t2m._.js → _1-pv4d4qhe7to._.js} +3 -3
- package/server/.next/server/chunks/{_1e_rbkrukj0x9._.js → _13dlt388gceez._.js} +2 -2
- package/server/.next/server/chunks/_19wqm5leaaesp._.js +1 -1
- package/server/.next/server/chunks/{_0ls7sornjrg95._.js → _1b1t9p1xljuql._.js} +1 -1
- package/server/.next/server/chunks/_1d_77nvqcnkcg._.js +3 -0
- package/server/.next/server/chunks/_1e_6lrlg9ml3-._.js +1 -1
- package/server/.next/server/chunks/_1l-68brbq289m._.js +10 -0
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/{src_0_l3dzp06o4x5._.js → src_01fd1ve-xj9xo._.js} +2 -2
- package/server/.next/server/chunks/{src_0m6xxpw2u-xv_._.js → src_049aazgsmienv._.js} +2 -2
- package/server/.next/server/chunks/src_05vq-abuilwk4._.js +3 -0
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_06lwphwuzgl6e._.js +3 -0
- package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +3 -0
- package/server/.next/server/chunks/src_0tw-h0otr2tgt._.js +1 -1
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/{src_15fupbs9-n8q9._.js → src_20sym_ohuqw76._.js} +2 -2
- package/server/.next/server/chunks/src_2108_me3q06ih._.js +3 -0
- package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +9 -0
- package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +9 -0
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
- package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
- 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_21atz5tidps07.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0vlxry7jq5j1j._.js → [externals]__0d7rvi3tmo9zf._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1mol6ksxmtkv6._.js → [externals]__1rj83sktdlxvt._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0yyslm1ka5px3._.js → [externals]__1s7xw086rvse0._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0irbihjwcc9is._.js → [externals]__20leqouf6m6f3._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__193nmh09rrpbx._.js → [root-of-the-server]__0-zqh1gf4dsj3._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ctkj-25wt37o._.js → [root-of-the-server]__05gue5stvejba._.js} +3 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__077-acap7g4ck._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0wi2grctadbk8._.js → [root-of-the-server]__080do5vfu69n5._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0xjg51t1__v-s._.js → [root-of-the-server]__08u1c2f2i7ru4._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_z273zso5at1._.js → [root-of-the-server]__0amfa4t2-in-x._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0sj92w6mg92ds._.js → [root-of-the-server]__0b3g72j9cu141._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-i_tj8wp9oto._.js → [root-of-the-server]__0ed6qo3lg9_f9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0z_1k5876-_wx._.js → [root-of-the-server]__0ee5ew5q3jh8i._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__110158s15r7mi._.js → [root-of-the-server]__0fd39clnjw9fb._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0i07g85h2g72h._.js → [root-of-the-server]__0h9rpg5-lhp5q._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1a0b_dbx4uans._.js → [root-of-the-server]__0p86d9imejczs._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_h_ya1h8efdj._.js → [root-of-the-server]__0tqqte5jb6jz7._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ijizmc3ga_6o._.js → [root-of-the-server]__0xscr-8y9a4cj._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ogwz1buruc_x._.js → [root-of-the-server]__11paa809_igt_._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__18gcvkhrt73zc._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tj-iwvrxfd1a._.js → [root-of-the-server]__1o6cysvbfkltz._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hzlz_t5eect2._.js → [root-of-the-server]__1qrk2rfmx21b_._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1kfivch_kfesn._.js → [root-of-the-server]__1tgcpistmcbrd._.js} +3 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1-d88ogkwql_b._.js → [root-of-the-server]__1uzqsxyxwffdo._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0n-sc7pzu7fpz._.js → [root-of-the-server]__1y7nfsglxx7cn._.js} +1 -1
- package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +1 -1
- package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
- package/server/.next/server/chunks/ssr/{_18z44n8yl5tzj._.js → _07-dfx0qix52k._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_10q5jocsvw-i8._.js → _07f-svx_l12lw._.js} +2 -2
- package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
- package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +3 -0
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- 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/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/_0c7stbntpuyt_._.js +1 -1
- package/server/.next/server/chunks/ssr/_0c8kew3jsb-yb._.js +3 -0
- package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
- package/server/.next/server/chunks/ssr/{_166ljgwi6shw7._.js → _0jqrjb30bblvy._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
- package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
- package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
- package/server/.next/server/chunks/ssr/_0rsh9v4b3yj0b._.js +3 -0
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.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/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.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/{_0s8qoh8v5kqcm._.js → _1bc69myq83woe._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1qiv079hbwt43._.js → _1j61tfpfj2t9d._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
- package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_218164gkxgum_._.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.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_0330uf9pdfco9._.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_0dceh6hsdybq8._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_186l56gdeizg8._.js → src_14ulgwoxoyfkq._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1bg_io_v7gt71._.js +3 -0
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.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_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.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_1ru-30x6-uwu4._.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_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_1vpkg9rd7v3pk._.js → src_app_(console)_0e832kna-734m._.js} +2 -2
- package/server/.next/server/chunks/ssr/{src_app_(console)_0f-d8u7sm169e._.js → src_app_(console)_0kwns5iudhgwj._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
- 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)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.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)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.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)_overview_page_tsx_0se3f3ln9q-42._.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)_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_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_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_signin_1fj68y-bbe-xr._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1gauld53vvpev._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
- package/server/.next/server/chunks/ssr/{src_lib_demo_0ftmf3wmtezvl._.js → src_lib_demo_09ht4doed9eqi._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +2 -2
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +6 -0
- 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_providers_actions_ts_0wxa36ai6s5nn._.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 +319 -141
- package/server/.next/static/chunks/{1bsk5ub4zhehk.js → 0-ett1b-o34r0.js} +1 -1
- package/server/.next/static/chunks/{2w3otuq4cx1pd.js → 0-fov5gyz32mj.js} +1 -1
- package/server/.next/static/chunks/{0p14kwfj_2w_l.js → 041ko45qawas9.js} +1 -1
- package/server/.next/static/chunks/{3u-qfdthw123i.js → 0ia5361d7hoce.js} +2 -2
- package/server/.next/static/chunks/{1kwbsrtnz8o1l.js → 0m40tf7-fh2ht.js} +1 -1
- package/server/.next/static/chunks/{0o08yqz8_53p6.js → 0o6_y6xu__s6q.js} +1 -1
- package/server/.next/static/chunks/{2uk9mjknuxmxx.js → 0x1xj431cbkfa.js} +1 -1
- package/server/.next/static/chunks/{3odrzjmblvoxt.js → 0x6eipkda93fh.js} +1 -1
- package/server/.next/static/chunks/{0m3kg-eiti9zu.js → 0zj507c7ui4jt.js} +1 -1
- package/server/.next/static/chunks/{1j7e6cd8t5jar.js → 11_iva96ceble.js} +1 -1
- package/server/.next/static/chunks/15_3o9t6d7ujo.js +1 -0
- package/server/.next/static/chunks/{20pwnun2aiajo.js → 1e0iyxugtm7b0.js} +2 -2
- package/server/.next/static/chunks/{026a6w6rbx-fh.js → 1eeqy_pc_llv4.js} +1 -1
- package/server/.next/static/chunks/{19bfo1_ejzqmp.js → 1g3u_ngexgvss.js} +1 -1
- package/server/.next/static/chunks/{4126vjheqklsp.js → 1ghfc_9g9io17.js} +1 -1
- package/server/.next/static/chunks/{15x1am33zx_7r.js → 1gw40u38oaj6z.js} +1 -1
- package/server/.next/static/chunks/{1rgejqx65romt.js → 1jc9qa7xb63lp.js} +1 -1
- package/server/.next/static/chunks/{234h8_ywb6t9s.js → 1muk1ubaswhlj.js} +1 -1
- package/server/.next/static/chunks/{05rysjdxtzhu1.js → 1qug5gmo2rbaf.js} +1 -1
- package/server/.next/static/chunks/{2ehpfaelmkee6.js → 1vyf467_8v-cw.js} +1 -1
- package/server/.next/static/chunks/{0o-c28x8k05p4.js → 1z8byc-won_tq.js} +1 -1
- package/server/.next/static/chunks/{317o5vyehd1xx.js → 1zhnm25vt6hu8.js} +1 -1
- package/server/.next/static/chunks/{2_vwhuzct036v.js → 243ijh4fs2zsq.js} +1 -1
- package/server/.next/static/chunks/{231dmdy7r03nd.js → 299jy1-g0cm8n.js} +1 -1
- package/server/.next/static/chunks/{25je6-38ula0p.js → 2hscqr4n7hu7n.js} +1 -1
- package/server/.next/static/chunks/2j4kmkog1zkpo.js +1 -0
- package/server/.next/static/chunks/{35j75g5h_qytc.js → 2j9fpx77gfesr.js} +1 -1
- package/server/.next/static/chunks/{1khar1yl-th2r.js → 2jdlcu25qy00d.js} +1 -1
- package/server/.next/static/chunks/{3m825h0uvc8b6.js → 2kurh5s5u8_4-.js} +1 -1
- package/server/.next/static/chunks/2seth6dz7lydu.js +1 -0
- package/server/.next/static/chunks/{16en34z8w8ezr.js → 2t30gqjhercob.js} +1 -1
- package/server/.next/static/chunks/2y05vm9r_wxds.js +1 -0
- package/server/.next/static/chunks/{3xhrztkjpas1b.js → 2ziborutqth-2.js} +1 -1
- package/server/.next/static/chunks/{25ba60sl_edr3.js → 3-xb6vd_khwfo.js} +1 -1
- package/server/.next/static/chunks/{1y8hxiy48l5hq.js → 36e9fpbpqndu5.js} +1 -1
- package/server/.next/static/chunks/{34jajbsx3uisy.js → 3cjokqd7600_0.js} +1 -1
- package/server/.next/static/chunks/{24p8ti6ronsdf.js → 3hpyrqm98toxv.js} +1 -1
- package/server/.next/static/chunks/{1b4nkf_ka3hwr.js → 3kqiccrh_bnpl.js} +2 -2
- package/server/.next/static/chunks/{1ruv-a_ft592k.js → 3r3-9oir5c1ul.js} +1 -1
- package/server/.next/static/chunks/{0lhj_nuhfszt5.js → 3wl06e5yyzlwh.js} +1 -1
- package/server/.next/static/chunks/{1aiapinh40brx.js → 3xbsyym_tfj0u.js} +1 -1
- package/server/.next/static/chunks/{0jbau1a66ts45.js → 3ymogjp57edbj.js} +11 -11
- package/server/.next/static/chunks/{0wz_jmdt88plr.js → 422gxqrwveuyc.js} +1 -1
- package/server/.next/static/chunks/{2baqn9ru2pmf4.js → 442t8i7d46g9y.js} +2 -2
- package/server/.next/static/chunks/{3ngtjj5afybe9.js → 4545xu4sehvxc.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__028cxv1v6v0yb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__07g16s_wi2sai._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0dvuy3ibsyiik._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0e2utnqdim70d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0gmn5s40au84-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0k7o0hgdraix2._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0o0z59_jylzvy._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0quiawzx_nww0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0wdxw44t9l9o_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0y99cuuxm0xs3._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zflnh-2nol66._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10dp33pb5e0ml._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12xl6ax-q8s93._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14sac3h4sfhh7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__17xbg7cngebwp._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__18lfi0w0e_h0k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c1wqmzm65xo8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1gry2nrq5xhxl._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1kk_s-q90445m._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lfsf7un8kdbr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1nusfevn1z4nm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1oc55uo0ax787._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1uqxnb7qfqcms._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1vxtt1favjdfr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1xwgj26z5f7ih._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__20sv90-2ei08l._.js +0 -3
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +0 -10
- package/server/.next/server/chunks/_1daeuesc2d2tg._.js +0 -3
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +0 -10
- package/server/.next/server/chunks/src_12wdz9bdn7a-7._.js +0 -3
- package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +0 -9
- package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +0 -9
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0nxyo70ahj7tk._.js +0 -3
- package/server/.next/server/chunks/ssr/_0uvkx5n0kf7r2._.js +0 -3
- package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +0 -3
- package/server/.next/server/chunks/ssr/_1o94cw0ml7xu7._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0jxjbvkvg0bjg._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1xoua7wkmyfkn._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1y827m5-ojdib._.js +0 -6
- package/server/.next/server/chunks/ssr/src_app_signin_0ndz9-tbuaohn._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_04orn7u7ufxp1._.js +0 -3
- package/server/.next/static/chunks/0-0tkevn8vwix.js +0 -1
- package/server/.next/static/chunks/0qd8lafp_2ta5.js +0 -1
- package/server/.next/static/chunks/14teejsfv-awi.js +0 -1
- package/server/.next/static/chunks/38rdy3k5li9gb.js +0 -1
- /package/server/.next/static/{00kxZsHPpI3WSDxVn1e4b → u0RcJ9L5FEEUdENisty65}/_buildManifest.js +0 -0
- /package/server/.next/static/{00kxZsHPpI3WSDxVn1e4b → u0RcJ9L5FEEUdENisty65}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{00kxZsHPpI3WSDxVn1e4b → u0RcJ9L5FEEUdENisty65}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[630718,a=>{var b=a.i(187924),c=a.i(218024),d=a.i(572131),e=a.i(823292),f=a.i(405050);let g=(0,f.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[630718,a=>{var b=a.i(187924),c=a.i(218024),d=a.i(572131),e=a.i(823292),f=a.i(405050);let g=(0,f.createServerReference)("608e2b660f1c14e9633e3b2da612ad5ced362138e9",f.callServer,void 0,f.findSourceMapURL,"approveCreateAction"),h=(0,f.createServerReference)("40105d850a6b0aef651eb7b095bfb9d3b9abf9c3e3",f.callServer,void 0,f.findSourceMapURL,"rejectCreateAction");var i=a.i(771378),j=a.i(611619),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(486583);let o=new Set(["requested","approved","running"]),p=a=>o.has(a.status);var q=a.i(147474),r=a.i(368114);let s={requested:"Waiting for approval",approved:"Approved",running:"Creating…",done:"Created",failed:"Failed",rejected:"Rejected",expired:"Expired"};function t({items:a,owner:c,focus:d,quiet:e}){let f=(0,i.useMask)();return(0,b.jsx)("ul",{className:"divide-y divide-line",children:a.map(a=>{var g;let h;return(0,b.jsxs)("li",{id:`create-${a.id}`,className:(0,r.f)("flex flex-wrap items-center gap-x-3 gap-y-1.5 px-[18px] py-2.5",e&&"py-2 text-[13px]",d===a.id&&"bg-brand-soft"),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("b",{className:(0,r.f)("font-medium",e&&"text-ink-soft"),children:n.S[a.type]}),(0,b.jsx)(k.E,{children:n.E[a.type]}),(0,b.jsx)("span",{className:(0,r.f)("text-[12.5px]","failed"===a.status?"text-err":"text-ink-soft"),children:s[a.status]})]}),(0,b.jsx)("p",{className:"font-mono text-[12.5px] text-ink-soft [overflow-wrap:anywhere]",children:f("text",a.summary)}),"requested"===a.status&&(0,b.jsxs)("p",{className:"text-[12px] text-ink-faint",children:[a.mine?"You asked":"Another member asked"," · expires ",(g=new Date(a.expiresAt),h=(0,q.e)(g),`${h.day} ${h.month} ${h.year}, ${(0,q.U)(g)}`)]}),a.error&&"requested"!==a.status&&(0,b.jsx)("p",{className:"text-[12.5px] text-err",children:f("text",a.error)}),a.result?.id&&"done"===a.status&&(0,b.jsxs)("p",{className:"text-[12px] text-ink-faint",children:["Created: ",(0,b.jsx)("span",{className:"font-mono",children:f("text",a.result.id)}),"firebase-pending"===a.result.note?" · Firebase still needs adding in the Firebase console":""]})]}),c&&"requested"===a.status&&(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)(u,{item:a}),(0,b.jsx)(v,{item:a})]})]},a.id)})})}function u({item:a}){return(0,b.jsx)(j.f,{trigger:(0,b.jsx)(k.K,{size:"sm",children:"Reject"}),title:`Reject this ${n.S[a.type]}?`,body:"Nothing is created. The person who asked can ask again.",cta:"Reject",onConfirm:async()=>{let b=await h(a.id);return b.ok?{ok:!0,message:b.message??"Rejected."}:{ok:!1,message:b.error}}})}function v({item:a}){let[c,e]=(0,d.useState)(!1);return(0,l.useHoldRefresh)(c),(0,b.jsxs)(m.N,{open:c,onOpenChange:e,children:[(0,b.jsx)(m.a,{render:(0,b.jsx)(k.K,{size:"sm",variant:"primary"}),children:"Approve…"}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:c&&(0,b.jsx)(w,{item:a,onDone:()=>e(!1)})})]})}function w({item:a,onDone:c}){let f=(0,i.useMask)(),[h,j]=(0,d.useState)(""),[l,o]=(0,d.useState)(null),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useState)(null),[t,u]=(0,d.useTransition)();return p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(m.F,{className:"text-base",children:"Copy the database password now"}),(0,b.jsxs)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[r," It is shown only here, only once."]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(x,{value:p}),(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(k.M,{tone:"warning",title:"The console doesn't keep it",children:"Save it in your password manager. If it's lost, reset it in Supabase → Project settings → Database."})})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:()=>{q(null),c()},children:"I've saved it"})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(m.F,{className:"text-base",children:f("text",`Create ${n.S[a.type]} ${a.confirmName}?`)}),(0,b.jsxs)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["The console checks the free tier at ",n.E[a.type]," again now, then makes one create call. ",(0,n.d)(a.type)]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsx)("p",{className:"mb-3 rounded-md border border-line bg-sunken px-3 py-2 font-mono text-[12.5px] [overflow-wrap:anywhere]",children:f("text",a.summary)}),(0,b.jsx)(k.O,{id:`ap-${a.id}`,label:(0,b.jsxs)(b.Fragment,{children:["Type ",(0,b.jsx)("span",{className:"font-mono",children:f("text",a.confirmName)})," to approve"]}),error:l??void 0,children:(0,b.jsx)("input",{id:`ap-${a.id}`,className:k.S,value:h,autoComplete:"off",spellCheck:!1,onChange:a=>j(a.target.value)})})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:t,children:"Cancel"}),(0,b.jsx)(k.K,{variant:"primary",onClick:function(){u(async()=>{try{let b=await g(a.id,h);if(!b.ok)return o(f("text",b.error));o(null),b.data?.secret?(q(b.data.secret),s(f("text",b.message??"Created."))):(e.c.success(f("text",b.message??"Created.")),c())}catch{o("Something went wrong. Check the provider's dashboard before trying again.")}})},disabled:t||h.trim()!==a.confirmName,children:t?"Checking and creating…":"Approve and create"})]})]})}function x({value:a}){let[f,g]=(0,d.useState)(!1),{shot:h}=(0,i.usePrivacy)(),[j,l]=(0,d.useState)(!1);return(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded-md border border-line-strong bg-sunken px-3 py-2",children:[h&&!j?(0,b.jsx)("button",{type:"button",className:"min-w-0 flex-1 text-left text-[13px] text-ink-soft",onClick:()=>l(!0),children:"Hidden in screenshot mode. Click to show it."}):(0,b.jsx)("code",{className:"min-w-0 flex-1 select-all font-mono text-[13px] [overflow-wrap:anywhere]",children:a}),(0,b.jsxs)(k.K,{size:"sm",onClick:()=>{navigator.clipboard.writeText(a).then(()=>g(!0),()=>e.c.error("Copy didn't work; select the text and copy it."))},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0,className:"mr-1 inline"}),f?"Copied":"Copy"]})]})}a.s(["CreateRequestList",0,function({items:a,owner:c,focus:d,title:e="Waiting for approval"}){let{pending:f,finished:g}={pending:a.filter(p),finished:a.filter(a=>!p(a))};if(!f.length&&!g.length)return null;let h=f.filter(a=>"requested"===a.status).length;return(0,b.jsxs)(b.Fragment,{children:[f.length>0&&(0,b.jsx)(k.N,{title:e,meta:h?`${h} waiting`:void 0,flush:!0,children:(0,b.jsx)(t,{items:f,owner:c,focus:d})}),g.length>0&&(0,b.jsx)(k.N,{title:"Recent requests",flush:!0,children:(0,b.jsx)(t,{items:g,owner:!1,focus:d,quiet:!0})})]})}],630718)},486583,a=>{let b={dns_record:"Cloudflare",neon_branch:"Neon",supabase_project:"Supabase",firebase_project:"Firebase"};a.s(["E",0,b,"S",0,{dns_record:"DNS record",neon_branch:"Neon branch",supabase_project:"Supabase project",firebase_project:"Firebase project"},"d",0,a=>`The console can't remove this later; remove it in ${b[a]}'s dashboard.`])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_0ph020gy78gi9._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[534908,a=>{let b;var c,d,e=a.i(462820),f=a.i(411350),g=a.i(61017),h=a.i(330863),i=a.i(779704);async function j(a){await (0,i.E)(a,{force:!1})}var k=a.i(907997),l=a.i(109307),m=a.i(920274);let n=(0,a.i(377269).f)("outline","notes","Notes",[["path",{d:"M5 5a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2l0 -14",key:"svg-0"}],["path",{d:"M9 7l6 0",key:"svg-1"}],["path",{d:"M9 11l6 0",key:"svg-2"}],["path",{d:"M9 15l4 0",key:"svg-3"}]]);var o=a.i(701702),p=a.i(245710),q=a.i(668495),r=a.i(191397),s=a.i(791450);let t={crit:"err",warn:"warn",info:"brand"};function u({note:a,now:b,showApp:c}){let d=["AI note",`from ${a.from}`,a.model,(0,p.$)(a.at,b),c&&a.appName?a.appName:null,"written by an agent, can be wrong"].filter(Boolean).join(" · ");return(0,k.jsxs)(r.f,{icon:(0,k.jsx)(n,{size:18,"aria-hidden":!0}),tone:t[a.severity]??"brand",meta:d,action:(0,k.jsx)(s.DismissNoteButton,{id:a.id}),children:[(0,k.jsx)("b",{className:"font-medium",children:(0,k.jsx)(o.MaskedText,{text:a.title})}),(0,k.jsx)(q.f,{source:a.body})]})}async function v({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,d=await (0,m.N)(a,c).catch(()=>[]);return d.length?(0,k.jsx)("div",{className:"mb-3 flex flex-col gap-2.5",children:d.map(b=>(0,k.jsx)(u,{note:b,now:c,showApp:void 0===a},b.id))}):null}var w=a.i(694874),x=a.i(395936),y=a.i(86657),z=a.i(185538);async function A({count:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;if(!await y.f.provider().catch(()=>null))return(await (0,m.N)(void 0,new Date).catch(()=>[])).length?null:(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(n,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),(0,k.jsx)(x.default,{href:"/ai/connect",children:e.v.recConnect})]});if(0===a)return null;let c=await (0,i.h)().catch(()=>null);if(!c)return(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(w.f,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),"No AI summary yet. ",(0,k.jsx)(z.RegenerateButton,{label:"Summarise"})]});let d=new Date;return(0,k.jsxs)(r.f,{className:"mb-3",icon:(0,k.jsx)(w.f,{size:18,"aria-hidden":!0}),meta:(0,k.jsxs)(k.Fragment,{children:[`AI \xb7 ${c.model} \xb7 ${(0,p.$)(new Date(c.at),d)} \xb7 from ${c.count} items, names aliased \xb7 can be wrong, check the items below \xb7 `,(0,k.jsx)(z.RegenerateButton,{label:"Regenerate"})]}),children:[(0,k.jsx)("b",{className:"font-medium",children:"Summary"}),(0,k.jsx)(q.f,{source:c.text})]})}var B=a.i(918962),C=a.i(962230),D=a.i(976517);async function E({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,[d,e,f]=await Promise.all([y.f.provider().catch(()=>null),(0,C.N)("app",a,c).catch(()=>null),(0,B.c)(c).catch(()=>null)]),g=e?{...e,createdAt:e.createdAt.toISOString(),answeredAt:e.answeredAt?.toISOString()??null}:null;return(0,k.jsx)(D.WhyAi,{appId:a,provider:d?{model:d.model}:null,question:g,nowMs:c.getTime(),agConnected:f?.agConnected??!1})}var F=a.i(243446),G=a.i(803681),H=a.i(581156),I=a.i(411642),J=a.i(65932),K=a.i(94473),L=a.i(188282);let M={recheck:"Runs the monitor's check once, like Check now on the monitor.",neon_wake:"Wakes a suspended Neon compute, like Wake on the database page.",supabase_keepalive:"Sends one keep-alive query to a Supabase project close to auto-pause, like Keep active.",supabase_restore:"Restores a paused Supabase project.",vercel_redeploy:"Redeploys the current production deployment.",vercel_rollback:"Rolls production back to the previous ready deployment.",github_bump_pr:"Opens a pull request on a new branch that raises vulnerable packages to their fixed versions (needs the GitHub PR-write token).",daily_rerun:"Calls the console's daily job again when its heartbeat is down. Always asks for approval.",domain_recheck:"Re-reads a domain's TLS certificate and expiry when its certificate looks close to expiry, like Re-check on Domains.",monitor_update_url:"Points an uptime monitor at its app's new domain when the app moved, keeping the path, like Update monitor on Uptime."};async function N(){let[a,b,c]=await Promise.all([(0,K.I)(),(0,K.K)(),(0,K.X)()]),d=[10,15,20,30,45,60,90,120].filter(a=>a>=K.l&&a<=K.n),e=K.r.map(a=>({kind:a,label:L.H[a].label,risky:"risky"===L.H[a].risk,what:M[a]}));return(0,k.jsxs)(G.N,{title:"Auto-actions",flush:!0,meta:"All off by default",children:[(0,k.jsxs)("p",{className:"px-[18px] pb-3 text-ink-soft",children:["When a firing alert brings a proposal for one of these actions, a switched-on kind runs without asking and you get a short Telegram line afterwards. Everything else waits for you on ",(0,k.jsx)(x.default,{href:"/auto-actions",children:"Auto-actions"}),". Auto-run only does what the console button does, through the same checks, and every run is in the audit log (Events)."]}),(0,k.jsx)(H.AutoRunForm,{saved:a,rows:e}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Auto-rollback after a bad deploy"}),(0,k.jsxs)("p",{className:"mb-2.5 text-ink-soft",children:["Off by default. When on, a new production deploy that breaks the app is rolled back to the previous one without asking. Only ",(0,k.jsx)("span",{className:"font-mono text-[12.5px]",children:"vercel_rollback"}),", only within the first N minutes after a new production deploy goes live, only when a monitor is down or the logs show an error spike, at most once per deployment (and never twice for one app within 2 hours), and every run is reported on Telegram and in Events. Failed builds never go live on Vercel, so this is for builds that succeed but break at runtime."]}),(0,k.jsx)(I.AutoRollbackForm,{saved:b,choices:d})]}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Automatic security fixes"}),(0,k.jsx)("p",{className:"mb-2 text-ink-soft",children:"On by default. When a dependency scan finds a critical, high or moderate advisory with a fix, Watchbell fixes it end to end (the scan and the Next.js check run every 6 hours and right after each production deploy):"}),(0,k.jsxs)("ol",{className:"mb-2.5 list-decimal pl-5 text-ink-soft [&_li]:mt-0.5",children:[(0,k.jsx)("li",{children:"opens the update PR itself (package.json only, on a new watchpost/deps-… branch), only for direct packages that stay in their major version, never twice for the same package while a PR is open;"}),(0,k.jsx)("li",{children:"waits for GitHub's checks (all green), then Vercel's preview of the PR (READY);"}),(0,k.jsx)("li",{children:'tests the preview: "/" and up to 3 monitor paths must answer 200–399 within 15 s (behind Vercel Authentication: 3 minutes without error lines in the preview\'s logs);'}),(0,k.jsx)("li",{children:"squash-merges it, only while auto-rollback is on: the production deploy then runs on Vercel and auto-rollback guards its first minutes."})]}),(0,k.jsx)("p",{className:"mb-2.5 text-ink-soft",children:'Anything failing, or not done within 45 minutes, leaves the PR open marked "needs a look". A major update, a transitive package or a severity you switched off waits for your approval on Auto-actions, as before. Every PR opened and every merge or stop is sent to Telegram and logged in Events. Needs the GitHub PR-write token on Connections.'}),(0,k.jsx)(J.AutoSecurityForm,{saved:c,rollbackOn:b.enabled})]})]})}var O=a.i(93321),P=a.i(530385),Q=a.i(548734),R=a.i(837137),S=a.i(247730),T=a.i(221084),U=a.i(396667),V=a.i(976937),W=a.i(736780),X=a.i(944571),Y=a.i(322145),Z=a.i(664892),$=a.i(751263),_=a.i(521050),aa=a.i(760417),ab=a.i(812092),ac=a.i(572134),ad=a.i(658739),ae=a.i(556987),af=a.i(142754),ag=a.i(342634),ah=a.i(381544);let ai="waiting: Vercel didn't say which deployment is live";async function aj(a){let b=Date.now();try{let c=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(Z.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),d=401===c.status||403===c.status?(await c.text().catch(()=>"")).slice(0,8192):"";return{status:c.status,ms:Date.now()-b,authWall:(0,Z.S)(c.status,d,c.headers)}}catch{return{status:null,ms:Date.now()-b,authWall:!1}}}async function ak(b,c){let{extensions:d}=await a.A(414785);return await d.runner?.lockfileJobActive(b,c).catch(()=>!1)??!1}let al=null;async function am(a,b){let c=(0,_.Q)(b.meta?.rootDirectory),d=(0,_.H)(c,"package.json"),e=b.lockfilePath??(0,_.H)(c,"package-lock.json");if(al?.token!==a){let b=await (0,ab.z)(a);if(!b.ok)return null;al={token:a,login:b.data}}let f=al.login,[g,h]=await Promise.all([(0,ab.O)(a,b.fullName,b.number),(0,ab.P)(a,b.fullName,b.number)]);if(!g.ok||!h.ok)return null;let i=[];for(let c of h.data.slice(0,Z.y+1)){let d=null!==c.login&&c.login.toLowerCase()===f.toLowerCase()?null:await (0,ab.h)(a,b.fullName,c.sha);if(d&&!d.ok)return null;i.push({...c,files:d?d.data:null})}let[j,k]=await Promise.all([(0,ab.E)(a,b.fullName,b.baseBranch,{},d),(0,ab.E)(a,b.fullName,b.headSha,{},d)]);if(!j.ok||!k.ok)return null;let l=j.data&&k.data?(0,Z.C)(j.data.text,k.data.text,b.packages):"unexpected change: package.json is missing",m=null;if(e!==d&&g.data.some(a=>a.filename===e||a.previous===e))if((0,ab.$)(e)){let[c,d]=await Promise.all([(0,ab.l)(a,b.fullName,b.baseBranch,e),(0,ab.l)(a,b.fullName,b.headSha,e)]);if(!c.ok||!d.ok)return null;m=(0,Z.T)(c.data,d.data,e)}else m=`unexpected lockfile change ${e} (only package-lock.json can be checked)`;return{manifest:d,lockfile:e,lockfileRequired:!!b.lockfilePath,manifestProblem:l,lockfileProblem:m,headSha:b.headSha,tokenLogin:f,files:g.data,commits:i}}async function an(a,b={}){let c=await (b.vercel??ao.vercel)(a);if(!c)return null;let d=await (b.serving??ac.k)(c.token,c.teamId,c.projectId);if(!d.ok)return null;let e=d.data.currentId,f=null;if(!e){let a=d.data.latest?.readyState??null;if("ERROR"!==a&&"CANCELED"!==a)return null;let g=await (b.running??ac.N)(c.token,c.teamId,c.projectId);if(!g.ok||g.data)return null;let h=await (b.ready??ac.r)(c.token,c.teamId,c.projectId);if(!h.ok)return null;let i=[...h.data].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),j=d.data.promote;j?(f=i.find(a=>a.createdAt.getTime()>j.requestedAt)??null)||(e=j.toDeploymentId):f=i[0]??null}if(!f&&e){let a=await (b.deployment??ac.S)(c.token,{id:c.teamId,slug:c.teamId,name:c.teamId},e);if(!a.ok)return null;f=a.data}return f?{source:(0,$.s)({source:f.source,branch:f.branch,sha:f.sha,branchFrom:f.branchFrom??null,gitDirty:!0===f.gitDirty})}:null}let ao={rows:async()=>await (0,Q.f)().select({id:R.dependencyPrs.id,repoId:R.dependencyPrs.repoId,appId:R.dependencyPrs.appId,proposalId:R.dependencyPrs.proposalId,number:R.dependencyPrs.number,branch:R.dependencyPrs.branch,baseBranch:R.dependencyPrs.baseBranch,headSha:R.dependencyPrs.headSha,title:R.dependencyPrs.title,packages:R.dependencyPrs.packages,auto:R.dependencyPrs.auto,stage:R.dependencyPrs.stage,smokeMode:R.dependencyPrs.smokeMode,previewReadyAt:R.dependencyPrs.previewReadyAt,openedAt:R.dependencyPrs.openedAt,fullName:R.githubRepos.fullName,appName:R.resources.name,meta:R.resources.meta,lockfilePath:R.dependencyScans.lockfilePath,appMonitored:R.resources.monitored,appGone:R.resources.goneAt,stageText:R.dependencyPrs.stageText}).from(R.dependencyPrs).innerJoin(R.githubRepos,(0,O.u)(R.githubRepos.id,R.dependencyPrs.repoId)).leftJoin(R.resources,(0,O.u)(R.resources.id,R.dependencyPrs.appId)).leftJoin(R.dependencyScans,(0,O.u)(R.dependencyScans.repoId,R.dependencyPrs.repoId)).where((0,O.y)(R.dependencyPrs.stage,[...Z.X])).orderBy((0,P.M)(R.dependencyPrs.openedAt)).limit(10),security:K.X,rollback:K.K,writeToken:async()=>{let a=await (0,W.G)();return a&&"unreadable"!==a?a.token:null},readToken:async a=>{let b=await (0,X.l)(a);return b.ok?b.token:null},vercel:async a=>{let b=await (0,Y.p)(a,"app"),c=b?.resource.meta.teamId;return b&&"string"==typeof c&&b.resource.externalId?{token:b.token,teamId:c,projectId:b.resource.externalId}:null},monitorUrls:async a=>(await (0,Q.f)().select({url:R.monitors.url}).from(R.monitors).where((0,O.b)((0,O.u)(R.monitors.resourceId,a),(0,O.u)(R.monitors.kind,"http"))).limit(10)).map(a=>a.url),pull:ab.b,checks:ab.s,runs:aa.L,previews:ac.C,probe:aj,errorLogs:async(a,b,c,d)=>{let e=await (0,ad.f)(a.token,a.teamId,a.projectId,{since:c,until:d,now:d,deploymentId:b,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return e.ok?e.lines.length:null},merge:ab.C,review:am,save:async(a,b,c,d)=>{await (0,Q.f)().update(R.dependencyPrs).set({...b,stageText:d,checkedAt:new Date}).where((0,O.u)(R.dependencyPrs.id,a)),c&&await (0,Q.f)().update(af.O).set({result:d}).where((0,O.u)(af.O.id,c)).catch(()=>void 0)},notify:a=>(0,ah.y)(a),liveSource:a=>an(a),lockfileBusy:async(a,b,c)=>await ak(a,b)||await (0,V.W)(c,b),audit:(a,b)=>(0,T.f)({kind:"ok",message:a,resourceId:b,actorUserId:null}),book:()=>(0,S.f)()};async function ap(a,b,c=ao){let d={watched:0,merged:0,stopped:0},e=()=>b-Date.now(),f=await c.rows();if(!f.length)return d;let[g,h,i]=await Promise.all([c.security().catch(()=>null),c.rollback().catch(()=>null),c.writeToken().catch(()=>null)]);if(!i)return d;let j=await c.book().catch(()=>ae.a);for(let b of f){if(15e3>e())break;if(b.auto||g?.enabled)try{let e=await aq(b,a,i,h?.enabled===!0,c);if(!e)continue;d.watched++;let f=b.appName?(0,ae.r)(j,b.appName):"app";await as(b,e,f,h?.windowMin??30,a,i,c,d)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}return d}async function aq(a,b,c,d,e){let f=await e.pull(c,a.fullName,a.number);if(!f.ok)return null;let g=await e.checks(c,a.fullName,f.data.headSha),h=null;if(g.ok&&null===g.data.checkRuns&&a.appId){let b=await e.readToken(a.appId),c=b?await e.runs(b,a.fullName,f.data.headSha):null;h=c?.ok?c.data:null}g.ok||(g={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let i=(0,Z.j)({...g.data,actionRuns:h}),j={state:null,readyAt:null},k=null,l=a.appId?await e.vercel(a.appId):null;if(l&&"success"===i&&f.data.headSha===a.headSha){let c=await e.previews(l.token,l.teamId,l.projectId,f.data.headSha),d=c.ok?c.data.find(a=>"preview"===a.target)??c.data[0]??null:null;if(d&&(j={state:d.state,readyAt:d.readyAt??("ready"===d.state?b:null)},"ready"===d.state&&d.url)){let c=a.previewReadyAt??j.readyAt??b;if("logs"!==a.smokeMode){let b=(0,Z.E)(a.appId?await e.monitorUrls(a.appId):[]),c=await Promise.all(b.map(async a=>({path:a,...await e.probe(`https://${d.url}${a}`)})));k=(0,Z.L)(c)}k||(k=(0,Z.n)(c,b,await e.errorLogs(l,d.id,c,b).catch(()=>null))),j.readyAt=c}}return{step:(0,Z.M)({now:b,openedAt:a.openedAt,pr:{state:f.data.state,merged:f.data.merged,mergeable:f.data.mergeable,headSha:f.data.headSha,base:f.data.base},recordedSha:a.headSha,recordedBase:a.baseBranch,checks:i,preview:j,smoke:k,autoRollbackOn:d}),smoke:k,previewReadyAt:j.readyAt,headSha:f.data.headSha}}function ar(a,b){if(!a.appId||!1===a.appMonitored||a.appGone)return"the app is gone or no longer watched, so Watchbell can't confirm what production is built from. Merging this PR could replace what is live";let c=(0,$.B)(a.meta?.productionSource,a.baseBranch,b);if(c)return c;let d=(0,$.O)(a.meta?.productionSource),e=a.meta?.productionBranch;return d?.kind==="git"&&d.ref===a.baseBranch&&"string"==typeof e&&e!==a.baseBranch?`Merging into ${a.baseBranch} won't deploy to production by itself: production was promoted from a ${a.baseBranch} preview. Merge, then promote the new preview.`:null}async function as(a,b,c,d,e,f,g,h){let{step:i}=b,j=b.smoke?{smokeMode:b.smoke.mode}:{},k=b.previewReadyAt?{previewReadyAt:b.previewReadyAt}:{},l={app:c,number:a.number,packages:a.packages};if("wait"===i.kind)return void await g.save(a.id,{stage:i.stage,...j,...k,...i.resetSha?{headSha:i.resetSha,previewReadyAt:null,smokeMode:null}:{}},a.proposalId,(0,Z.m)(a.number,i.stage,i.reason));if("done"===i.kind)return void await g.save(a.id,{stage:i.stage,finishedAt:e},a.proposalId,(0,Z.m)(a.number,i.stage));if("stop"===i.kind&&("CI gagal"===i.reason||"CI failed"===i.reason)&&await g.lockfileBusy?.(a.repoId,a.branch,a.fullName).catch(()=>!1))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile from the runner"));let m=async b=>{await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b.replace(/\.$/,"")}).catch(()=>void 0)},n="merge"===i.kind||"stop"===i.kind&&"ready-manual"===i.stage?ar(a,e):null;if(n)return m(n);let o=async()=>{let c=a.appId?await g.liveSource(a.appId).catch(()=>null):null;if(!c){let c=b.previewReadyAt??a.previewReadyAt??a.openedAt;if((a.stageText??"").includes(ai)&&e.getTime()-c.getTime()>Z.R)return await m("Vercel didn't say which deployment is live for 45 minutes, so Watchbell can't confirm what production is built from. Check it, then merge yourself"),!0;let d="checks"===a.stage||"preview"===a.stage||"smoke"===a.stage?a.stage:"smoke";return await g.save(a.id,{stage:d,...j,...k},a.proposalId,(0,Z.m)(a.number,d,ai)),!0}let d=c.source?ar({...a,meta:{...a.meta??{},productionSource:{...c.source,at:e.toISOString()}}},e):`Watchbell can't confirm what production is built from (Vercel names no branch for it). Merging this PR could deploy ${a.baseBranch} to production and replace what is live.`;return!!d&&(await m(d),!0)};if("stop"===i.kind&&"ready-manual"===i.stage&&await o())return;if("stop"===i.kind){await g.save(a.id,{stage:i.stage,finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,i.stage,"ready-manual"===i.stage?null:i.reason)),h.stopped++,await g.notify({...l,kind:"ready-manual"===i.stage?"ready-manual":"stopped",reason:i.reason}).catch(()=>void 0);return}let p=await g.review(f,a).catch(()=>null);if(!p)return;let q=(0,Z.k)(p);if(!q&&(0,Z.H)(p)&&e.getTime()-a.openedAt.getTime()>Z.R){let b="the lockfile wasn't added within 45 minutes";await g.save(a.id,{stage:"timeout",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"timeout",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b}).catch(()=>void 0);return}if(!q&&(0,Z.H)(p))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile"));if(q){await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",q)),h.stopped++,await g.notify({...l,kind:"stopped",reason:q}).catch(()=>void 0);return}if(await o())return;await g.save(a.id,{stage:"merging",...j,...k},a.proposalId,(0,Z.m)(a.number,"merging"));let r=await g.merge(f,a.fullName,a.number,a.branch,a.baseBranch,a.headSha,a.title);if(r.ok){await g.save(a.id,{stage:"merged",mergedSha:r.data.sha,finishedAt:e},a.proposalId,(0,Z.m)(a.number,"merged")),h.merged++,await g.audit(`${ag.v}PR #${a.number} merged \xb7 ${a.packages.join(", ")}`.slice(0,200),a.appId).catch(()=>void 0),await g.notify({...l,kind:"merged",windowMin:d}).catch(()=>void 0);return}if(409===r.status)return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","new commit on the PR branch, checking again"));let s=405===r.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${r.error}`.slice(0,150);await g.save(a.id,{stage:"failed",finishedAt:e},a.proposalId,(0,Z.m)(a.number,"failed",s)),h.stopped++,await g.notify({...l,kind:"stopped",reason:s}).catch(()=>void 0)}let at=null;async function au(a,b,c=U.I){if((0,Z.f)(a,at)&&!(await c()).has("devops")){at=a.getTime();try{let c=await ap(a,b?.deadline??a.getTime()+5e4);c.watched&&console.log(`deps/watch: ${c.watched} PR, ${c.merged} merged, ${c.stopped} stopped`)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}}var av=a.i(691100),aw=a.i(624065);let ax={nav:[{section:"manage",after:"backups",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0,sub:"AI & API"},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0,sub:"AI & API"}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...e.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},ay={dailySteps:[{name:"ai-usage-retention",run:g.$}]},az={WhyAiSlot:E,RecSummarySlot:A,AiNotesSlot:v,dailySteps:[{name:"advisor-summary",run:j}],minuteSteps:[{name:"advisor-notes",run:h.I}]},aA={dailySteps:[{name:"ai-notes-retention",run:F.v}]},aB={nav:[{section:"manage",after:"alerts",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0,sub:"Alerting"}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:av.t}],minuteSteps:[{name:"auto-actions",run:av.Z},{name:"deps-pr-watch",run:au}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:N}]},aC={telegramCallback:aw.proposalCallback},aD=function(...a){let b={nav:[],palette:[]};for(let c of a){for(let a of c.nav??[]){let c=b.nav.find(b=>b.section===a.section&&b.after===a.after);c?c.items=[...c.items,...a.items]:b.nav.push({...a,items:[...a.items]})}b.palette.push(...c.palette??[]),c.dailySteps?.length&&(b.dailySteps=[...b.dailySteps??[],...c.dailySteps]),c.minuteSteps?.length&&(b.minuteSteps=[...b.minuteSteps??[],...c.minuteSteps]),c.WhyAiSlot&&(b.WhyAiSlot=c.WhyAiSlot),c.RecSummarySlot&&(b.RecSummarySlot=c.RecSummarySlot),c.AiNotesSlot&&(b.AiNotesSlot=c.AiNotesSlot),c.DevNotesSlot&&(b.DevNotesSlot=c.DevNotesSlot),c.office&&(b.office=c.office),c.settingsTabs?.length&&(b.settingsTabs=[...b.settingsTabs??[],...c.settingsTabs]),c.telegramCallback&&(b.telegramCallback=c.telegramCallback),c.runner&&(b.runner=c.runner),c.RepoPreviewSlot&&(b.RepoPreviewSlot=c.RepoPreviewSlot)}return b}({...ax,palette:(c=ax.palette??[],d={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(b=c.findIndex(a=>"/ai"===a.href))<0?[...c,d]:[...c.slice(0,b+1),d,...c.slice(b+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,f.w)()}]},ay,{},{},aA,aB,az,aC);a.s(["extensions",0,aD],534908)},285138,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-rollback-form.tsx","AutoRollbackForm");a.s(["AutoRollbackForm",0,b])},411642,a=>{var b=a.i(285138);a.n(b)},305093,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-run-form.tsx","AutoRunForm");a.s(["AutoRunForm",0,b])},581156,a=>{var b=a.i(305093);a.n(b)},173666,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-security-form.tsx","AutoSecurityForm");a.s(["AutoSecurityForm",0,b])},65932,a=>{var b=a.i(173666);a.n(b)},140025,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call DismissNoteButton() from the server but DismissNoteButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/dismiss-note-button.tsx","DismissNoteButton");a.s(["DismissNoteButton",0,b])},791450,a=>{var b=a.i(140025);a.n(b)},581542,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RegenerateButton() from the server but RegenerateButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/regenerate-button.tsx","RegenerateButton");a.s(["RegenerateButton",0,b])},185538,a=>{var b=a.i(581542);a.n(b)},402242,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call WhyAi() from the server but WhyAi is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/why-ai.tsx","WhyAi");a.s(["WhyAi",0,b])},976517,a=>{var b=a.i(402242);a.n(b)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[534908,a=>{let b;var c,d,e=a.i(462820),f=a.i(411350),g=a.i(61017),h=a.i(330863),i=a.i(779704);async function j(a){await (0,i.E)(a,{force:!1})}var k=a.i(907997),l=a.i(109307),m=a.i(920274),n=a.i(791450);let o=(0,a.i(377269).f)("outline","notes","Notes",[["path",{d:"M5 5a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2l0 -14",key:"svg-0"}],["path",{d:"M9 7l6 0",key:"svg-1"}],["path",{d:"M9 11l6 0",key:"svg-2"}],["path",{d:"M9 15l4 0",key:"svg-3"}]]);var p=a.i(701702),q=a.i(245710),r=a.i(668495),s=a.i(191397);let t={crit:"err",warn:"warn",info:"brand"};function u({note:a,now:b,showApp:c}){let d=["AI note",`from ${a.from}`,a.model,(0,q.$)(a.at,b),c&&a.appName?a.appName:null,"written by an agent, can be wrong"].filter(Boolean).join(" · ");return(0,k.jsxs)(s.f,{icon:(0,k.jsx)(o,{size:18,"aria-hidden":!0}),tone:t[a.severity]??"brand",meta:d,action:(0,k.jsx)(n.DismissNoteButton,{id:a.id}),children:[(0,k.jsx)("b",{className:"font-medium",children:(0,k.jsx)(p.MaskedText,{text:a.title})}),(0,k.jsx)(r.f,{source:a.body})]})}async function v({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,d=await (0,m.N)(a,c).catch(()=>[]);return d.length?(0,k.jsxs)("div",{className:"mb-3 flex flex-col gap-2.5",children:[d.length>1&&(0,k.jsx)("div",{className:"flex justify-end",children:(0,k.jsx)(n.DismissAllNotesButton,{ids:d.map(a=>a.id)})}),d.map(b=>(0,k.jsx)(u,{note:b,now:c,showApp:void 0===a},b.id))]}):null}var w=a.i(694874),x=a.i(395936),y=a.i(86657),z=a.i(185538);async function A({count:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;if(!await y.f.provider().catch(()=>null))return(await (0,m.N)(void 0,new Date).catch(()=>[])).length?null:(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(o,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),(0,k.jsx)(x.default,{href:"/ai/connect",children:e.v.recConnect})]});if(0===a)return null;let c=await (0,i.h)().catch(()=>null);if(!c)return(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(w.f,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),"No AI summary yet. ",(0,k.jsx)(z.RegenerateButton,{label:"Summarise"})]});let d=new Date;return(0,k.jsxs)(s.f,{className:"mb-3",icon:(0,k.jsx)(w.f,{size:18,"aria-hidden":!0}),meta:(0,k.jsxs)(k.Fragment,{children:[`AI \xb7 ${c.model} \xb7 ${(0,q.$)(new Date(c.at),d)} \xb7 from ${c.count} items, names aliased \xb7 can be wrong, check the items below \xb7 `,(0,k.jsx)(z.RegenerateButton,{label:"Regenerate"})]}),children:[(0,k.jsx)("b",{className:"font-medium",children:"Summary"}),(0,k.jsx)(r.f,{source:c.text})]})}var B=a.i(918962),C=a.i(962230),D=a.i(976517);async function E({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,[d,e,f]=await Promise.all([y.f.provider().catch(()=>null),(0,C.N)("app",a,c).catch(()=>null),(0,B.c)(c).catch(()=>null)]),g=e?{...e,createdAt:e.createdAt.toISOString(),answeredAt:e.answeredAt?.toISOString()??null}:null;return(0,k.jsx)(D.WhyAi,{appId:a,provider:d?{model:d.model}:null,question:g,nowMs:c.getTime(),agConnected:f?.agConnected??!1})}var F=a.i(243446),G=a.i(803681),H=a.i(581156),I=a.i(411642),J=a.i(65932),K=a.i(94473),L=a.i(188282);let M={recheck:"Runs the monitor's check once, like Check now on the monitor.",neon_wake:"Wakes a suspended Neon compute, like Wake on the database page.",supabase_keepalive:"Sends one keep-alive query to a Supabase project close to auto-pause, like Keep active.",supabase_restore:"Restores a paused Supabase project.",vercel_redeploy:"Redeploys the current production deployment.",vercel_rollback:"Rolls production back to the previous ready deployment.",github_bump_pr:"Opens a pull request on a new branch that raises vulnerable packages to their fixed versions (needs the GitHub PR-write token).",daily_rerun:"Calls the console's daily job again when its heartbeat is down. Always asks for approval.",domain_recheck:"Re-reads a domain's TLS certificate and expiry when its certificate looks close to expiry, like Re-check on Domains.",monitor_update_url:"Points an uptime monitor at its app's new domain when the app moved, keeping the path, like Update monitor on Uptime."};async function N(){let[a,b,c]=await Promise.all([(0,K.I)(),(0,K.K)(),(0,K.X)()]),d=[10,15,20,30,45,60,90,120].filter(a=>a>=K.l&&a<=K.n),e=K.r.map(a=>({kind:a,label:L.H[a].label,risky:"risky"===L.H[a].risk,what:M[a]}));return(0,k.jsxs)(G.N,{title:"Auto-actions",flush:!0,meta:"All off by default",children:[(0,k.jsxs)("p",{className:"px-[18px] pb-3 text-ink-soft",children:["When a firing alert brings a proposal for one of these actions, a switched-on kind runs without asking and you get a short Telegram line afterwards. Everything else waits for you on ",(0,k.jsx)(x.default,{href:"/auto-actions",children:"Auto-actions"}),". Auto-run only does what the console button does, through the same checks, and every run is in the audit log (Events)."]}),(0,k.jsx)(H.AutoRunForm,{saved:a,rows:e}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Auto-rollback after a bad deploy"}),(0,k.jsxs)("p",{className:"mb-2.5 text-ink-soft",children:["Off by default. When on, a new production deploy that breaks the app is rolled back to the previous one without asking. Only ",(0,k.jsx)("span",{className:"font-mono text-[12.5px]",children:"vercel_rollback"}),", only within the first N minutes after a new production deploy goes live, only when a monitor is down or the logs show an error spike, at most once per deployment (and never twice for one app within 2 hours), and every run is reported on Telegram and in Events. Failed builds never go live on Vercel, so this is for builds that succeed but break at runtime."]}),(0,k.jsx)(I.AutoRollbackForm,{saved:b,choices:d})]}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Automatic security fixes"}),(0,k.jsx)("p",{className:"mb-2 text-ink-soft",children:"On by default. When a dependency scan finds a critical, high or moderate advisory with a fix, Watchbell fixes it end to end (the scan and the Next.js check run every 6 hours and right after each production deploy):"}),(0,k.jsxs)("ol",{className:"mb-2.5 list-decimal pl-5 text-ink-soft [&_li]:mt-0.5",children:[(0,k.jsx)("li",{children:"opens the update PR itself (package.json only, on a new watchpost/deps-… branch), only for direct packages that stay in their major version, never twice for the same package while a PR is open;"}),(0,k.jsx)("li",{children:"waits for GitHub's checks (all green), then Vercel's preview of the PR (READY);"}),(0,k.jsx)("li",{children:'tests the preview: "/" and up to 3 monitor paths must answer 200–399 within 15 s (behind Vercel Authentication: 3 minutes without error lines in the preview\'s logs);'}),(0,k.jsx)("li",{children:"squash-merges it, only while auto-rollback is on: the production deploy then runs on Vercel and auto-rollback guards its first minutes."})]}),(0,k.jsx)("p",{className:"mb-2.5 text-ink-soft",children:'Anything failing, or not done within 45 minutes, leaves the PR open marked "needs a look". A major update, a transitive package or a severity you switched off waits for your approval on Auto-actions, as before. Every PR opened and every merge or stop is sent to Telegram and logged in Events. Needs the GitHub PR-write token on Connections.'}),(0,k.jsx)(J.AutoSecurityForm,{saved:c,rollbackOn:b.enabled})]})]})}var O=a.i(93321),P=a.i(530385),Q=a.i(548734),R=a.i(837137),S=a.i(247730),T=a.i(221084),U=a.i(396667),V=a.i(976937),W=a.i(736780),X=a.i(944571),Y=a.i(322145),Z=a.i(664892),$=a.i(751263),_=a.i(521050),aa=a.i(760417),ab=a.i(812092),ac=a.i(572134),ad=a.i(658739),ae=a.i(556987),af=a.i(142754),ag=a.i(342634),ah=a.i(381544);let ai="waiting: Vercel didn't say which deployment is live";async function aj(a){let b=Date.now();try{let c=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(Z.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),d=401===c.status||403===c.status?(await c.text().catch(()=>"")).slice(0,8192):"";return{status:c.status,ms:Date.now()-b,authWall:(0,Z.S)(c.status,d,c.headers)}}catch{return{status:null,ms:Date.now()-b,authWall:!1}}}async function ak(b,c){let{extensions:d}=await a.A(414785);return await d.runner?.lockfileJobActive(b,c).catch(()=>!1)??!1}let al=null;async function am(a,b){let c=(0,_.Q)(b.meta?.rootDirectory),d=(0,_.H)(c,"package.json"),e=b.lockfilePath??(0,_.H)(c,"package-lock.json");if(al?.token!==a){let b=await (0,ab.z)(a);if(!b.ok)return null;al={token:a,login:b.data}}let f=al.login,[g,h]=await Promise.all([(0,ab.O)(a,b.fullName,b.number),(0,ab.P)(a,b.fullName,b.number)]);if(!g.ok||!h.ok)return null;let i=[];for(let c of h.data.slice(0,Z.y+1)){let d=null!==c.login&&c.login.toLowerCase()===f.toLowerCase()?null:await (0,ab.h)(a,b.fullName,c.sha);if(d&&!d.ok)return null;i.push({...c,files:d?d.data:null})}let[j,k]=await Promise.all([(0,ab.E)(a,b.fullName,b.baseBranch,{},d),(0,ab.E)(a,b.fullName,b.headSha,{},d)]);if(!j.ok||!k.ok)return null;let l=j.data&&k.data?(0,Z.C)(j.data.text,k.data.text,b.packages):"unexpected change: package.json is missing",m=null;if(e!==d&&g.data.some(a=>a.filename===e||a.previous===e))if((0,ab.$)(e)){let[c,d]=await Promise.all([(0,ab.l)(a,b.fullName,b.baseBranch,e),(0,ab.l)(a,b.fullName,b.headSha,e)]);if(!c.ok||!d.ok)return null;m=(0,Z.T)(c.data,d.data,e)}else m=`unexpected lockfile change ${e} (only package-lock.json can be checked)`;return{manifest:d,lockfile:e,lockfileRequired:!!b.lockfilePath,manifestProblem:l,lockfileProblem:m,headSha:b.headSha,tokenLogin:f,files:g.data,commits:i}}async function an(a,b={}){let c=await (b.vercel??ao.vercel)(a);if(!c)return null;let d=await (b.serving??ac.k)(c.token,c.teamId,c.projectId);if(!d.ok)return null;let e=d.data.currentId,f=null;if(!e){let a=d.data.latest?.readyState??null;if("ERROR"!==a&&"CANCELED"!==a)return null;let g=await (b.running??ac.N)(c.token,c.teamId,c.projectId);if(!g.ok||g.data)return null;let h=await (b.ready??ac.r)(c.token,c.teamId,c.projectId);if(!h.ok)return null;let i=[...h.data].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),j=d.data.promote;j?(f=i.find(a=>a.createdAt.getTime()>j.requestedAt)??null)||(e=j.toDeploymentId):f=i[0]??null}if(!f&&e){let a=await (b.deployment??ac.S)(c.token,{id:c.teamId,slug:c.teamId,name:c.teamId},e);if(!a.ok)return null;f=a.data}return f?{source:(0,$.s)({source:f.source,branch:f.branch,sha:f.sha,branchFrom:f.branchFrom??null,gitDirty:!0===f.gitDirty})}:null}let ao={rows:async()=>await (0,Q.f)().select({id:R.dependencyPrs.id,repoId:R.dependencyPrs.repoId,appId:R.dependencyPrs.appId,proposalId:R.dependencyPrs.proposalId,number:R.dependencyPrs.number,branch:R.dependencyPrs.branch,baseBranch:R.dependencyPrs.baseBranch,headSha:R.dependencyPrs.headSha,title:R.dependencyPrs.title,packages:R.dependencyPrs.packages,auto:R.dependencyPrs.auto,stage:R.dependencyPrs.stage,smokeMode:R.dependencyPrs.smokeMode,previewReadyAt:R.dependencyPrs.previewReadyAt,openedAt:R.dependencyPrs.openedAt,fullName:R.githubRepos.fullName,appName:R.resources.name,meta:R.resources.meta,lockfilePath:R.dependencyScans.lockfilePath,appMonitored:R.resources.monitored,appGone:R.resources.goneAt,stageText:R.dependencyPrs.stageText}).from(R.dependencyPrs).innerJoin(R.githubRepos,(0,O.u)(R.githubRepos.id,R.dependencyPrs.repoId)).leftJoin(R.resources,(0,O.u)(R.resources.id,R.dependencyPrs.appId)).leftJoin(R.dependencyScans,(0,O.u)(R.dependencyScans.repoId,R.dependencyPrs.repoId)).where((0,O.y)(R.dependencyPrs.stage,[...Z.X])).orderBy((0,P.M)(R.dependencyPrs.openedAt)).limit(10),security:K.X,rollback:K.K,writeToken:async()=>{let a=await (0,W.G)();return a&&"unreadable"!==a?a.token:null},readToken:async a=>{let b=await (0,X.l)(a);return b.ok?b.token:null},vercel:async a=>{let b=await (0,Y.p)(a,"app"),c=b?.resource.meta.teamId;return b&&"string"==typeof c&&b.resource.externalId?{token:b.token,teamId:c,projectId:b.resource.externalId}:null},monitorUrls:async a=>(await (0,Q.f)().select({url:R.monitors.url}).from(R.monitors).where((0,O.b)((0,O.u)(R.monitors.resourceId,a),(0,O.u)(R.monitors.kind,"http"))).limit(10)).map(a=>a.url),pull:ab.b,checks:ab.s,runs:aa.L,previews:ac.C,probe:aj,errorLogs:async(a,b,c,d)=>{let e=await (0,ad.f)(a.token,a.teamId,a.projectId,{since:c,until:d,now:d,deploymentId:b,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return e.ok?e.lines.length:null},merge:ab.C,review:am,save:async(a,b,c,d)=>{await (0,Q.f)().update(R.dependencyPrs).set({...b,stageText:d,checkedAt:new Date}).where((0,O.u)(R.dependencyPrs.id,a)),c&&await (0,Q.f)().update(af.O).set({result:d}).where((0,O.u)(af.O.id,c)).catch(()=>void 0)},notify:a=>(0,ah.y)(a),liveSource:a=>an(a),lockfileBusy:async(a,b,c)=>await ak(a,b)||await (0,V.W)(c,b),audit:(a,b)=>(0,T.f)({kind:"ok",message:a,resourceId:b,actorUserId:null}),book:()=>(0,S.f)()};async function ap(a,b,c=ao){let d={watched:0,merged:0,stopped:0},e=()=>b-Date.now(),f=await c.rows();if(!f.length)return d;let[g,h,i]=await Promise.all([c.security().catch(()=>null),c.rollback().catch(()=>null),c.writeToken().catch(()=>null)]);if(!i)return d;let j=await c.book().catch(()=>ae.a);for(let b of f){if(15e3>e())break;if(b.auto||g?.enabled)try{let e=await aq(b,a,i,h?.enabled===!0,c);if(!e)continue;d.watched++;let f=b.appName?(0,ae.r)(j,b.appName):"app";await as(b,e,f,h?.windowMin??30,a,i,c,d)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}return d}async function aq(a,b,c,d,e){let f=await e.pull(c,a.fullName,a.number);if(!f.ok)return null;let g=await e.checks(c,a.fullName,f.data.headSha),h=null;if(g.ok&&null===g.data.checkRuns&&a.appId){let b=await e.readToken(a.appId),c=b?await e.runs(b,a.fullName,f.data.headSha):null;h=c?.ok?c.data:null}g.ok||(g={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let i=(0,Z.j)({...g.data,actionRuns:h}),j={state:null,readyAt:null},k=null,l=a.appId?await e.vercel(a.appId):null;if(l&&"success"===i&&f.data.headSha===a.headSha){let c=await e.previews(l.token,l.teamId,l.projectId,f.data.headSha),d=c.ok?c.data.find(a=>"preview"===a.target)??c.data[0]??null:null;if(d&&(j={state:d.state,readyAt:d.readyAt??("ready"===d.state?b:null)},"ready"===d.state&&d.url)){let c=a.previewReadyAt??j.readyAt??b;if("logs"!==a.smokeMode){let b=(0,Z.E)(a.appId?await e.monitorUrls(a.appId):[]),c=await Promise.all(b.map(async a=>({path:a,...await e.probe(`https://${d.url}${a}`)})));k=(0,Z.L)(c)}k||(k=(0,Z.n)(c,b,await e.errorLogs(l,d.id,c,b).catch(()=>null))),j.readyAt=c}}return{step:(0,Z.M)({now:b,openedAt:a.openedAt,pr:{state:f.data.state,merged:f.data.merged,mergeable:f.data.mergeable,headSha:f.data.headSha,base:f.data.base},recordedSha:a.headSha,recordedBase:a.baseBranch,checks:i,preview:j,smoke:k,autoRollbackOn:d}),smoke:k,previewReadyAt:j.readyAt,headSha:f.data.headSha}}function ar(a,b){if(!a.appId||!1===a.appMonitored||a.appGone)return"the app is gone or no longer watched, so Watchbell can't confirm what production is built from. Merging this PR could replace what is live";let c=(0,$.B)(a.meta?.productionSource,a.baseBranch,b);if(c)return c;let d=(0,$.O)(a.meta?.productionSource),e=a.meta?.productionBranch;return d?.kind==="git"&&d.ref===a.baseBranch&&"string"==typeof e&&e!==a.baseBranch?`Merging into ${a.baseBranch} won't deploy to production by itself: production was promoted from a ${a.baseBranch} preview. Merge, then promote the new preview.`:null}async function as(a,b,c,d,e,f,g,h){let{step:i}=b,j=b.smoke?{smokeMode:b.smoke.mode}:{},k=b.previewReadyAt?{previewReadyAt:b.previewReadyAt}:{},l={app:c,number:a.number,packages:a.packages};if("wait"===i.kind)return void await g.save(a.id,{stage:i.stage,...j,...k,...i.resetSha?{headSha:i.resetSha,previewReadyAt:null,smokeMode:null}:{}},a.proposalId,(0,Z.m)(a.number,i.stage,i.reason));if("done"===i.kind)return void await g.save(a.id,{stage:i.stage,finishedAt:e},a.proposalId,(0,Z.m)(a.number,i.stage));if("stop"===i.kind&&("CI gagal"===i.reason||"CI failed"===i.reason)&&await g.lockfileBusy?.(a.repoId,a.branch,a.fullName).catch(()=>!1))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile from the runner"));let m=async b=>{await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b.replace(/\.$/,"")}).catch(()=>void 0)},n="merge"===i.kind||"stop"===i.kind&&"ready-manual"===i.stage?ar(a,e):null;if(n)return m(n);let o=async()=>{let c=a.appId?await g.liveSource(a.appId).catch(()=>null):null;if(!c){let c=b.previewReadyAt??a.previewReadyAt??a.openedAt;if((a.stageText??"").includes(ai)&&e.getTime()-c.getTime()>Z.R)return await m("Vercel didn't say which deployment is live for 45 minutes, so Watchbell can't confirm what production is built from. Check it, then merge yourself"),!0;let d="checks"===a.stage||"preview"===a.stage||"smoke"===a.stage?a.stage:"smoke";return await g.save(a.id,{stage:d,...j,...k},a.proposalId,(0,Z.m)(a.number,d,ai)),!0}let d=c.source?ar({...a,meta:{...a.meta??{},productionSource:{...c.source,at:e.toISOString()}}},e):`Watchbell can't confirm what production is built from (Vercel names no branch for it). Merging this PR could deploy ${a.baseBranch} to production and replace what is live.`;return!!d&&(await m(d),!0)};if("stop"===i.kind&&"ready-manual"===i.stage&&await o())return;if("stop"===i.kind){await g.save(a.id,{stage:i.stage,finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,i.stage,"ready-manual"===i.stage?null:i.reason)),h.stopped++,await g.notify({...l,kind:"ready-manual"===i.stage?"ready-manual":"stopped",reason:i.reason}).catch(()=>void 0);return}let p=await g.review(f,a).catch(()=>null);if(!p)return;let q=(0,Z.k)(p);if(!q&&(0,Z.H)(p)&&e.getTime()-a.openedAt.getTime()>Z.R){let b="the lockfile wasn't added within 45 minutes";await g.save(a.id,{stage:"timeout",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"timeout",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b}).catch(()=>void 0);return}if(!q&&(0,Z.H)(p))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile"));if(q){await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",q)),h.stopped++,await g.notify({...l,kind:"stopped",reason:q}).catch(()=>void 0);return}if(await o())return;await g.save(a.id,{stage:"merging",...j,...k},a.proposalId,(0,Z.m)(a.number,"merging"));let r=await g.merge(f,a.fullName,a.number,a.branch,a.baseBranch,a.headSha,a.title);if(r.ok){await g.save(a.id,{stage:"merged",mergedSha:r.data.sha,finishedAt:e},a.proposalId,(0,Z.m)(a.number,"merged")),h.merged++,await g.audit(`${ag.v}PR #${a.number} merged \xb7 ${a.packages.join(", ")}`.slice(0,200),a.appId).catch(()=>void 0),await g.notify({...l,kind:"merged",windowMin:d}).catch(()=>void 0);return}if(409===r.status)return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","new commit on the PR branch, checking again"));let s=405===r.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${r.error}`.slice(0,150);await g.save(a.id,{stage:"failed",finishedAt:e},a.proposalId,(0,Z.m)(a.number,"failed",s)),h.stopped++,await g.notify({...l,kind:"stopped",reason:s}).catch(()=>void 0)}let at=null;async function au(a,b,c=U.I){if((0,Z.f)(a,at)&&!(await c()).has("devops")){at=a.getTime();try{let c=await ap(a,b?.deadline??a.getTime()+5e4);c.watched&&console.log(`deps/watch: ${c.watched} PR, ${c.merged} merged, ${c.stopped} stopped`)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}}var av=a.i(691100),aw=a.i(624065);let ax={nav:[{section:"manage",after:"backups",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0,sub:"AI & API"},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0,sub:"AI & API"}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...e.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},ay={dailySteps:[{name:"ai-usage-retention",run:g.$}]},az={WhyAiSlot:E,RecSummarySlot:A,AiNotesSlot:v,dailySteps:[{name:"advisor-summary",run:j}],minuteSteps:[{name:"advisor-notes",run:h.I}]},aA={dailySteps:[{name:"ai-notes-retention",run:F.v}]},aB={nav:[{section:"manage",after:"alerts",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0,sub:"Alerting"}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:av.t}],minuteSteps:[{name:"auto-actions",run:av.Z},{name:"deps-pr-watch",run:au}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:N}]},aC={telegramCallback:aw.proposalCallback},aD=function(...a){let b={nav:[],palette:[]};for(let c of a){for(let a of c.nav??[]){let c=b.nav.find(b=>b.section===a.section&&b.after===a.after);c?c.items=[...c.items,...a.items]:b.nav.push({...a,items:[...a.items]})}b.palette.push(...c.palette??[]),c.dailySteps?.length&&(b.dailySteps=[...b.dailySteps??[],...c.dailySteps]),c.minuteSteps?.length&&(b.minuteSteps=[...b.minuteSteps??[],...c.minuteSteps]),c.WhyAiSlot&&(b.WhyAiSlot=c.WhyAiSlot),c.RecSummarySlot&&(b.RecSummarySlot=c.RecSummarySlot),c.AiNotesSlot&&(b.AiNotesSlot=c.AiNotesSlot),c.DevNotesSlot&&(b.DevNotesSlot=c.DevNotesSlot),c.office&&(b.office=c.office),c.settingsTabs?.length&&(b.settingsTabs=[...b.settingsTabs??[],...c.settingsTabs]),c.telegramCallback&&(b.telegramCallback=c.telegramCallback),c.runner&&(b.runner=c.runner),c.RepoPreviewSlot&&(b.RepoPreviewSlot=c.RepoPreviewSlot)}return b}({...ax,palette:(c=ax.palette??[],d={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(b=c.findIndex(a=>"/ai"===a.href))<0?[...c,d]:[...c.slice(0,b+1),d,...c.slice(b+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,f.w)()}]},ay,{},{},aA,aB,az,aC);a.s(["extensions",0,aD],534908)},285138,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-rollback-form.tsx","AutoRollbackForm");a.s(["AutoRollbackForm",0,b])},411642,a=>{var b=a.i(285138);a.n(b)},305093,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-run-form.tsx","AutoRunForm");a.s(["AutoRunForm",0,b])},581156,a=>{var b=a.i(305093);a.n(b)},173666,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/actions/auto-security-form.tsx","AutoSecurityForm");a.s(["AutoSecurityForm",0,b])},65932,a=>{var b=a.i(173666);a.n(b)},140025,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call DismissAllNotesButton() from the server but DismissAllNotesButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/dismiss-note-button.tsx","DismissAllNotesButton"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call DismissNoteButton() from the server but DismissNoteButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/dismiss-note-button.tsx","DismissNoteButton");a.s(["DismissAllNotesButton",0,c,"DismissNoteButton",0,d])},791450,a=>{var b=a.i(140025);a.n(b)},581542,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RegenerateButton() from the server but RegenerateButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/regenerate-button.tsx","RegenerateButton");a.s(["RegenerateButton",0,b])},185538,a=>{var b=a.i(581542);a.n(b)},402242,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call WhyAi() from the server but WhyAi is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/private/slots/why-ai.tsx","WhyAi");a.s(["WhyAi",0,b])},976517,a=>{var b=a.i(402242);a.n(b)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_0uitfl3c1mdqb._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[992861,a=>{var b=a.i(187924),c=a.i(101169),d=a.i(218024),e=a.i(196790),f=a.i(817748),g=a.i(901615),h=a.i(238246),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(405050);let o=(0,n.createServerReference)("406185ca3e9f8e9e3b6e57baed348c405e4cd74db8",n.callServer,void 0,n.findSourceMapURL,"createKeyAction");function p({scopes:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)("span",{className:"mr-1 inline-block whitespace-nowrap rounded-[4px] border border-line bg-surface-2 px-[5px] font-mono text-xs text-ink-soft",children:a},a))})}var q=a.i(136476);function r({icon:a,title:c,sub:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:a}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:c}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}function s({onCreated:a,onCancel:c}){let[d,f]=(0,i.useState)(""),[h,l]=(0,i.useState)(q.J),[m,n]=(0,i.useState)(q.j),[t,u]=(0,i.useState)(String(q.D)),[v,w]=(0,i.useState)({}),[x,y]=(0,i.useState)(""),[z,A]=(0,i.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),A(async()=>{w({}),y("");try{let b=await o({name:d.trim(),scopes:q.B.filter(a=>h.includes(a)),expiry:m,ratePerMin:t.trim()});b.ok&&b.data?(j.c.success(b.message??"Key created."),a(b.data)):b.ok||(b.fieldErrors?w(b.fieldErrors):y(b.error))}catch{y("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsx)(r,{icon:(0,b.jsx)(e.f,{size:19}),title:"Create API key",sub:"For one app or agent. Shown once."}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(k.O,{id:"key-name",label:"Name",help:"Lowercase letters, digits and dashes. Agents and Logs show it.",error:v.name,children:(0,b.jsx)("input",{id:"key-name",value:d,onChange:a=>f(a.target.value),placeholder:g.C.namePlaceholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:k.S})}),(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Scopes"}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:q.B.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:h.includes(a),onChange:()=>l(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),className:"mt-[3px] accent-brand"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(p,{scopes:[a]})," ",(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:q.h[a].short})]})]},a))}),v.scopes&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.scopes})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"key-expiry",label:"Expires",error:v.expiry,children:(0,b.jsx)("select",{id:"key-expiry",value:m,onChange:a=>n(a.target.value),className:k.S,children:q.W.map(a=>(0,b.jsx)("option",{value:a,children:q.o[a]},a))})}),(0,b.jsx)(k.O,{id:"key-rate",label:"Rate limit",help:"Requests per minute, 1–600. Applies before the provider's own limits.",error:v.ratePerMin,children:(0,b.jsx)("input",{id:"key-rate",inputMode:"numeric",value:t,onChange:a=>u(a.target.value),className:`${k.S} font-mono`})})]}),x&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:x})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:z,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:z,children:z?"Creating…":"Create key"})]})]})}function t({created:a,onDone:e}){async function f(){try{await navigator.clipboard.writeText(a.key),j.c.success("Copied.")}catch{j.c.error("Couldn't copy. Select the key and copy it by hand.")}}return(0,b.jsxs)("div",{children:[(0,b.jsx)(r,{icon:(0,b.jsx)(c.f,{size:19}),title:`Key ${a.name} created`,sub:"Copy it now."}),(0,b.jsxs)("div",{className:"px-[18px] pb-3 pt-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]","data-testid":"new-key",children:a.key}),(0,b.jsxs)(k.K,{size:"sm",onClick:f,children:[(0,b.jsx)(d.f,{size:15,"aria-hidden":!0}),"Copy"]})]}),(0,b.jsx)("p",{className:"mt-2.5 rounded-md border border-warn-icon bg-warn-soft px-2.5 py-2 text-[13px] text-warn",children:"Watchbell keeps only a SHA-256 hash of this key, so it can't show it again. Lost it? Revoke it and create a new one."}),(0,b.jsxs)("p",{className:"mb-0 mt-3 text-[13px] text-ink-soft",children:["Next: put it in the app's environment as ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_API_KEY"}),", then follow ",(0,b.jsx)(h.default,{href:"/ai",className:"text-brand",children:"Quick start"})," or ",(0,b.jsx)(h.default,{href:"/ai/connect",className:"text-brand",children:"Connect an agent"}),"."]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:e,children:"Done"})})]})}a.s(["CreateKeyDialog",0,function(){let[a,c]=(0,i.useState)(!1),[d,e]=(0,i.useState)(null);function g(a){c(a),a||e(null)}return(0,l.useHoldRefresh)(a),(0,b.jsxs)(m.N,{open:a,onOpenChange:g,children:[(0,b.jsxs)(m.a,{render:(0,b.jsx)(k.K,{variant:"primary"}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),"Create key"]}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:d?(0,b.jsx)(t,{created:d,onDone:()=>g(!1)}):(0,b.jsx)(s,{onCreated:e,onCancel:()=>g(!1)})})]})}],992861)},659526,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(507504),h=a.i(188406),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("6080a4153c206a5ff3d58d1a933490213b3cc65e40",j.callServer,void 0,j.findSourceMapURL,"changeKeyAction"),l=(0,j.createServerReference)("405fe51485a8570a8b1955bb8712e28b767244dec8",j.callServer,void 0,j.findSourceMapURL,"revokeKeyAction");var m=a.i(136476);let n={rename:{title:a=>`Rename ${a}`,sub:"Agents and Logs show the name. Lowercase letters, digits and dashes.",cta:"Save name"},rate:{title:()=>"Change rate limit",sub:"Requests per minute, 1–600. Applies before the provider's own limits, within a minute.",cta:"Save limit"},expiry:{title:()=>"Change expiry",sub:"Counted from today. The key stops working at that date.",cta:"Save expiry"},routing:{title:()=>"Change routing",sub:"Pin this key to one provider and, if you like, one model. Without a pin it uses the default provider.",cta:"Save routing"}};function o({mode:a,k:e,providers:g,onDone:h}){let[j,l]=(0,c.useState)(e.name),[p,q]=(0,c.useState)(String(e.ratePerMin)),[r,s]=(0,c.useState)(e.expiresAt?"90d":"never"),[t,u]=(0,c.useState)(e.providerId??""),[v,w]=(0,c.useState)(e.model??""),[x,y]=(0,c.useState)({}),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useTransition)(),D=n[a];return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),C(async()=>{y({}),A("");try{let b=await k(e.id,"rename"===a?{kind:"rename",name:j.trim()}:"rate"===a?{kind:"rate",ratePerMin:p.trim()}:"expiry"===a?{kind:"expiry",expiry:r}:{kind:"routing",providerId:t||null,model:t?v.trim():null});b.ok?(d.c.success(b.message??"Key updated."),h()):b.fieldErrors?y(b.fieldErrors):A(b.error)}catch{A("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(i.F,{className:"text-base",children:D.title(e.name)}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:D.sub})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:["rename"===a&&(0,b.jsx)(f.O,{id:"edit-name",label:"Name",error:x.name,children:(0,b.jsx)("input",{id:"edit-name",value:j,onChange:a=>l(a.target.value),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:f.S})}),"rate"===a&&(0,b.jsx)(f.O,{id:"edit-rate",label:"Rate limit",help:"Requests per minute.",error:x.ratePerMin,children:(0,b.jsx)("input",{id:"edit-rate",inputMode:"numeric",value:p,onChange:a=>q(a.target.value),className:`${f.S} font-mono`})}),"expiry"===a&&(0,b.jsx)(f.O,{id:"edit-expiry",label:"Expires",error:x.expiry,children:(0,b.jsx)("select",{id:"edit-expiry",value:r,onChange:a=>s(a.target.value),className:f.S,children:m.W.map(a=>(0,b.jsx)("option",{value:a,children:m.o[a]},a))})}),"routing"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"edit-provider",label:"Provider",help:g.length?void 0:"No provider is connected yet. Until one is, this key has nothing to pin to.",error:x.providerId,children:(0,b.jsxs)("select",{id:"edit-provider",value:t,onChange:a=>u(a.target.value),className:f.S,children:[(0,b.jsx)("option",{value:"",children:"No pin (default provider)"}),g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.name,a.enabled?"":" (off)"]},a.id))]})}),(0,b.jsx)(f.O,{id:"edit-model",label:"Model",help:"Optional. A Gemini model id, for example gemini-3.8-flash. Empty uses the provider's default.",error:x.model,children:(0,b.jsx)("input",{id:"edit-model",value:v,onChange:a=>w(a.target.value),disabled:!t,placeholder:"gemini-3.8-flash",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:`${f.S} font-mono`})})]}),z&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:z})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:h,disabled:B,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:B,children:B?"Saving…":D.cta})]})]})}a.s(["KeyActions",0,function({k:a,providers:d}){let[j,k]=(0,c.useState)(null);return(0,g.useHoldRefresh)(null!==j),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Revoke"}),title:`Revoke ${a.name}?`,body:`Calls with ${a.prefix}… answer 401 within a minute. Agents using it show "Key revoked". This can't be undone; create a new key instead.`,cta:"Revoke key",danger:!0,onConfirm:async()=>{let b=await l(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(h.RowMenu,{label:`Actions for ${a.name}`,items:[{label:"Rename",onSelect:()=>k("rename")},{label:"Change rate limit",onSelect:()=>k("rate")},{label:"Change expiry",onSelect:()=>k("expiry")},{label:"Change routing",onSelect:()=>k("routing")}]}),(0,b.jsx)(i.N,{open:null!==j,onOpenChange:a=>{a||k(null)},children:(0,b.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:j&&(0,b.jsx)(o,{mode:j,k:a,providers:d,onDone:()=>k(null)})})})]})}],659526)},136476,a=>{let b={"ai:invoke":{short:"models",long:"Chat completions and the model list through your provider connections."},"read:status":{short:"console data, MCP",long:"Read-only console data: GET /api/v1/status and the MCP server. Database names are aliases; no URLs, emails or secrets."},"write:notes":{short:"post AI notes",long:a.i(901615).C.writeNotesLong}};a.s(["j",0,"90d","D",0,20,"J",0,["ai:invoke"],"W",0,["7d","30d","90d","1y","never"],"o",0,{"7d":"In 7 days","30d":"In 30 days","90d":"In 90 days","1y":"In 1 year",never:"Never"},"B",0,["ai:invoke","read:status","write:notes"],"h",0,b])}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[992861,a=>{var b=a.i(187924),c=a.i(101169),d=a.i(218024),e=a.i(196790),f=a.i(817748),g=a.i(901615),h=a.i(238246),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(405050);let o=(0,n.createServerReference)("40234f191efc0a60d6cfe72eec5647c53c1f062991",n.callServer,void 0,n.findSourceMapURL,"createKeyAction");function p({scopes:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)("span",{className:"mr-1 inline-block whitespace-nowrap rounded-[4px] border border-line bg-surface-2 px-[5px] font-mono text-xs text-ink-soft",children:a},a))})}var q=a.i(136476);function r({icon:a,title:c,sub:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:a}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:c}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}function s({onCreated:a,onCancel:c}){let[d,f]=(0,i.useState)(""),[h,l]=(0,i.useState)(q.J),[m,n]=(0,i.useState)(q.j),[t,u]=(0,i.useState)(String(q.D)),[v,w]=(0,i.useState)({}),[x,y]=(0,i.useState)(""),[z,A]=(0,i.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),A(async()=>{w({}),y("");try{let b=await o({name:d.trim(),scopes:q.B.filter(a=>h.includes(a)),expiry:m,ratePerMin:t.trim()});b.ok&&b.data?(j.c.success(b.message??"Key created."),a(b.data)):b.ok||(b.fieldErrors?w(b.fieldErrors):y(b.error))}catch{y("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsx)(r,{icon:(0,b.jsx)(e.f,{size:19}),title:"Create API key",sub:"For one app or agent. Shown once."}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(k.O,{id:"key-name",label:"Name",help:"Lowercase letters, digits and dashes. Agents and Logs show it.",error:v.name,children:(0,b.jsx)("input",{id:"key-name",value:d,onChange:a=>f(a.target.value),placeholder:g.C.namePlaceholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:k.S})}),(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Scopes"}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:q.B.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:h.includes(a),onChange:()=>l(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),className:"mt-[3px] accent-brand"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(p,{scopes:[a]})," ",(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:q.h[a].short})]})]},a))}),v.scopes&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.scopes})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"key-expiry",label:"Expires",error:v.expiry,children:(0,b.jsx)("select",{id:"key-expiry",value:m,onChange:a=>n(a.target.value),className:k.S,children:q.W.map(a=>(0,b.jsx)("option",{value:a,children:q.o[a]},a))})}),(0,b.jsx)(k.O,{id:"key-rate",label:"Rate limit",help:"Requests per minute, 1–600. Applies before the provider's own limits.",error:v.ratePerMin,children:(0,b.jsx)("input",{id:"key-rate",inputMode:"numeric",value:t,onChange:a=>u(a.target.value),className:`${k.S} font-mono`})})]}),x&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:x})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:z,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:z,children:z?"Creating…":"Create key"})]})]})}function t({created:a,onDone:e}){async function f(){try{await navigator.clipboard.writeText(a.key),j.c.success("Copied.")}catch{j.c.error("Couldn't copy. Select the key and copy it by hand.")}}return(0,b.jsxs)("div",{children:[(0,b.jsx)(r,{icon:(0,b.jsx)(c.f,{size:19}),title:`Key ${a.name} created`,sub:"Copy it now."}),(0,b.jsxs)("div",{className:"px-[18px] pb-3 pt-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]","data-testid":"new-key",children:a.key}),(0,b.jsxs)(k.K,{size:"sm",onClick:f,children:[(0,b.jsx)(d.f,{size:15,"aria-hidden":!0}),"Copy"]})]}),(0,b.jsx)("p",{className:"mt-2.5 rounded-md border border-warn-icon bg-warn-soft px-2.5 py-2 text-[13px] text-warn",children:"Watchbell keeps only a SHA-256 hash of this key, so it can't show it again. Lost it? Revoke it and create a new one."}),(0,b.jsxs)("p",{className:"mb-0 mt-3 text-[13px] text-ink-soft",children:["Next: put it in the app's environment as ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_API_KEY"}),", then follow ",(0,b.jsx)(h.default,{href:"/ai",className:"text-brand",children:"Quick start"})," or ",(0,b.jsx)(h.default,{href:"/ai/connect",className:"text-brand",children:"Connect an agent"}),"."]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:e,children:"Done"})})]})}a.s(["CreateKeyDialog",0,function(){let[a,c]=(0,i.useState)(!1),[d,e]=(0,i.useState)(null);function g(a){c(a),a||e(null)}return(0,l.useHoldRefresh)(a),(0,b.jsxs)(m.N,{open:a,onOpenChange:g,children:[(0,b.jsxs)(m.a,{render:(0,b.jsx)(k.K,{variant:"primary"}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),"Create key"]}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:d?(0,b.jsx)(t,{created:d,onDone:()=>g(!1)}):(0,b.jsx)(s,{onCreated:e,onCancel:()=>g(!1)})})]})}],992861)},659526,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(507504),h=a.i(188406),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("60537244f8b3edaa064f08981cd6d4466256f9716f",j.callServer,void 0,j.findSourceMapURL,"changeKeyAction"),l=(0,j.createServerReference)("403dcec2a681653664141f715fc05bd1b81fa68912",j.callServer,void 0,j.findSourceMapURL,"revokeKeyAction");var m=a.i(136476);let n={rename:{title:a=>`Rename ${a}`,sub:"Agents and Logs show the name. Lowercase letters, digits and dashes.",cta:"Save name"},rate:{title:()=>"Change rate limit",sub:"Requests per minute, 1–600. Applies before the provider's own limits, within a minute.",cta:"Save limit"},expiry:{title:()=>"Change expiry",sub:"Counted from today. The key stops working at that date.",cta:"Save expiry"},routing:{title:()=>"Change routing",sub:"Pin this key to one provider and, if you like, one model. Without a pin it uses the default provider.",cta:"Save routing"}};function o({mode:a,k:e,providers:g,onDone:h}){let[j,l]=(0,c.useState)(e.name),[p,q]=(0,c.useState)(String(e.ratePerMin)),[r,s]=(0,c.useState)(e.expiresAt?"90d":"never"),[t,u]=(0,c.useState)(e.providerId??""),[v,w]=(0,c.useState)(e.model??""),[x,y]=(0,c.useState)({}),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useTransition)(),D=n[a];return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),C(async()=>{y({}),A("");try{let b=await k(e.id,"rename"===a?{kind:"rename",name:j.trim()}:"rate"===a?{kind:"rate",ratePerMin:p.trim()}:"expiry"===a?{kind:"expiry",expiry:r}:{kind:"routing",providerId:t||null,model:t?v.trim():null});b.ok?(d.c.success(b.message??"Key updated."),h()):b.fieldErrors?y(b.fieldErrors):A(b.error)}catch{A("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(i.F,{className:"text-base",children:D.title(e.name)}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:D.sub})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:["rename"===a&&(0,b.jsx)(f.O,{id:"edit-name",label:"Name",error:x.name,children:(0,b.jsx)("input",{id:"edit-name",value:j,onChange:a=>l(a.target.value),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:f.S})}),"rate"===a&&(0,b.jsx)(f.O,{id:"edit-rate",label:"Rate limit",help:"Requests per minute.",error:x.ratePerMin,children:(0,b.jsx)("input",{id:"edit-rate",inputMode:"numeric",value:p,onChange:a=>q(a.target.value),className:`${f.S} font-mono`})}),"expiry"===a&&(0,b.jsx)(f.O,{id:"edit-expiry",label:"Expires",error:x.expiry,children:(0,b.jsx)("select",{id:"edit-expiry",value:r,onChange:a=>s(a.target.value),className:f.S,children:m.W.map(a=>(0,b.jsx)("option",{value:a,children:m.o[a]},a))})}),"routing"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"edit-provider",label:"Provider",help:g.length?void 0:"No provider is connected yet. Until one is, this key has nothing to pin to.",error:x.providerId,children:(0,b.jsxs)("select",{id:"edit-provider",value:t,onChange:a=>u(a.target.value),className:f.S,children:[(0,b.jsx)("option",{value:"",children:"No pin (default provider)"}),g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.name,a.enabled?"":" (off)"]},a.id))]})}),(0,b.jsx)(f.O,{id:"edit-model",label:"Model",help:"Optional. A Gemini model id, for example gemini-3.8-flash. Empty uses the provider's default.",error:x.model,children:(0,b.jsx)("input",{id:"edit-model",value:v,onChange:a=>w(a.target.value),disabled:!t,placeholder:"gemini-3.8-flash",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:`${f.S} font-mono`})})]}),z&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:z})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:h,disabled:B,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:B,children:B?"Saving…":D.cta})]})]})}a.s(["KeyActions",0,function({k:a,providers:d}){let[j,k]=(0,c.useState)(null);return(0,g.useHoldRefresh)(null!==j),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Revoke"}),title:`Revoke ${a.name}?`,body:`Calls with ${a.prefix}… answer 401 within a minute. Agents using it show "Key revoked". This can't be undone; create a new key instead.`,cta:"Revoke key",danger:!0,onConfirm:async()=>{let b=await l(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(h.RowMenu,{label:`Actions for ${a.name}`,items:[{label:"Rename",onSelect:()=>k("rename")},{label:"Change rate limit",onSelect:()=>k("rate")},{label:"Change expiry",onSelect:()=>k("expiry")},{label:"Change routing",onSelect:()=>k("routing")}]}),(0,b.jsx)(i.N,{open:null!==j,onOpenChange:a=>{a||k(null)},children:(0,b.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:j&&(0,b.jsx)(o,{mode:j,k:a,providers:d,onDone:()=>k(null)})})})]})}],659526)},136476,a=>{let b={"ai:invoke":{short:"models",long:"Chat completions and the model list through your provider connections."},"read:status":{short:"console data, MCP",long:"Read-only console data: GET /api/v1/status and the MCP server. Database names are aliases; no URLs, emails or secrets."},"write:notes":{short:"post AI notes",long:a.i(901615).C.writeNotesLong}};a.s(["j",0,"90d","D",0,20,"J",0,["ai:invoke"],"W",0,["7d","30d","90d","1y","never"],"o",0,{"7d":"In 7 days","30d":"In 30 days","90d":"In 90 days","1y":"In 1 year",never:"Never"},"B",0,["ai:invoke","read:status","write:notes"],"h",0,b])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_10zavgy86u3us._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]
|
|
1
|
+
module.exports=[461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0tqqte5jb6jz7._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(614755)))},73710,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(b=>a.l(b))).then(()=>b(716983)))},871289,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1qrk2rfmx21b_._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(204048)))},522169,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(b=>a.l(b))).then(()=>b(615089)))},372153,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js"].map(b=>a.l(b))).then(()=>b(765161)))},517930,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_1b1yd_ne2dpeh._.js"].map(b=>a.l(b))).then(()=>b(995517)))},636029,a=>{a.v(a=>Promise.resolve().then(()=>a(904370)))},828215,a=>{"use strict";a.s(["f",0,function(a,b="/"){if(!a||!a.startsWith("/")||a.startsWith("//")||a.startsWith("/\\"))return b;try{let c=new URL(a,"http://console.local");if("http://console.local"!==c.origin)return b;let d=c.pathname+c.search;if(d.startsWith("//")||d.startsWith("/\\"))return b;return d}catch{return b}}])}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=src_14ulgwoxoyfkq._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[[414280,a=>{var b=a.i(907997),c=a.i(863858);a.s(["f",0,function({href:a,children:d,className:e,...f}){return(0,c.f)()?(0,b.jsx)("a",{href:a,className:e,...f,children:d}):(0,b.jsx)("span",{className:e,children:d})}])},678831,a=>{var b=a.i(118558),c=a.i(371289);function d(a,b){if((0,c.r)())for(let c of new Set(a))try{b(c)}catch(a){console.warn(`cache: couldn't expire ${c}: ${a instanceof Error?a.message.slice(0,120):"unknown"}`)}}a.s(["D",0,function(a){d(a,a=>(0,b.revalidateTag)(a,{expire:0}))},"J",0,function(a){d(a,a=>(0,b.updateTag)(a))}])},50908,a=>{var b=a.i(93321),c=a.i(548734),d=a.i(837137),e=a.i(20060);async function f(){let[a]=await (0,c.f)().select({value:d.settings.value}).from(d.settings).where((0,b.u)(d.settings.key,e.o)).limit(1);return a?(0,e.m)(a.value):null}async function g(a,b,h,i=process.env){if((0,e.s)(i).off)return;let j=b-Date.now();if(j<1e3)throw Error("skipped, time budget used");let k=await (0,e.i)({timeoutMs:Math.min(e.Y,j)}),l=await f();k.indexError&&h.push(`node: ${k.indexError}`),k.cyclesError&&h.push(`node: ${k.cyclesError}`);let m=(0,e.T)(l,k,a);await (0,c.f)().insert(d.settings).values({key:e.o,value:m}).onConflictDoUpdate({target:d.settings.key,set:{value:m,updatedAt:a}})}a.s(["i",0,f,"q",0,g])},863858,a=>{var b=a.i(371289);a.s(["f",0,function(a=process.env){return!(0,b.W)(a)}])}],461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0xscr-8y9a4cj._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(614755)))},73710,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(b=>a.l(b))).then(()=>b(716983)))},871289,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1uzqsxyxwffdo._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(204048)))},734864,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_09ht4doed9eqi._.js"].map(b=>a.l(b))).then(()=>b(579739)))},522169,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(b=>a.l(b))).then(()=>b(615089)))},372153,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js"].map(b=>a.l(b))).then(()=>b(765161)))},414785,a=>{a.v(a=>Promise.resolve().then(()=>a(534908)))},801116,a=>{a.v(a=>Promise.resolve().then(()=>a(624065)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_1bg_io_v7gt71._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[390124,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[390124,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("402699ddc65c316316409e4a74a6581c0ad1ee2f03",g.callServer,void 0,g.findSourceMapURL,"updateMonitorDomain");a.s(["DomainMoved",0,function({monitorId:a,from:g,to:i,canAct:j}){let[k,l]=(0,c.useTransition)();return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,b.jsxs)("span",{children:["Domain changed: ",(0,b.jsx)(e.MaskedText,{text:g})," → ",(0,b.jsx)(e.MaskedText,{text:i}),j?", update monitor?":""]}),j&&(0,b.jsx)(f.K,{size:"sm",disabled:k,onClick:()=>l(async()=>{try{let b=await h(a);b.ok?d.c.success(b.message??"Monitor updated."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:k?"Updating…":"Update monitor"})]})}],390124)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},941881,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_1q-jgpnd3lbcu._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[749348,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(188406),j=a.i(814574),k=a.i(405050);let l=(0,k.createServerReference)("40726a0f9a26441acbfac941fca96c872cffc41e91",k.callServer,void 0,k.findSourceMapURL,"forgetAgentAction"),m=(0,k.createServerReference)("609d96688571c4b15dbf2c5ca1ea7134cf17d77a71",k.callServer,void 0,k.findSourceMapURL,"renameAgentAction");function n({id:a,current:c,detected:f,onDone:h}){let[i,k]=(0,d.useState)(c===f?"":c),[l,o]=(0,d.useState)(""),[p,q]=(0,d.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),q(async()=>{o("");try{let b=await m(a,i);b.ok?(e.c.success(b.message??"Agent renamed."),h()):o(b.fieldErrors?.name??b.error)}catch{o("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Rename ",f]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Only changes what this page shows. Leave it empty to use the detected name again."})]}),(0,b.jsx)("div",{className:"px-[18px] pt-1.5",children:(0,b.jsx)(g.O,{id:"agent-name",label:"Name",error:l,children:(0,b.jsx)("input",{id:"agent-name",value:i,onChange:a=>k(a.target.value),placeholder:f,autoComplete:"off",spellCheck:!1,className:g.S})})}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:h,disabled:p,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save name"})]})]})}a.s(["AgentActions",0,function({id:a,name:e,clientName:g,keyRevoked:k}){let m=(0,c.useRouter)(),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(o),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.RowMenu,{label:`Actions for ${e}`,items:[...k?[]:[{label:"Rename",onSelect:()=>p(!0)}],{label:"Show logs",onSelect:()=>m.push(`/ai/logs?agent=${encodeURIComponent(a)}`)},"---",{label:"Forget",danger:!0,onSelect:()=>r(!0)}]}),(0,b.jsx)(j.N,{open:o,onOpenChange:p,children:(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:o&&(0,b.jsx)(n,{id:a,current:e,detected:g,onDone:()=>p(!1)})})}),(0,b.jsx)(f.f,{open:q,onOpenChange:r,title:`Forget ${e}?`,body:"Removes it from this list. Its calls stay in the logs for 30 days. It appears again with its next request.",cta:"Forget agent",danger:!0,onConfirm:async()=>{let b=await l(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],749348)},107778,a=>{var b=a.i(50944),c=a.i(572131),d=a.i(507504);a.s(["AgentsRefresh",0,function(){let a=(0,b.useRouter)(),[e,f]=(0,c.useTransition)(),g=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{g.current=e},[e]),(0,c.useEffect)(()=>{let b=()=>{if(!g.current){var b;(b={visible:"visible"===document.visibilityState,online:!1!==navigator.onLine,held:(0,d.holdCount)()>0}).visible&&b.online&&!b.held&&f(()=>a.refresh())}},c=setInterval(b,15e3);return document.addEventListener("visibilitychange",b),()=>{clearInterval(c),document.removeEventListener("visibilitychange",b)}},[a]),null}],107778)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_agents_1fyhh1ldgm23z._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(
|
|
1
|
+
module.exports=[352771,a=>{"use strict";var b=a.i(187924),c=a.i(282269),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(225750),j=a.i(700629);a.s(["AskForm",0,function({models:a=[],defaultLabel:k="your provider"}){let[l,m]=(0,d.useState)(""),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useTransition)(),t=()=>{l.trim()&&!r&&(q(null),s(async()=>{try{let a=await (0,i.f)(l,n||null);a.ok?(m(""),e.c.success(a.message??"Sent.")):q(a.error)}catch{q("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),t()},children:[(0,b.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,b.jsx)("textarea",{id:"ask-in",className:(0,h.f)(f.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:l,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!p||void 0,onChange:a=>m(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),t())}}),p&&(0,b.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:p}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,b.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:r?(0,b.jsx)(j.f,{}):g.I.hint}),(0,b.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[l.length," / ",2e3]}),a.length>0&&(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Model"}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:n,onChange:a=>o(a.target.value),disabled:r,children:[(0,b.jsxs)("option",{value:"",children:["Default (",k,")"]}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,b.jsxs)(f.K,{type:"submit",variant:"primary",disabled:r||!l.trim(),children:[(0,b.jsx)(c.f,{size:16,"aria-hidden":!0}),r?"Asking…":"Send"]})]})]})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("
|
|
1
|
+
module.exports=[815287,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(449862).f)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("40b3a8237fcc051e2d887b3e3bc64cd93f7fb6d2e4",g.callServer,void 0,g.findSourceMapURL,"exportLogsCsv");a.s(["ExportButton",0,function({params:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{onClick:()=>i(async()=>{try{let b=await h(a);if(!b.ok||!b.data)return void e.c.error(b.ok?"Nothing to export.":b.error);let c=URL.createObjectURL(new Blob(["\uFEFF",b.data.csv],{type:"text/csv;charset=utf-8"})),d=document.createElement("a");d.href=c,d.download=`watchbell-ai-logs-${new Date().toISOString().slice(0,10)}.csv`,document.body.append(d),d.click(),d.remove(),URL.revokeObjectURL(c),e.c.success(b.message??"Exported.")}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:g,children:[(0,b.jsx)(c,{size:16,"aria-hidden":!0}),g?"Exporting...":"Export CSV"]})}],815287)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_logs_export-button_tsx_1k-crb88n1za_._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[127306,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(368114),h=a.i(271288),i=a.i(700629),j=a.i(405050);let k=(0,j.createServerReference)("00eb227220d82d61e85b5d9ec05ca6a6594e879689",j.callServer,void 0,j.findSourceMapURL,"runAdvisorNowAction"),l=(0,j.createServerReference)("60109154e9bbb670963a19519c8c45513bfbf2b223",j.callServer,void 0,j.findSourceMapURL,"setAdvisorNotesAction");a.s(["AdvisorNotesControls",0,function({enabled:a,model:j,models:m,defaultLabel:n}){let[o,p]=(0,d.useState)(a),[q,r]=(0,d.useState)(j??""),[s,t]=(0,d.useTransition)(),[u,v]=(0,d.useTransition)(),w=(b,c)=>t(async()=>{try{let d=await l(b,c||null);d.ok?e.c.success(d.message??"Saved."):(p(a),r(j??""),e.c.error(d.error))}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}});return(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.f,{checked:o,disabled:s,label:"Advisor notes",onChange:a=>{p(a),w(a,q)}}),(0,b.jsxs)("span",{className:"text-[13px]",children:["Advisor notes ",o?"on":"off"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)("span",{className:"sr-only",children:"Advisor model"}),(0,b.jsxs)("select",{className:(0,g.f)(f.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:q,disabled:s,onChange:a=>{r(a.target.value),w(o,a.target.value)},children:[(0,b.jsxs)("option",{value:"",children:["Default (",n,")"]}),m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),(0,b.jsxs)(f.K,{size:"sm",disabled:u,onClick:()=>v(async()=>{try{let a=await k();a.ok?e.c.success(a.message??"Done."):e.c.error(a.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),u?"Writing…":"Run now"]}),u&&(0,b.jsx)(i.f,{})]})}],127306)},785149,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("60408d7fe309e69adfc8e186be307ecde7e787517e",g.callServer,void 0,g.findSourceMapURL,"addManualModel"),i=(0,g.createServerReference)("60183f97bf4ffc829dd489de3a8170ec212d33a765",g.callServer,void 0,g.findSourceMapURL,"removeManualModel");a.s(["AddModelIdForm",0,function({providerId:a,providerName:e}){let g=(0,c.useId)(),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("form",{className:"flex flex-col gap-1.5",onSubmit:b=>{b.preventDefault();let c=i.trim();c&&l(async()=>{try{let b=await h(a,c);b.ok?(d.c.success(b.message??"Added."),j("")):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,b.jsxs)("label",{htmlFor:g,className:"text-[13px] font-medium",children:["Add model id · ",e]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("input",{id:g,name:"modelId",value:i,onChange:a=>j(a.target.value),maxLength:120,autoComplete:"off",spellCheck:!1,placeholder:"model id","aria-describedby":`${g}-hint`,disabled:k,className:`${f.S} min-w-0 flex-1 font-mono text-[13px] sm:max-w-[320px]`}),(0,b.jsx)(f.K,{size:"sm",type:"submit",disabled:k||""===i.trim(),children:k?"Testing…":"Add"})]}),(0,b.jsx)("p",{id:`${g}-hint`,className:"m-0 text-[12.5px] text-ink-faint",children:"For ids the server doesn't list (for example a combo). Watchbell tests it once before saving."})]})},"RemoveManualModelButton",0,function({providerId:a,modelId:c,publicId:d}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",variant:"ghost",children:"Remove"}),title:`Remove ${d}?`,body:"Watchbell stops offering this model id. Calls for it answer 400 model_not_enabled. Nothing changes on your server.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a,c);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})}],785149)},391737,a=>{var b=a.i(187924),c=a.i(402699),d=a.i(908161);let e=(0,a.i(449862).f)("outline","radar","Radar",[["path",{d:"M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9",key:"svg-0"}],["path",{d:"M16 9a5 5 0 1 0 -7 7",key:"svg-1"}],["path",{d:"M20.486 9a9 9 0 1 0 -11.482 11.495",key:"svg-2"}]]);var f=a.i(147909),g=a.i(572131),h=a.i(823292),i=a.i(619089),j=a.i(271288),k=a.i(405050);let l=(0,k.createServerReference)("408fe2e0e1c803bb0b9dd82ed3a53707245a974928",k.callServer,void 0,k.findSourceMapURL,"makeDefaultModel"),m=(0,k.createServerReference)("002bd56570f5afa6609f592376078c64f1f02c4f56",k.callServer,void 0,k.findSourceMapURL,"refreshAllModels"),n=(0,k.createServerReference)("4091810355231db760deafdcfe281b29e41663f1cb",k.callServer,void 0,k.findSourceMapURL,"scanModelsAction"),o=(0,k.createServerReference)("00d30c3aa3cc77af7e3d74b02978d2cf033a51342a",k.callServer,void 0,k.findSourceMapURL,"syncModelsNowAction"),p=(0,k.createServerReference)("60482404cf83c4ffee83ed39ba70d0beecfac7a0e3",k.callServer,void 0,k.findSourceMapURL,"testModelAction"),q=(0,k.createServerReference)("706b1e2c1aa83d9f819d5434ed1a2dbf2d3daf7b09",k.callServer,void 0,k.findSourceMapURL,"toggleModel");a.s(["MakeDefaultButton",0,function({publicId:a}){let[c,d]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost",disabled:c,onClick:()=>d(async()=>{try{let b=await l(a);b.ok?h.c.success(b.message??"Saved."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:"Make default"})},"ModelSwitch",0,function({providerId:a,modelId:c,publicId:d,enabled:e,disabled:f}){let[i,k]=(0,g.useState)(e),[l,m]=(0,g.useTransition)(),[n,o]=(0,g.useState)(e);return n!==e&&(o(e),k(e)),(0,b.jsx)(j.f,{checked:i,disabled:f||l,label:`Model ${d}`,onChange:b=>{k(b),m(async()=>{try{let d=await q(a,c,b);d.ok?h.c.success(d.message??"Saved."):(k(!b),h.c.error(d.error))}catch{k(!b),h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}})},"RefreshModelsButton",0,function(){let[a,c]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{disabled:a,onClick:()=>c(async()=>{try{let a=await m();a.ok?h.c.success(a.message??"Refreshed."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),a?"Refreshing...":"Refresh models"]})},"ScanAllButton",0,function({providerId:a,name:d}){let[f,j]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:f,onClick:()=>j(async()=>{try{let b=await n(a);b.ok?h.c.success(b.message??"Scanned."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[f?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(e,{size:15,"aria-hidden":!0}),f?`Scanning ${d}…`:`Scan all \xb7 ${d}`]})},"SyncNowButton",0,function(){let[a,d]=(0,g.useTransition)();return(0,b.jsxs)(i.K,{size:"sm",disabled:a,onClick:()=>d(async()=>{try{let a=await o();a.ok?h.c.success(a.message??"Synced."):h.c.error(a.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[a?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(f.f,{size:15,"aria-hidden":!0}),a?"Syncing…":"Sync now"]})},"TestModelButton",0,function({providerId:a,modelId:e,publicId:f}){let[j,k]=(0,g.useTransition)();return(0,b.jsx)(i.K,{size:"sm",variant:"ghost","aria-label":`Test ${f}`,title:`Test ${f}`,disabled:j,onClick:()=>k(async()=>{try{let b=await p(a,e);b.ok?h.c.success(b.message??"Works."):h.c.error(b.error)}catch{h.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:j?(0,b.jsx)(c.f,{size:15,className:"animate-spin","aria-hidden":!0}):(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})}],391737)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_models_0ayzqn062pnv5._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(
|
|
1
|
+
module.exports=[274974,a=>{"use strict";var b=a.i(187924),c=a.i(402699),d=a.i(282269),e=a.i(572131),f=a.i(619089),g=a.i(901615),h=a.i(368114),i=a.i(225750),j=a.i(405050);let k=(0,j.createServerReference)("40584cbe33c99b40d44a45839c07e58d66cb070813",j.callServer,void 0,j.findSourceMapURL,"questionStatus");var l=a.i(295914);a.i(147474);let m=g.T.hint,n=(a,b)=>{let c=a.replace(/\s+/g," ").trim();return c.length>b?`${c.slice(0,b-1)}…`:c},o=(0,j.createServerReference)("40d78d1d1061eaaee75e42d25cc7dfde3348aba4e5",j.callServer,void 0,j.findSourceMapURL,"playgroundSend");a.s(["PlaygroundView",0,function({models:a,defaultModel:j}){let[p,q]=(0,e.useState)(a.some(a=>a.id===j)?j:a[0]?.id??""),[r,s]=(0,e.useState)("plain"),[t,u]=(0,e.useState)("0.4"),[v,w]=(0,e.useState)("1024"),[x,y]=(0,e.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)([]),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(0),[J,K]=(0,e.useTransition)(),L=(0,e.useRef)(null),M="antigravity"===(a.find(a=>a.id===p)?.via??"provider"),N=J||null!==F,O=a.filter(a=>"provider"===a.via),P=a.filter(a=>"antigravity"===a.via);(0,e.useEffect)(()=>{L.current?.scrollTo({top:L.current.scrollHeight})},[B,J,F]),(0,e.useEffect)(()=>{if(!F)return;let a=!1,b=!1,c=b=>{!a&&(G(null),b&&E(b))},d=setInterval(()=>I(Date.now()),1e3),e=setInterval(async()=>{if(!b&&!a){if(Date.now()-F.startedAt>6e5)return c(g.T.giveUp);b=!0;try{let b=await k(F.id);if(a)return;if(!b.ok)return c(b.error);let d=b.data;if(d?.status==="answered"){let a=Math.max(1,Math.round((Date.now()-F.startedAt)/1e3));C(b=>[...b,{role:"assistant",content:d.answer?.trim()||g.T.emptyAnswer,md:!0,meta:g.T.answerMeta(d.model??F.model,a)}]),c(null)}else d?.status==="expired"&&c(g.T.expired)}catch{}finally{b=!1}}},3e3);return()=>{a=!0,clearInterval(d),clearInterval(e)}},[F]);let Q=()=>{let a=z.trim();if(!a||N||!p)return;let b=[...B,{role:"user",content:a}];if(C(b),A(""),E(null),M){let b;b=function(a,b,c=2e3){let d=b.trim(),e=a.slice(-4).map(a=>`Q: ${n(a.q,300)}
|
|
2
2
|
A: ${n(a.a,600)}`);for(;e.length>0;){let a=`Earlier in this chat:
|
|
3
3
|
${e.join("\n")}
|
|
4
4
|
|
package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[492768,a=>{var b=a.i(187924),c=a.i(335371),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(188406),i=a.i(405050);let j=(0,i.createServerReference)("404095c00162f635aba9a175585f9a199642e91fb6",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("4062ac90df61fb5fc971fad9c124c2585849aa2bae",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("604afb59a110e1dad1ab048382c788ae6f4e119282",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("40801e6978dba3a6b5fc710afcd823bfe7a8e4965a",i.callServer,void 0,i.findSourceMapURL,"testProvider");function n(a){a.ok?e.c.success(a.message??"Done."):e.c.error(a.error??"Something went wrong.")}a.s(["DefaultProviderSelect",0,function({options:a,current:c}){let[e,f]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c??"");return 0===a.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,b.jsxs)("select",{"aria-label":"Default provider",className:`${g.S} w-auto`,value:h,disabled:e,onChange:a=>{let b=a.target.value;i(b),b&&f(async()=>n(await j(b)))},children:[!c&&(0,b.jsx)("option",{value:"",children:"None yet"}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})},"EnabledSwitch",0,function({id:a,on:c,name:e}){let[f,g]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c);return(0,b.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${e}: ${h?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:h,disabled:f,"aria-label":`${e} enabled`,onChange:b=>{let c=b.target.checked;i(c),g(async()=>{let b=await l(a,c);b.ok||i(!c),n(b)})}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:a,name:c,isDefault:e}){let[g,i]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{label:`Actions for ${c}`,items:[...e?[]:[{label:"Make default",onSelect:async()=>n(await j(a))},"---"],{label:"Remove",danger:!0,onSelect:()=>i(!0)}]}),(0,b.jsx)(f.f,{open:g,onOpenChange:i,title:`Remove ${c}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await k(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"TestProviderButton",0,function({id:a}){let[e,f]=(0,d.useTransition)();return(0,b.jsxs)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>n(await m(a))),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),e?"Testing…":"Test"]})}],492768)},36105,a=>{var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(814574),h=a.i(405050);let i=(0,h.createServerReference)("60fe0f89cd4d0c8498faf0c81ce69da20b8d6c9ac0",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("60a44bc6bf022940a7e5e84a7454e58870ce1b2d17",h.callServer,void 0,h.findSourceMapURL,"replaceProviderKey");var k=a.i(901615);let l={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:a=>`https://api.cloudflare.com/client/v4/accounts/${a.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:a=>(a.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};k.X.localUrl;var m=a.i(449862);let n=(0,m.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var o=a.i(786581);let p=(0,m.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),q={gemini:n,cloudflare:o.f,custom:p},r={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};a.s(["ProviderDialog",0,function({kind:a,replace:h,primary:m,label:n,selfhost:o=!1}){let p=l[a],s=q[a],[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useTransition)(),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),[D,E]=(0,d.useState)(h?.baseUrl??""),[F,G]=(0,d.useState)(!1),[H,I]=(0,d.useState)({}),[J,K]=(0,d.useState)(null),[L,M]=(0,d.useState)(null);function N(a){u(a),a||(M(null),y(""),A(""),C(""),E(h?.baseUrl??""),G(!1),I({}),K(null))}let O=h?`Replace key \xb7 ${h.name}`:`Connect ${p.name}`;return(0,b.jsxs)(g.N,{open:t,onOpenChange:N,children:[(0,b.jsx)(g.a,{className:(0,f.R)({size:"sm",variant:m?"primary":"secondary"}),children:n??(h?"Replace":"Connect")}),(0,b.jsxs)(g.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(s,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(g.F,{className:"text-base",children:O}),(0,b.jsxs)(g.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[p.keyLabel,"cloudflare"===a?" and account ID":""]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[p.where.url&&(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsxs)("a",{href:p.where.url,target:"_blank",rel:"noopener noreferrer",children:[p.where.url.replace("https://","")," ",(0,b.jsx)(c.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),p.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===a&&!h&&(0,b.jsx)(f.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:H.name,children:(0,b.jsx)("input",{id:"p-name",value:B,onChange:a=>C(a.target.value),placeholder:"my-llm",className:f.S,autoComplete:"off"})}),"custom"===a?(0,b.jsx)(f.O,{id:"p-base",label:"Base URL",help:o?k.X.baseUrlHelp.selfhost:k.X.baseUrlHelp.cloud,error:H.baseUrl,children:(0,b.jsx)("input",{id:"p-base",value:D,onChange:a=>E(a.target.value),placeholder:"https://example.com/v1",className:`${f.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,b.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===a?p.baseUrl({apiKey:"",accountId:"{account_id}"}):p.baseUrl({apiKey:""})})]}),"cloudflare"===a&&(0,b.jsx)(f.O,{id:"p-acct",label:"Account ID",error:H.accountId,children:(0,b.jsx)("input",{id:"p-acct",value:z,onChange:a=>A(a.target.value),placeholder:"32 hex characters",className:`${f.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,b.jsx)(f.O,{id:"p-key",label:p.keyLabel,help:"custom"===a&&o?k.X.keyHelp.selfhostCustom:k.X.keyHelp.cloud,error:H.apiKey,children:(0,b.jsx)("input",{id:"p-key",type:"password",value:x,onChange:a=>y(a.target.value),placeholder:r[a],className:`${f.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!h&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:F,onChange:a=>G(a.target.checked)})," Make this the default provider"]}),J&&(0,b.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:J}),L&&(0,b.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,b.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",L.length," model",1===L.length?"":"s",":"]}),(0,b.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:L.map(a=>(0,b.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:a},a))}),(0,b.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:L?(0,b.jsx)(f.K,{variant:"primary",onClick:()=>N(!1),children:"Done"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.K,{onClick:()=>N(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{variant:"primary",onClick:function(){w(async()=>{let b={apiKey:x,..."cloudflare"===a?{accountId:z}:{},..."custom"===a?{baseUrl:D,...h?{}:{name:B}}:{},makeDefault:F},c=h?await j(h.id,b):await i(a,b);if(I(c.ok?{}:c.fieldErrors??{}),K(c.ok||c.fieldErrors?null:c.error),c.ok){e.c.success(c.message??`${p.name} connected.`);let b=c.data?.models??[];"custom"===a&&b.length?M(b):N(!1)}})},disabled:v,children:v?"Testing…":h?"Test and replace":"Test and connect"})]})})]})]})}],36105)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[492768,a=>{var b=a.i(187924),c=a.i(335371),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(188406),i=a.i(405050);let j=(0,i.createServerReference)("40661896ffd489fce1c0e5b7b7b66adccb0dcb3e96",i.callServer,void 0,i.findSourceMapURL,"makeDefaultProvider"),k=(0,i.createServerReference)("402f8e63c2bacd0927432b019f7a300b20f2bdd54a",i.callServer,void 0,i.findSourceMapURL,"removeProvider"),l=(0,i.createServerReference)("60eedc1b79353a4c18e7b4583389df1b8aa0b0f1db",i.callServer,void 0,i.findSourceMapURL,"setProviderEnabled"),m=(0,i.createServerReference)("4030f0bda9064c3c87028f8a365e392cf7cd949165",i.callServer,void 0,i.findSourceMapURL,"testProvider");function n(a){a.ok?e.c.success(a.message??"Done."):e.c.error(a.error??"Something went wrong.")}a.s(["DefaultProviderSelect",0,function({options:a,current:c}){let[e,f]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c??"");return 0===a.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"No provider connected"}):(0,b.jsxs)("select",{"aria-label":"Default provider",className:`${g.S} w-auto`,value:h,disabled:e,onChange:a=>{let b=a.target.value;i(b),b&&f(async()=>n(await j(b)))},children:[!c&&(0,b.jsx)("option",{value:"",children:"None yet"}),a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})},"EnabledSwitch",0,function({id:a,on:c,name:e}){let[f,g]=(0,d.useTransition)(),[h,i]=(0,d.useState)(c);return(0,b.jsxs)("label",{className:"relative inline-flex cursor-pointer items-center",title:`${e}: ${h?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:h,disabled:f,"aria-label":`${e} enabled`,onChange:b=>{let c=b.target.checked;i(c),g(async()=>{let b=await l(a,c);b.ok||i(!c),n(b)})}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]})},"ProviderMenu",0,function({id:a,name:c,isDefault:e}){let[g,i]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{label:`Actions for ${c}`,items:[...e?[]:[{label:"Make default",onSelect:async()=>n(await j(a))},"---"],{label:"Remove",danger:!0,onSelect:()=>i(!0)}]}),(0,b.jsx)(f.f,{open:g,onOpenChange:i,title:`Remove ${c}?`,body:"Its encrypted key is deleted. Calls for its models answer 503 until you connect a provider again. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await k(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"TestProviderButton",0,function({id:a}){let[e,f]=(0,d.useTransition)();return(0,b.jsxs)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>n(await m(a))),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0}),e?"Testing…":"Test"]})}],492768)},36105,a=>{var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(814574),h=a.i(405050);let i=(0,h.createServerReference)("60c204c3e0eed17c0703b5924dbddded8ce6846a1f",h.callServer,void 0,h.findSourceMapURL,"connectProvider"),j=(0,h.createServerReference)("60178f95e56fc4ce26360ddffd664131c848e0bd3c",h.callServer,void 0,h.findSourceMapURL,"replaceProviderKey");var k=a.i(901615);let l={gemini:{name:"Google Gemini",baseUrl:()=>"https://generativelanguage.googleapis.com/v1beta/openai",secretFields:["apiKey"],modelsPath:"/models",listModels:"gemini-native",quotaFrom:"own",auth:"x-goog-api-key",streamUsage:!0,advanced:!1,keyLabel:"AI Studio API key",where:{url:"https://aistudio.google.com/apikey",text:"Create a key (it starts with AQ. or AIza). If Google says the project is restricted or denied, use a key from another Google project or account."}},cloudflare:{name:"Cloudflare Workers AI",baseUrl:a=>`https://api.cloudflare.com/client/v4/accounts/${a.accountId??""}/ai/v1`,secretFields:["accountId","apiKey"],modelsPath:"/models/search",listModels:"cloudflare-search",quotaFrom:"own",auth:"bearer",streamUsage:!0,advanced:!1,keyLabel:"API token",where:{url:"https://dash.cloudflare.com/profile/api-tokens",text:"Create a token with Workers AI: Read. The account ID is on the Workers AI page. Only Google's Gemma models are offered."}},custom:{name:"Custom OpenAI-compatible",baseUrl:a=>(a.baseUrl??"").replace(/\/+$/,""),secretFields:["baseUrl","apiKey"],modelsPath:"/models",listModels:"openai",quotaFrom:"headers",auth:"bearer",streamUsage:!0,advanced:!0,keyLabel:"API key",where:{url:null,text:"Any HTTPS server that speaks the OpenAI chat completions API and answers GET /models. Every model the server lists is offered; switch any off on Models."}}};k.X.localUrl;var m=a.i(449862);let n=(0,m.f)("outline","brand-google","BrandGoogle",[["path",{d:"M20.945 11a9 9 0 1 1 -3.284 -5.997l-2.655 2.392a5.5 5.5 0 1 0 2.119 6.605h-4.125v-3h7.945",key:"svg-0"}]]);var o=a.i(786581);let p=(0,m.f)("outline","plug","Plug",[["path",{d:"M9.785 6l8.215 8.215l-2.054 2.054a5.81 5.81 0 1 1 -8.215 -8.215l2.054 -2.054",key:"svg-0"}],["path",{d:"M4 20l3.5 -3.5",key:"svg-1"}],["path",{d:"M15 4l-3.5 3.5",key:"svg-2"}],["path",{d:"M20 9l-3.5 3.5",key:"svg-3"}]]),q={gemini:n,cloudflare:o.f,custom:p},r={gemini:"AQ.… or AIza…",cloudflare:"Paste the API token",custom:"Paste the API key"};a.s(["ProviderDialog",0,function({kind:a,replace:h,primary:m,label:n,selfhost:o=!1}){let p=l[a],s=q[a],[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useTransition)(),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),[D,E]=(0,d.useState)(h?.baseUrl??""),[F,G]=(0,d.useState)(!1),[H,I]=(0,d.useState)({}),[J,K]=(0,d.useState)(null),[L,M]=(0,d.useState)(null);function N(a){u(a),a||(M(null),y(""),A(""),C(""),E(h?.baseUrl??""),G(!1),I({}),K(null))}let O=h?`Replace key \xb7 ${h.name}`:`Connect ${p.name}`;return(0,b.jsxs)(g.N,{open:t,onOpenChange:N,children:[(0,b.jsx)(g.a,{className:(0,f.R)({size:"sm",variant:m?"primary":"secondary"}),children:n??(h?"Replace":"Connect")}),(0,b.jsxs)(g.d,{className:"max-w-[560px] gap-0 p-0 sm:max-w-[560px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(s,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(g.F,{className:"text-base",children:O}),(0,b.jsxs)(g.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[p.keyLabel,"cloudflare"===a?" and account ID":""]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[p.where.url&&(0,b.jsxs)(b.Fragment,{children:["Open ",(0,b.jsxs)("a",{href:p.where.url,target:"_blank",rel:"noopener noreferrer",children:[p.where.url.replace("https://","")," ",(0,b.jsx)(c.f,{size:12,className:"inline","aria-hidden":!0})]}),". "]}),p.where.text," Watchbell lists the models and makes one tiny generation call before saving."]}),"custom"===a&&!h&&(0,b.jsx)(f.O,{id:"p-name",label:"Name",help:"Used in model ids: name/model.",error:H.name,children:(0,b.jsx)("input",{id:"p-name",value:B,onChange:a=>C(a.target.value),placeholder:"my-llm",className:f.S,autoComplete:"off"})}),"custom"===a?(0,b.jsx)(f.O,{id:"p-base",label:"Base URL",help:o?k.X.baseUrlHelp.selfhost:k.X.baseUrlHelp.cloud,error:H.baseUrl,children:(0,b.jsx)("input",{id:"p-base",value:D,onChange:a=>E(a.target.value),placeholder:"https://example.com/v1",className:`${f.S} font-mono text-[12.5px]`,autoComplete:"off"})}):(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("span",{className:"text-[13px] font-medium",children:"Base URL"}),(0,b.jsx)("span",{className:"break-all font-mono text-[12.5px] text-ink-faint",children:"cloudflare"===a?p.baseUrl({apiKey:"",accountId:"{account_id}"}):p.baseUrl({apiKey:""})})]}),"cloudflare"===a&&(0,b.jsx)(f.O,{id:"p-acct",label:"Account ID",error:H.accountId,children:(0,b.jsx)("input",{id:"p-acct",value:z,onChange:a=>A(a.target.value),placeholder:"32 hex characters",className:`${f.S} font-mono`,autoComplete:"off",spellCheck:!1})}),(0,b.jsx)(f.O,{id:"p-key",label:p.keyLabel,help:"custom"===a&&o?k.X.keyHelp.selfhostCustom:k.X.keyHelp.cloud,error:H.apiKey,children:(0,b.jsx)("input",{id:"p-key",type:"password",value:x,onChange:a=>y(a.target.value),placeholder:r[a],className:`${f.S} font-mono`,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,"data-gramm":"false"})}),!h&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:F,onChange:a=>G(a.target.checked)})," Make this the default provider"]}),J&&(0,b.jsx)("div",{className:"mb-3.5 rounded-lg bg-err-soft px-3 py-2.5 text-[13px]",role:"alert",children:J}),L&&(0,b.jsxs)("div",{className:"mb-3.5",role:"status",children:[(0,b.jsxs)("p",{className:"m-0 mb-1.5 text-[13px] font-medium",children:["Found ",L.length," model",1===L.length?"":"s",":"]}),(0,b.jsx)("ul",{className:"m-0 flex max-h-40 list-none flex-wrap gap-1.5 overflow-y-auto p-0",children:L.map(a=>(0,b.jsx)("li",{className:"rounded border border-line bg-surface-2 px-1.5 font-mono text-[12px]",children:a},a))}),(0,b.jsx)("p",{className:"m-0 mt-1.5 text-[12.5px] text-ink-faint",children:"Use Scan all under Models to see which of them really answer."})]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:L?(0,b.jsx)(f.K,{variant:"primary",onClick:()=>N(!1),children:"Done"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.K,{onClick:()=>N(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{variant:"primary",onClick:function(){w(async()=>{let b={apiKey:x,..."cloudflare"===a?{accountId:z}:{},..."custom"===a?{baseUrl:D,...h?{}:{name:B}}:{},makeDefault:F},c=h?await j(h.id,b):await i(a,b);if(I(c.ok?{}:c.fieldErrors??{}),K(c.ok||c.fieldErrors?null:c.error),c.ok){e.c.success(c.message??`${p.name} connected.`);let b=c.data?.models??[];"custom"===a&&b.length?M(b):N(!1)}})},disabled:v,children:v?"Testing…":h?"Test and replace":"Test and connect"})]})})]})]})}],36105)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_providers_1ru-30x6-uwu4._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[223538,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(851519),e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(507504),i=a.i(368114);let j=["requests","tokens"],k=["minute","day","week"];var l=a.i(405050);let m=(0,l.createServerReference)("
|
|
1
|
+
module.exports=[223538,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(851519),e=a.i(572131),f=a.i(823292),g=a.i(619089),h=a.i(507504),i=a.i(368114);let j=["requests","tokens"],k=["minute","day","week"];var l=a.i(405050);let m=(0,l.createServerReference)("608d18e5229ab144023a51722994fee39a00eccf38",l.callServer,void 0,l.findSourceMapURL,"saveLimits"),n={minute:"per minute",day:"per day",week:"per week"};function o({provider:a}){let[l,p]=(0,e.useState)(()=>a.limits.map(a=>({...a,limit:String(a.limit)}))),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useTransition)();(0,h.useHoldRefresh)(q);let w=(a,b)=>{p(c=>c.map((c,d)=>d===a?{...c,...b}:c)),r(!0),t(null)};return(0,b.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,b.jsx)("div",{className:"mb-1.5 text-[13px] font-medium",children:a.name}),0===l.length&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-ink-faint",children:"No limits entered. Add one to count calls against it."}),l.map((c,e)=>(0,b.jsxs)("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-x-2 gap-y-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} metric`,value:c.metric,onChange:a=>w(e,{metric:a.target.value}),children:j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-auto"),"aria-label":`${a.name} limit ${e+1} window`,value:c.window,onChange:a=>w(e,{window:a.target.value}),children:k.map(a=>(0,b.jsx)("option",{value:a,children:n[a]},a))}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[120px] font-mono"),inputMode:"numeric","aria-label":`${a.name} limit ${e+1} value`,value:c.limit,onChange:a=>w(e,{limit:a.target.value})}),(0,b.jsx)("input",{className:(0,i.f)(g.S,"w-[150px] font-mono"),"aria-label":`${a.name} limit ${e+1} model (all = every model)`,placeholder:"model, or all",value:c.scope,onChange:a=>w(e,{scope:a.target.value})})]}),(0,b.jsx)("button",{type:"button","aria-label":`Remove limit ${e+1}`,className:"rounded-md p-1.5 text-ink-faint hover:bg-hover hover:text-ink",onClick:()=>{p(a=>a.filter((a,b)=>b!==e)),r(!0),t(null)},children:(0,b.jsx)(d.f,{size:15,"aria-hidden":!0})})]},e)),s&&(0,b.jsx)("p",{className:"mb-2 text-[12.5px] text-err",role:"alert",children:s}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(g.K,{size:"sm",disabled:l.length>=10,onClick:()=>{p(a=>[...a,{metric:"requests",scope:"all",limit:"",window:"day"}]),r(!0)},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),"Add limit"]}),(0,b.jsx)(g.K,{size:"sm",variant:"primary",disabled:!q||u,onClick:()=>v(async()=>{try{let b=await m(a.id,l);b.ok?(f.c.success(b.message??"Limits saved."),r(!1),t(null)):t(b.error)}catch{t("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:u?"Saving...":"Save"})]})]})}a.s(["LimitsForm",0,function({providers:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)(o,{provider:a},a.id))})}],223538)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_quota_limits-form_tsx_1vouaaf560z_x._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[348021,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114);let g=[{key:"gemini5h",label:"Gemini · 5 h",family:"gemini",windowMs:18e6,window:"5 h"},{key:"geminiWeek",label:"Gemini · week",family:"gemini",windowMs:6048e5,window:"7 days"},{key:"claude5h",label:"Claude · 5 h",family:"claude",windowMs:18e6,window:"5 h"},{key:"claudeWeek",label:"Claude · week",family:"claude",windowMs:6048e5,window:"7 days"}];var h=a.i(405050);let i=(0,h.createServerReference)("
|
|
1
|
+
module.exports=[348021,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114);let g=[{key:"gemini5h",label:"Gemini · 5 h",family:"gemini",windowMs:18e6,window:"5 h"},{key:"geminiWeek",label:"Gemini · week",family:"gemini",windowMs:6048e5,window:"7 days"},{key:"claude5h",label:"Claude · 5 h",family:"claude",windowMs:18e6,window:"5 h"},{key:"claudeWeek",label:"Claude · week",family:"claude",windowMs:6048e5,window:"7 days"}];var h=a.i(405050);let i=(0,h.createServerReference)("40bd24b690c5bb75278d7a66cb139228b848e59a16",h.callServer,void 0,h.findSourceMapURL,"saveAgLimits");a.s(["LimitsForm",0,function({values:a}){let[h,j]=(0,c.useTransition)(),[k,l]=(0,c.useState)(!1);return k?(0,b.jsxs)("form",{className:"flex flex-col gap-2",action:a=>j(async()=>{try{let b=await i(a);b.ok?(d.c.success(b.message??"Saved."),l(!1)):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:[g.map(c=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"w-28 shrink-0 text-ink-soft",children:c.label}),(0,b.jsx)("input",{name:c.key,inputMode:"numeric",autoComplete:"off",placeholder:"No limit",defaultValue:a[c.key]??"",className:(0,f.f)(e.S,"min-w-0 flex-1 py-1 text-right font-mono text-[12.5px]"),"aria-label":`${c.label} limit in tokens`})]},c.key)),(0,b.jsx)("p",{className:"m-0 text-[12px] text-ink-faint",children:"Tokens per window: new input + output + thinking. Cached input isn't counted."}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(e.K,{size:"sm",variant:"primary",type:"submit",disabled:h,children:h?"Saving…":"Save"}),(0,b.jsx)(e.K,{size:"sm",type:"button",disabled:h,onClick:()=>l(!1),children:"Cancel"})]})]}):(0,b.jsx)(e.K,{size:"sm",onClick:()=>l(!0),children:"Edit limits"})}],348021)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(742680),k=a.i(
|
|
1
|
+
(()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(50944),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(742680),k=a.i(977274),l=a.i(405050);let m=(0,l.createServerReference)("409e2a24234ae02840f20c327ad5f5d7f515652a43",l.callServer,void 0,l.findSourceMapURL,"redeployCurrentAction");var n=a.i(752818);a.s(["AppMenu",0,function({app:a}){var l;let o,[,p]=(0,d.useTransition)(),q=(0,n.f)(),r=(0,c.useRouter)(),s=(0,f.useMask)(),t=(0,g.W)(),u=(o=[{label:"Redeploy",onSelect:(l={redeploy:()=>t.open({...(0,i.f)("Redeploy",s("app",a.name),""),run:()=>m(a.id)}),viewLogs:()=>{let b;return r.push((b=a.id,`/apps/${b}?tab=logs`))},togglePause:()=>q(()=>new Promise(b=>p(async()=>{try{let b=await (0,k.f)(a.id,!a.paused);b.ok?e.c.success(b.message??""):e.c.error(b.error)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{b()}})))}).redeploy},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[],{label:"View logs",onSelect:l.viewLogs}],a.monitorCount>0&&o.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:l.togglePause}),o);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{items:u,label:(0,j.J)(a.name)}),t.dialog]})}],217897)},977274,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("604a522837fc63c6921e8a0a9fda8f107e08313fee",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],977274);var d=a.i(572131);a.s(["f",0,function(){let a=(0,d.useRef)(!1);return b=>!a.current&&(a.current=!0,b().catch(()=>void 0).finally(()=>{a.current=!1}),!0)}],752818)}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=src_app_%28console%
|
|
3
|
+
//# sourceMappingURL=src_app_%28console%29_0e832kna-734m._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[
|
|
1
|
+
(()=>{"use strict";module.exports=[38954,867111,629968,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("608fd3226d92ebd148e568795bc072d2f7fa38bcbe",b.callServer,void 0,b.findSourceMapURL,"promoteAction");a.s(["f",0,c],38954);let d=(0,b.createServerReference)("6041a8078651633dfe1c48782277520e5a38c49d23",b.callServer,void 0,b.findSourceMapURL,"redeployAction");a.s(["f",0,d],867111);let e=(0,b.createServerReference)("602a6482a35cef410c7fae37b6e1957b7704f01fc1",b.callServer,void 0,b.findSourceMapURL,"rollbackAction");a.s(["f",0,e],629968)},762253,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(771378),e=a.i(619089),f=a.i(54901),g=a.i(188406),h=a.i(87674),i=a.i(742680),j=a.i(405050);let k=(0,j.createServerReference)("60b8c0a36189ebb7a67a81d5f511990136046372dc",j.callServer,void 0,j.findSourceMapURL,"cancelAction");var l=a.i(38954);let m=(0,j.createServerReference)("60e21467c9e8979c0d02b704ce917237fec113fa2f",j.callServer,void 0,j.findSourceMapURL,"promotePreviewAction");var n=a.i(867111),o=a.i(629968),p=a.i(728951),q=a.i(814574),r=a.i(507504);let s=/(\berror(?![-\w])|\bERR!|\bERR_[A-Z_]+|\bfailed\b|exited with (?:code )?[1-9]|Module not found|command not found)/i,t=/^\s*(?:npm |pnpm |yarn )?(?:warn|warning)\b|\b0 (?:errors?|failed)\b/i;function u(a){return"command"!==a.kind&&"delimiter"!==a.kind&&s.test(a.text)&&!t.test(a.text)}var v=a.i(368114);let w=(0,j.createServerReference)("60ce66327cd33d5774f652d9f4e84ab89305d44b3d",j.callServer,void 0,j.findSourceMapURL,"buildLogsAction"),x={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},y=a=>`build-line-${a}`;function z({log:a}){let c=a.lines.findIndex(u),d=a.lines.filter(u).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[a.lines.length," lines",a.truncated?` (the last ${2e3.toLocaleString("en-US")})`:""]}),c>=0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-err",children:[d," error line",1===d?"":"s"]}),(0,b.jsx)("button",{type:"button","data-line":y(c),className:"text-brand hover:underline",onClick:()=>document.getElementById(y(c))?.scrollIntoView({block:"center"}),children:"Jump to first error"})]}):(0,b.jsx)("span",{children:"No error lines"})]}),(0,b.jsx)("div",{tabIndex:0,"aria-label":"Build log lines",className:"min-h-0 flex-1 overflow-auto bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===a.lines.length?(0,b.jsx)("div",{className:"text-code-dim",children:"Vercel returned no build output for this deployment."}):a.lines.map((a,c)=>{let d=u(a);return(0,b.jsx)("div",{id:y(c),"data-error":d?"":void 0,className:(0,v.f)("whitespace-pre-wrap [overflow-wrap:anywhere]",d?"-mx-4 border-l-2 border-err bg-err/15 px-[14px] text-code-err":x[a.kind],"delimiter"===a.kind&&"mt-1.5 font-medium"),children:"command"===a.kind?`$ ${a.text}`:a.text||" "},c)})})]})}function A({appId:a,deploymentId:d,title:e,open:f,onOpenChange:g,read:h=w}){let[i,j]=(0,c.useState)(null);return(0,r.useHoldRefresh)(f),(0,c.useEffect)(()=>{if(!f)return;let b=!0;return h(a,d).then(a=>{b&&j(a.ok&&a.data?{log:a.data}:{error:a.ok?"No build log came back.":a.error})}).catch(()=>{b&&j({error:"Watchbell didn't answer. Check that it's still running, then try again."})}),()=>{b=!1,j(null)}},[f,a,d,h]),(0,b.jsx)(q.N,{open:f,onOpenChange:g,children:(0,b.jsxs)(q.d,{className:"top-0 right-0 left-auto flex h-dvh max-w-full translate-x-0 translate-y-0 flex-col gap-0 rounded-none p-0 sm:max-w-[780px]",children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,b.jsxs)(q.F,{className:"text-base",children:["Build log · ",e]}),(0,b.jsxs)(q.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Newest build, read from Vercel now",(0,b.jsx)(p.Src,{kind:"api"})]})]}),null===i?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in i?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:i.error}):(0,b.jsx)(z,{log:i.log})]})})}let B={label:"View build logs",kind:"logs"};a.s(["DeployRowActions",0,function({d:a,actions:j,logs:p}){var q;let r,s,t,u=(0,d.useMask)(),{open:v,dialog:w}=(0,f.W)(),[x,y]=(0,c.useState)(!1),z=a.sha?a.sha.slice(0,7):"",{visit:C,deployment:D}=(r=a.url?`https://${a.url}`:null,a.primaryDomain?{visit:`https://${a.primaryDomain}`,deployment:r}:{visit:r??"",deployment:null}),{buttons:E,menu:F}=(s=[...(q={actions:j,logs:p,visit:!!C&&a.visit}).visit&&"button"!==q.logs?[{label:"Visit",kind:"visit"}]:[],...q.actions.map(a=>({label:a,kind:"action",action:a})),..."button"===q.logs?[B]:[]],t="menu"===q.logs?[B]:[],s.length>2?{buttons:[],menu:[...s,...t]}:{buttons:s,menu:t}),G=b=>v({...(0,h.f)(b,u("app",a.appName),z),run:function(a,b,c){switch(a){case"Redeploy":return()=>(0,n.f)(b,c);case"Roll back to this":return()=>(0,o.f)(b,c);case"Promote":return()=>(0,l.f)(b,c);case"Cancel":return()=>k(b,c);case"Promote to production":return()=>m(b,c)}}(b,a.appId,a.externalId)});return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[E.map(a=>"visit"===a.kind?(0,b.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:(0,e.R)({size:"sm"}),children:"Visit"},a.label):"logs"===a.kind?(0,b.jsx)(e.K,{size:"sm",onClick:()=>y(!0),children:a.label},a.label):(0,b.jsx)(e.K,{size:"sm",onClick:()=>G(a.action),children:a.label},a.label)),D&&a.visit&&"button"!==p&&(0,b.jsx)("a",{href:D,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),F.length>0&&(0,b.jsx)(g.RowMenu,{label:(0,i.J)(u("app",a.appName),z||a.url||a.externalId),items:F.map(a=>"visit"===a.kind?{label:a.label,href:C}:"logs"===a.kind?{label:a.label,onSelect:()=>y(!0)}:{label:a.label,onSelect:()=>G(a.action)})}),w,p&&(0,b.jsx)(A,{appId:a.appId,deploymentId:a.externalId,title:`${u("app",a.appName)}${z?` ${z}`:""}`,open:x,onOpenChange:y})]})}],762253)}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=src_app_%28console%
|
|
3
|
+
//# sourceMappingURL=src_app_%28console%29_0kwns5iudhgwj._.js.map
|