9router-imagefix 0.5.129 → 0.5.131
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/README.md +19 -1
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +22 -5
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +24 -24
- package/app/.next-cli-build/react-loadable-manifest.json +6 -0
- package/app/.next-cli-build/required-server-files.json +4 -0
- package/app/.next-cli-build/routes-manifest.json +115 -4
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -44
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +14 -8
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +6 -6
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/connections/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/connections/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/device/poll/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/device/poll/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/device/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/device/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/export/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/gate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/gate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/generate-txt/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/generate-txt/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/import-lines/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/import-lines/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/jobs/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/jobs/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/jobs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/jobs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/overview/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/overview/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/run/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/run/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/automation/test-prompt/route.js +1 -1
- package/app/.next-cli-build/server/app/api/automation/test-prompt/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +47 -18
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -0
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +4 -0
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -0
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -0
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +8 -8
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +24 -9
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +16 -0
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -0
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +2 -0
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -0
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/combos/presets/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +4 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +42 -0
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/{v1/models/[kind] → oauth/zed/import}/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -0
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +8 -7
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -0
- package/app/.next-cli-build/server/app/api/{v1/models/[kind] → usage/[connectionId]/claude-reset}/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/backup/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/backup/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/v1/systemone/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/automation.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +19 -17
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +13 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +19 -17
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +14 -13
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +13 -10
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +14 -13
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -7
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +12 -10
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +22 -5
- package/app/.next-cli-build/server/chunks/1159.js +1 -1
- package/app/.next-cli-build/server/chunks/1679.js +1 -0
- package/app/.next-cli-build/server/chunks/1731.js +1 -1
- package/app/.next-cli-build/server/chunks/1998.js +1 -1
- package/app/.next-cli-build/server/chunks/2132.js +1 -0
- package/app/.next-cli-build/server/chunks/2220.js +1 -0
- package/app/.next-cli-build/server/chunks/2329.js +1 -0
- package/app/.next-cli-build/server/chunks/24.js +1 -1
- package/app/.next-cli-build/server/chunks/2626.js +2 -2
- package/app/.next-cli-build/server/chunks/2636.js +1 -1
- package/app/.next-cli-build/server/chunks/2668.js +1 -0
- package/app/.next-cli-build/server/chunks/{9528.js → 2750.js} +2 -3
- package/app/.next-cli-build/server/chunks/3225.js +1 -1
- package/app/.next-cli-build/server/chunks/3535.js +1 -1
- package/app/.next-cli-build/server/chunks/3546.js +1 -1
- package/app/.next-cli-build/server/chunks/3558.js +1 -1
- package/app/.next-cli-build/server/chunks/3662.js +1 -1
- package/app/.next-cli-build/server/chunks/3726.js +1 -1
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/3966.js +44 -0
- package/app/.next-cli-build/server/chunks/4037.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +5 -5
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4125.js +1 -1
- package/app/.next-cli-build/server/chunks/4152.js +1 -0
- package/app/.next-cli-build/server/chunks/{4023.js → 4485.js} +1 -1
- package/app/.next-cli-build/server/chunks/4663.js +1 -0
- package/app/.next-cli-build/server/chunks/4716.js +1 -0
- package/app/.next-cli-build/server/chunks/4882.js +1 -0
- package/app/.next-cli-build/server/chunks/4884.js +5 -5
- package/app/.next-cli-build/server/chunks/5081.js +3 -3
- package/app/.next-cli-build/server/chunks/5215.js +1 -0
- package/app/.next-cli-build/server/chunks/5245.js +1 -0
- package/app/.next-cli-build/server/chunks/5299.js +124 -0
- package/app/.next-cli-build/server/chunks/5330.js +229 -0
- package/app/.next-cli-build/server/chunks/5524.js +1 -0
- package/app/.next-cli-build/server/chunks/5615.js +21 -2
- package/app/.next-cli-build/server/chunks/5670.js +1 -0
- package/app/.next-cli-build/server/chunks/576.js +1 -1
- package/app/.next-cli-build/server/chunks/6070.js +1 -1
- package/app/.next-cli-build/server/chunks/6140.js +1 -0
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6249.js +9 -0
- package/app/.next-cli-build/server/chunks/6457.js +1 -1
- package/app/.next-cli-build/server/chunks/6763.js +1 -1
- package/app/.next-cli-build/server/chunks/6777.js +1 -1
- package/app/.next-cli-build/server/chunks/6818.js +1 -1
- package/app/.next-cli-build/server/chunks/6877.js +1 -1
- package/app/.next-cli-build/server/chunks/6921.js +65 -0
- package/app/.next-cli-build/server/chunks/6922.js +1 -1
- package/app/.next-cli-build/server/chunks/700.js +1 -0
- package/app/.next-cli-build/server/chunks/7211.js +1 -1
- package/app/.next-cli-build/server/chunks/7220.js +1 -0
- package/app/.next-cli-build/server/chunks/7247.js +1 -0
- package/app/.next-cli-build/server/chunks/7337.js +1 -0
- package/app/.next-cli-build/server/chunks/7525.js +1 -0
- package/app/.next-cli-build/server/chunks/7557.js +1 -0
- package/app/.next-cli-build/server/chunks/7616.js +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +1 -1
- package/app/.next-cli-build/server/chunks/7774.js +6 -6
- package/app/.next-cli-build/server/chunks/7828.js +1 -1
- package/app/.next-cli-build/server/chunks/7995.js +120 -0
- package/app/.next-cli-build/server/chunks/8005.js +1 -1
- package/app/.next-cli-build/server/chunks/827.js +1 -1
- package/app/.next-cli-build/server/chunks/8283.js +1 -1
- package/app/.next-cli-build/server/chunks/8402.js +1 -1
- package/app/.next-cli-build/server/chunks/8416.js +1 -1
- package/app/.next-cli-build/server/chunks/8499.js +14 -16
- package/app/.next-cli-build/server/chunks/8635.js +3 -0
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +10 -10
- package/app/.next-cli-build/server/chunks/8908.js +1 -1
- package/app/.next-cli-build/server/chunks/8920.js +1 -1
- package/app/.next-cli-build/server/chunks/9055.js +2 -0
- package/app/.next-cli-build/server/chunks/9128.js +1 -0
- package/app/.next-cli-build/server/chunks/929.js +1 -1
- package/app/.next-cli-build/server/chunks/9555.js +9 -0
- package/app/.next-cli-build/server/chunks/9609.js +1 -0
- package/app/.next-cli-build/server/chunks/9927.js +1 -0
- package/app/.next-cli-build/server/instrumentation.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +15 -9
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/KaH5tIKJ5h8LnCW_M06mm/_buildManifest.js +1 -0
- package/app/.next-cli-build/static/chunks/1321-eaf1647762d21846.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-087af3265a732109.js +7 -0
- package/app/.next-cli-build/static/chunks/{8123-898168d540c792a6.js → 5932-7d2159b54408d353.js} +1 -1
- package/app/.next-cli-build/static/chunks/6154-c0125de3a678bd18.js +3 -0
- package/app/.next-cli-build/static/chunks/6355-515fcecb9b4773c7.js +9 -0
- package/app/.next-cli-build/static/chunks/705-478dd7cc7d8c2072.js +1 -0
- package/app/.next-cli-build/static/chunks/761-5f63fd0d31d03600.js +124 -0
- package/app/.next-cli-build/static/chunks/9233.31ad68f3691fb052.js +65 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/{page-9ceb440fbd8f1b85.js → page-c20b509f19f41ffa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-2205c7f682fd7069.js → page-bf44f853ae585767.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-3c30053f69d39b44.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-8b3cebb3fb5884bc.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-137d75b44ae26f4b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-5b87f4682f8165d0.js → page-0fe7f4d11ebd9efb.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-0a0983e59dc5e573.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-c81cc762e0270b1c.js → page-c46700d45bf1617c.js} +18 -12
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-d5c69a24f1acff18.js → page-368ddc913248765f.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-5c27bfad8f18cfe6.js → page-6b99085cb2b96884.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-55a5a67e24af544f.js → page-f5c287b6e9669dea.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-191604f7ae69b88b.js → page-1d5c14eb494c3cbe.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-f7cdaab72db57e0d.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-8608a983025af6f0.js → page-61be5aed4d89ebac.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-2dbb5cb9c1f911a7.js +27 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-01005c043867595c.js → page-8bb12bf83cae590b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-077c4894de115c8c.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-4e741e3a9b810027.js → page-a7fa319c4e63df1a.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-941f47ff9fa02537.js → page-6a9a4235948fcd75.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-e9765a132892ad79.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-7826d0d180801c8a.js → page-ed507f167b97231e.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-3d6d096ace95d24d.js → page-f979275aeb9e0265.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-2c9a00fd6d39f7d5.js → page-5613fb13fa2c97c9.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-ae11c06a9ce514aa.js → page-5d574e97c5459cc6.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-906a897967834a9d.js → layout-1c0efcc2ce3a864b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/connections/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/device/poll/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/device/start/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/export/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/gate/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/generate-txt/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/import-lines/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/jobs/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/jobs/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/overview/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/providers/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/run/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/automation/test-prompt/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/backup/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/callback/{page-29259eb32e5818e0.js → page-c882ca6f30bf6a41.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/{page-6fae44926a64b6f5.js → page-5687594d308a0062.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/login/{page-5239a6d375306e43.js → page-bb60aababeb47727.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-0ac4b40b0e422dd4.js +1 -0
- package/app/.next-cli-build/static/chunks/webpack-8404e72c76160a5e.js +1 -0
- package/app/.next-cli-build/static/css/7467f33ff02b82a7.css +1 -0
- package/app/cli/.build-home/AppData/Roaming/9router/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/9router/db/data.sqlite-wal +0 -0
- package/app/package.json +1 -1
- package/app/public/i18n/literals/fa.json +17 -1
- package/app/public/i18n/literals/id.json +1365 -169
- package/app/public/i18n/literals/zh-CN.json +27 -1
- package/app/public/providers/agnes.png +0 -0
- package/app/public/providers/alims-intl.png +0 -0
- package/app/public/providers/alitp-intl.png +0 -0
- package/app/public/providers/atria.png +0 -0
- package/app/public/providers/bai.png +0 -0
- package/app/public/providers/codewhale.svg +9 -0
- package/app/public/providers/crush.png +0 -0
- package/app/public/providers/dahl.png +0 -0
- package/app/public/providers/fish-audio.png +0 -0
- package/app/public/providers/forge.png +0 -0
- package/app/public/providers/hermes.png +0 -0
- package/app/public/providers/muse.png +0 -0
- package/app/public/providers/omp.png +0 -0
- package/app/public/providers/pi.svg +6 -0
- package/app/public/providers/qoder-cn.png +0 -0
- package/app/public/providers/selfhosted-embedding.png +0 -0
- package/app/public/providers/selfhosted-stt.png +0 -0
- package/app/public/providers/selfhosted-tts.png +0 -0
- package/app/public/providers/smelt.svg +101 -0
- package/app/public/providers/tinyfish.png +0 -0
- package/app/public/providers/tokenharbor.png +0 -0
- package/app/public/providers/v1m.png +0 -0
- package/app/server.js +1 -1
- package/app/src/lib/oauth/providers/xiaomi-mimo.js +123 -0
- package/app/src/lib/oauth/services/qoder.js +24 -3
- package/app/src/mitm/server.js +24 -24
- package/cli.js +15 -0
- package/hooks/postinstall.js +4 -0
- package/hooks/trayRuntime.js +152 -7
- package/package.json +1 -1
- package/src/cli/commands/connect.js +269 -0
- package/src/cli/commands/connectTools.js +338 -0
- package/src/cli/menus/providers.js +8 -2
- package/src/cli/tray/tray.js +8 -5
- package/src/cli/utils/modelSelector.js +256 -56
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +0 -1
- package/app/.next-cli-build/server/chunks/2051.js +0 -1
- package/app/.next-cli-build/server/chunks/2112.js +0 -1
- package/app/.next-cli-build/server/chunks/2414.js +0 -1
- package/app/.next-cli-build/server/chunks/318.js +0 -225
- package/app/.next-cli-build/server/chunks/3413.js +0 -73
- package/app/.next-cli-build/server/chunks/4443.js +0 -1
- package/app/.next-cli-build/server/chunks/5285.js +0 -95
- package/app/.next-cli-build/server/chunks/5612.js +0 -1
- package/app/.next-cli-build/server/chunks/7807.js +0 -3
- package/app/.next-cli-build/server/chunks/8080.js +0 -1
- package/app/.next-cli-build/server/chunks/8145.js +0 -1
- package/app/.next-cli-build/server/chunks/8476.js +0 -1
- package/app/.next-cli-build/server/chunks/8826.js +0 -1
- package/app/.next-cli-build/server/chunks/8847.js +0 -1
- package/app/.next-cli-build/static/AXbjzG1JY4GegUY_HSdNb/_buildManifest.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-4b216b8ec6d19179.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-4defd51a36b09a3c.js +0 -7
- package/app/.next-cli-build/static/chunks/6154-f93f7df903d96cfa.js +0 -3
- package/app/.next-cli-build/static/chunks/6229-b9c3a928e1f38d7a.js +0 -73
- package/app/.next-cli-build/static/chunks/6656-236db7740d11e2f4.js +0 -95
- package/app/.next-cli-build/static/chunks/705-c8e8b84e7b8b555b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-787902a8afcd1b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-07b041987d2f2958.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-703c0c4c7ae7cbf0.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-13a9b34218ad45b3.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-6a72c47c10aa2375.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-8c9007d9e68cb173.js +0 -27
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-aecb96f9ac3ab809.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-69613e636720b757.js +0 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/connections/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/device/poll/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/device/start/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/export/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/gate/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/generate-txt/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/import-lines/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/jobs/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/jobs/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/overview/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/providers/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/run/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/automation/test-prompt/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/backup/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-78eda5e11f1087a8.js +0 -1
- package/app/.next-cli-build/static/chunks/webpack-65f827b545613a93.js +0 -1
- package/app/.next-cli-build/static/css/12100458fc606e14.css +0 -1
- /package/app/.next-cli-build/static/{AXbjzG1JY4GegUY_HSdNb → KaH5tIKJ5h8LnCW_M06mm}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9233],{9233:(e,t,r)=>{function n(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}r.r(t),r.d(t,{Hooks:()=>e$,Lexer:()=>em,Marked:()=>eR,Parser:()=>eS,Renderer:()=>ew,TextRenderer:()=>ey,Tokenizer:()=>eb,defaults:()=>s,getDefaults:()=>n,lexer:()=>eq,marked:()=>eT,options:()=>eA,parse:()=>eI,parseInline:()=>eE,parser:()=>eC,setOptions:()=>eP,use:()=>ez,walkTokens:()=>eL});var s=n(),l={exec:()=>null};function i(e){let t=[];return r=>{let n=Math.max(0,Math.min(3,r-1)),s=t[n];return s||(s=e(n),t[n]=s),s}}function a(e,t=""){let r="string"==typeof e?e:e.source,n={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(c.caret,"$1"),r=r.replace(e,s),n},getRegex:()=>new RegExp(r,t)};return n}var o=((e="")=>{try{return!!RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),c={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:i(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:i(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:i(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:i(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:i(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:i(e=>RegExp(`^ {0,${e}}>`))},p=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,h=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,u=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,g=a(u).replace(/bull/g,h).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),k=a(u).replace(/bull/g,h).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),d=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,f=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,x=a(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",f).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),b=a(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,h).getRegex(),m="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,y=a("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",w).replace("tag",m).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),S=e=>a(d).replace("hr",p).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",m).getRegex(),$=S(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),R=S(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),_={blockquote:a(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",R).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:x,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:p,html:y,lheading:g,list:b,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:$,table:l,text:/^[^\n]+/},T=a("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",p).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",m).getRegex(),z={..._,lheading:k,table:T,paragraph:a(d).replace("hr",p).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",T).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",m).getRegex()},A={..._,html:a("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",w).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:l,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:a(d).replace("hr",p).replace("heading",` *#{1,6} *[^
|
|
2
|
+
]`).replace("lheading",g).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},P=/^( {2,}|\\)\n(?!\s*$)/,L=/[\p{P}\p{S}]/u,E=/[\s\p{P}\p{S}]/u,I=/[^\s\p{P}\p{S}]/u,C=a(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,E).getRegex(),q=/(?!~)[\p{P}\p{S}]/u,B=a(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",o?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),v=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,D=a(v,"u").replace(/punct/g,L).getRegex(),Z=a(v,"u").replace(/punct/g,q).getRegex(),Q=a(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,"u").replace(/openQuote/g,/[\p{Pi}\p{Ps}"']/u).replace(/punct/g,L).getRegex(),M="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",N=a(M,"gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),H=a(M,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,q).getRegex(),O=a("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),j=a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),G=a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),X=a(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,L).getRegex(),U=a("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),W=a(/\\(punct)/,"gu").replace(/punct/g,L).getRegex(),F=a(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),J=a(w).replace("(?:--\x3e|$)","--\x3e").getRegex(),K=a("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",J).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),V=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Y=a(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",V).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ee=a(/^!?\[(label)\]\[(ref)\]/).replace("label",V).replace("ref",f).getRegex(),et=a(/^!?\[(ref)\](?:\[\])?/).replace("ref",f).getRegex(),er=a("reflink|nolink(?!\\()","g").replace("reflink",ee).replace("nolink",et).getRegex(),en=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,es={_backpedal:l,anyPunctuation:W,autolink:F,blockSkip:B,br:P,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:l,delLDelim:l,delRDelim:l,emStrongLDelim:D,emStrongRDelimAst:N,emStrongRDelimUnd:j,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:Y,nolink:et,punctuation:C,reflink:ee,reflinkSearch:er,tag:K,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:l},el={...es,emStrongLDelim:Q,emStrongRDelimAst:O,emStrongRDelimUnd:G,link:a(/^!?\[(label)\]\((.*?)\)/).replace("label",V).getRegex(),reflink:a(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",V).getRegex()},ei={...es,emStrongRDelimAst:H,emStrongLDelim:Z,delLDelim:X,delRDelim:U,url:a(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",en).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:a(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",en).getRegex()},ea={...ei,br:a(P).replace("{2,}","*").getRegex(),text:a(ei.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},eo={normal:_,gfm:z,pedantic:A},ec={normal:es,gfm:ei,breaks:ea,pedantic:el},ep={"&":"&","<":"<",">":">",'"':""","'":"'"},eh=e=>ep[e];function eu(e,t){if(t){if(c.escapeTest.test(e))return e.replace(c.escapeReplace,eh)}else if(c.escapeTestNoEncode.test(e))return e.replace(c.escapeReplaceNoEncode,eh);return e}function eg(e){try{e=encodeURI(e).replace(c.percentDecode,"%")}catch{return null}return e}function ek(e,t){let r=e.replace(c.findPipe,(e,t,r)=>{let n=!1,s=t;for(;--s>=0&&"\\"===r[s];)n=!n;return n?"|":" |"}).split(c.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(c.slashPipe,"|");return r}function ed(e,t,r){let n=e.length;if(0===n)return"";let s=0;for(;s<n;){let l=e.charAt(n-s-1);if(l!==t||r)if(l!==t&&r)s++;else break;else s++}return e.slice(0,n-s)}function ef(e){let t=e.split(`
|
|
3
|
+
`),r=t.length-1;for(;r>=0&&c.blankLine.test(t[r]);)r--;return t.length-r<=2?e:t.slice(0,r+1).join(`
|
|
4
|
+
`)}function ex(e,t,r,n,s){let l=t.href,i=t.title||null,a=e[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let o={type:"!"===e[0].charAt(0)?"image":"link",raw:r,href:l,title:i,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,o}var eb=class{constructor(e){this.options=e||s}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:ef(t[0]),r=e.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],r=function(e,t,r){let n=e.match(r.other.indentCodeCompensation);if(null===n)return t;let s=n[1];return t.split(`
|
|
5
|
+
`).map(e=>{let t=e.match(r.other.beginningSpace);if(null===t)return e;let[n]=t;return n.length>=s.length?e.slice(s.length):e}).join(`
|
|
6
|
+
`)}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=ed(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:ed(t[0],`
|
|
7
|
+
`),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:ed(t[0],`
|
|
8
|
+
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=ed(t[0],`
|
|
9
|
+
`).split(`
|
|
10
|
+
`),r="",n="",s=[];for(;e.length>0;){let t=!1,l=[],i;for(i=0;i<e.length;i++)if(this.rules.other.blockquoteStart.test(e[i]))l.push(e[i]),t=!0;else if(t)break;else l.push(e[i]);e=e.slice(i);let a=l.join(`
|
|
11
|
+
`),o=a.replace(this.rules.other.blockquoteSetextReplace,`
|
|
12
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
|
|
13
|
+
${a}`:a,n=n?`${n}
|
|
14
|
+
${o}`:o;let c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(o,s,!0),this.lexer.state.top=c,0===e.length)break;let p=s.at(-1);if(p?.type==="code")break;if(p?.type==="blockquote"){let t=e.join(`
|
|
15
|
+
`),l=p.raw+`
|
|
16
|
+
`+t.replace(this.rules.other.blockquoteSetextReplace2,""),i=this.blockquote(l);s[s.length-1]=i,r=`${r}
|
|
17
|
+
${t}`,n=n.substring(0,n.length-p.text.length)+i.text;break}if(p?.type==="list"){let t=p.raw+`
|
|
18
|
+
`+e.join(`
|
|
19
|
+
`),l=this.list(t);s[s.length-1]=l,r=r.substring(0,r.length-p.raw.length)+l.raw,n=n.substring(0,n.length-p.raw.length)+l.raw,e=t.substring(s.at(-1).raw.length).split(`
|
|
20
|
+
`);continue}}return{type:"blockquote",raw:r,tokens:s,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r=t[1].trim(),n=r.length>1,s={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let l=this.rules.other.listItemRegex(r),i=!1;for(;e;){let r=!1,n="",a="";if(!(t=l.exec(e))||this.rules.block.hr.test(e))break;n=t[0],e=e.substring(n.length);let o=function(e,t=0){let r=t,n="";for(let t of e)if(" "===t){let e=4-r%4;n+=" ".repeat(e),r+=e}else n+=t,r++;return n}(t[2].split(`
|
|
21
|
+
`,1)[0],t[1].length),c=e.split(`
|
|
22
|
+
`,1)[0],p=!o.trim(),h=0;if(this.options.pedantic?(h=2,a=o.trimStart()):p?h=t[1].length+1:(h=(h=o.search(this.rules.other.nonSpaceChar))>4?1:h,a=o.slice(h),h+=t[1].length),p&&this.rules.other.blankLine.test(c)&&(n+=c+`
|
|
23
|
+
`,e=e.substring(c.length+1),r=!0),!r){let t=this.rules.other.nextBulletRegex(h),r=this.rules.other.hrRegex(h),s=this.rules.other.fencesBeginRegex(h),l=this.rules.other.headingBeginRegex(h),i=this.rules.other.htmlBeginRegex(h),u=this.rules.other.blockquoteBeginRegex(h);for(;e;){let g=e.split(`
|
|
24
|
+
`,1)[0],k;if(c=g,k=this.options.pedantic?c=c.replace(this.rules.other.listReplaceNesting," "):c.replace(this.rules.other.tabCharGlobal," "),s.test(c)||l.test(c)||i.test(c)||u.test(c)||t.test(c)||r.test(c))break;if(k.search(this.rules.other.nonSpaceChar)>=h||!c.trim())a+=`
|
|
25
|
+
`+k.slice(h);else{if(p||o.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||s.test(o)||l.test(o)||r.test(o))break;a+=`
|
|
26
|
+
`+c}p=!c.trim(),n+=g+`
|
|
27
|
+
`,e=e.substring(g.length+1),o=k.slice(h)}}s.loose||(i?s.loose=!0:this.rules.other.doubleBlankLine.test(n)&&(i=!0)),s.items.push({type:"list_item",raw:n,task:!!this.options.gfm&&this.rules.other.listIsTask.test(a),loose:!1,text:a,tokens:[]}),s.raw+=n}let a=s.items.at(-1);if(!a)return;for(let e of(a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd(),s.raw=s.raw.trimEnd(),s.items)){this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]);let t=e.tokens[0];if(e.task&&(t?.type==="text"||t?.type==="paragraph")){e.text=e.text.replace(this.rules.other.listReplaceTask,""),t.raw=t.raw.replace(this.rules.other.listReplaceTask,""),t.text=t.text.replace(this.rules.other.listReplaceTask,"");for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,"");break}let r=this.rules.other.listTaskCheckbox.exec(e.raw);if(r){let t={type:"checkbox",raw:r[0]+" ",checked:"[ ]"!==r[0]};e.checked=t.checked,s.loose?e.tokens[0]&&["paragraph","text"].includes(e.tokens[0].type)&&"tokens"in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:"paragraph",raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&(e.task=!1);if(!s.loose){let t=e.tokens.filter(e=>"space"===e.type);s.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}}if(s.loose)for(let e of s.items)for(let t of(e.loose=!0,e.tokens))"text"===t.type&&(t.type="paragraph");return s}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=ef(t[0]);return{type:"html",block:!0,raw:e,pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:ed(t[0],`
|
|
28
|
+
`),href:r,title:n}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let r=ek(t[1]),n=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
29
|
+
`):[],l={type:"table",raw:ed(t[0],`
|
|
30
|
+
`),header:[],align:[],rows:[]};if(r.length===n.length){for(let e of n)this.rules.other.tableAlignRight.test(e)?l.align.push("right"):this.rules.other.tableAlignCenter.test(e)?l.align.push("center"):this.rules.other.tableAlignLeft.test(e)?l.align.push("left"):l.align.push(null);for(let e=0;e<r.length;e++)l.header.push({text:r[e],tokens:this.lexer.inline(r[e]),header:!0,align:l.align[e]});for(let e of s)l.rows.push(ek(e,l.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:l.align[t]})));return l}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:"heading",raw:ed(t[0],`
|
|
31
|
+
`),depth:"="===t[2].charAt(0)?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
32
|
+
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=ed(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e){if(-1===e.indexOf(")"))return -1;let t=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if("("===e[r])t++;else if(")"===e[r]&&--t<0)return r;return t>0?-2:-1}(t[2]);if(-2===e)return;if(e>-1){let r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(r);e&&(r=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(r=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?r.slice(1):r.slice(1,-1)),ex(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=t[(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return ex(r,e,r[0],this.lexer,this.rules)}}emStrong(e,t,r=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!(!n||!n[1]&&!n[2]&&!n[3]&&!n[4]||n[4]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[3])||!r||this.rules.inline.punctuation.exec(r))){let s=[...n[0]].length-1,l,i,a=s,o=0,c=n[0][0],p=r===c,h="*"===c?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,t=t.slice(-1*e.length+s);null!==(n=h.exec(t));){if(!(l=n[1]||n[2]||n[3]||n[4]||n[5]||n[6]))continue;if(i=[...l].length,n[3]||n[4]){a+=i;continue}if(n[5]||n[6]){if(s%3&&!((s+i)%3)){o+=i;continue}if(p)break}if((a-=i)>0)continue;i=Math.min(i,i+a+o);let t=[...n[0]][0].length,r=e.slice(0,s+n.index+t+i);if(Math.min(s,i)%2){let e=r.slice(1,-1);return{type:"em",raw:r,text:e,tokens:this.lexer.inlineTokens(e)}}let c=r.slice(2,-2);return{type:"strong",raw:r,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return r&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,r=""){let n=this.rules.inline.delLDelim.exec(e);if(n&&(!n[1]||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,l,i=r,a=this.rules.inline.delRDelim;for(a.lastIndex=0,t=t.slice(-1*e.length+r);null!==(n=a.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])||(l=[...s].length)!==r)continue;if(n[3]||n[4]){i+=l;continue}if((i-=l)>0)continue;l=Math.min(l,l+i);let t=[...n[0]][0].length,a=e.slice(0,r+n.index+t+l),o=a.slice(r,-r);return{type:"del",raw:a,text:o,tokens:this.lexer.inlineTokens(o)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,r;return r="@"===t[2]?"mailto:"+(e=t[1]):e=t[1],{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,r;if("@"===t[2])r="mailto:"+(e=t[0]);else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);e=t[0],r="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},em=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||s,this.options.tokenizer=this.options.tokenizer||new eb,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:c,block:eo.normal,inline:ec.normal};this.options.pedantic?(t.block=eo.pedantic,t.inline=ec.pedantic):this.options.gfm&&(t.block=eo.gfm,this.options.breaks?t.inline=ec.breaks:t.inline=ec.gfm),this.tokenizer.rules=t}static get rules(){return{block:eo,inline:ec}}static lex(t,r){return new e(r).lex(t)}static lexInline(t,r){return new e(r).inlineTokens(t)}lex(e){e=e.replace(c.carriageReturn,`
|
|
33
|
+
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(c.tabCharGlobal," ").replace(c.spaceLine,""));let n=1/0;for(;e;){let s;if(e.length<n)n=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}if(this.options.extensions?.block?.some(r=>!!(s=r.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0)))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);let r=t.at(-1);1===s.raw.length&&void 0!==r?r.raw+=`
|
|
34
|
+
`:t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
|
|
35
|
+
`)?"":`
|
|
36
|
+
`)+s.raw,r.text+=`
|
|
37
|
+
`+s.text,this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if((s=this.tokenizer.fences(e))||(s=this.tokenizer.heading(e))||(s=this.tokenizer.hr(e))||(s=this.tokenizer.blockquote(e))||(s=this.tokenizer.list(e))||(s=this.tokenizer.html(e))){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
|
|
38
|
+
`)?"":`
|
|
39
|
+
`)+s.raw,r.text+=`
|
|
40
|
+
`+s.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title},t.push(s));continue}if((s=this.tokenizer.table(e))||(s=this.tokenizer.lheading(e))){e=e.substring(s.raw.length),t.push(s);continue}let l=e;if(this.options.extensions?.startBlock){let t=1/0,r=e.slice(1),n;this.options.extensions.startBlock.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(l=e.substring(0,t+1))}if(this.state.top&&(s=this.tokenizer.paragraph(l))){let n=t.at(-1);r&&n?.type==="paragraph"?(n.raw+=(n.raw.endsWith(`
|
|
41
|
+
`)?"":`
|
|
42
|
+
`)+s.raw,n.text+=`
|
|
43
|
+
`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(s),r=l.length!==e.length,e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="text"?(r.raw+=(r.raw.endsWith(`
|
|
44
|
+
`)?"":`
|
|
45
|
+
`)+s.raw,r.text+=`
|
|
46
|
+
`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let r=e;if(this.tokens.links){let e=Object.keys(this.tokens.links);e.length>0&&(r=r.replace(this.tokenizer.rules.inline.reflinkSearch,t=>e.includes(t.slice(t.lastIndexOf("[")+1,-1))?"["+"a".repeat(t.length-2)+"]":t))}r=(r=r.replace(this.tokenizer.rules.inline.anyPunctuation,"++")).replace(this.tokenizer.rules.inline.blockSkip,(e,t,r)=>{let n=r?r.length:0;return e.slice(0,n)+"["+"a".repeat(e.length-n-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let n=!1,s="",l=1/0;for(;e;){let i;if(e.length<l)l=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}if(n||(s=""),n=!1,this.options.extensions?.inline?.some(r=>!!(i=r.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))continue;if((i=this.tokenizer.escape(e))||(i=this.tokenizer.tag(e))||(i=this.tokenizer.link(e))){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(i.raw.length);let r=t.at(-1);"text"===i.type&&r?.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if((i=this.tokenizer.emStrong(e,r,s))||(i=this.tokenizer.codespan(e))||(i=this.tokenizer.br(e))||(i=this.tokenizer.del(e,r,s))||(i=this.tokenizer.autolink(e))||!this.state.inLink&&(i=this.tokenizer.url(e))){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startInline){let t=1/0,r=e.slice(1),n;this.options.extensions.startInline.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(i=this.tokenizer.inlineText(a)){e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(s=i.raw.slice(-1)),n=!0;let r=t.at(-1);r?.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw Error(t)}},ew=class{constructor(e){this.options=e||s}space(e){return""}code({text:e,lang:t,escaped:r}){let n=(t||"").match(c.notSpaceStart)?.[0],s=e.replace(c.endingNewline,"")+`
|
|
47
|
+
`;return n?'<pre><code class="language-'+eu(n)+'">'+(r?s:eu(s,!0))+`</code></pre>
|
|
48
|
+
`:"<pre><code>"+(r?s:eu(s,!0))+`</code></pre>
|
|
49
|
+
`}blockquote({tokens:e}){return`<blockquote>
|
|
50
|
+
${this.parser.parse(e)}</blockquote>
|
|
51
|
+
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
52
|
+
`}hr(e){return`<hr>
|
|
53
|
+
`}list(e){let t=e.ordered,r=e.start,n="";for(let t=0;t<e.items.length;t++){let r=e.items[t];n+=this.listitem(r)}let s=t?"ol":"ul";return"<"+s+(t&&1!==r?' start="'+r+'"':"")+`>
|
|
54
|
+
`+n+"</"+s+`>
|
|
55
|
+
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
56
|
+
`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
57
|
+
`}table(e){let t="",r="";for(let t=0;t<e.header.length;t++)r+=this.tablecell(e.header[t]);t+=this.tablerow({text:r});let n="";for(let t=0;t<e.rows.length;t++){let s=e.rows[t];r="";for(let e=0;e<s.length;e++)r+=this.tablecell(s[e]);n+=this.tablerow({text:r})}return n&&(n=`<tbody>${n}</tbody>`),`<table>
|
|
58
|
+
<thead>
|
|
59
|
+
`+t+`</thead>
|
|
60
|
+
`+n+`</table>
|
|
61
|
+
`}tablerow({text:e}){return`<tr>
|
|
62
|
+
${e}</tr>
|
|
63
|
+
`}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
|
|
64
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${eu(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),s=eg(e);if(null===s)return n;let l='<a href="'+(e=s)+'"';return t&&(l+=' title="'+eu(t)+'"'),l+=">"+n+"</a>"}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=eg(e);if(null===s)return eu(r);e=s;let l=`<img src="${e}" alt="${eu(r)}"`;return t&&(l+=` title="${eu(t)}"`),l+=">"}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:eu(e.text)}},ey=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},eS=class e{constructor(e){this.options=e||s,this.options.renderer=this.options.renderer||new ew,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ey}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}parse(e){this.renderer.parser=this;let t="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let e=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==e||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(n.type)){t+=e||"";continue}}switch(n.type){case"space":t+=this.renderer.space(n);break;case"hr":t+=this.renderer.hr(n);break;case"heading":t+=this.renderer.heading(n);break;case"code":t+=this.renderer.code(n);break;case"table":t+=this.renderer.table(n);break;case"blockquote":t+=this.renderer.blockquote(n);break;case"list":t+=this.renderer.list(n);break;case"checkbox":t+=this.renderer.checkbox(n);break;case"html":t+=this.renderer.html(n);break;case"def":t+=this.renderer.def(n);break;case"paragraph":t+=this.renderer.paragraph(n);break;case"text":t+=this.renderer.text(n);break;default:{let e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(s.type)){r+=e||"";continue}}switch(s.type){case"escape":case"text":r+=t.text(s);break;case"html":r+=t.html(s);break;case"link":r+=t.link(s);break;case"image":r+=t.image(s);break;case"checkbox":r+=t.checkbox(s);break;case"strong":r+=t.strong(s);break;case"em":r+=t.em(s);break;case"codespan":r+=t.codespan(s);break;case"br":r+=t.br(s);break;case"del":r+=t.del(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return r}},e$=class{constructor(e){this.options=e||s}static{this.passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])}static{this.passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"])}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?em.lex:em.lexInline}provideParser(e=this.block){return e?eS.parse:eS.parseInline}},eR=class{constructor(...e){this.defaults=n(),this.options=this.setOptions,this.parse=this.parseMarkdown(!0),this.parseInline=this.parseMarkdown(!1),this.Parser=eS,this.Renderer=ew,this.TextRenderer=ey,this.Lexer=em,this.Tokenizer=eb,this.Hooks=e$,this.use(...e)}walkTokens(e,t){let r=[];for(let n of e)switch(r=r.concat(t.call(this,n)),n.type){case"table":for(let e of n.header)r=r.concat(this.walkTokens(e.tokens,t));for(let e of n.rows)for(let n of e)r=r.concat(this.walkTokens(n.tokens,t));break;case"list":r=r.concat(this.walkTokens(n.items,t));break;default:{let e=n;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(n=>{let s=e[n].flat(1/0);r=r.concat(this.walkTokens(s,t))}):e.tokens&&(r=r.concat(this.walkTokens(e.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let r={...e};if(r.async=this.defaults.async||r.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let r=t.renderers[e.name];r?t.renderers[e.name]=function(...t){let n=e.renderer.apply(this,t);return!1===n&&(n=r.apply(this,t)),n}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let r=t[e.level];r?r.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),r.extensions=t),e.renderer){let t=this.defaults.renderer||new ew(this.defaults);for(let r in e.renderer){if(!(r in t))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let n=e.renderer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r||""}}r.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new eb(this.defaults);for(let r in e.tokenizer){if(!(r in t))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let n=e.tokenizer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new e$;for(let r in e.hooks){if(!(r in t))throw Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let n=e.hooks[r],s=t[r];e$.passThroughHooks.has(r)?t[r]=e=>{if(this.defaults.async&&e$.passThroughHooksRespectAsync.has(r))return(async()=>{let r=await n.call(t,e);return s.call(t,r)})();let l=n.call(t,e);return s.call(t,l)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let r=await n.apply(t,e);return!1===r&&(r=await s.apply(t,e)),r})();let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,n=e.walkTokens;r.walkTokens=function(e){let r=[];return r.push(n.call(this,e)),t&&(r=r.concat(t.call(this,e))),r}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return em.lex(e,t??this.defaults)}parser(e,t){return eS.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let n={...r},s={...this.defaults,...n},l=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===n.async)return l(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return l(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return l(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let r=s.hooks?await s.hooks.preprocess(t):t,n=await (s.hooks?await s.hooks.provideLexer(e):e?em.lex:em.lexInline)(r,s),l=s.hooks?await s.hooks.processAllTokens(n):n;s.walkTokens&&await Promise.all(this.walkTokens(l,s.walkTokens));let i=await (s.hooks?await s.hooks.provideParser(e):e?eS.parse:eS.parseInline)(l,s);return s.hooks?await s.hooks.postprocess(i):i})().catch(l);try{s.hooks&&(t=s.hooks.preprocess(t));let r=(s.hooks?s.hooks.provideLexer(e):e?em.lex:em.lexInline)(t,s);s.hooks&&(r=s.hooks.processAllTokens(r)),s.walkTokens&&this.walkTokens(r,s.walkTokens);let n=(s.hooks?s.hooks.provideParser(e):e?eS.parse:eS.parseInline)(r,s);return s.hooks&&(n=s.hooks.postprocess(n)),n}catch(e){return l(e)}}}onError(e,t){return r=>{if(r.message+=`
|
|
65
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+eu(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}},e_=new eR;function eT(e,t){return e_.parse(e,t)}function ez(...e){return e_.use(...e),eT.defaults=e_.defaults,s=eT.defaults,eT}eT.options=eT.setOptions=function(e){return e_.setOptions(e),eT.defaults=e_.defaults,s=eT.defaults,eT},eT.getDefaults=n,eT.defaults=s,eT.use=ez,eT.walkTokens=function(e,t){return e_.walkTokens(e,t)},eT.parseInline=e_.parseInline,eT.Parser=eS,eT.parser=eS.parse,eT.Renderer=ew,eT.TextRenderer=ey,eT.Lexer=em,eT.lexer=em.lex,eT.Tokenizer=eb,eT.Hooks=e$,eT.parse=eT;var eA=eT.options,eP=eT.setOptions,eL=eT.walkTokens,eE=eT.parseInline,eI=eT,eC=eS.parse,eq=em.lex}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8593],{64881:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>I});var s=a(95155),n=a(12115),r=a(35497);function l({onUnlock:e}){let[t,a]=(0,n.useState)(""),[i,o]=(0,n.useState)(""),[d,c]=(0,n.useState)(!1),[u,x]=(0,n.useState)(0),m=async s=>{if(s.preventDefault(),t&&!d){c(!0),o("");try{let s=await fetch("/api/automation/gate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:t})}),n=await s.json().catch(()=>({}));if(!s.ok){o(n?.error||`Gagal membuka (HTTP ${s.status})`),a(""),x(e=>e+1);return}e()}catch(e){o(e.message||"Tidak bisa menghubungi server")}finally{c(!1)}}};return(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-md flex-col gap-4 py-10",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[22px] text-primary","aria-hidden":"true",children:"lock"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,s.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Halaman ini bisa menambah akun provider dan mengekspor kredensialnya ke berkas. Masukkan password automation untuk melanjutkan."})]})]}),(0,s.jsxs)("form",{onSubmit:m,className:"flex flex-col gap-3",children:[(0,s.jsx)(r.pd,{label:"Password",id:"automation-password",type:"password",value:t,onChange:e=>a(e.target.value),placeholder:"••••••••",autoComplete:"off",disabled:d,autoFocus:!0,"aria-invalid":i?"true":void 0,"aria-describedby":i?"automation-password-error":void 0},u),i?(0,s.jsx)("p",{id:"automation-password-error",role:"alert",className:"text-xs font-medium text-error",children:i}):null,(0,s.jsx)(r.$n,{type:"submit",disabled:d||!t,children:d?"Memeriksa…":"Buka"})]})]})}function i({onPick:e}){let[t,a]=(0,n.useState)(null),[r,l]=(0,n.useState)("");if((0,n.useEffect)(()=>{let e=!1;return fetch("/api/automation/overview",{cache:"no-store"}).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(t=>{e||a(t.providers||[])}).catch(t=>{e||l(t.message||"Gagal memuat provider")}),()=>{e=!0}},[]),r)return(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:r});if(!t)return(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","aria-busy":"true",children:[0,1,2,3,4,5].map(e=>(0,s.jsx)("div",{className:"h-32 animate-pulse rounded-[14px] bg-border-subtle/60"},e))});let d=t.reduce((e,t)=>e+t.counts.total,0);return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-text-main",children:"Pilih provider"}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:[d," akun di ",t.length," provider. Membuka salah satu akan menampilkan fitur yang tersedia untuknya."]})]}),(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map(t=>(0,s.jsxs)("button",{type:"button",onClick:()=>e(t.id),className:"group flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4 text-left transition-colors hover:border-primary/40 hover:bg-bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("div",{className:"truncate text-sm font-semibold text-text-main",children:t.label}),(0,s.jsx)("div",{className:"truncate font-mono text-[10px] text-text-subtle",children:t.source})]}),(0,s.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[18px] text-text-subtle transition-colors group-hover:text-primary","aria-hidden":"true",children:"chevron_right"})]}),(0,s.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,s.jsx)("span",{className:"tabular-nums text-2xl font-semibold text-text-main",children:t.counts.total}),(0,s.jsx)("span",{className:"text-xs text-text-muted",children:"akun"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs",children:[(0,s.jsxs)("span",{className:"text-success",children:[t.counts.active," aktif"]}),t.counts.problem>0?(0,s.jsxs)("span",{className:"text-error",children:[t.counts.problem," bermasalah"]}):null,t.counts.unknown>0?(0,s.jsxs)("span",{className:"text-text-subtle",children:[t.counts.unknown," perlu ditinjau"]}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1",children:[t.kinds.quota?(0,s.jsx)(o,{children:"Cek kuota"}):null,t.kinds.test?(0,s.jsx)(o,{children:"Tes koneksi"}):null,t.kinds.prompt?(0,s.jsx)(o,{children:"Tes prompt"}):null,"device"===t.kinds.calls?(0,s.jsx)(o,{children:"Login device"}):null]})]},t.id))})]})}function o({children:e}){return(0,s.jsx)("span",{className:"rounded-md bg-bg-subtle px-1.5 py-0.5 text-[10px] font-medium text-text-muted",children:e})}let d="automation:activeJob",c={quota:"Cek kuota",test:"Test koneksi",delete:"Hapus akun",refresh:"Refresh token",verify:"Verifikasi key",deactivate:"Nonaktifkan akun"};function u({job:e}){if(!e||"idle"===e.status)return null;let t=e.total>0?Math.round(e.done/e.total*100):0,a="running"===e.status;return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,s.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[c[e.kind]||e.label||"Memproses",(0,s.jsxs)("span",{className:"ml-2 tabular-nums text-text-muted",children:[e.done,"/",e.total]})]}),a?(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:e.cancel,children:"Hentikan"}):(0,s.jsx)("span",{className:"text-xs text-text-muted",children:"cancelled"===e.status?"Dihentikan":"Selesai"})]}),(0,s.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":t,"aria-label":"Kemajuan",className:"h-1.5 w-full overflow-hidden rounded-full bg-surface-3",children:(0,s.jsx)("div",{className:"h-full rounded-full bg-primary transition-[width] duration-300 ease-out",style:{width:`${t}%`}})}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:[(0,s.jsxs)("span",{className:"text-success",children:[e.ok," berhasil"]}),e.failed>0?(0,s.jsxs)(s.Fragment,{children:[" \xb7 ",(0,s.jsxs)("span",{className:"text-error",children:[e.failed," gagal"]})]}):null,e.error?` \xb7 ${e.error}`:""]})]})}function x({connection:e,onClose:t}){let[a,l]=(0,n.useState)("Balas dalam satu kalimat singkat: siapa kamu dan model apa ini?"),[i,o]=(0,n.useState)(e?.model||""),[d,c]=(0,n.useState)(200),[u,m]=(0,n.useState)(!1),[p,h]=(0,n.useState)(null),[b,f]=(0,n.useState)(""),g=async()=>{m(!0),f(""),h(null);try{let t=await fetch("/api/automation/test-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionId:e.id,prompt:a,model:i||void 0,maxTokens:Number(d)||200})}),s=await t.json().catch(()=>({}));if(!t.ok)return void f(s?.error||`HTTP ${t.status}`);h(s)}catch(e){f(e.message||"Permintaan gagal")}finally{m(!1)}};return(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center bg-black/40 p-0 sm:items-center sm:p-4",role:"dialog","aria-modal":"true","aria-label":"Tes prompt",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,s.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-2xl flex-col gap-4 overflow-y-auto rounded-t-[14px] bg-bg p-5 sm:rounded-[14px]",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Tes prompt"}),(0,s.jsx)("p",{className:"mt-0.5 truncate font-mono text-xs text-text-muted",children:e.email||e.name||e.id})]}),(0,s.jsx)("button",{type:"button",onClick:t,"aria-label":"Tutup",className:"shrink-0 rounded-md p-1 text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"close"})})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{label:"Model (opsional)",value:i,onChange:e=>o(e.target.value),placeholder:"kosongkan = model bawaan"})}),(0,s.jsx)("div",{className:"sm:w-32",children:(0,s.jsx)(r.pd,{label:"Max token",type:"number",value:d,onChange:e=>c(e.target.value)})})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{htmlFor:"tp-prompt",className:"text-sm font-medium text-text-main",children:"Prompt"}),(0,s.jsx)("textarea",{id:"tp-prompt",value:a,onChange:e=>l(e.target.value),disabled:u,className:"min-h-[80px] w-full resize-y rounded-[10px] border border-border bg-surface-2 p-3 text-sm text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 disabled:opacity-50"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(r.$n,{onClick:g,disabled:u||!a.trim(),loading:u,icon:"send",children:"Kirim"}),p?(0,s.jsxs)("span",{className:"tabular-nums text-xs text-text-muted",children:[p.elapsedMs," ms \xb7 ",p.servedModel||"—"]}):null]}),b?(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:b}):null,p&&!p.ok?(0,s.jsxs)("div",{className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-error",children:["HTTP ",p.status]}),(0,s.jsx)("p",{className:"mt-1 break-words text-xs text-text-main",children:p.error})]}):null,p?.ok?(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("div",{className:"whitespace-pre-wrap break-words rounded-[10px] border border-border bg-surface p-3 text-sm text-text-main",children:p.reply||"(balasan kosong)"}),p.usage?(0,s.jsx)("p",{className:"tabular-nums text-xs text-text-muted",children:[null!=p.usage.prompt_tokens?`${p.usage.prompt_tokens} in`:null,null!=p.usage.completion_tokens?`${p.usage.completion_tokens} out`:null].filter(Boolean).join(" \xb7 ")}):null]}):null]})})}var m=a(11059);function p(e){let t=e?.providerSpecificData?.nodeName;return t&&t!==e.provider&&!/^openai-compatible-chat-/.test(t)?t:e?.provider||e?.providerLabel||"?"}let h={mati:"MATI (kredensial ditolak)",limit:"LIMIT (429 laju)",error:"ERROR (jaringan/server)",expired:"EXPIRED (token kedaluwarsa)"};function b({providerId:e,info:t,rows:a=[],visible:n=[],scanResults:l=[],running:i,runOp:o,onDelete:d,onChanged:c}){let u=t?.kinds||{};return u.selective||u.refresh||u.verify||u.cleanup||u.patternDelete||u.blocked||u.expiryOps||u.inactive||u.deviceBulk||t?.script||"antigravity"===e||"kiro"===e?(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-text-subtle",children:["Operasi ",t?.label||e]}),t?.script?(0,s.jsx)(f,{info:t}):null,u.deviceBulk?(0,s.jsx)(g,{providerId:e,onChanged:c}):null,u.selective?(0,s.jsx)(v,{rows:n.length?n:a,running:i,runOp:o}):null,"antigravity"===e?(0,s.jsx)(k,{scanResults:l,running:i,onDelete:d}):null,"kiro"===e?(0,s.jsx)(N,{scanResults:l}):null,u.refresh?(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"autorenew",disabled:i||!a?.length,onClick:()=>o("refresh").then(e=>e&&c?.()),title:"Perbarui access token semua akun provider ini tanpa login ulang (menu 6 skrip cline)",children:"Refresh token"}),(0,s.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Tanpa login ulang; token mati dilaporkan per akun."})]}):null,u.verify?(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"verified",disabled:i||!a?.length,onClick:()=>o("verify"),title:"Uji setiap key dengan inferensi nyata — 401/402/429 dibedakan (check_key_quota_live)",children:"Verifikasi key"}),(0,s.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Inferensi nyata per key: valid / ditolak / habis / laju."})]}):null,u.cleanup?(0,s.jsx)(w,{rows:a,running:i,onDelete:d}):null,u.blocked?(0,s.jsx)(S,{rows:a,running:i,onDelete:d}):null,u.patternDelete?(0,s.jsx)(C,{rows:n.length?n:a,running:i,onDelete:d}):null,u.expiryOps?(0,s.jsx)(T,{rows:a,running:i,runOp:o,onDelete:d,onChanged:c}):null,u.inactive?(0,s.jsx)($,{rows:a,running:i,onDelete:d}):null,(0,s.jsx)(M,{providerId:e,accountsFile:t?.script?.accountsFile})]}):null}function f({info:e}){let t=e?.script,[a,l]=(0,n.useState)(!1),{copied:i,copy:o}=(0,m.C)();return t?(0,s.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",open:!0,children:[(0,s.jsx)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:"Tambah akun baru via script — salin perintah, jalan lokal"}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,s.jsxs)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",children:[(0,s.jsxs)("li",{children:["Buat berkas ",(0,s.jsx)("code",{className:"font-mono text-text-main",children:t.accountsFile})," di bawah (paste email + 1 password → Unduh) — bentuk ",(0,s.jsx)("code",{className:"font-mono text-text-main",children:t.format}),"."]}),(0,s.jsxs)("li",{children:["Jalankan di terminal, di folder scriptnya (",(0,s.jsx)("code",{className:"font-mono text-text-main",children:"C:\\Users\\Developer\\cliproxyapi"}),"):"]})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-lg border border-border bg-surface px-2 py-1.5",children:[(0,s.jsx)("code",{className:"min-w-0 flex-1 break-all font-mono text-[11px] text-text-main",children:t.command}),(0,s.jsxs)("button",{type:"button",onClick:()=>o(t.command,"script-cmd"),className:"flex shrink-0 items-center gap-1 rounded-md border border-border px-2 py-1 text-[11px] font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"script-cmd"===i?"check":"content_copy"}),"script-cmd"===i?"Tersalin":"Salin"]})]}),t.extra?(0,s.jsxs)("p",{className:"text-[11px] text-text-subtle",children:["Flag berguna: ",(0,s.jsx)("code",{className:"font-mono",children:t.extra})]}):null,(0,s.jsx)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",start:3,children:(0,s.jsx)("li",{children:"Script membuka browser dan login otomatis per akun. Setelah selesai, tekan Muat ulang — akun yang dipanen langsung muncul di tabel bawah (DB-nya sama, tanpa impor ulang)."})}),(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"refresh",onClick:()=>{window.location.reload(),l(!0)},children:a?"Memuat…":"Muat ulang"})})]})]}):null}function g({providerId:e,onChanged:t}){let[a,l]=(0,n.useState)(3),[i,o]=(0,n.useState)("idle"),[d,c]=(0,n.useState)(null),[u,x]=(0,n.useState)([]),[p,h]=(0,n.useState)(0),[b,f]=(0,n.useState)(""),[v,j]=(0,n.useState)(()=>Date.now()),k=(0,n.useRef)(0),N=(0,n.useRef)(!1),y=(0,n.useRef)(null),{copied:w,copy:S}=(0,m.C)(),C=u.length+p+1;(0,n.useEffect)(()=>()=>{N.current=!0,y.current&&clearTimeout(y.current)},[]),(0,n.useEffect)(()=>{if("waiting"!==i)return;let e=setInterval(()=>j(Date.now()),1e3);return()=>clearInterval(e)},[i]);let T=async()=>{let t=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),a=await t.json().catch(()=>({}));if(!t.ok)throw Error(a?.error||`HTTP ${t.status}`);let s=a.verificationUriComplete||a.verificationUri;return s&&window.open(s,"_blank","noopener,noreferrer"),{deviceCode:a.deviceCode,codeVerifier:a.codeVerifier,extraData:a.extraData,userCode:a.userCode,verificationUri:a.verificationUri,verificationUriComplete:a.verificationUriComplete,interval:a.interval||5,deadline:Date.now()+(a.expiresIn?1e3*a.expiresIn:9e5)}},$=(a,s)=>new Promise(n=>{let r=null,l=e=>{y.current&&clearTimeout(y.current),n(e)},i=async()=>{if(N.current||k.current!==a)return l("stopped");if(!r){try{r=await T()}catch(e){if(k.current!==a||N.current)return l("stopped");return f(e?.message||"Gagal meminta kode"),l("stopped")}if(k.current!==a||N.current)return l("stopped");c({...r,index:s}),f("")}let n={};try{let t=await fetch("/api/automation/device/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,deviceCode:r.deviceCode,codeVerifier:r.codeVerifier,extraData:r.extraData})});n=await t.json().catch(()=>({}))}catch{if(k.current!==a||N.current)return l("stopped");y.current=setTimeout(i,5e3);return}return k.current!==a||N.current?l("stopped"):n.success?(x(e=>[...e,n.connection]),t?.(),l("ok")):n.pending?Date.now()>r.deadline?(f("Waktu habis — kode kedaluwarsa. Antrean berhenti di sini."),l("stopped")):void(y.current=setTimeout(i,1e3*(r.interval||5))):(f(n.errorDescription||n.error||"Gagal menukar token"),l("stopped"))};i()}),M=async()=>{let e=Math.max(1,Math.min(50,Number(a)||1)),t=k.current+1;k.current=t,N.current=!1,x([]),h(0),f(""),c(null),o("waiting");for(let a=0;a<e&&"ok"===await $(t,a+1);a++);c(null),o("done")},D="waiting"===i,_=d?.deadline?Math.max(0,Math.floor((d.deadline-v)/1e3)):0;return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Tambah bulk via device",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"sepenuhnya via web — kamu yang menyetujui di browser"})]}),"idle"===i||"done"===i?(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"w-32",children:(0,s.jsx)(r.pd,{label:"Jumlah akun",type:"number",value:a,onChange:e=>l(e.target.value),disabled:D})}),(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"login",disabled:D,onClick:M,children:"Mulai antrean"}),u.length>0||p>0?(0,s.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:["Terakhir: ",u.length," tersimpan",p?`, ${p} dilewati`:"","."]}):null]}):null,b?(0,s.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:b}):null,D&&d?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-border bg-surface p-3",children:[(0,s.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:["Akun ",d.index||C," — setujui di browser, lalu otomatis lanjut.",_>0?` Kode kedaluwarsa dalam ${Math.floor(_/60)}:${String(_%60).padStart(2,"0")}.`:""]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("code",{className:"rounded-lg bg-bg-subtle px-3 py-1.5 font-mono text-base font-semibold tracking-wider text-text-main",children:d.userCode||"—"}),(0,s.jsxs)("button",{type:"button",onClick:()=>S(d.userCode||"","bulk-code"),className:"flex items-center gap-1 rounded-lg border border-border px-2 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"bulk-code"===w?"check":"content_copy"}),"bulk-code"===w?"Tersalin":"Salin"]}),d.verificationUri?(0,s.jsx)("a",{href:d.verificationUriComplete||d.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary underline decoration-dotted underline-offset-2",children:"Buka verifikasi"}):null]}),(0,s.jsxs)("p",{className:"flex items-center gap-2 text-[11px] text-text-muted",children:[(0,s.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),"Menunggu persetujuan… (tab verifikasi sudah dibuka otomatis)"]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>{k.current+=1,y.current&&clearTimeout(y.current),h(e=>e+1),c(null),f(""),(async()=>{let e=k.current,t=u.length+p+1;"ok"!==await $(e,t)&&(c(null),o("done"))})()},children:"Lewati akun ini"}),(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>{N.current=!0,k.current+=1,y.current&&clearTimeout(y.current),c(null),o("done")},children:"Hentikan antrean"})]})]}):null,"done"!==i||D?null:(0,s.jsxs)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:["Selesai: ",u.length," akun tersimpan",p?`, ${p} dilewati`:"",". Tabel di bawah sudah dimuat ulang."]})]})}function v({rows:e,running:t,runOp:a}){let[l,i]=(0,n.useState)(""),[o,d]=(0,n.useState)(""),c=(0,n.useMemo)(()=>l.trim()?function(e,t){let a=Array.isArray(e)?e:[],s=String(t||"").trim().toLowerCase();if(!s||"all"===s)return a;let n=new Set;for(let e of s.split(",").map(e=>e.trim()).filter(Boolean))if(e.includes("-")){let[t,s]=e.split("-",2).map(e=>Number(e.trim()));if(!Number.isFinite(t)||!Number.isFinite(s))continue;let r=Math.max(1,Math.min(t,s)),l=Math.min(a.length,Math.max(t,s));for(let e=r;e<=l;e++)n.add(e-1)}else{let t=Number(e);Number.isFinite(t)&&t>=1&&t<=a.length&&n.add(t-1)}return[...n].sort((e,t)=>e-t).map(e=>a[e])}(e,l):null,[e,l]),u=e=>{if(d(""),!l.trim())return void d("Isi dulu nomornya — kosong berarti semua (pakai tombol di atas).");let t=(c||[]).map(e=>e.id);t.length?a(e,{ids:t}):d("Tidak ada nomor valid yang cocok.")};return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Cek akun tertentu",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip: nomor, koma, rentang, atau all"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{value:l,onChange:e=>i(e.target.value),placeholder:"mis. 50 \xb7 1, 5, 12 \xb7 1-10 \xb7 all",disabled:t})}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",disabled:t||!e?.length,onClick:()=>u("quota"),children:"Kuota pilihan"}),(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",disabled:t||!e?.length,onClick:()=>u("test"),children:"Tes pilihan"})]})]}),c?(0,s.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[c.length," dari ",e.length," akun cocok."]}):null,o?(0,s.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:o}):null]})}let j=[{value:"claude",label:"Claude & GPT 0%"},{value:"gemini",label:"Gemini 0%"},{value:"both",label:"Keduanya 0%"}];function k({scanResults:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)("both"),o=(0,n.useMemo)(()=>(function(e,t){let a=[];for(let s of Array.isArray(e)?e:[]){if(!s)continue;let e=s.groups||{},n="number"==typeof e.claudeGpt&&e.claudeGpt<1,r="number"==typeof e.gemini&&e.gemini<1;("claude"===t?n:"gemini"===t?r:n&&r)&&a.push({...s,deleteReason:"claude"===t?"Claude & GPT habis (< 1%)":"gemini"===t?"Gemini habis (< 1%)":"Keduanya habis (< 1%)"})}return a})(e,l),[e,l]);if(!e?.length)return null;let d=j.find(e=>e.value===l)?.label||l;return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus kuota 0% per grup",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 7 skrip ag — dari hasil pindaian terakhir"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("div",{className:"flex gap-1",role:"group","aria-label":"Kriteria grup",children:j.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>i(e.value),"aria-pressed":l===e.value,className:`h-7 shrink-0 rounded-[8px] px-2.5 text-[11px] font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${l===e.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:e.label},e.value))}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o.length,onClick:()=>{confirm(`Hapus permanen ${o.length} akun (${d})?`)&&a(o.map(e=>e.id))},children:["Hapus ",o.length," akun"]})]})]})}function N({scanResults:e}){let t=(0,n.useMemo)(()=>{let t=(e||[]).filter(e=>e?.pool&&Number.isFinite(e.pool.total)&&e.pool.total>0);if(!t.length)return null;let a=t.reduce((e,t)=>e+t.pool.used,0),s=t.reduce((e,t)=>e+t.pool.total,0);return{used:a,total:s,remaining:Math.max(0,s-a),accounts:t.length}},[e]);if(!t)return null;let a=t.total>0?Math.round(t.remaining/t.total*100):0;return(0,s.jsxs)("p",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50 px-3 py-2 text-xs tabular-nums text-text-main",children:["Total pool kuota: ",(0,s.jsx)("strong",{children:t.remaining.toLocaleString("en-US")})," / ",t.total.toLocaleString("en-US")," tersisa",(0,s.jsxs)("span",{className:"ml-2 text-text-muted",children:["(",a,"% \xb7 ",t.accounts," akun terbaca)"]})]})}let y=["mati","limit","error","expired"];function w({rows:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)("mati"),o=(0,n.useMemo)(()=>(function(e,t,a=Date.now()){let s=[];for(let n of e||[])(function(e,t=Date.now()){if(!e)return null;let a=e.expiresAt?Date.parse(e.expiresAt):NaN;return Number.isFinite(a)&&a<=t?"expired":"invalid"===e.errorState?"mati":"rate_limited"===e.errorState?"limit":"transient"===e.errorState||"other"===e.errorState?"error":null})(n,a)===t&&s.push({...n,id:n.id,email:n.email,name:n.name,provider:p(n),state:t,deleteReason:h[t]||t});return s})(e,l),[e,l]);return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Bersihkan per kategori",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip cline — dibaca dari daftar akun"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("div",{className:"flex flex-wrap gap-1",role:"group","aria-label":"Kategori cline",children:y.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>i(e),"aria-pressed":l===e,className:`h-7 shrink-0 rounded-[8px] px-2.5 text-[11px] font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${l===e?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:h[e]},e))}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o.length,onClick:()=>{confirm(`Hapus permanen ${o.length} akun kategori ${h[l]}?`)&&a(o.map(e=>e.id))},children:["Hapus ",o.length," akun"]})]})]})}function S({rows:e,running:t,onDelete:a}){let l=(0,n.useMemo)(()=>(e||[]).filter(e=>{let t=String(e.lastError||"").toLowerCase();return/spending.?limit|personal-team-blocked|team.?blocked|\bblocked\b/.test(t)||"depleted"===e.errorState}),[e]);return l.length?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus akun BLOCKED",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 6 skrip grok — tim diblokir / spending-limit / kuota habis"})]}),(0,s.jsx)("div",{children:(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t,onClick:()=>{confirm(`Hapus permanen ${l.length} akun BLOCKED?`)&&a(l.map(e=>e.id))},children:["Hapus ",l.length," akun"]})})]}):null}function C({rows:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)(""),o=(0,n.useMemo)(()=>{let t=l.trim().toLowerCase();return t?(e||[]).filter(e=>[e.email,e.name,e.id].some(e=>String(e||"").toLowerCase().includes(t))):null},[e,l]);return e?.length?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus by-pattern",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 8 skrip grok — substring email/nama"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{value:l,onChange:e=>i(e.target.value),placeholder:"mis. @gmaoiil.com",disabled:t})}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o?.length,onClick:()=>{!o?.length||confirm(`Hapus permanen ${o.length} akun yang cocok "${l.trim()}"?`)&&(a(o.map(e=>e.id)),i(""))},children:["Hapus",o?.length?` ${o.length}`:""," akun"]})]}),o?(0,s.jsxs)("div",{className:"text-[11px] text-text-muted",children:[(0,s.jsxs)("p",{className:"tabular-nums",children:[o.length," cocok."]}),o.slice(0,10).map(e=>(0,s.jsx)("p",{className:"truncate font-mono",children:e.email||e.name||e.id},e.id)),o.length>10?(0,s.jsxs)("p",{children:["…dan ",o.length-10," lainnya."]}):null]}):null]}):null}function T({rows:e,running:t,runOp:a,onDelete:l,onChanged:i}){let[o,d]=(0,n.useState)(0),c=(0,n.useMemo)(()=>(function(e,{hoursAhead:t=0,nowMs:a=Date.now()}={}){let s=[];for(let n of e||[]){if(!n||!1===n.isActive)continue;let e=n.expiresAt??n?.data?.expiresAt??n?.providerSpecificData?.expiresAt;if(null==e||""===e||"None"===e||"null"===e)continue;let r=Date.parse(e);if(!Number.isFinite(r))continue;let l=r-a;l<=36e5*t&&s.push({...n,id:n.id,email:n.email,name:n.name,provider:p(n),state:l<=0?"expired":"expiring",expiresAt:new Date(r).toISOString(),remainingMs:l,deleteReason:l<=0?"Masa berlaku habis":"Segera kedaluwarsa"})}return s.sort((e,t)=>e.remainingMs-t.remainingMs),s})(e,{hoursAhead:Number(o)||0}),[e,o]);return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Kedaluwarsa",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5-6 skrip tokenharbor — gagal parse = permanen"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,s.jsx)("div",{className:"w-32",children:(0,s.jsx)(r.pd,{label:"Lihat N jam ke depan",type:"number",value:o,onChange:e=>d(e.target.value),disabled:t})}),(0,s.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:[c.length," akun",Number(o)>0?` (kedaluwarsa + ${o}j ke depan)`:" kedaluwarsa","."]})]}),c.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[c.slice(0,20).map(e=>(0,s.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:e.email||e.name||e.id}),(0,s.jsx)("span",{className:"shrink-0 tabular-nums text-text-muted",children:function(e){if(e<=0)return"kedaluwarsa";let t=Math.floor(e/6e4);if(t<60)return`${t}m lagi`;let a=Math.floor(t/60);return a<48?`${a}j lagi`:`${Math.floor(a/24)}h lagi`}(e.remainingMs)})]},e.id)),c.length>20?(0,s.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",c.length-20," lainnya."]}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsxs)(r.$n,{size:"sm",variant:"secondary",icon:"pause_circle",disabled:t,onClick:()=>a("deactivate",{ids:c.map(e=>e.id)}).then(e=>e&&i?.()),title:"UPDATE isActive=0 — perilaku default skrip; baris tetap ada dan bisa diaktifkan lagi",children:["Nonaktifkan ",c.length]}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t,onClick:()=>{confirm(`Hapus permanen ${c.length} akun kedaluwarsa?`)&&l(c.map(e=>e.id))},title:"Hapus baris permanen — --delete-expired di skrip",children:["Hapus ",c.length]})]})]}):null]})}function $({rows:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)(!1),o=(0,n.useMemo)(()=>(function(e){let t=[];for(let a of e||[]){if(!a||!1!==a.isActive)continue;let e=function(e){let t=String(e?.lastError||""),a=Number(e?.errorCode);if(/invalid_grant|revoked/i.test(t))return"invalid_grant";let s=/domain_dead:([^\s,;]+)/i.exec(t);return s?`domain_dead:${s[1]}`:401===a||/\b401\b/.test(t)?"auth_401":e?.testStatus==="error"||a>=400?"error_status":t?"lainnya":"tanpa_alasan"}(a);t.push({...a,id:a.id,email:a.email,name:a.name,provider:p(a),state:"inactive",inactiveReason:e,deleteReason:`Nonaktif (${e})`})}return t})(e),[e]),d=(0,n.useMemo)(()=>l?function(e){let t={};for(let a of e||[]){let e=String(a?.email||""),s=e.includes("@")?e.split("@").pop().toLowerCase():"(tanpa email)",n=t[s]||={domain:s,total:0,active:0,inactive:0};n.total++,!1===a.isActive?n.inactive++:n.active++}let a=Object.values(t).sort((e,t)=>t.total-e.total);for(let e of a)e.dead=e.total>0&&0===e.active;return a}(e):[],[l,e]);return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Akun nonaktif",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 12 skrip ag — dry-run dulu, hapus sesudahnya"})]}),(0,s.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[o.length," nonaktif dari ",e?.length||0," akun. Alasan per akun terlihat di bawah."]}),o.length>0?(0,s.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[o.slice(0,20).map(e=>(0,s.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:e.email||e.name||e.id}),(0,s.jsx)("span",{className:"shrink-0 font-mono text-text-subtle",children:e.inactiveReason})]},e.id)),o.length>20?(0,s.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",o.length-20," lainnya."]}):null]}):null,(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>i(e=>!e),"aria-expanded":l,children:l?"Sembunyikan":"Sebaran domain"}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o.length,onClick:()=>{confirm(`Hapus permanen ${o.length} akun nonaktif?`)&&a(o.map(e=>e.id))},children:["Hapus ",o.length," nonaktif"]})]}),l?(0,s.jsx)("ul",{className:"flex flex-col gap-1",children:d.map(e=>(0,s.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px] tabular-nums",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:e.domain}),(0,s.jsxs)("span",{className:"shrink-0 text-text-muted",children:[e.total," akun \xb7 ",e.active," aktif",e.dead?" \xb7 domain mati total":""]})]},e.domain))}):null]})}function M({providerId:e,accountsFile:t}){let[a,l]=(0,n.useState)(""),[i,o]=(0,n.useState)(""),d="cline"===e||"kiro"===e||"bai"===e?"|":":",c=(0,n.useMemo)(()=>{let e=new Set,t=[];for(let s of a.split("\n")){let a=s.trim();if(!a||!a.includes("@"))continue;let n=a.toLowerCase();e.has(n)||(e.add(n),t.push(`${a}${d}${i}`))}return t},[a,i,d]);return(0,s.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,s.jsx)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:"Buat berkas akun — paste email + 1 password"}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,s.jsxs)("p",{className:"text-[11px] text-text-muted",children:["Keluaran ",(0,s.jsxs)("code",{className:"font-mono",children:["email",d,"password"]})," per baris →"," ",(0,s.jsx)("code",{className:"font-mono",children:t||`accounts_${e||"bulk"}.txt`})," — bentuk yang dimakan skrip tambah-akun. Tidak dikirim ke mana pun; berkas dibuat di browser."]}),(0,s.jsx)("textarea",{value:a,onChange:e=>l(e.target.value),spellCheck:!1,"aria-label":"Daftar email, satu per baris",placeholder:"satu email per baris\nbaris tanpa @ dilewati, duplikat dibuang",className:"min-h-[80px] w-full resize-y rounded-lg border border-border bg-surface p-2 font-mono text-xs text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45"}),(0,s.jsx)(r.pd,{label:"Satu password untuk semua",type:"text",value:i,onChange:e=>o(e.target.value),placeholder:"password seragam"}),(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsxs)(r.$n,{size:"sm",variant:"secondary",icon:"description",disabled:!c.length||!i,onClick:()=>{if(!c.length||!i)return;let a=new Blob([c.join("\n")+"\n"],{type:"text/plain; charset=utf-8"}),s=URL.createObjectURL(a),n=document.createElement("a");n.href=s,n.download=t||`accounts_${e||"bulk"}.txt`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(s)},children:["Unduh ",c.length," baris"]})})]})]})}let D=[{value:"all",label:"Semua"},{value:"active",label:"Aktif"},{value:"problem",label:"Bermasalah"}];function _({providerId:e,onBack:t}){let[a,l]=(0,n.useState)(null),[i,o]=(0,n.useState)(null),[c,m]=(0,n.useState)(""),[p,h]=(0,n.useState)("all"),[f,g]=(0,n.useState)(()=>new Set),[v,j]=(0,n.useState)(""),[k,N]=(0,n.useState)(""),[y,w]=(0,n.useState)(0),[S,C]=(0,n.useState)(null),T=function(){let[e,t]=(0,n.useState)(()=>{let e=localStorage.getItem(d);return e?{id:e,seq:0}:null}),[a,s]=(0,n.useState)({status:"idle",results:[],done:0,total:0}),r=(0,n.useRef)(0);(0,n.useEffect)(()=>{if(!e?.id)return;let t=!1,a=null;r.current=0;let n=async()=>{if(!t)try{let l=await fetch(`/api/automation/jobs/${e.id}?since=${r.current}`,{cache:"no-store"});if(t)return;if(404===l.status){localStorage.removeItem(d),s({status:"idle",results:[],done:0,total:0});return}let i=await l.json();if(t)return;r.current=i.nextSince??r.current,s(e=>({...e,...i,results:[...e.results||[],...i.results||[]]})),"running"===i.status?a=setTimeout(n,700):localStorage.removeItem(d)}catch{t||(a=setTimeout(n,2e3))}};return queueMicrotask(n),()=>{t=!0,a&&clearTimeout(a)}},[e]);let l=(0,n.useCallback)((e,a={})=>{localStorage.setItem(d,e),s({id:e,status:"running",results:[],done:0,total:a.total??0,ok:0,failed:0,kind:a.kind??null,label:a.label??""}),t(t=>({id:e,seq:(t?.seq??0)+1}))},[]),i=(0,n.useCallback)(async()=>{a.id&&await fetch(`/api/automation/jobs/${a.id}`,{method:"DELETE"}).catch(()=>{})},[a.id]),o=(0,n.useCallback)(()=>{localStorage.removeItem(d),t(null),s({status:"idle",results:[],done:0,total:0})},[]);return{...a,watch:l,cancel:i,reset:o}}(),$=(0,n.useCallback)(async()=>{let[t,a]=await Promise.all([fetch("/api/automation/overview",{cache:"no-store"}),fetch(`/api/automation/connections?provider=${encodeURIComponent(e)}&catalogueId=${encodeURIComponent(e)}`,{cache:"no-store"})]);if(!t.ok)throw Error(`HTTP ${t.status}`);if(!a.ok)throw Error(`HTTP ${a.status}`);let s=await t.json(),n=await a.json();l(s.providers?.find(t=>t.id===e)||null),o(n.connections||[])},[e]);(0,n.useEffect)(()=>{let e=!1;return queueMicrotask(async()=>{if(!e){j("");try{await $()}catch(t){e||j(t.message||"Gagal memuat akun")}}}),()=>{e=!0}},[$,y]);let M=(0,n.useMemo)(()=>{let e={};for(let t of T.results||[])t?.id&&(e[t.id]=t);return e},[T.results]),z=(0,n.useMemo)(()=>{if(!i)return[];let e=c.trim().toLowerCase();return i.filter(t=>{if(e&&![t.email,t.name,t.id].some(t=>String(t||"").toLowerCase().includes(e)))return!1;let a=M[t.id];return"active"===p?"active"===t.status:"problem"!==p||a&&["depleted","critical","low"].includes(a.state)||"invalid"===t.errorState||"depleted"===t.errorState||"cooling"===t.status})},[i,c,p,M]),H=async(t,a={})=>{j(""),N("");let s=await fetch("/api/automation/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({op:t,provider:e,...a})}),n=await s.json().catch(()=>({}));return s.ok?(n.jobId&&T.watch(n.jobId,{total:n.total,kind:t}),n):(j(n?.error||`HTTP ${s.status}`),null)},U=async e=>{!e.length||await H("delete",{ids:e,reason:"manual"})&&(g(new Set),w(e=>e+1))},E=(0,n.useMemo)(()=>i?i.map(e=>({...e,...M[e.id]||{}})).filter(e=>"depleted"===e.state||"invalid"===e.errorState||"depleted"===e.errorState):[],[i,M]),I="running"===T.status;return v&&!i?(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",icon:"arrow_back",onClick:t,children:"Kembali"}),(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:v})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:(0,s.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:t,"aria-label":"Kembali ke daftar provider",className:"mt-0.5 rounded-md p-1 text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"arrow_back"})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-text-main",children:[a?.label||e,(0,s.jsxs)("span",{className:"ml-2 font-normal tabular-nums text-text-muted",children:[i?.length??0," akun"]})]}),a?.note?(0,s.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:a.note}):null]})]})}),k?(0,s.jsx)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:k}):null,v?(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:v}):null,(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a?.kinds.quota?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"data_usage",disabled:I||!i?.length,onClick:()=>H("quota"),children:"Cek kuota"}):null,a?.kinds.test?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"network_check",disabled:I||!i?.length,onClick:()=>H("test"),children:"Tes koneksi"}):null,a?.kinds.prompt?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"chat",disabled:!i?.length,onClick:()=>C(z[0]||i[0]),children:"Tes prompt"}):null,a?.kinds.calls==="device"?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"login",onClick:()=>{t()},title:"Login device ada di tab Tambah via OAuth",children:"Login device"}):null,(0,s.jsxs)("a",{href:`/api/automation/generate-txt?provider=${encodeURIComponent(e)}`,className:"inline-flex h-7 items-center gap-1.5 rounded-[8px] border border-border px-3 text-xs font-semibold text-text-main transition-colors hover:bg-surface-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"description"}),"Generate TXT"]}),f.size>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:[f.size," dipilih"]}),(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>g(new Set),children:"Batal"}),(0,s.jsx)(r.$n,{size:"sm",variant:"danger",icon:"delete",disabled:I,onClick:()=>{confirm(`Hapus permanen ${f.size} akun? Tidak bisa dibatalkan.`)&&U([...f])},children:"Hapus"})]}):null]}),(0,s.jsx)(P,{providerId:e,info:a,onDone:e=>{N(e),w(e=>e+1)}}),(0,s.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{label:"Cari",value:c,onChange:e=>m(e.target.value),placeholder:"email, nama, atau id"})}),(0,s.jsx)("div",{className:"flex gap-1",children:D.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>h(e.value),"aria-pressed":p===e.value,className:`h-9 shrink-0 rounded-[10px] px-3 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${p===e.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:e.label},e.value))})]})]}),(0,s.jsx)(b,{providerId:e,info:a,rows:i||[],visible:z,scanResults:T.results||[],running:I,runOp:H,onDelete:U,onChanged:()=>w(e=>e+1)}),"idle"!==T.status?(0,s.jsx)(u,{job:T}):null,!I&&E.length>0?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-warning/30 bg-warning/10 p-4",children:[(0,s.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[E.length," akun layak dipertimbangkan untuk dihapus"]}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Kuota habis atau kredensial ditolak provider. Kesalahan jaringan, laju, dan prompt kepanjangan sengaja TIDAK masuk daftar ini."}),(0,s.jsx)("div",{children:(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",onClick:()=>{confirm(`Hapus permanen ${E.length} akun?`)&&U(E.map(e=>e.id))},children:["Hapus ",E.length," akun"]})})]}):null,(0,s.jsx)("div",{className:"overflow-x-auto rounded-[14px] border border-border bg-surface",children:(0,s.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,s.jsxs)("caption",{className:"sr-only",children:["Akun ",a?.label||e]}),(0,s.jsx)("thead",{className:"bg-bg-subtle text-[10px] uppercase tracking-wide text-text-muted",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{scope:"col",className:"w-8 px-3 py-2",children:(0,s.jsx)("input",{type:"checkbox","aria-label":"Pilih semua yang terlihat",checked:z.length>0&&f.size>=z.length,onChange:e=>g(e.target.checked?new Set(z.map(e=>e.id)):new Set),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Akun"}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Status"}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Kuota"}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 text-right font-medium",children:"Aksi"})]})}),(0,s.jsx)("tbody",{className:"divide-y divide-border-subtle",children:null===i?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:"Memuat…"})}):0===z.length?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:i.length?"Tidak ada akun yang cocok.":"Belum ada akun."})}):z.map(e=>{var t;let a=M[e.id];return(0,s.jsxs)("tr",{className:"transition-colors hover:bg-bg-hover",children:[(0,s.jsx)("td",{className:"px-3 py-2",children:(0,s.jsx)("input",{type:"checkbox","aria-label":`Pilih ${e.email||e.name||e.id}`,checked:f.has(e.id),onChange:()=>g(t=>{let a=new Set(t);return a.has(e.id)?a.delete(e.id):a.add(e.id),a}),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,s.jsxs)("td",{className:"px-3 py-2",children:[(0,s.jsx)("div",{className:"font-medium text-text-main",children:e.email||e.name||`${e.id.slice(0,8)}…`}),(0,s.jsx)("div",{className:"font-mono text-[10px] text-text-subtle",children:e.keyPreview||e.model||"—"})]}),(0,s.jsxs)("td",{className:"px-3 py-2",children:[(0,s.jsx)("span",{className:"active"===e.status?"text-success":"cooling"===e.status?"text-warning":"text-text-muted",children:"active"===e.status?"aktif":"cooling"===e.status?"cooldown":"nonaktif"}),e.errorReasonCode&&"request_too_large"!==e.errorState?(0,s.jsx)("div",{className:"max-w-[14rem] truncate text-[10px] text-text-subtle",title:String(e.lastError||""),children:e.errorReasonCode}):null]}),(0,s.jsx)("td",{className:"px-3 py-2 tabular-nums",children:a?.remaining!=null?(0,s.jsxs)("span",{className:"depleted"===a.state?"text-error":"low"===a.state?"text-warning":"text-success",children:[a.remaining,"%"]}):a?.state?(0,s.jsx)("span",{className:"text-text-muted",children:{healthy:"Sehat",low:"Menipis",critical:"Kritis",depleted:"Habis",unlimited:"Tanpa batas",unsupported:"Tidak ada cek",unknown:"Tidak terbaca"}[t=a.state]||t}):(0,s.jsx)("span",{className:"text-text-subtle",children:"—"})}),(0,s.jsxs)("td",{className:"px-3 py-2 text-right",children:[(0,s.jsx)("button",{type:"button",onClick:()=>C(e),"aria-label":`Tes prompt pada ${e.email||e.name||e.id}`,className:"rounded-md p-1 text-text-subtle transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"chat"})}),(0,s.jsx)("button",{type:"button",onClick:()=>{confirm(`Hapus ${e.email||e.name||e.id}?`)&&U([e.id])},"aria-label":`Hapus ${e.email||e.name||e.id}`,className:"rounded-md p-1 text-text-subtle transition-colors hover:bg-error/10 hover:text-error focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"delete"})})]})]},e.id)})})]})}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:["Menampilkan ",z.length," dari ",i?.length??0," akun."]}),S?(0,s.jsx)(x,{connection:S,onClose:()=>C(null)}):null]})}function P({providerId:e,info:t,onDone:a}){let[l,i]=(0,n.useState)(""),[o,d]=(0,n.useState)(!1),[c,u]=(0,n.useState)(""),x={antigravity:"email:refreshToken","grok-cli":"email:refreshToken",cline:"email:accessToken:refreshToken",freebuff:"email:accessToken",bai:"email:sk-...",tokenharbour:"email:thk_...",kiro:"email:refreshToken"}[e]||"email:token",m=async()=>{let t=l.split("\n").map(e=>e.trim()).filter(e=>e&&!e.startsWith("#"));if(t.length){d(!0),u("");try{let s=await fetch("/api/automation/import-lines",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,lines:t})}),n=await s.json().catch(()=>({}));if(!s.ok)return void u(n?.error||`HTTP ${s.status}`);i(""),a(`${n.success} akun diimpor${n.skipped?`, ${n.skipped} dilewati (sudah ada)`:""}${n.failed?`, ${n.failed} gagal`:""}`)}catch(e){u(e.message||"Impor gagal")}finally{d(!1)}}},p=async e=>{let t=e.target.files?.[0];t&&(i(await t.text()),e.target.value="")};return(0,s.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,s.jsxs)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:["Impor kredensial — bentuk ",(0,s.jsx)("code",{className:"font-mono",children:x})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,s.jsx)("textarea",{value:l,onChange:e=>i(e.target.value),disabled:o,spellCheck:!1,"aria-label":"Baris kredensial",placeholder:x,className:"min-h-[90px] w-full resize-y rounded-lg border border-border bg-surface p-2 font-mono text-xs text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 disabled:opacity-50"}),c?(0,s.jsx)("p",{role:"alert",className:"text-xs font-medium text-error",children:c}):null,(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",onClick:m,disabled:o||!l.trim(),loading:o,children:"Impor"}),(0,s.jsxs)("label",{className:"flex h-7 cursor-pointer items-center gap-1 rounded-[8px] border border-border px-3 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"upload_file"}),"Pilih berkas",(0,s.jsx)("input",{type:"file",accept:".txt,.json,text/plain",onChange:p,className:"hidden"})]})]})]})]})}function z(){let[e,t]=(0,n.useState)(null),[a,l]=(0,n.useState)(""),[i,o]=(0,n.useState)(""),[d,c]=(0,n.useState)("idle"),[u,x]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[b,f]=(0,n.useState)(""),[g,v]=(0,n.useState)(null),{copied:j,copy:k}=(0,m.C)();(0,n.useEffect)(()=>{let e=!1;return fetch("/api/automation/providers").then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(a=>{e||(t(a.providers||[]),l(e=>e||a.providers?.[0]?.id||""))}).catch(t=>{e||f(t.message)}),()=>{e=!0}},[]),(0,n.useEffect)(()=>{if(!p)return;let e=!1,t=null,a=async()=>{if(!e)try{let s=await fetch("/api/automation/device/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:p.provider,deviceCode:p.deviceCode,codeVerifier:p.codeVerifier,extraData:p.extraData})}),n=await s.json().catch(()=>({}));if(e)return;if(n.success){c("done"),v(n.connection),h(null);return}if(n.pending){if(Date.now()>p.deadline){c("error"),f("Waktu habis sebelum kamu menyetujui di browser. Coba mulai lagi."),h(null);return}t=setTimeout(a,1e3*(p.interval||5));return}c("error"),f(n.errorDescription||n.error||"Gagal menukar token"),h(null)}catch(t){if(e)return;c("error"),f(t.message||"Polling gagal"),h(null)}};return a(),()=>{e=!0,t&&clearTimeout(t)}},[p]);let N=e?.find(e=>e.id===a)||null,y=async()=>{if(a){c("starting"),f(""),v(null),x(null),h(null);try{let e=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,startUrl:i||void 0})}),t=await e.json().catch(()=>({}));if(!e.ok){c("error"),f(t?.error||`HTTP ${e.status}`);return}x(t),c("waiting");let s=t.verificationUriComplete||t.verificationUri;s&&window.open(s,"_blank","noopener,noreferrer"),h({provider:a,deviceCode:t.deviceCode,codeVerifier:t.codeVerifier,extraData:t.extraData,interval:t.interval||5,deadline:Date.now()+(t.expiresIn?1e3*t.expiresIn:9e5)})}catch(e){c("error"),f(e.message||"Tidak bisa memulai alur")}}},w="starting"===d||"waiting"===d;return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{htmlFor:"automation-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,s.jsx)("select",{id:"automation-provider",value:a,onChange:e=>l(e.target.value),disabled:w,className:"w-full rounded-[10px] border border-border bg-surface px-3 py-2 text-sm text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 disabled:opacity-50",children:(e||[]).map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})]}),N?.hint?(0,s.jsx)("p",{className:"text-xs text-text-muted",children:N.hint}):null,N?.needsStartUrl?(0,s.jsx)(r.pd,{label:"Start URL (IDC)",value:i,onChange:e=>o(e.target.value),placeholder:"https://d-xxxxxxxxxx.awsapps.com/start",hint:"Kosongkan kalau memakai AWS Builder ID biasa.",disabled:w}):null,(0,s.jsx)("div",{children:(0,s.jsx)(r.$n,{onClick:y,disabled:!a||w,loading:"starting"===d,children:"waiting"===d?"Menunggu persetujuan…":"Mulai"})})]}),b&&"error"===d?(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:b}):null,u&&"done"!==d?(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("span",{className:"text-sm font-medium text-text-main",children:"Kode verifikasi"}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("code",{className:"rounded-lg bg-bg-subtle px-3 py-1.5 font-mono text-base font-semibold tracking-wider text-text-main",children:u.userCode||"—"}),(0,s.jsxs)("button",{type:"button",onClick:()=>k(u.userCode||"","userCode"),className:"flex items-center gap-1 rounded-lg border border-border px-2 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"userCode"===j?"check":"content_copy"}),"userCode"===j?"Tersalin":"Salin"]})]})]}),u.verificationUri?(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:["Buka"," ",(0,s.jsx)("a",{href:u.verificationUriComplete||u.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"break-all text-primary underline decoration-dotted underline-offset-2",children:u.verificationUri})," ","lalu masukkan kode di atas."]}):null,"waiting"===d?(0,s.jsxs)("p",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,s.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),"Menunggu kamu menyetujui di browser. Halaman ini lanjut sendiri."]}):null]}):null,"done"===d&&g?(0,s.jsxs)("p",{className:"flex items-center gap-2 rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-sm font-medium text-success",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check_circle"}),"Akun ",g.provider," tersimpan. Tambah lagi kapan saja, atau lihat di halaman Providers."]}):null]})}function H(){let[e,t]=(0,n.useState)(""),[a,l]=(0,n.useState)([]),[i,o]=(0,n.useState)("");(0,n.useEffect)(()=>{fetch("/api/automation/providers").then(e=>e.ok?e.json():null).then(e=>{e?.providers&&l(e.providers)}).catch(()=>{})},[]);let d=async t=>{o(t);try{let a=new URLSearchParams({format:t});e&&a.set("provider",e);let s=await fetch(`/api/automation/export?${a.toString()}`);if(!s.ok)throw Error(`HTTP ${s.status}`);let n=await s.blob(),r=URL.createObjectURL(n),l=document.createElement("a");l.href=r;let i=s.headers.get("content-disposition")||"",o=/filename="([^"]+)"/.exec(i);l.download=o?.[1]||`9router-accounts.${"txt"===t?"txt":"json"}`,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(r)}catch(e){alert(`Export gagal: ${e.message}`)}finally{o("")}};return(0,s.jsx)("div",{className:"flex flex-col gap-4",children:(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{htmlFor:"automation-export-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,s.jsxs)("select",{id:"automation-export-provider",value:e,onChange:e=>t(e.target.value),className:"w-full rounded-[10px] border border-border bg-surface px-3 py-2 text-sm text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("option",{value:"",children:"Semua provider"}),a.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))]})]}),(0,s.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-warning/25 bg-warning/10 px-3 py-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[16px] text-warning","aria-hidden":"true",children:"warning"}),(0,s.jsxs)("p",{className:"text-xs text-text-main",children:["Berkasnya berisi ",(0,s.jsx)("strong",{children:"token akses penuh"})," ke akun-akun itu. Jangan di-commit ke git, dan jangan taruh di folder yang tersinkron ke cloud."]})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(r.$n,{variant:"secondary",icon:"download",onClick:()=>d("json"),loading:"json"===i,disabled:!!i,children:"Unduh JSON"}),(0,s.jsx)(r.$n,{variant:"secondary",icon:"description",onClick:()=>d("txt"),loading:"txt"===i,disabled:!!i,children:"Unduh TXT"})]}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"JSON bisa diimpor kembali lewat tab Bulk import, di mesin ini atau di mesin lain. TXT berbentuk tab (provider, authType, email, nama, token, refreshToken) untuk dibaca atau diolah skrip."})]})})}let U=[{value:"manage",label:"Kelola akun"},{value:"oauth",label:"Login device"},{value:"export",label:"Export semua"}];function E({onLock:e}){let[t,a]=(0,n.useState)("manage"),[l,o]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1),u=async()=>{c(!0);try{await fetch("/api/automation/gate",{method:"DELETE"})}finally{e()}};return(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-5",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,s.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Kelola akun provider: kuota, tes koneksi, tes prompt, impor, dan export."})]}),(0,s.jsxs)("button",{type:"button",onClick:u,disabled:d,className:"flex shrink-0 items-center gap-1.5 self-start rounded-lg border border-border bg-bg-subtle px-2.5 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"lock"}),(0,s.jsx)("span",{children:"Kunci lagi"})]})]}),(0,s.jsx)(r.Iz,{options:U,value:t,onChange:a,className:"w-full sm:w-auto"}),"manage"===t?l?(0,s.jsx)(_,{providerId:l,onBack:()=>o(null)}):(0,s.jsx)(i,{onPick:o}):null,"oauth"===t?(0,s.jsx)(z,{}):null,"export"===t?(0,s.jsx)(H,{}):null]})}function I(){let[e,t]=(0,n.useState)(null);return((0,n.useEffect)(()=>{let e=!1;return fetch("/api/automation/gate",{cache:"no-store"}).then(e=>e.ok?e.json():{unlocked:!1}).then(a=>{e||t(!!a.unlocked)}).catch(()=>{e||t(!1)}),()=>{e=!0}},[]),null===e)?(0,s.jsxs)("div",{className:"flex flex-col gap-3 py-10","aria-busy":"true",children:[(0,s.jsx)("div",{className:"h-6 w-40 animate-pulse rounded-lg bg-border-subtle/60"}),(0,s.jsx)("div",{className:"h-24 w-full max-w-md animate-pulse rounded-[14px] bg-border-subtle/60"})]}):e?(0,s.jsx)(E,{onLock:()=>t(!1)}):(0,s.jsx)(l,{onUnlock:()=>t(!0)})}},93623:(e,t,a)=>{Promise.resolve().then(a.bind(a,64881))}},e=>{e.O(0,[8123,6229,1321,705,5497,8441,3794,7358],()=>e(e.s=93623)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8593],{64881:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>I});var s=a(95155),n=a(12115),r=a(35497);function l({onUnlock:e}){let[t,a]=(0,n.useState)(""),[i,o]=(0,n.useState)(""),[d,c]=(0,n.useState)(!1),[u,x]=(0,n.useState)(0),m=async s=>{if(s.preventDefault(),t&&!d){c(!0),o("");try{let s=await fetch("/api/automation/gate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:t})}),n=await s.json().catch(()=>({}));if(!s.ok){o(n?.error||`Gagal membuka (HTTP ${s.status})`),a(""),x(e=>e+1);return}e()}catch(e){o(e.message||"Tidak bisa menghubungi server")}finally{c(!1)}}};return(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-md flex-col gap-4 py-10",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[22px] text-primary","aria-hidden":"true",children:"lock"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,s.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Halaman ini bisa menambah akun provider dan mengekspor kredensialnya ke berkas. Masukkan password automation untuk melanjutkan."})]})]}),(0,s.jsxs)("form",{onSubmit:m,className:"flex flex-col gap-3",children:[(0,s.jsx)(r.pd,{label:"Password",id:"automation-password",type:"password",value:t,onChange:e=>a(e.target.value),placeholder:"••••••••",autoComplete:"off",disabled:d,autoFocus:!0,"aria-invalid":i?"true":void 0,"aria-describedby":i?"automation-password-error":void 0},u),i?(0,s.jsx)("p",{id:"automation-password-error",role:"alert",className:"text-xs font-medium text-error",children:i}):null,(0,s.jsx)(r.$n,{type:"submit",disabled:d||!t,children:d?"Memeriksa…":"Buka"})]})]})}function i({onPick:e}){let[t,a]=(0,n.useState)(null),[r,l]=(0,n.useState)("");if((0,n.useEffect)(()=>{let e=!1;return fetch("/api/automation/overview",{cache:"no-store"}).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(t=>{e||a(t.providers||[])}).catch(t=>{e||l(t.message||"Gagal memuat provider")}),()=>{e=!0}},[]),r)return(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:r});if(!t)return(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","aria-busy":"true",children:[0,1,2,3,4,5].map(e=>(0,s.jsx)("div",{className:"h-32 animate-pulse rounded-[14px] bg-border-subtle/60"},e))});let d=t.reduce((e,t)=>e+t.counts.total,0);return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-text-main",children:"Pilih provider"}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:[d," akun di ",t.length," provider. Membuka salah satu akan menampilkan fitur yang tersedia untuknya."]})]}),(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map(t=>(0,s.jsxs)("button",{type:"button",onClick:()=>e(t.id),className:"group flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4 text-left transition-colors hover:border-primary/40 hover:bg-bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("div",{className:"truncate text-sm font-semibold text-text-main",children:t.label}),(0,s.jsx)("div",{className:"truncate font-mono text-[10px] text-text-subtle",children:t.source})]}),(0,s.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[18px] text-text-subtle transition-colors group-hover:text-primary","aria-hidden":"true",children:"chevron_right"})]}),(0,s.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,s.jsx)("span",{className:"tabular-nums text-2xl font-semibold text-text-main",children:t.counts.total}),(0,s.jsx)("span",{className:"text-xs text-text-muted",children:"akun"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs",children:[(0,s.jsxs)("span",{className:"text-success",children:[t.counts.active," aktif"]}),t.counts.problem>0?(0,s.jsxs)("span",{className:"text-error",children:[t.counts.problem," bermasalah"]}):null,t.counts.unknown>0?(0,s.jsxs)("span",{className:"text-text-subtle",children:[t.counts.unknown," perlu ditinjau"]}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1",children:[t.kinds.quota?(0,s.jsx)(o,{children:"Cek kuota"}):null,t.kinds.test?(0,s.jsx)(o,{children:"Tes koneksi"}):null,t.kinds.prompt?(0,s.jsx)(o,{children:"Tes prompt"}):null,"device"===t.kinds.calls?(0,s.jsx)(o,{children:"Login device"}):null]})]},t.id))})]})}function o({children:e}){return(0,s.jsx)("span",{className:"rounded-md bg-bg-subtle px-1.5 py-0.5 text-[10px] font-medium text-text-muted",children:e})}let d="automation:activeJob",c={quota:"Cek kuota",test:"Test koneksi",delete:"Hapus akun",refresh:"Refresh token",verify:"Verifikasi key",deactivate:"Nonaktifkan akun"};function u({job:e}){if(!e||"idle"===e.status)return null;let t=e.total>0?Math.round(e.done/e.total*100):0,a="running"===e.status;return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,s.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[c[e.kind]||e.label||"Memproses",(0,s.jsxs)("span",{className:"ml-2 tabular-nums text-text-muted",children:[e.done,"/",e.total]})]}),a?(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:e.cancel,children:"Hentikan"}):(0,s.jsx)("span",{className:"text-xs text-text-muted",children:"cancelled"===e.status?"Dihentikan":"Selesai"})]}),(0,s.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":t,"aria-label":"Kemajuan",className:"h-1.5 w-full overflow-hidden rounded-full bg-surface-3",children:(0,s.jsx)("div",{className:"h-full rounded-full bg-primary transition-[width] duration-300 ease-out",style:{width:`${t}%`}})}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:[(0,s.jsxs)("span",{className:"text-success",children:[e.ok," berhasil"]}),e.failed>0?(0,s.jsxs)(s.Fragment,{children:[" \xb7 ",(0,s.jsxs)("span",{className:"text-error",children:[e.failed," gagal"]})]}):null,e.error?` \xb7 ${e.error}`:""]})]})}function x({connection:e,onClose:t}){let[a,l]=(0,n.useState)("Balas dalam satu kalimat singkat: siapa kamu dan model apa ini?"),[i,o]=(0,n.useState)(e?.model||""),[d,c]=(0,n.useState)(200),[u,m]=(0,n.useState)(!1),[p,h]=(0,n.useState)(null),[b,f]=(0,n.useState)(""),g=async()=>{m(!0),f(""),h(null);try{let t=await fetch("/api/automation/test-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionId:e.id,prompt:a,model:i||void 0,maxTokens:Number(d)||200})}),s=await t.json().catch(()=>({}));if(!t.ok)return void f(s?.error||`HTTP ${t.status}`);h(s)}catch(e){f(e.message||"Permintaan gagal")}finally{m(!1)}};return(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center bg-black/40 p-0 sm:items-center sm:p-4",role:"dialog","aria-modal":"true","aria-label":"Tes prompt",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,s.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-2xl flex-col gap-4 overflow-y-auto rounded-t-[14px] bg-bg p-5 sm:rounded-[14px]",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Tes prompt"}),(0,s.jsx)("p",{className:"mt-0.5 truncate font-mono text-xs text-text-muted",children:e.email||e.name||e.id})]}),(0,s.jsx)("button",{type:"button",onClick:t,"aria-label":"Tutup",className:"shrink-0 rounded-md p-1 text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"close"})})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{label:"Model (opsional)",value:i,onChange:e=>o(e.target.value),placeholder:"kosongkan = model bawaan"})}),(0,s.jsx)("div",{className:"sm:w-32",children:(0,s.jsx)(r.pd,{label:"Max token",type:"number",value:d,onChange:e=>c(e.target.value)})})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{htmlFor:"tp-prompt",className:"text-sm font-medium text-text-main",children:"Prompt"}),(0,s.jsx)("textarea",{id:"tp-prompt",value:a,onChange:e=>l(e.target.value),disabled:u,className:"min-h-[80px] w-full resize-y rounded-[10px] border border-border bg-surface-2 p-3 text-sm text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 disabled:opacity-50"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(r.$n,{onClick:g,disabled:u||!a.trim(),loading:u,icon:"send",children:"Kirim"}),p?(0,s.jsxs)("span",{className:"tabular-nums text-xs text-text-muted",children:[p.elapsedMs," ms \xb7 ",p.servedModel||"—"]}):null]}),b?(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:b}):null,p&&!p.ok?(0,s.jsxs)("div",{className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-error",children:["HTTP ",p.status]}),(0,s.jsx)("p",{className:"mt-1 break-words text-xs text-text-main",children:p.error})]}):null,p?.ok?(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("div",{className:"whitespace-pre-wrap break-words rounded-[10px] border border-border bg-surface p-3 text-sm text-text-main",children:p.reply||"(balasan kosong)"}),p.usage?(0,s.jsx)("p",{className:"tabular-nums text-xs text-text-muted",children:[null!=p.usage.prompt_tokens?`${p.usage.prompt_tokens} in`:null,null!=p.usage.completion_tokens?`${p.usage.completion_tokens} out`:null].filter(Boolean).join(" \xb7 ")}):null]}):null]})})}var m=a(11059);function p(e){let t=e?.providerSpecificData?.nodeName;return t&&t!==e.provider&&!/^openai-compatible-chat-/.test(t)?t:e?.provider||e?.providerLabel||"?"}let h={mati:"MATI (kredensial ditolak)",limit:"LIMIT (429 laju)",error:"ERROR (jaringan/server)",expired:"EXPIRED (token kedaluwarsa)"};function b({providerId:e,info:t,rows:a=[],visible:n=[],scanResults:l=[],running:i,runOp:o,onDelete:d,onChanged:c}){let u=t?.kinds||{};return u.selective||u.refresh||u.verify||u.cleanup||u.patternDelete||u.blocked||u.expiryOps||u.inactive||u.deviceBulk||t?.script||"antigravity"===e||"kiro"===e?(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-text-subtle",children:["Operasi ",t?.label||e]}),t?.script?(0,s.jsx)(f,{info:t}):null,u.deviceBulk?(0,s.jsx)(g,{providerId:e,onChanged:c}):null,u.selective?(0,s.jsx)(v,{rows:n.length?n:a,running:i,runOp:o}):null,"antigravity"===e?(0,s.jsx)(k,{scanResults:l,running:i,onDelete:d}):null,"kiro"===e?(0,s.jsx)(N,{scanResults:l}):null,u.refresh?(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"autorenew",disabled:i||!a?.length,onClick:()=>o("refresh").then(e=>e&&c?.()),title:"Perbarui access token semua akun provider ini tanpa login ulang (menu 6 skrip cline)",children:"Refresh token"}),(0,s.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Tanpa login ulang; token mati dilaporkan per akun."})]}):null,u.verify?(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"verified",disabled:i||!a?.length,onClick:()=>o("verify"),title:"Uji setiap key dengan inferensi nyata — 401/402/429 dibedakan (check_key_quota_live)",children:"Verifikasi key"}),(0,s.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Inferensi nyata per key: valid / ditolak / habis / laju."})]}):null,u.cleanup?(0,s.jsx)(w,{rows:a,running:i,onDelete:d}):null,u.blocked?(0,s.jsx)(S,{rows:a,running:i,onDelete:d}):null,u.patternDelete?(0,s.jsx)(C,{rows:n.length?n:a,running:i,onDelete:d}):null,u.expiryOps?(0,s.jsx)(T,{rows:a,running:i,runOp:o,onDelete:d,onChanged:c}):null,u.inactive?(0,s.jsx)($,{rows:a,running:i,onDelete:d}):null,(0,s.jsx)(M,{providerId:e,accountsFile:t?.script?.accountsFile})]}):null}function f({info:e}){let t=e?.script,[a,l]=(0,n.useState)(!1),{copied:i,copy:o}=(0,m.C)();return t?(0,s.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",open:!0,children:[(0,s.jsx)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:"Tambah akun baru via script — salin perintah, jalan lokal"}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,s.jsxs)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",children:[(0,s.jsxs)("li",{children:["Buat berkas ",(0,s.jsx)("code",{className:"font-mono text-text-main",children:t.accountsFile})," di bawah (paste email + 1 password → Unduh) — bentuk ",(0,s.jsx)("code",{className:"font-mono text-text-main",children:t.format}),"."]}),(0,s.jsxs)("li",{children:["Jalankan di terminal, di folder scriptnya (",(0,s.jsx)("code",{className:"font-mono text-text-main",children:"C:\\Users\\Developer\\cliproxyapi"}),"):"]})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-lg border border-border bg-surface px-2 py-1.5",children:[(0,s.jsx)("code",{className:"min-w-0 flex-1 break-all font-mono text-[11px] text-text-main",children:t.command}),(0,s.jsxs)("button",{type:"button",onClick:()=>o(t.command,"script-cmd"),className:"flex shrink-0 items-center gap-1 rounded-md border border-border px-2 py-1 text-[11px] font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"script-cmd"===i?"check":"content_copy"}),"script-cmd"===i?"Tersalin":"Salin"]})]}),t.extra?(0,s.jsxs)("p",{className:"text-[11px] text-text-subtle",children:["Flag berguna: ",(0,s.jsx)("code",{className:"font-mono",children:t.extra})]}):null,(0,s.jsx)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",start:3,children:(0,s.jsx)("li",{children:"Script membuka browser dan login otomatis per akun. Setelah selesai, tekan Muat ulang — akun yang dipanen langsung muncul di tabel bawah (DB-nya sama, tanpa impor ulang)."})}),(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"refresh",onClick:()=>{window.location.reload(),l(!0)},children:a?"Memuat…":"Muat ulang"})})]})]}):null}function g({providerId:e,onChanged:t}){let[a,l]=(0,n.useState)(3),[i,o]=(0,n.useState)("idle"),[d,c]=(0,n.useState)(null),[u,x]=(0,n.useState)([]),[p,h]=(0,n.useState)(0),[b,f]=(0,n.useState)(""),[v,j]=(0,n.useState)(()=>Date.now()),k=(0,n.useRef)(0),N=(0,n.useRef)(!1),y=(0,n.useRef)(null),{copied:w,copy:S}=(0,m.C)(),C=u.length+p+1;(0,n.useEffect)(()=>()=>{N.current=!0,y.current&&clearTimeout(y.current)},[]),(0,n.useEffect)(()=>{if("waiting"!==i)return;let e=setInterval(()=>j(Date.now()),1e3);return()=>clearInterval(e)},[i]);let T=async()=>{let t=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),a=await t.json().catch(()=>({}));if(!t.ok)throw Error(a?.error||`HTTP ${t.status}`);let s=a.verificationUriComplete||a.verificationUri;return s&&window.open(s,"_blank","noopener,noreferrer"),{deviceCode:a.deviceCode,codeVerifier:a.codeVerifier,extraData:a.extraData,userCode:a.userCode,verificationUri:a.verificationUri,verificationUriComplete:a.verificationUriComplete,interval:a.interval||5,deadline:Date.now()+(a.expiresIn?1e3*a.expiresIn:9e5)}},$=(a,s)=>new Promise(n=>{let r=null,l=e=>{y.current&&clearTimeout(y.current),n(e)},i=async()=>{if(N.current||k.current!==a)return l("stopped");if(!r){try{r=await T()}catch(e){if(k.current!==a||N.current)return l("stopped");return f(e?.message||"Gagal meminta kode"),l("stopped")}if(k.current!==a||N.current)return l("stopped");c({...r,index:s}),f("")}let n={};try{let t=await fetch("/api/automation/device/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,deviceCode:r.deviceCode,codeVerifier:r.codeVerifier,extraData:r.extraData})});n=await t.json().catch(()=>({}))}catch{if(k.current!==a||N.current)return l("stopped");y.current=setTimeout(i,5e3);return}return k.current!==a||N.current?l("stopped"):n.success?(x(e=>[...e,n.connection]),t?.(),l("ok")):n.pending?Date.now()>r.deadline?(f("Waktu habis — kode kedaluwarsa. Antrean berhenti di sini."),l("stopped")):void(y.current=setTimeout(i,1e3*(r.interval||5))):(f(n.errorDescription||n.error||"Gagal menukar token"),l("stopped"))};i()}),M=async()=>{let e=Math.max(1,Math.min(50,Number(a)||1)),t=k.current+1;k.current=t,N.current=!1,x([]),h(0),f(""),c(null),o("waiting");for(let a=0;a<e&&"ok"===await $(t,a+1);a++);c(null),o("done")},D="waiting"===i,_=d?.deadline?Math.max(0,Math.floor((d.deadline-v)/1e3)):0;return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Tambah bulk via device",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"sepenuhnya via web — kamu yang menyetujui di browser"})]}),"idle"===i||"done"===i?(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"w-32",children:(0,s.jsx)(r.pd,{label:"Jumlah akun",type:"number",value:a,onChange:e=>l(e.target.value),disabled:D})}),(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"login",disabled:D,onClick:M,children:"Mulai antrean"}),u.length>0||p>0?(0,s.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:["Terakhir: ",u.length," tersimpan",p?`, ${p} dilewati`:"","."]}):null]}):null,b?(0,s.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:b}):null,D&&d?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-border bg-surface p-3",children:[(0,s.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:["Akun ",d.index||C," — setujui di browser, lalu otomatis lanjut.",_>0?` Kode kedaluwarsa dalam ${Math.floor(_/60)}:${String(_%60).padStart(2,"0")}.`:""]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("code",{className:"rounded-lg bg-bg-subtle px-3 py-1.5 font-mono text-base font-semibold tracking-wider text-text-main",children:d.userCode||"—"}),(0,s.jsxs)("button",{type:"button",onClick:()=>S(d.userCode||"","bulk-code"),className:"flex items-center gap-1 rounded-lg border border-border px-2 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"bulk-code"===w?"check":"content_copy"}),"bulk-code"===w?"Tersalin":"Salin"]}),d.verificationUri?(0,s.jsx)("a",{href:d.verificationUriComplete||d.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary underline decoration-dotted underline-offset-2",children:"Buka verifikasi"}):null]}),(0,s.jsxs)("p",{className:"flex items-center gap-2 text-[11px] text-text-muted",children:[(0,s.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),"Menunggu persetujuan… (tab verifikasi sudah dibuka otomatis)"]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>{k.current+=1,y.current&&clearTimeout(y.current),h(e=>e+1),c(null),f(""),(async()=>{let e=k.current,t=u.length+p+1;"ok"!==await $(e,t)&&(c(null),o("done"))})()},children:"Lewati akun ini"}),(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>{N.current=!0,k.current+=1,y.current&&clearTimeout(y.current),c(null),o("done")},children:"Hentikan antrean"})]})]}):null,"done"!==i||D?null:(0,s.jsxs)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:["Selesai: ",u.length," akun tersimpan",p?`, ${p} dilewati`:"",". Tabel di bawah sudah dimuat ulang."]})]})}function v({rows:e,running:t,runOp:a}){let[l,i]=(0,n.useState)(""),[o,d]=(0,n.useState)(""),c=(0,n.useMemo)(()=>l.trim()?function(e,t){let a=Array.isArray(e)?e:[],s=String(t||"").trim().toLowerCase();if(!s||"all"===s)return a;let n=new Set;for(let e of s.split(",").map(e=>e.trim()).filter(Boolean))if(e.includes("-")){let[t,s]=e.split("-",2).map(e=>Number(e.trim()));if(!Number.isFinite(t)||!Number.isFinite(s))continue;let r=Math.max(1,Math.min(t,s)),l=Math.min(a.length,Math.max(t,s));for(let e=r;e<=l;e++)n.add(e-1)}else{let t=Number(e);Number.isFinite(t)&&t>=1&&t<=a.length&&n.add(t-1)}return[...n].sort((e,t)=>e-t).map(e=>a[e])}(e,l):null,[e,l]),u=e=>{if(d(""),!l.trim())return void d("Isi dulu nomornya — kosong berarti semua (pakai tombol di atas).");let t=(c||[]).map(e=>e.id);t.length?a(e,{ids:t}):d("Tidak ada nomor valid yang cocok.")};return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Cek akun tertentu",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip: nomor, koma, rentang, atau all"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{value:l,onChange:e=>i(e.target.value),placeholder:"mis. 50 \xb7 1, 5, 12 \xb7 1-10 \xb7 all",disabled:t})}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",disabled:t||!e?.length,onClick:()=>u("quota"),children:"Kuota pilihan"}),(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",disabled:t||!e?.length,onClick:()=>u("test"),children:"Tes pilihan"})]})]}),c?(0,s.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[c.length," dari ",e.length," akun cocok."]}):null,o?(0,s.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:o}):null]})}let j=[{value:"claude",label:"Claude & GPT 0%"},{value:"gemini",label:"Gemini 0%"},{value:"both",label:"Keduanya 0%"}];function k({scanResults:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)("both"),o=(0,n.useMemo)(()=>(function(e,t){let a=[];for(let s of Array.isArray(e)?e:[]){if(!s)continue;let e=s.groups||{},n="number"==typeof e.claudeGpt&&e.claudeGpt<1,r="number"==typeof e.gemini&&e.gemini<1;("claude"===t?n:"gemini"===t?r:n&&r)&&a.push({...s,deleteReason:"claude"===t?"Claude & GPT habis (< 1%)":"gemini"===t?"Gemini habis (< 1%)":"Keduanya habis (< 1%)"})}return a})(e,l),[e,l]);if(!e?.length)return null;let d=j.find(e=>e.value===l)?.label||l;return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus kuota 0% per grup",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 7 skrip ag — dari hasil pindaian terakhir"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("div",{className:"flex gap-1",role:"group","aria-label":"Kriteria grup",children:j.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>i(e.value),"aria-pressed":l===e.value,className:`h-7 shrink-0 rounded-[8px] px-2.5 text-[11px] font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${l===e.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:e.label},e.value))}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o.length,onClick:()=>{confirm(`Hapus permanen ${o.length} akun (${d})?`)&&a(o.map(e=>e.id))},children:["Hapus ",o.length," akun"]})]})]})}function N({scanResults:e}){let t=(0,n.useMemo)(()=>{let t=(e||[]).filter(e=>e?.pool&&Number.isFinite(e.pool.total)&&e.pool.total>0);if(!t.length)return null;let a=t.reduce((e,t)=>e+t.pool.used,0),s=t.reduce((e,t)=>e+t.pool.total,0);return{used:a,total:s,remaining:Math.max(0,s-a),accounts:t.length}},[e]);if(!t)return null;let a=t.total>0?Math.round(t.remaining/t.total*100):0;return(0,s.jsxs)("p",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50 px-3 py-2 text-xs tabular-nums text-text-main",children:["Total pool kuota: ",(0,s.jsx)("strong",{children:t.remaining.toLocaleString("en-US")})," / ",t.total.toLocaleString("en-US")," tersisa",(0,s.jsxs)("span",{className:"ml-2 text-text-muted",children:["(",a,"% \xb7 ",t.accounts," akun terbaca)"]})]})}let y=["mati","limit","error","expired"];function w({rows:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)("mati"),o=(0,n.useMemo)(()=>(function(e,t,a=Date.now()){let s=[];for(let n of e||[])(function(e,t=Date.now()){if(!e)return null;let a=e.expiresAt?Date.parse(e.expiresAt):NaN;return Number.isFinite(a)&&a<=t?"expired":"invalid"===e.errorState?"mati":"rate_limited"===e.errorState?"limit":"transient"===e.errorState||"other"===e.errorState?"error":null})(n,a)===t&&s.push({...n,id:n.id,email:n.email,name:n.name,provider:p(n),state:t,deleteReason:h[t]||t});return s})(e,l),[e,l]);return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Bersihkan per kategori",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip cline — dibaca dari daftar akun"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("div",{className:"flex flex-wrap gap-1",role:"group","aria-label":"Kategori cline",children:y.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>i(e),"aria-pressed":l===e,className:`h-7 shrink-0 rounded-[8px] px-2.5 text-[11px] font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${l===e?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:h[e]},e))}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o.length,onClick:()=>{confirm(`Hapus permanen ${o.length} akun kategori ${h[l]}?`)&&a(o.map(e=>e.id))},children:["Hapus ",o.length," akun"]})]})]})}function S({rows:e,running:t,onDelete:a}){let l=(0,n.useMemo)(()=>(e||[]).filter(e=>{let t=String(e.lastError||"").toLowerCase();return/spending.?limit|personal-team-blocked|team.?blocked|\bblocked\b/.test(t)||"depleted"===e.errorState}),[e]);return l.length?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus akun BLOCKED",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 6 skrip grok — tim diblokir / spending-limit / kuota habis"})]}),(0,s.jsx)("div",{children:(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t,onClick:()=>{confirm(`Hapus permanen ${l.length} akun BLOCKED?`)&&a(l.map(e=>e.id))},children:["Hapus ",l.length," akun"]})})]}):null}function C({rows:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)(""),o=(0,n.useMemo)(()=>{let t=l.trim().toLowerCase();return t?(e||[]).filter(e=>[e.email,e.name,e.id].some(e=>String(e||"").toLowerCase().includes(t))):null},[e,l]);return e?.length?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus by-pattern",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 8 skrip grok — substring email/nama"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{value:l,onChange:e=>i(e.target.value),placeholder:"mis. @gmaoiil.com",disabled:t})}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o?.length,onClick:()=>{!o?.length||confirm(`Hapus permanen ${o.length} akun yang cocok "${l.trim()}"?`)&&(a(o.map(e=>e.id)),i(""))},children:["Hapus",o?.length?` ${o.length}`:""," akun"]})]}),o?(0,s.jsxs)("div",{className:"text-[11px] text-text-muted",children:[(0,s.jsxs)("p",{className:"tabular-nums",children:[o.length," cocok."]}),o.slice(0,10).map(e=>(0,s.jsx)("p",{className:"truncate font-mono",children:e.email||e.name||e.id},e.id)),o.length>10?(0,s.jsxs)("p",{children:["…dan ",o.length-10," lainnya."]}):null]}):null]}):null}function T({rows:e,running:t,runOp:a,onDelete:l,onChanged:i}){let[o,d]=(0,n.useState)(0),c=(0,n.useMemo)(()=>(function(e,{hoursAhead:t=0,nowMs:a=Date.now()}={}){let s=[];for(let n of e||[]){if(!n||!1===n.isActive)continue;let e=n.expiresAt??n?.data?.expiresAt??n?.providerSpecificData?.expiresAt;if(null==e||""===e||"None"===e||"null"===e)continue;let r=Date.parse(e);if(!Number.isFinite(r))continue;let l=r-a;l<=36e5*t&&s.push({...n,id:n.id,email:n.email,name:n.name,provider:p(n),state:l<=0?"expired":"expiring",expiresAt:new Date(r).toISOString(),remainingMs:l,deleteReason:l<=0?"Masa berlaku habis":"Segera kedaluwarsa"})}return s.sort((e,t)=>e.remainingMs-t.remainingMs),s})(e,{hoursAhead:Number(o)||0}),[e,o]);return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Kedaluwarsa",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5-6 skrip tokenharbor — gagal parse = permanen"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,s.jsx)("div",{className:"w-32",children:(0,s.jsx)(r.pd,{label:"Lihat N jam ke depan",type:"number",value:o,onChange:e=>d(e.target.value),disabled:t})}),(0,s.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:[c.length," akun",Number(o)>0?` (kedaluwarsa + ${o}j ke depan)`:" kedaluwarsa","."]})]}),c.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[c.slice(0,20).map(e=>(0,s.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:e.email||e.name||e.id}),(0,s.jsx)("span",{className:"shrink-0 tabular-nums text-text-muted",children:function(e){if(e<=0)return"kedaluwarsa";let t=Math.floor(e/6e4);if(t<60)return`${t}m lagi`;let a=Math.floor(t/60);return a<48?`${a}j lagi`:`${Math.floor(a/24)}h lagi`}(e.remainingMs)})]},e.id)),c.length>20?(0,s.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",c.length-20," lainnya."]}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsxs)(r.$n,{size:"sm",variant:"secondary",icon:"pause_circle",disabled:t,onClick:()=>a("deactivate",{ids:c.map(e=>e.id)}).then(e=>e&&i?.()),title:"UPDATE isActive=0 — perilaku default skrip; baris tetap ada dan bisa diaktifkan lagi",children:["Nonaktifkan ",c.length]}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t,onClick:()=>{confirm(`Hapus permanen ${c.length} akun kedaluwarsa?`)&&l(c.map(e=>e.id))},title:"Hapus baris permanen — --delete-expired di skrip",children:["Hapus ",c.length]})]})]}):null]})}function $({rows:e,running:t,onDelete:a}){let[l,i]=(0,n.useState)(!1),o=(0,n.useMemo)(()=>(function(e){let t=[];for(let a of e||[]){if(!a||!1!==a.isActive)continue;let e=function(e){let t=String(e?.lastError||""),a=Number(e?.errorCode);if(/invalid_grant|revoked/i.test(t))return"invalid_grant";let s=/domain_dead:([^\s,;]+)/i.exec(t);return s?`domain_dead:${s[1]}`:401===a||/\b401\b/.test(t)?"auth_401":e?.testStatus==="error"||a>=400?"error_status":t?"lainnya":"tanpa_alasan"}(a);t.push({...a,id:a.id,email:a.email,name:a.name,provider:p(a),state:"inactive",inactiveReason:e,deleteReason:`Nonaktif (${e})`})}return t})(e),[e]),d=(0,n.useMemo)(()=>l?function(e){let t={};for(let a of e||[]){let e=String(a?.email||""),s=e.includes("@")?e.split("@").pop().toLowerCase():"(tanpa email)",n=t[s]||={domain:s,total:0,active:0,inactive:0};n.total++,!1===a.isActive?n.inactive++:n.active++}let a=Object.values(t).sort((e,t)=>t.total-e.total);for(let e of a)e.dead=e.total>0&&0===e.active;return a}(e):[],[l,e]);return(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,s.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Akun nonaktif",(0,s.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 12 skrip ag — dry-run dulu, hapus sesudahnya"})]}),(0,s.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[o.length," nonaktif dari ",e?.length||0," akun. Alasan per akun terlihat di bawah."]}),o.length>0?(0,s.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[o.slice(0,20).map(e=>(0,s.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:e.email||e.name||e.id}),(0,s.jsx)("span",{className:"shrink-0 font-mono text-text-subtle",children:e.inactiveReason})]},e.id)),o.length>20?(0,s.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",o.length-20," lainnya."]}):null]}):null,(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>i(e=>!e),"aria-expanded":l,children:l?"Sembunyikan":"Sebaran domain"}),(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:t||!o.length,onClick:()=>{confirm(`Hapus permanen ${o.length} akun nonaktif?`)&&a(o.map(e=>e.id))},children:["Hapus ",o.length," nonaktif"]})]}),l?(0,s.jsx)("ul",{className:"flex flex-col gap-1",children:d.map(e=>(0,s.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px] tabular-nums",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:e.domain}),(0,s.jsxs)("span",{className:"shrink-0 text-text-muted",children:[e.total," akun \xb7 ",e.active," aktif",e.dead?" \xb7 domain mati total":""]})]},e.domain))}):null]})}function M({providerId:e,accountsFile:t}){let[a,l]=(0,n.useState)(""),[i,o]=(0,n.useState)(""),d="cline"===e||"kiro"===e||"bai"===e?"|":":",c=(0,n.useMemo)(()=>{let e=new Set,t=[];for(let s of a.split("\n")){let a=s.trim();if(!a||!a.includes("@"))continue;let n=a.toLowerCase();e.has(n)||(e.add(n),t.push(`${a}${d}${i}`))}return t},[a,i,d]);return(0,s.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,s.jsx)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:"Buat berkas akun — paste email + 1 password"}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,s.jsxs)("p",{className:"text-[11px] text-text-muted",children:["Keluaran ",(0,s.jsxs)("code",{className:"font-mono",children:["email",d,"password"]})," per baris →"," ",(0,s.jsx)("code",{className:"font-mono",children:t||`accounts_${e||"bulk"}.txt`})," — bentuk yang dimakan skrip tambah-akun. Tidak dikirim ke mana pun; berkas dibuat di browser."]}),(0,s.jsx)("textarea",{value:a,onChange:e=>l(e.target.value),spellCheck:!1,"aria-label":"Daftar email, satu per baris",placeholder:"satu email per baris\nbaris tanpa @ dilewati, duplikat dibuang",className:"min-h-[80px] w-full resize-y rounded-lg border border-border bg-surface p-2 font-mono text-xs text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45"}),(0,s.jsx)(r.pd,{label:"Satu password untuk semua",type:"text",value:i,onChange:e=>o(e.target.value),placeholder:"password seragam"}),(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsxs)(r.$n,{size:"sm",variant:"secondary",icon:"description",disabled:!c.length||!i,onClick:()=>{if(!c.length||!i)return;let a=new Blob([c.join("\n")+"\n"],{type:"text/plain; charset=utf-8"}),s=URL.createObjectURL(a),n=document.createElement("a");n.href=s,n.download=t||`accounts_${e||"bulk"}.txt`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(s)},children:["Unduh ",c.length," baris"]})})]})]})}let D=[{value:"all",label:"Semua"},{value:"active",label:"Aktif"},{value:"problem",label:"Bermasalah"}];function _({providerId:e,onBack:t}){let[a,l]=(0,n.useState)(null),[i,o]=(0,n.useState)(null),[c,m]=(0,n.useState)(""),[p,h]=(0,n.useState)("all"),[f,g]=(0,n.useState)(()=>new Set),[v,j]=(0,n.useState)(""),[k,N]=(0,n.useState)(""),[y,w]=(0,n.useState)(0),[S,C]=(0,n.useState)(null),T=function(){let[e,t]=(0,n.useState)(()=>{let e=localStorage.getItem(d);return e?{id:e,seq:0}:null}),[a,s]=(0,n.useState)({status:"idle",results:[],done:0,total:0}),r=(0,n.useRef)(0);(0,n.useEffect)(()=>{if(!e?.id)return;let t=!1,a=null;r.current=0;let n=async()=>{if(!t)try{let l=await fetch(`/api/automation/jobs/${e.id}?since=${r.current}`,{cache:"no-store"});if(t)return;if(404===l.status){localStorage.removeItem(d),s({status:"idle",results:[],done:0,total:0});return}let i=await l.json();if(t)return;r.current=i.nextSince??r.current,s(e=>({...e,...i,results:[...e.results||[],...i.results||[]]})),"running"===i.status?a=setTimeout(n,700):localStorage.removeItem(d)}catch{t||(a=setTimeout(n,2e3))}};return queueMicrotask(n),()=>{t=!0,a&&clearTimeout(a)}},[e]);let l=(0,n.useCallback)((e,a={})=>{localStorage.setItem(d,e),s({id:e,status:"running",results:[],done:0,total:a.total??0,ok:0,failed:0,kind:a.kind??null,label:a.label??""}),t(t=>({id:e,seq:(t?.seq??0)+1}))},[]),i=(0,n.useCallback)(async()=>{a.id&&await fetch(`/api/automation/jobs/${a.id}`,{method:"DELETE"}).catch(()=>{})},[a.id]),o=(0,n.useCallback)(()=>{localStorage.removeItem(d),t(null),s({status:"idle",results:[],done:0,total:0})},[]);return{...a,watch:l,cancel:i,reset:o}}(),$=(0,n.useCallback)(async()=>{let[t,a]=await Promise.all([fetch("/api/automation/overview",{cache:"no-store"}),fetch(`/api/automation/connections?provider=${encodeURIComponent(e)}&catalogueId=${encodeURIComponent(e)}`,{cache:"no-store"})]);if(!t.ok)throw Error(`HTTP ${t.status}`);if(!a.ok)throw Error(`HTTP ${a.status}`);let s=await t.json(),n=await a.json();l(s.providers?.find(t=>t.id===e)||null),o(n.connections||[])},[e]);(0,n.useEffect)(()=>{let e=!1;return queueMicrotask(async()=>{if(!e){j("");try{await $()}catch(t){e||j(t.message||"Gagal memuat akun")}}}),()=>{e=!0}},[$,y]);let M=(0,n.useMemo)(()=>{let e={};for(let t of T.results||[])t?.id&&(e[t.id]=t);return e},[T.results]),z=(0,n.useMemo)(()=>{if(!i)return[];let e=c.trim().toLowerCase();return i.filter(t=>{if(e&&![t.email,t.name,t.id].some(t=>String(t||"").toLowerCase().includes(e)))return!1;let a=M[t.id];return"active"===p?"active"===t.status:"problem"!==p||a&&["depleted","critical","low"].includes(a.state)||"invalid"===t.errorState||"depleted"===t.errorState||"cooling"===t.status})},[i,c,p,M]),H=async(t,a={})=>{j(""),N("");let s=await fetch("/api/automation/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({op:t,provider:e,...a})}),n=await s.json().catch(()=>({}));return s.ok?(n.jobId&&T.watch(n.jobId,{total:n.total,kind:t}),n):(j(n?.error||`HTTP ${s.status}`),null)},U=async e=>{!e.length||await H("delete",{ids:e,reason:"manual"})&&(g(new Set),w(e=>e+1))},E=(0,n.useMemo)(()=>i?i.map(e=>({...e,...M[e.id]||{}})).filter(e=>"depleted"===e.state||"invalid"===e.errorState||"depleted"===e.errorState):[],[i,M]),I="running"===T.status;return v&&!i?(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",icon:"arrow_back",onClick:t,children:"Kembali"}),(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:v})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:(0,s.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:t,"aria-label":"Kembali ke daftar provider",className:"mt-0.5 rounded-md p-1 text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"arrow_back"})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-text-main",children:[a?.label||e,(0,s.jsxs)("span",{className:"ml-2 font-normal tabular-nums text-text-muted",children:[i?.length??0," akun"]})]}),a?.note?(0,s.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:a.note}):null]})]})}),k?(0,s.jsx)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:k}):null,v?(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:v}):null,(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a?.kinds.quota?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"data_usage",disabled:I||!i?.length,onClick:()=>H("quota"),children:"Cek kuota"}):null,a?.kinds.test?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"network_check",disabled:I||!i?.length,onClick:()=>H("test"),children:"Tes koneksi"}):null,a?.kinds.prompt?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"chat",disabled:!i?.length,onClick:()=>C(z[0]||i[0]),children:"Tes prompt"}):null,a?.kinds.calls==="device"?(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"login",onClick:()=>{t()},title:"Login device ada di tab Tambah via OAuth",children:"Login device"}):null,(0,s.jsxs)("a",{href:`/api/automation/generate-txt?provider=${encodeURIComponent(e)}`,className:"inline-flex h-7 items-center gap-1.5 rounded-[8px] border border-border px-3 text-xs font-semibold text-text-main transition-colors hover:bg-surface-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"description"}),"Generate TXT"]}),f.size>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:[f.size," dipilih"]}),(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>g(new Set),children:"Batal"}),(0,s.jsx)(r.$n,{size:"sm",variant:"danger",icon:"delete",disabled:I,onClick:()=>{confirm(`Hapus permanen ${f.size} akun? Tidak bisa dibatalkan.`)&&U([...f])},children:"Hapus"})]}):null]}),(0,s.jsx)(P,{providerId:e,info:a,onDone:e=>{N(e),w(e=>e+1)}}),(0,s.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end",children:[(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(r.pd,{label:"Cari",value:c,onChange:e=>m(e.target.value),placeholder:"email, nama, atau id"})}),(0,s.jsx)("div",{className:"flex gap-1",children:D.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>h(e.value),"aria-pressed":p===e.value,className:`h-9 shrink-0 rounded-[10px] px-3 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${p===e.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:e.label},e.value))})]})]}),(0,s.jsx)(b,{providerId:e,info:a,rows:i||[],visible:z,scanResults:T.results||[],running:I,runOp:H,onDelete:U,onChanged:()=>w(e=>e+1)}),"idle"!==T.status?(0,s.jsx)(u,{job:T}):null,!I&&E.length>0?(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-warning/30 bg-warning/10 p-4",children:[(0,s.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[E.length," akun layak dipertimbangkan untuk dihapus"]}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Kuota habis atau kredensial ditolak provider. Kesalahan jaringan, laju, dan prompt kepanjangan sengaja TIDAK masuk daftar ini."}),(0,s.jsx)("div",{children:(0,s.jsxs)(r.$n,{size:"sm",variant:"danger",icon:"delete_sweep",onClick:()=>{confirm(`Hapus permanen ${E.length} akun?`)&&U(E.map(e=>e.id))},children:["Hapus ",E.length," akun"]})})]}):null,(0,s.jsx)("div",{className:"overflow-x-auto rounded-[14px] border border-border bg-surface",children:(0,s.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,s.jsxs)("caption",{className:"sr-only",children:["Akun ",a?.label||e]}),(0,s.jsx)("thead",{className:"bg-bg-subtle text-[10px] uppercase tracking-wide text-text-muted",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{scope:"col",className:"w-8 px-3 py-2",children:(0,s.jsx)("input",{type:"checkbox","aria-label":"Pilih semua yang terlihat",checked:z.length>0&&f.size>=z.length,onChange:e=>g(e.target.checked?new Set(z.map(e=>e.id)):new Set),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Akun"}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Status"}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Kuota"}),(0,s.jsx)("th",{scope:"col",className:"px-3 py-2 text-right font-medium",children:"Aksi"})]})}),(0,s.jsx)("tbody",{className:"divide-y divide-border-subtle",children:null===i?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:"Memuat…"})}):0===z.length?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:i.length?"Tidak ada akun yang cocok.":"Belum ada akun."})}):z.map(e=>{var t;let a=M[e.id];return(0,s.jsxs)("tr",{className:"transition-colors hover:bg-bg-hover",children:[(0,s.jsx)("td",{className:"px-3 py-2",children:(0,s.jsx)("input",{type:"checkbox","aria-label":`Pilih ${e.email||e.name||e.id}`,checked:f.has(e.id),onChange:()=>g(t=>{let a=new Set(t);return a.has(e.id)?a.delete(e.id):a.add(e.id),a}),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,s.jsxs)("td",{className:"px-3 py-2",children:[(0,s.jsx)("div",{className:"font-medium text-text-main",children:e.email||e.name||`${e.id.slice(0,8)}…`}),(0,s.jsx)("div",{className:"font-mono text-[10px] text-text-subtle",children:e.keyPreview||e.model||"—"})]}),(0,s.jsxs)("td",{className:"px-3 py-2",children:[(0,s.jsx)("span",{className:"active"===e.status?"text-success":"cooling"===e.status?"text-warning":"text-text-muted",children:"active"===e.status?"aktif":"cooling"===e.status?"cooldown":"nonaktif"}),e.errorReasonCode&&"request_too_large"!==e.errorState?(0,s.jsx)("div",{className:"max-w-[14rem] truncate text-[10px] text-text-subtle",title:String(e.lastError||""),children:e.errorReasonCode}):null]}),(0,s.jsx)("td",{className:"px-3 py-2 tabular-nums",children:a?.remaining!=null?(0,s.jsxs)("span",{className:"depleted"===a.state?"text-error":"low"===a.state?"text-warning":"text-success",children:[a.remaining,"%"]}):a?.state?(0,s.jsx)("span",{className:"text-text-muted",children:{healthy:"Sehat",low:"Menipis",critical:"Kritis",depleted:"Habis",unlimited:"Tanpa batas",unsupported:"Tidak ada cek",unknown:"Tidak terbaca"}[t=a.state]||t}):(0,s.jsx)("span",{className:"text-text-subtle",children:"—"})}),(0,s.jsxs)("td",{className:"px-3 py-2 text-right",children:[(0,s.jsx)("button",{type:"button",onClick:()=>C(e),"aria-label":`Tes prompt pada ${e.email||e.name||e.id}`,className:"rounded-md p-1 text-text-subtle transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"chat"})}),(0,s.jsx)("button",{type:"button",onClick:()=>{confirm(`Hapus ${e.email||e.name||e.id}?`)&&U([e.id])},"aria-label":`Hapus ${e.email||e.name||e.id}`,className:"rounded-md p-1 text-text-subtle transition-colors hover:bg-error/10 hover:text-error focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"delete"})})]})]},e.id)})})]})}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:["Menampilkan ",z.length," dari ",i?.length??0," akun."]}),S?(0,s.jsx)(x,{connection:S,onClose:()=>C(null)}):null]})}function P({providerId:e,info:t,onDone:a}){let[l,i]=(0,n.useState)(""),[o,d]=(0,n.useState)(!1),[c,u]=(0,n.useState)(""),x={antigravity:"email:refreshToken","grok-cli":"email:refreshToken",cline:"email:accessToken:refreshToken",freebuff:"email:accessToken",bai:"email:sk-...",tokenharbour:"email:thk_...",kiro:"email:refreshToken"}[e]||"email:token",m=async()=>{let t=l.split("\n").map(e=>e.trim()).filter(e=>e&&!e.startsWith("#"));if(t.length){d(!0),u("");try{let s=await fetch("/api/automation/import-lines",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,lines:t})}),n=await s.json().catch(()=>({}));if(!s.ok)return void u(n?.error||`HTTP ${s.status}`);i(""),a(`${n.success} akun diimpor${n.skipped?`, ${n.skipped} dilewati (sudah ada)`:""}${n.failed?`, ${n.failed} gagal`:""}`)}catch(e){u(e.message||"Impor gagal")}finally{d(!1)}}},p=async e=>{let t=e.target.files?.[0];t&&(i(await t.text()),e.target.value="")};return(0,s.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,s.jsxs)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:["Impor kredensial — bentuk ",(0,s.jsx)("code",{className:"font-mono",children:x})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,s.jsx)("textarea",{value:l,onChange:e=>i(e.target.value),disabled:o,spellCheck:!1,"aria-label":"Baris kredensial",placeholder:x,className:"min-h-[90px] w-full resize-y rounded-lg border border-border bg-surface p-2 font-mono text-xs text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 disabled:opacity-50"}),c?(0,s.jsx)("p",{role:"alert",className:"text-xs font-medium text-error",children:c}):null,(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(r.$n,{size:"sm",variant:"secondary",onClick:m,disabled:o||!l.trim(),loading:o,children:"Impor"}),(0,s.jsxs)("label",{className:"flex h-7 cursor-pointer items-center gap-1 rounded-[8px] border border-border px-3 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"upload_file"}),"Pilih berkas",(0,s.jsx)("input",{type:"file",accept:".txt,.json,text/plain",onChange:p,className:"hidden"})]})]})]})]})}function z(){let[e,t]=(0,n.useState)(null),[a,l]=(0,n.useState)(""),[i,o]=(0,n.useState)(""),[d,c]=(0,n.useState)("idle"),[u,x]=(0,n.useState)(null),[p,h]=(0,n.useState)(null),[b,f]=(0,n.useState)(""),[g,v]=(0,n.useState)(null),{copied:j,copy:k}=(0,m.C)();(0,n.useEffect)(()=>{let e=!1;return fetch("/api/automation/providers").then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(a=>{e||(t(a.providers||[]),l(e=>e||a.providers?.[0]?.id||""))}).catch(t=>{e||f(t.message)}),()=>{e=!0}},[]),(0,n.useEffect)(()=>{if(!p)return;let e=!1,t=null,a=async()=>{if(!e)try{let s=await fetch("/api/automation/device/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:p.provider,deviceCode:p.deviceCode,codeVerifier:p.codeVerifier,extraData:p.extraData})}),n=await s.json().catch(()=>({}));if(e)return;if(n.success){c("done"),v(n.connection),h(null);return}if(n.pending){if(Date.now()>p.deadline){c("error"),f("Waktu habis sebelum kamu menyetujui di browser. Coba mulai lagi."),h(null);return}t=setTimeout(a,1e3*(p.interval||5));return}c("error"),f(n.errorDescription||n.error||"Gagal menukar token"),h(null)}catch(t){if(e)return;c("error"),f(t.message||"Polling gagal"),h(null)}};return a(),()=>{e=!0,t&&clearTimeout(t)}},[p]);let N=e?.find(e=>e.id===a)||null,y=async()=>{if(a){c("starting"),f(""),v(null),x(null),h(null);try{let e=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,startUrl:i||void 0})}),t=await e.json().catch(()=>({}));if(!e.ok){c("error"),f(t?.error||`HTTP ${e.status}`);return}x(t),c("waiting");let s=t.verificationUriComplete||t.verificationUri;s&&window.open(s,"_blank","noopener,noreferrer"),h({provider:a,deviceCode:t.deviceCode,codeVerifier:t.codeVerifier,extraData:t.extraData,interval:t.interval||5,deadline:Date.now()+(t.expiresIn?1e3*t.expiresIn:9e5)})}catch(e){c("error"),f(e.message||"Tidak bisa memulai alur")}}},w="starting"===d||"waiting"===d;return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{htmlFor:"automation-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,s.jsx)("select",{id:"automation-provider",value:a,onChange:e=>l(e.target.value),disabled:w,className:"w-full rounded-[10px] border border-border bg-surface px-3 py-2 text-sm text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 disabled:opacity-50",children:(e||[]).map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})]}),N?.hint?(0,s.jsx)("p",{className:"text-xs text-text-muted",children:N.hint}):null,N?.needsStartUrl?(0,s.jsx)(r.pd,{label:"Start URL (IDC)",value:i,onChange:e=>o(e.target.value),placeholder:"https://d-xxxxxxxxxx.awsapps.com/start",hint:"Kosongkan kalau memakai AWS Builder ID biasa.",disabled:w}):null,(0,s.jsx)("div",{children:(0,s.jsx)(r.$n,{onClick:y,disabled:!a||w,loading:"starting"===d,children:"waiting"===d?"Menunggu persetujuan…":"Mulai"})})]}),b&&"error"===d?(0,s.jsx)("p",{role:"alert",className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2 text-xs font-medium text-error",children:b}):null,u&&"done"!==d?(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("span",{className:"text-sm font-medium text-text-main",children:"Kode verifikasi"}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("code",{className:"rounded-lg bg-bg-subtle px-3 py-1.5 font-mono text-base font-semibold tracking-wider text-text-main",children:u.userCode||"—"}),(0,s.jsxs)("button",{type:"button",onClick:()=>k(u.userCode||"","userCode"),className:"flex items-center gap-1 rounded-lg border border-border px-2 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"userCode"===j?"check":"content_copy"}),"userCode"===j?"Tersalin":"Salin"]})]})]}),u.verificationUri?(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:["Buka"," ",(0,s.jsx)("a",{href:u.verificationUriComplete||u.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"break-all text-primary underline decoration-dotted underline-offset-2",children:u.verificationUri})," ","lalu masukkan kode di atas."]}):null,"waiting"===d?(0,s.jsxs)("p",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,s.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),"Menunggu kamu menyetujui di browser. Halaman ini lanjut sendiri."]}):null]}):null,"done"===d&&g?(0,s.jsxs)("p",{className:"flex items-center gap-2 rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-sm font-medium text-success",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check_circle"}),"Akun ",g.provider," tersimpan. Tambah lagi kapan saja, atau lihat di halaman Providers."]}):null]})}function H(){let[e,t]=(0,n.useState)(""),[a,l]=(0,n.useState)([]),[i,o]=(0,n.useState)("");(0,n.useEffect)(()=>{fetch("/api/automation/providers").then(e=>e.ok?e.json():null).then(e=>{e?.providers&&l(e.providers)}).catch(()=>{})},[]);let d=async t=>{o(t);try{let a=new URLSearchParams({format:t});e&&a.set("provider",e);let s=await fetch(`/api/automation/export?${a.toString()}`);if(!s.ok)throw Error(`HTTP ${s.status}`);let n=await s.blob(),r=URL.createObjectURL(n),l=document.createElement("a");l.href=r;let i=s.headers.get("content-disposition")||"",o=/filename="([^"]+)"/.exec(i);l.download=o?.[1]||`9router-accounts.${"txt"===t?"txt":"json"}`,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(r)}catch(e){alert(`Export gagal: ${e.message}`)}finally{o("")}};return(0,s.jsx)("div",{className:"flex flex-col gap-4",children:(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{htmlFor:"automation-export-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,s.jsxs)("select",{id:"automation-export-provider",value:e,onChange:e=>t(e.target.value),className:"w-full rounded-[10px] border border-border bg-surface px-3 py-2 text-sm text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("option",{value:"",children:"Semua provider"}),a.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))]})]}),(0,s.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-warning/25 bg-warning/10 px-3 py-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[16px] text-warning","aria-hidden":"true",children:"warning"}),(0,s.jsxs)("p",{className:"text-xs text-text-main",children:["Berkasnya berisi ",(0,s.jsx)("strong",{children:"token akses penuh"})," ke akun-akun itu. Jangan di-commit ke git, dan jangan taruh di folder yang tersinkron ke cloud."]})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(r.$n,{variant:"secondary",icon:"download",onClick:()=>d("json"),loading:"json"===i,disabled:!!i,children:"Unduh JSON"}),(0,s.jsx)(r.$n,{variant:"secondary",icon:"description",onClick:()=>d("txt"),loading:"txt"===i,disabled:!!i,children:"Unduh TXT"})]}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"JSON bisa diimpor kembali lewat tab Bulk import, di mesin ini atau di mesin lain. TXT berbentuk tab (provider, authType, email, nama, token, refreshToken) untuk dibaca atau diolah skrip."})]})})}let U=[{value:"manage",label:"Kelola akun"},{value:"oauth",label:"Login device"},{value:"export",label:"Export semua"}];function E({onLock:e}){let[t,a]=(0,n.useState)("manage"),[l,o]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1),u=async()=>{c(!0);try{await fetch("/api/automation/gate",{method:"DELETE"})}finally{e()}};return(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-5",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,s.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Kelola akun provider: kuota, tes koneksi, tes prompt, impor, dan export."})]}),(0,s.jsxs)("button",{type:"button",onClick:u,disabled:d,className:"flex shrink-0 items-center gap-1.5 self-start rounded-lg border border-border bg-bg-subtle px-2.5 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"lock"}),(0,s.jsx)("span",{children:"Kunci lagi"})]})]}),(0,s.jsx)(r.Iz,{options:U,value:t,onChange:a,className:"w-full sm:w-auto"}),"manage"===t?l?(0,s.jsx)(_,{providerId:l,onBack:()=>o(null)}):(0,s.jsx)(i,{onPick:o}):null,"oauth"===t?(0,s.jsx)(z,{}):null,"export"===t?(0,s.jsx)(H,{}):null]})}function I(){let[e,t]=(0,n.useState)(null);return((0,n.useEffect)(()=>{let e=!1;return fetch("/api/automation/gate",{cache:"no-store"}).then(e=>e.ok?e.json():{unlocked:!1}).then(a=>{e||t(!!a.unlocked)}).catch(()=>{e||t(!1)}),()=>{e=!0}},[]),null===e)?(0,s.jsxs)("div",{className:"flex flex-col gap-3 py-10","aria-busy":"true",children:[(0,s.jsx)("div",{className:"h-6 w-40 animate-pulse rounded-lg bg-border-subtle/60"}),(0,s.jsx)("div",{className:"h-24 w-full max-w-md animate-pulse rounded-[14px] bg-border-subtle/60"})]}):e?(0,s.jsx)(E,{onLock:()=>t(!1)}):(0,s.jsx)(l,{onUnlock:()=>t(!0)})}},93623:(e,t,a)=>{Promise.resolve().then(a.bind(a,64881))}},e=>{e.O(0,[5932,6355,1321,705,5497,8441,3794,7358],()=>e(e.s=93623)),_N_E=e.O()}]);
|